Tải bản đầy đủ (.docx) (16 trang)

Tìm Hiểu Giải Pháp Ảo Hóa Mã Nguồn Mở KVM Và Triển Khai Thử Nghiệm

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (662.95 KB, 16 trang )

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
BM KHOA HỌC VÀ KỸ THUẬT THÔNG TIN
-----∞|∞-----

BÁO CÁO ĐỒ ÁN
Môn: CÁC CÔNG NGHỆ NỀN

Đề tài:

TÌM HIỂU GIẢI PHÁP ẢO HÓA MÃ

NGUỒN MỞ KVM VÀ TRIỂN KHAI THỬNGHIỆM

GV hướng dẫn: Thầy Nguyễn Tấn Cầm
SV thực hiện: Lê Thị Tài Ngân
Trần Diệu Đức Hạnh
Nguyễn Đức Tài
Phùng Quốc Việt
Phạm Minh Phụng
Hồ Chí Minh, Tháng 05 Năm 2015


MỤC LỤC


NHẬN XÉT CỦA GIẢNG VIÊN
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................


.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................


TỔNG QUAN
Thông tin nhóm
Họ và tên
Lê Thị Tài Ngân
Trần Diệu Đức Hạnh
Nguyễn Đức Tài
Phùng Quốc Việt
Phạm Minh Phụng

MSSV
13520535
13520246
13520730
13521036

13520646

Đánh giá nhóm
MSSV
Họ Tên

1352053
5

Lê Thị Tài Ngân

Công việc được
giao

- Soạn slide.
- I: Giới thiệu ảo

hóa

Email






Tỷ lệ Nhận xét
%
công
việc

hoàn
thành
98
Thực hiện tốt nhiệm vụ
Đi họp nhóm đầy đủ
Tích cực đóng góp ý kiến

- Kiểm tra và sắp

1352024
6

Trần Diệu Đức Hạnh -

1352073
0

Nguyễn Đức Tài

-

-

1352103
6

Phùng Quốc Việt

-


1352064
6

Phạm Minh Phụng

xếp nội dung.
Tìm kiếm tài
liệu
Kiểm tra sắp
xếp nội dung
Đăng ký đề tài.
II.3: So sánh
KVM và
Vsphere
III: Triển khai
thử nghiệm
Nộp đồ án
II.1: Giới thiệu
chung về KVM
II.2: Hoạt động
của KVM
Kiểm tra và sắp
xếp nội dung.

95

98

97


0

Thực hiện tốt nhiệm vụ
Đi họp nhóm đầy đủ
Tích cực tìm kiếm giải pháp
& thông tin
Thực hiện tốt nhiệm vụ
Đi họp nhóm đầy đủ

Thực hiện tốt nhiệm vụ
Đi họp nhóm đầy đủ


I.
-

Giới thiệu ảo hóa
Ngày nay công nghệ ảo hóa đã trở nên phổ biến và được ứng dụng rất nhiều trong các doanh
nghiệp, nhất là các doanh nghiệp lớn
Dưới đây là hình ảnh cho thấy sự khác nhau giữa một hệ thống x86 (hoặc x64) không sử
dụng phần mềm ảo hóa và một hệ thống x86 (hoặc x64) có sử dụng phần mềm ảo hóa.

Hình 1: So sánh giữa Hệ thống ảo hóa và Hệ thống không ảo hóa
1.
-

Ảo hóa là gì
Hệ thống máy tính x86 hoặc x64 ngày nay được thiết kế để chạy duy nhất một hệ điều hành
và các ứng dụng chạy trên nó đa phần chiếm rất ít tài nguyên của hệ thống, nhất là CPU (chỉ
sử dụng khoảng 3% - 10% số ít sử dụng 30%). Điều này dẫn đến tài nguyên của hệ thống dư


-

thừa rất nhiều và không được tận dụng hết.
Với các thiết kế Multi core hiện tại sự phí phạm tài nguyên còn cao hơn nhiều, nhất là trong

-

các hệ thống máy chủ với nhiều CPU và mỗi CPU có nhiều core.
Để tận dụng nguồn tài nguyên dư thừa này người ta thường cài nhiều ứng dụng trên một máy
chủ thật, điều này dẫn đến việc dễ xảy ra xung đột giữa các ứng dụng với nhau và khi một ứng

-

dụng xảy ra lỗi thì nó sẽ liên quan tới tất cả các ứng dụng khác.
Với công nghệ ảo hóa, chúng ta có thể chạy nhiều máy tính ảo trên một máy tính vật lý và
chúng chia sẻ tài nguyên phần cứng với nhau, giúp tận dụng được tài nguyên dư thừa của hệ
thống. Điều này cũng có nghĩa là chúng ta có thể chạy nhiều hệ điều hành khác nhau


(Windows 2000, Windows 2003, Windows 2008, Windows 2012, Linux, Ubuntu,...) đồng thời
-

trên cùng một máy vật lý.
Ảo hóa là công nghệ được thiết kế để tạo ra tầng trung gian giữa hệ thống phần cứng máy
chủ và phần mềm chạy trên nó. Công nghệ ảo hóa máy chủ là từ một máy vật ký đơn lẻ có thể
tạo thành nhiều máy ảo độc lập. Mỗi máy ảo đều có một thiết lập nguồn hệ thống riêng rẽ, hệ
điều hành và các ứng dụng riêng. Người dùng không cần quan tâm tới hệ thống đang ở đâu,
các hoạt động tính toán, xử lý dữ liệu xảy ra như thế nào. Người dùng chỉ cần gửi yêu cầu và
nhận kết quả Có 2 hình thức ảo hóa máy chủ:

+ Virtualization Management layer: Đây là hình thức ảo hóa ban đầu của máy chủ. Thường
gọi là Hosted. Chức năng ảo hóa được xây dựng trên một nền OS thông dụng. Một số sản
phẩm thông dụng: Microsoft's Virtual PC, and VMWare's Workstation
+ Dedicated Virtualization: Hình thức ảo hóa này thường được gọi là "bare-metal", được
chạy trực tiếp trên phần cứng của máy chủ. Vì vậy sẽ giúp sử dụng tài nguyên máy chủ tối
ưu hơn là hình thức Hosted, tốc độ xử lý nhanh hơn. Các sản phẩm thông dụng: ESX, Xen,

2.
-

and Hyper-V
Cấu tạo của một máy ảo
Mỗi máy ảo là một hệ thống hoàn chỉnh gói gọn trong một tập hợp các tập tin (set of
software files)
Mỗi máy ảo (Virtual Machine - VM) cótrên hệ thống bên trái được thể hiện như hình bên
phải gồm các thành phần phần cứng (như: CPU, RAM, NIC, HBA, Disk,...), hệ điều hành
(Operating System) và các ứng dụng (Applications) như một máy tính theo kiến trúc
x86/x644

Hình 2: Cấu tạo của một máy ảo
3.

Các lợi ích chính của máy ảo


3.1 Chia nhỏ
-

Với công nghệ ảo hóa chúng ta có thể chạy nhiều máy ảo trên một máy thật với các hệ điều
hành khác nhau, điều này có nghĩa là chúng ta có thể tách từng dịch vụ ra đề cài trên từng


-

máy ảo.
VD: Khi chưa sử dụng ảo hóa, để tận dụng sức mạnh của Server chúng ta cài các dịch vụ như
AD, Web, FTP, SQL trên cùng một máy thì giờ đây chúng ta có thể tách riêng chúng ra để cài
trên 4 máy ảo khác nhau (AD và SQL cài trên hai máy ảo Windows, Web và FTP cài trên 2
máy ảo Linux)

Hình 3: Lợi ích chia nhỏ của máy ảo
3.2 Cô lập

Khi mỗi dịch vụ quan trọng được cài trên một máy ảo riêng biệt thì nếu xảy ra lỗi một dịch vụ
thì không ảnh hưởng gì tới các dịch vụ chạy trên các máy ảo khác. Thậm chí hệ điều hành
chạy dịch vụ đó hư hỏng nặng và không thể phục hồi lại được thì cũng không ảnh hưởng gì.
Trong trường hợp này chúng ta chỉ phải cài lại và triển khai lại máy ảo (VM) và dịch vụ bị lỗi.


Hình 4:Lợi ích cô lập khi dung máy ảo
3.3 Đóng gói

Một máy ảo chạy trên nền tảng ảo hóa thực chất là một tập hợp các tập tin cấu hình và dữ liệu
(set of software files), điều này dẫn đến việc cho phép chúng ta có thể chép toàn bộ các tập tin
này ra ngoài để đưa sang một hệ thống ảo hóa khác để chạy hoặc backup chúng (khi backup
chúng ta thực hiện backup cả hệ điều hành, dịch vụ và dữ liệu của máy ảo này) và khi có sự
cố xảy ra thì chúng ta có thể phục hồi lại tất cả mà không cần cài đặt và cấu hình cũng như
chép lại dữ liệu (điều này không thể thực hiện được khi chạy trên máy thật)

Hình 5: Lợi ích của việc đóng gói
3.4 Độc lập với phần cứng


Với công nghệ ảo hóa, một máy ảo có thể di chuyển từ một môi trường ảo hóa này (Server cài
phần mềm ảo hóa) sang môi trường ảo hóa khác tương tự để chạy mà không gây ra bất cứ khó
khăn nào (Thậm chí chúng ta có thể chuyển đổi máy ảo từ môi trường ảo hóa này sang môi
trường ảo hóa khác có kiến trúc khác bằng các công cụ được hỗ trợ hoặc bằng thủ công). Điều
này giúp chúng ta dễ dàng nâng cấp phần cứng (vật lý) mà không cần cài lại các máy ảo (thậm
chí với chức năng Migrate của VMware khi tiến hành nâng cấp phần cứng thì các máy ảo vẫn


chạy và phục vụ công việc bình thường - người dùng không cảm nhận được các VMs đang
được chuyển từ Server vật lý này sang Server vật lý khác)

Hình 6: Lợi ích khi độc lập với phần cứng
4.
-

Hợp nhất
Để việc tận dụng tài nguyên tốt hơn và để đảm bảo các máy ảo không bị tắt khi máy thật bị
lỗi, người ta đưa ra mô hình hợp nhất các máy chủ vật lý
Trong mô mình này khi một máy chủ vật lý gặp sự cố, các máy ảo sẽ được di chuyển qua các
máy thật khác và chúng vẫn tiếp tục hoạt động (Quá trình này diễn ra bằng với thời gian khởi

-

động lại máy ảo)
Để triển khai được mô hình này thì ngoài các server vật lý ra chúng ta còn phải trang bị thêm
một thiết bị lưu trự chuyên dụng (Storage - SAN), hoặc sử dụng các phần mềm để mô phỏng
SAN như: FreeNAS, Openfiler hoặc VSA của VMware,...

II.

1.

Hình 7: Mô hình hợp nhất các máy chủ vật lý để chạy các máy ảo
Giới thiệu KVM
Giới thiệu chung về KVM


KVM ban đầu được phát triển bởi Qumranet – một công ty nhỏ, sau đó được Redhat mua lại
vào tháng 9 năm 2008. Ta có thể thấy KVM là thế hệ tiếp theo của công nghệ ảo hóa. KVM
được sử dụng mặc định từ bản RHEL (Redhat Enterprise Linux) từ phiên bản 5.4 và phiên bản
Redhat Enterprise Virtualization dành cho Server.
Qumranet phát hành mã của KVM cho cộng đồng mã nguồn mở. Hiện nay, các công ty nổi
tiếng như IBM, Intel và AMD cũng đã cộng tác với dự án. Từ phiên bản 2.6.20, KVM trở
thành một phần của hạt nhân Linux.
1.1 Linux as a VMM
Linux có tất cả các cơ chế của một VMM cần thiết để vận hành các máy ảo. Chính vì vậy, các
nhà phát triển không xây dựng lại mà chỉ thêm vào đó một vài thành phần để hỗ trợ ảo hóa.
KVM được triển khai như một modul hạt nhân có thể được nạp vào để mở rộng Linux bởi
những khả năng này.

Trong một môi trường Linux thông thường mỗi process chạy hoặc sử dụng user-mode hoặc
kernel-mode. KVM đưa ra một chế độ thứ 3, đó là guest-mode. Nó dựa trên CPU có khả năng
ảo hóa với kiến trúc Intel VT hoặc AMD SVM, một process trong guest-mode bao gồm cả
kernel-mode và user-mode.
1.2 Resource management

Các nhà phát triển KVM hướng tới tái sử dụng nhiều mã nguồn có thể. Do đó họ chủ yếu sửa
đổi việc quản lý bộ nhớ Linux cho phép ánh xạ bộ nhớ vật lý vào không gian địa chỉ ảo. Do
đó họ bổ sung thêm các bản shadow, điều này rất cần thiết trong những ngày đầu cảu ảo hóa
x86, khi Intel và AMD không phát hành EPT tương ứng với NPT.

Trong những hệ điều hành hiện nay, có rất nhiều process hơn so với số CPU sẵn có để chạy
chúng. Việc lập lịch (Scheduler) của một hệ điều hành để đưa ra 1 trật tự cho mỗi process
được giao cho một trong những CPU sẵn có. Bằng cách này, tất cả các process đang chạy sẽ
chia sẻ thời gian tính toán. Kể từ khi các nhà phát triển KVM muốn tái sử dụng hầu hết các cơ
chế của Linux, họ đơn giản chỉ hướng đến mỗi máy ảo như một process, dựa vào đó lập lịch,
gán sức mạnh tính toán cho các máy ảo.


1.3 The KVM control interface

Một khi modul nhân KVM được load vào, node /dev/kvm sẽ được sinh ra trong hệ thống tập
tin Linux. Đây là một node đặc biệt, nó cho phép kiểm soát hypervisor thông qua một tập hợp
các ioctls. Nó được sử dụng trong hệ điều hành như một interface cho các process đang chạy
trong user-guest để giao tiếp với drive. Ioctl() gọi hệ thống cho phép thực hiện một số hoạt
động để tạo ra các máy ảo mới, phân chia bộ nhớ cho máy ảo, phân chia và khởi động các
CPU ảo.
1.4 Emulation of hardware
Để cung cấp phần cứng như ổ cứng, ổ đĩa CD hay card mạng cho máy ảo, KVM sử dụng
QEMU. Đây là tên gọi của một công cụ nền tảng ảo hóa, cho phép giả lập toàn bộ một nền
tảng máy tính bao gồm đồ họa, mạng, ổ đĩa và nhiều hơn nữa. Mỗi một máy ảo khởi động một
process QEMU được bắt đầu dưới chế độ user và kèm theo đó là các thiết bị được mô phỏng.
Khi một máy ảo thực hiện I/O, nó bị chặn bởi KVM và chuyển hướng đến các quá trình liên
quan đến QEMU cho khách.
2. Hoạt động của KVM
Hình dưới đây mô tả mô hình thực hiện của KVM. Đây là một vòng lặp của các hành động
diễn ra để vận hành các máy ảo. Những hành động này được phân cách bằng 3 phương thức
chúng ta đã đề cập trước đó: user-mode, kernel-mode, guest-mode.

Như ta thấy:



-

User – mode: Các modul KVM gọi đến sử dụng ioclt() để thực thi mã khách cho đến khi hoạt
động I/O khởi xướng bởi guest hoặc một sự kiện nào đó bên ngoài xảy ra. Sự kiện này có thể
là sự xuất hiện của một gói tin mạng, cũng có thể là trả lời của một gói tin mạng được gửi bởi
các máy chủ trước đó. Những sự kiện như vậy được biểu diễn như là tín hiệu dẫn đến sự gián

-

đoạn của thực thi mã khách.
Kernel – mode: Kernel làm phần cứng thực thi các mã khách tự nhiên. Nếu bộ xử lý thoát
khỏi guest do cấp phát bộ nhớ hay I/O hoạt động, kernel thực hiện các nhiệm vụ cần thiết và
tiếp tục luồng thực hiện. Nếu các sự kiện bên ngoài như tín hiệu hoặc I/O hoạt động khởi

-

xướng bởi các guest tồn tại, nó thoát tới user – mode.
Guest – mode: Đây là cấp độ phần cứng, nơi mà các lệnh mở rộng thiết lập của một CPU có
khả năng ảo hóa được sử dụng để thực thi mã nguồn gốc, cho đến khi một lệnh được gọi như
vậy cần sự hỗ trợ của KVM, một lỗi hoặc một gián đoạn bên ngoài.
Khi một máy ảo chạy, có rất nhiều chuyển đổi giữa các chế độ. Từ kernel – mode tới guest –
mode và ngược lại rất nhanh, bởi vì chỉ có mã nguồn gốc được thực hiện trên phần cứng cơ
bản. Khi I/O hoạt động diễn ra các luồng thực thi tới user – mode, rất nhiều thiết bị ảo I/O
được tạo ra, do vậy rất nhiều I/O thoát ra và chuyển sang chế độ user – mode chờ. Hãy tưởng
tượng mô phỏng một đĩa cứng và một guest đang đọc các block từ nó. Sau đó QEMU mô
phỏng các hoạt động bằng cách giả lập các hoạt động bằng các mô phỏng hành vi của các ổ
đĩa cứng và bộ điều khiển nó được kết nối. Để thực hiện các hoạt động đọc, nó đọc các khối
tương ứng từ một tập tin lớp và trả về dữ liệu cho guest. Vì vậy, user – mode giả lập I/O có xu


hướng xuất hiện một nút cổ chai làm chậm việc thực hiện máy ảo.
3. So sánh KVM và VSphere
(1) Hypervisor (còn gọi là ảo hóa phần cứng). Hypervisor có thể là phần cứng, phần mềm

hoặc là một bản firmware nào đó có thể chạy trực tiếp trên một hệ thống máy tính, có
chức năng cho nhiều máy ảo chạy trên nó.
(2) Virtualization Management layer: Đây là hình thức ảo hóa ban đầu của máy chủ.
Thường gọi là Hosted. Chức năng ảo hóa được xây dựng trên một nền OS thông
dụng. Một số sản phẩm thông dụng: Microsoft's Virtual PC, and VMWare's
Workstation
(3) Dedicated Virtualization: Hình thức ảo hóa này thường được gọi là "bare-metal",
được chạy trực tiếp trên phần cứng của máy chủ. Vì vậy sẽ giúp sử dụng tài nguyên
máy chủ tối ưu hơn là hình thức Hosted, tốc độ xử lý nhanh hơn. Các sản phẩm thông
dụng: ESX, Xen, and Hyper-V


OVERVIEW
Company
Intended users

Awards

Notable Customers

VMware, Inc.


Red Hat

Small-Medium

Business




Personal
Small-Medium
Business

Top 50 Most Influential
Channel Chiefs in 2014
Virtualization Review gave
VMware Horizon View its
2014 Reader's Choice Award in
the Desktop Virtualization and
VDI category

NYSE
Ducati.

Euronext,

Revlon,

TECHNICAL SPECIFICATIONS
Hypervisor Type

Bare Metal (Type 1)



Virtualization Type




Architecture
Supported Storage




DAS
FC
FCoE
NAS

Full Virtualization
Hardware Assisted
Virtualization
Paravirtualization
x86
x64

Hosted (Type 2)



Full Virtualization
Paravirtualization




x86
x64
Power




USB


SSD for Swap
USB

VIRTUAL MACHINE LIMITS
Virtual Disk Size

62000 GB

RAM per VM

4000GB

Virtual Disks per VM

62

Virtual NICs per VM


10

Virtual CPUs per VM

128VCPUS

HOST SERVER LIMITS
VMs per Host

120 VMS

RAM per Host

2048 GB

Virtual Disks per Host

2048

Logical CPUs per Host

160

Virtual CPUs per Host

2048

1 GB

16


VIRTUALIZATION MANAGEMENT







Configuration
Mapping
Dynamic Resource
Allocation
Failover
Live Migration
Thin Provisioning






Asset Management
Configuration
Snapshots
Live Migration
Performance Metrics
Storage Migration
VM Migration





Free BSD
MS DOS






CentOS
Fedora
Red Hat Linux
Ubuntu




Management Features

REQUIREMENTS
Supported Host Operating
Systems








Supported Guest Operating
Systems (*)





Free BSD
Mandrake Linux
MS DOS
Novell Linux
Desktop
Red Hat Enterprise
Linux AS
Windows Server
2003









CentOS
Fedora
Free BSD
MS DOS

Novell Linux
Desktop
SUSE Linux
Windows Server
2008 R2

SUPPORTED PLATFORMS

Deployment Model

On Premise



Platform

Windows
Linux

Pricing

*

License

Proprietary

Licensing Details
Pricing Page


per processor

On Premise



Windows
Linux

Open Source (Free)

*

SUPPORT

Technical Support

III.

Triển khai thử nghiệm













FAQ
Forums
Help Desk
Instructional Videos
Knowledge base
Online self serve
Phone
Remote Training
System upgrades
White papers






FAQ
Forums
Online self serve
White papers


IV.

Tổng kết, đánh giá
1. Tổng kết
2. Đánh giá
-


Đã cài đặt và triển khai thành công CentOS 6 trên KVM.
Do lịch học của các bạn khác nhau nên khó khăn trong việc họp nhóm.
Một số thành viên đến trễ hoặc nghỉ làm chậm tiến độ nhóm.
Do thời gian làm việc chỉ vỏn vẹn trong 1 học kỳ nên các thành viên chưa phối

hợp ăn ý để làm việc nhóm hiệu quả.
Tuy nhiên mọi người đều thực hiện rất tốt và đúng hạn công việc được giao.
Các thành viên tích cực đóng góp ý kiến để hoàn thiện đồ án.
Bạn Phạm Minh Phụng không đi họp nhóm buổi nào nên các thành viên trong
nhóm đồng ý loại bạn Phụng ra khỏi nhóm.
Tài liệu tham khảo
1.
/>2.
/>3.
/>4.
/>


×