Công nghệ ảo hóa và giải pháp ảo hóa máy chủ với KVM

Tóm tắt

Ảo hóa là một công nghệ không còn mới, thậm chí còn có tuổi đời cao hơn rất nhiều so với

những công nghệ tiên tiến về hệ thống hiện nay. Tuy nhiên, ảo hóa không hề lỗi thời, ngược lại, ở

thời điểm hiện tại, ảo hóa còn được sử dụng, nghiên cứu và phát triển một cách mạnh mẽ, trở thành

công nghệ then chốt trong điện toán đám mây, được xây dựng bởi các tập đoàn lớn trong lĩnh vực

công nghệ thông tin. Bài báo đã trình bày về tổng quan công nghệ ảo hóa, từ khái niệm cho đến

phân loại các phương pháp ảo hóa, trong đó, tập trung chủ yếu vào ảo hóa máy chủ và vấn đề triển

khai ảo hóa trên hệ thống công nghệ thông tin. Đồng thời, bài viết cũng đặt ra giải pháp ảo hóa mã

nguồn mở với Kernel-based Virtual Machine (KVM). Việc triển khai, phát triển hệ thống máy chủ

ảo hóa KVM đem lại hiệu quả về kinh tế và khả năng tự phát triển bởi là giải pháp mã nguồn mở,

nhưng vẫn đem lại hiệu năng không hề thua kém so với các giải pháp ảo hóa thương mại cao cấp.

Trong khuôn khổ bài viết, tác giả chủ yếu tập trung đề cập về ảo hóa và ảo hóa với KVM chứ

không đi sâu vào trình bày về việc triển khai một hệ thống máy chủ cụ thể với ảo hóa KVM, vấn đề

này sẽ được trình bày trong các bài viết khác.

pdf 12 trang yennguyen 7020
Bạn đang xem tài liệu "Công nghệ ảo hóa và giải pháp ảo hóa máy chủ với KVM", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Công nghệ ảo hóa và giải pháp ảo hóa máy chủ với KVM

Công nghệ ảo hóa và giải pháp ảo hóa máy chủ với KVM
THE INTERNATIONAL CONFERENCE ON MARINE SCIENCE AND TECHNOLOGY 2016 
HỘI NGHỊ QUỐC TẾ KHOA HỌC CÔNG NGHỆ HÀNG HẢI 2016 448 
Công nghệ ảo hóa và giải pháp ảo hóa máy chủ với KVM 
Virtualization technology and server virtualization solution using KVM 
Phạm Ngọc Duy1, 
Võ Văn Thưởng1, Lương Thanh Nhạn2 
1Trường Đại học Hàng hải Việt Nam, 
duypn@vimaru.edu.vn 
2Trường Đại học Y Dược Hải Phòng 
Tóm tắt 
Ảo hóa là một công nghệ không còn mới, thậm chí còn có tuổi đời cao hơn rất nhiều so với 
những công nghệ tiên tiến về hệ thống hiện nay. Tuy nhiên, ảo hóa không hề lỗi thời, ngược lại, ở 
thời điểm hiện tại, ảo hóa còn được sử dụng, nghiên cứu và phát triển một cách mạnh mẽ, trở thành 
công nghệ then chốt trong điện toán đám mây, được xây dựng bởi các tập đoàn lớn trong lĩnh vực 
công nghệ thông tin. Bài báo đã trình bày về tổng quan công nghệ ảo hóa, từ khái niệm cho đến 
phân loại các phương pháp ảo hóa, trong đó, tập trung chủ yếu vào ảo hóa máy chủ và vấn đề triển 
khai ảo hóa trên hệ thống công nghệ thông tin. Đồng thời, bài viết cũng đặt ra giải pháp ảo hóa mã 
nguồn mở với Kernel-based Virtual Machine (KVM). Việc triển khai, phát triển hệ thống máy chủ 
ảo hóa KVM đem lại hiệu quả về kinh tế và khả năng tự phát triển bởi là giải pháp mã nguồn mở, 
nhưng vẫn đem lại hiệu năng không hề thua kém so với các giải pháp ảo hóa thương mại cao cấp. 
Trong khuôn khổ bài viết, tác giả chủ yếu tập trung đề cập về ảo hóa và ảo hóa với KVM chứ 
không đi sâu vào trình bày về việc triển khai một hệ thống máy chủ cụ thể với ảo hóa KVM, vấn đề 
này sẽ được trình bày trong các bài viết khác. 
Từ khóa: Ảo hóa, máy chủ, mã nguồn mở, KVM. 
Abstract 
Virtualization is no longer a new technology now, its age is even higher than many other 
advanced technologies used in infomation technology systems. Virtualization, however, is still not 
outdated, it can also be used, researched and developed more powerfully at the present; it becomes 
a key technology in cloud computing, which is built by many great corporations in information 
technology field. This paper presents an overview of virtualization technology, from concepts to 
classifing the virtualization methods, and focuses mainly on server virtualization and deloying 
virtualization solution on an information technology system. The paper also presents an open-
source virtualization solution with Kernel-based Virtual Machine (KVM). The deployment and 
development virtualization server systems with KVM brings more economical, effictive and easier 
way, specially in self-development, because it is an open-source solution, but its performance is 
still not worse than the performance of advanced commercial virtualization solutions. Due to the 
limited length of the paper, the author mainly discusses about virtualization and virtualization with 
KVM, but not shows how to deploy a specific server system with KVM virtualization, this topic will 
be presented in other papers. 
Keywords: Virtualization, server, open-source, KVM. 
1. Công nghệ ảo hóa trong xây dựng và quản lí hệ thống máy chủ 
1.1. Tổng quan về ảo hóa 
Ảo hóa không còn là một khái niệm xa lạ đối với những người làm việc trong lĩnh vực công 
nghệ thông tin (CNTT). Khi nhắc đến ảo hóa, những người sử dụng máy tính thông thường hay 
nghĩ tới những chương trình ảo hóa trên máy tính. Còn trong khuôn khổ của nghiên cứu, bài báo tập 
trung vào hướng ‘Ảo hóa máy chủ’. Vậy ‘ảo hóa’ là gì? Về mặt ngữ nghĩa, ảo hóa được hiểu là biến 
đổi thứ gì đó thành ‘không có thực’. Còn trong ngành công nghệ thông tin, ‘ảo hóa’ là một thuật 
ngữ dùng để chỉ việc tạo ra các đối tượng không có thực (ảo) mô phỏng theo đối tượng có thực. Các 
đối tượng có thực là các đối tượng tồn tại ở mức vật lý, còn những đối tượng ảo tồn tại ở mức logic. 
THE INTERNATIONAL CONFERENCE ON MARINE SCIENCE AND TECHNOLOGY 2016 
HỘI NGHỊ QUỐC TẾ KHOA HỌC CÔNG NGHỆ HÀNG HẢI 2016 449 
Các đối tượng ở đây là các tài nguyên công nghệ thông tin.Việc tồn tại hay không phụ thuộc vào 
góc nhìn của những bên tham gia vào quá trình ảo hóa và tương tác với đối tượng ảo hóa. 
1.2. Ảo hóa trong hệ thống công nghệ thông tin 
Hệ thống thông tin là một hệ thống bao gồm các yếu tố có quan hệ với nhau cùng làm 
nhiệm vụ thu thập, xử lý, lưu trữ và phân phối thông tin và dữ liệu và cung cấp một cơ chế phản hồi 
để đạt được một mục tiêu định trước. Tổng quát hóa, hệ thống công nghệ thông tin cấu thành từ 3 
thành phần cơ bản: “Cơ sở hạ tầng”, “nền tảng” và “phần mềm” (thuật ngữ tiếng Anh tương ứng là 
“Infrastructure”, “Platform” và “Software”). Nếu tiếp tục phân tích cụ thể hơn 3 thành phần này, có 
thể đưa ra một mô hình phân tầng về các thành phần tạo nên một hệ thống công nghệ thông tin, như 
hình 1. 
Hình 1. Ba yếu tố cấu thành hệ thống CNTT & 
Mô hình phân tầng các thành phần của hệ thống CNTT 
Như đã trình bày, việc nghiên cứu công nghệ, xây dựng và triển khai hệ thống sẽ chủ yếu 
tập trung vào thành phần Cơ sở hạ tầng. Nhìn vào mô hình phân tầng, cơ sở hạ tầng bao gồm 3 
thành phần cơ bản sau: mạng (Networking), lưu trữ (Storage) và máy chủ (Server). Đây là 3 thành 
phần cơ bản của một hệ thống cơ sở hạ tầng. Việc xây dựng, triển khai và quản lý hệ thống chính là 
xây dựng, triển khai và quản lý 3 hệ thống cơ bản này và mối quan hệ của chúng với nhau. Ngoài 
ra, hệ thống cơ sở hạ tầng hiện đại có thể bổ sung thêm thành phần: Ảo hóa (Virtualization). Đây 
chính là công nghệ chủ đạo được tập trung nghiên cứu và trình bày trong bài báo. Khi xuất hiện 
thành phần ảo hóa, thành phần Máy chủ sẽ được chia làm 2 thành phần là: phần cứng/thiết bị máy 
chủ (Server Hardware) và máy chủ (Servers). Khi có thành phần ảo hóa tham gia vào hệ thống cơ 
sở hạ tầng, khái niệm máy chủ trở thành hệ thống các máy chủ vật lý và máy chủ ảo. 
1.3. Phân loại ảo hóa 
Trong mô hình phân tầng hệ thống, ảo hóa là một lớp thuộc nhóm Cơ sở hạ tầng, với các 
thành phần mạng, lưu trữ, phần cứng, máy chủ, cơ sở dữ liệu. Ngoài ra còn các nhóm nền tảng với 
hệ điều hành, nhóm phần mềm với dữ liệu, ứng dụng. 
Về mặt lý thuyết, xét trên góc độ hệ thống, ảo hóa có thể được thực hiện trên bất kì thành 
phần nào của hệ thống; và thực tế cũng hoàn toàn như vậy. Nếu xét theo tiêu chí “Đối tượng được 
ảo hóa”, ảo hóa bao gồm một số cặp: ảo hóa máy chủ (server virtualization) và ảo hóa desktop 
(client virtualization); ảo hóa phần cứng (hardware virtualization) và ảo hóa phần mềm (software 
virtualization); ảo hóa mạng (network virtualization), ảo hóa lưu trữ (storage virtualization); ảo hóa 
cơ sở dữ liệu (database virtualization) và ảo hóa dữ liệu (data virtualization); ảo hóa hệ điều hành 
(OS virtualization), ảo hóa ứng dụng (application virtualization), ảo hóa dịch vụ (service 
virtualization); ảo hóa bộ nhớ (memory virtualization). Như vậy, có rất nhiều đối tượng để áp dụng 
thực hiện ảo hóa, và với mỗi đối tượng lại có những công nghệ ảo hóa tương ứng. Trong các đối 
tượng được nêu ở trên, đa số các đối tượng trước khi thực hiện ảo hóa cũng là một đối tượng dạng 
THE INTERNATIONAL CONFERENCE ON MARINE SCIENCE AND TECHNOLOGY 2016 
HỘI NGHỊ QUỐC TẾ KHOA HỌC CÔNG NGHỆ HÀNG HẢI 2016 450 
logic. Đối tượng Phần cứng thuộc dạng vật lý nên việc ảo hóa phần cứng cần được quan tâm. Một 
tiêu chí được xét nữa đối với ảo hóa phần cứng, đó là cách thức ảo hóa. Khi đó ảo hóa phần cứng 
lại được chia thành các dạng sau đây: Ảo hóa toàn phần (full virtualizion); ảo hóa cục bộ/một phần 
(partial virtualization); ảo hóa song song (para-virtualization hay OS-assissted virtualization); ảo 
hóa hỗ trợ phần cứng (hardware-assissted virtualization). 
1.4. Ảo hóa với hệ thống máy chủ 
Ảo hóa máy chủ là việc thực hiện ảo hóa trên máy chủ vật lý để tạo ra sản phẩm là các máy 
chủ ảo. 
Khái quát về máy chủ và ảo hóa máy chủ: máy chủ (Server) - khi nhắc đến máy chủ, tất cả 
mọi người thường liên tưởng tới những cỗ máy tính lớn, thiết kế đặc biệt, kết nối mạng tốc độ cao 
và có cấu hình mạnh mẽ. Trong thực tế, máy chủ không quá khác biệt so với máy tính thông 
thường. Máy chủ là những máy tính mà trên đó được cài đặt các phần mềm có nhiệm vụ xác định, 
nhằm cung cấp một hoặc một số dịch vụ hay tài nguyên nhất định cho các máy tính khác - các máy 
trạm (Client) - thông qua mạng máy tính. Tùy thuộc vào quy mô mà máy chủ phục vụ, sức mạnh 
của máy chủ cũng phải tương xứng. Hiện nay với công nghệ thiết kế bộ xử lý phát triển, các bộ xử 
lý (CPU) của máy chủ với đa nhân, đa luồng, cho phép các máy chủ có khả năng chạy các tác vụ 
phức tạp một cách dễ dàng. 
Với cách thức truyền thống, nhà quản trị hệ thống thường dành riêng mỗi máy chủ cho một 
ứng dụng hoặc nhiệm vụ cụ thể. Rất nhiều trong số các tác vụ này không hoạt động giống như các 
tác vụ còn lại, mỗi tác vụ đòi hỏi nhu cầu cần có một máy chủ chuyên dụng riêng cho nó. Một ứng 
dụng trên mỗi máy chủ cũng giúp người quản lý dễ dàng hơn để trong việc theo dõi những sự cố 
khi phát sinh khi chúng xảy ra. Trên quan điểm kĩ thuật đây là cách thức đơn giản để xây dựng một 
mạng máy tính. Máy chủ trong trường hợp này là một máy chủ độc lập. Mặc dù vậy có một số vấn 
đề với phát sinh với phương pháp này. Một là, phương pháp không tận dụng hết được sức mạnh xử 
lý tính toán của các máy chủ hiện đại. Theo thống kê của các hãng công nghệ máy chủ, hầu hết các 
máy chủ chỉ tận dụng được một phần nhỏ trong toàn bộ khả năng xử lý tổng thể của chúng. Rất 
nhiều thời gian máy chủ nằm trong tình trạng “nhàn rỗi” trong khi một số lúc khác lại trở nên quá 
tải. 
Một vấn đề khác là khi một mạng máy tính mở rộng hơn và phức tạp hơn, các máy chủ bắt 
đầu tốn nhiều không gian vật lý. Một trung tâm dữ liệu có thể trở nên quá tải với rack máy chủ, tiêu 
thụ rất nhiều năng lượng và tỏa ra nhiều nhiệt. Ảo hóa máy chủ cố gắng để giải quyết cả hai vấn đề 
chỉ bằng một cách thức duy nhất. Bằng cách sử dụng phần mềm thiết kế đặc biệt (phần mềm ảo 
hóa), một quản trị viên có thể chuyển đổi một máy chủ vật lý thành nhiều máy ảo. Mỗi máy chủ ảo 
hoạt động như một thiết bị vật lý độc lập, nhưng lại tồn tại ở dạng logic, có khả năng chạy hệ điều 
hành (OS) riêng của mình. Về lý thuyết, có thể tạo nhiều các máy chủ ảo đủ để tận dụng được toàn 
bộ sức mạnh xử lý của máy chủ vật lý (mặc dù trong thực tế việc này không phải luôn là ý tưởng 
hay). Ảo hóa không phải là một khái niệm mới. Các nhà nghiên cứu công nghệ đã tạo ra các máy ảo 
trên các siêu máy tính trong nhiều thập kỷ trước. Nhưng công nghệ ảo hóa chỉ thực sự trở nên phát 
triển mạnh mẽ kể khoảng 10 năm trở lại đây. Trong thế giới của công nghệ thông tin, máy chủ ảo 
hóa luôn là một chủ đề nóng. Nó vẫn là một công nghệ không lỗi thời và một số nhà phát triển cung 
cấp các hướng tiếp cận khác nhau. 
Lí do sử dụng máy chủ ảo hóa: theo [1], có nhiều nguyên nhân để các đơn vị và tổ chức đã, 
đang sẽ và đầu tư vào máy chủ ảo hóa. Một trong số lý do là sự tính toán trong chi phí đầu tư hệ 
thống, trong khi các nơi khác là việc giải quyết những vấn đề kỹ thuật: Ảo hóa máy chủ giúp giảm 
thiểu không gian sử dụng thông qua tính hợp nhất. Trường hợp phổ biến trong thực tế (đã đề cập ở 
phần đầu) là dành mỗi máy chủ cho một ứng dụng duy nhất. Nếu một số ứng dụng chỉ sử dụng một 
lượng nhỏ sức mạnh xử lý, nhà quản trị có thể hợp nhất một số máy vào một máy chủ vật lý với 
môi trường ảo hóa. Đối với các hệ thống có hàng trăm, thậm chí hàng ngàn máy chủ, không gian 
vật lý cần thiết có thể được giảm đi đáng kể. Ảo hóa máy chủ cung cấp giải pháp cho các hệ thống 
THE INTERNATIONAL CONFERENCE ON MARINE SCIENCE AND TECHNOLOGY 2016 
HỘI NGHỊ QUỐC TẾ KHOA HỌC CÔNG NGHỆ HÀNG HẢI 2016 451 
thực hiện việc dự phòng mà không cần phải mua thêm phần cứng bổ sung. Dự phòng dùng để chạy 
các ứng dụng tương tự nhau trên nhiều máy chủ. Đó là một biện pháp an toàn - nếu một máy chủ vì 
lý do nào đó bị trục trặc, một máy chủ khác vẫn sẽ tiếp tục chạy các ứng dụng tương tự thay thế. 
Điều này làm giảm thiểu bất kỳ sự gián đoạn dịch vụ nào. Sẽ rất vô nghĩa nếu xây dựng hai máy 
chủ ảo thực hiện cùng một ứng dụng trên cùng một máy chủ vật lý. Nếu máy chủ vật lý bị treo, 
hỏng, cả hai máy chủ ảo cũng sẽ cùng trục trặc. Trong hầu hết các trường hợp, nhà quản trị sẽ tạo ra 
các máy chủ ảo dự phòng trên máy vật lý khác nhau. 
Các máy chủ ảo cho phép người lập trình và hệ thống độc lập có thể kiểm tra các ứng dụng 
hoặc hệ điều hành mới. Thay vì mua một máy vật lý chuyên dụng, nhà quản trị có thể tạo ra một 
máy chủ ảo trên một máy tính hiện có. Bởi vì mỗi máy chủ ảo là độc lập trong mối quan hệ với tất 
cả các máy chủ khác, các lập trình viên có thể chạy phần mềm mà không phải lo lắng về việc ảnh 
hưởng đến các ứng dụng khác. Phần cứng máy chủ sẽ dần trở nên lỗi thời, và chuyển đổi từ hệ 
thống này một hệ thống khác thường khá khó khăn. Để tiếp tục cho phép các dịch vụ được cung cấp 
bởi các hệ thống cũ - tận dụng hệ thống - một nhà quản trị có thể tạo ra một phiên bản ảo của phần 
cứng cũ trên các máy chủ hiện tại. Xét trên quan điểm ứng dụng, vẫn không có gì thay đổi. Các 
chương trình được thực hiện như thể là chúng vẫn còn chạy trên các phần cứng cũ. Điều này có thể 
cho các đơn vị thêm thời gian để chuyển đổi sang quy trình mới mà không phải lo lắng về các lỗi 
phần cứng, đặc biệt là nếu các công ty sản xuất phần cứng cũ không còn hoặc không thể sửa chữa 
thiết bị bị hỏng. 
Một tính năng quan trọng với máy chủ ảo hóa được gọi là di chuyển/di trú máy ảo. Di trú 
liên quan đến di chuyển một môi trường máy chủ từ nơi này sang một nơi khác. Với phần cứng và 
phần mềm, nó có thể di chuyển một máy chủ ảo từ một máy vật lý trong mạng này sang một mạng 
khác. Ban đầu, điều này chỉ khả thi nếu như cả hai máy vật lý chạy trên cùng một phần cứng, hệ 
thống và bộ xử lý. Tuy nhiên bây giờ có thể di trú các máy chủ ảo từ một máy vật lý này sang máy 
vật lý khác ngay cả khi cả hai máy có bộ vi xử lý khác nhau, nhưng chỉ khi các bộ xử lý từ cùng 
nhà sản xuất. Trong khi di trú một máy chủ ảo từ một máy vật lý này sang một máy vật lý khác xuất 
hiện sau này, quá trình chuyển đổi một máy chủ vật lý thành một máy chủ ảo cũng được coi là di 
trú. Cụ thể, đó là di trú dạng vật lý - sang - ảo (P2V - physical-to-virtual). Mỗi máy chủ vật lý có 
thể chứa nhiều máy chủ ảo. Đôi khi, nhà quản trị muốn chuyển một máy ảo từ máy vật lý này sang 
một máy khác. Việc đó được gọi là sự di trú dạng ảo - sang - ảo (V2V). Nhà quản trị sử sụng phần 
mềm đặc biệt để chuyển máy ảo tới máy vật lý. Hiện nay các công cụ quản lý ảo hóa như VMware 
có một bản cài đặt riêng phục vụ việc chuyển đổi. Trong khi máy ảo có thể chạy trên hệ thống điều 
hành riêng, các máy vật lý cần phải có cùng hệ điều hành cơ bản để tương thích với các máy khác. 
Hai máy vật lý sử dụng kết nối mạng để gửi máy ảo từ máy này sang máy kia. Nhà quản trị có thể 
thực hiện điều này nếu như họ duy trì được hoạt động của máy vật lý hoặc cân bằng tải công việc 
của hệ thống. 
Các dạng ảo hóa máy chủ: như đã đề cập trong phần phân loại ảo hóa, ảo hóa có rất nhiều 
dạng. Đối với ảo hóa máy chủ, có ba cách để tạo ra các máy chủ ảo: ảo hóa toàn phần (Full 
virtualization), ảo hóa song song (Para-virtualization) và ... ời của máy ảo vào đĩa cứng, cho phép nó được lưu trữ và tiếp 
tục nguyên trạng tại một thời điểm sau đó. 
THE INTERNATIONAL CONFERENCE ON MARINE SCIENCE AND TECHNOLOGY 2016 
HỘI NGHỊ QUỐC TẾ KHOA HỌC CÔNG NGHỆ HÀNG HẢI 2016 456 
Trình điều khiển thiết bị: KVM hỗ trợ ảo hóa lai nơi mà trình điều khiển ảo hóa song song 
được cài đặt trong hệ điều hành Guest để cho phép các máy ảo sử dụng một giao tiếp I/O tối ưu hóa 
chứ không phải là thiết bị mô phỏng, nhằm cung cấp hiệu suất cao I/O cho các khối thiết bị và 
mạng. KVM Hypervisor sử dụng tiêu chuẩn VirtIO được phát triển bởi IBM và Red Hat kết hợp 
với cộng đồng Linux cho trình điều khiển ảo hóa song song; nó là một giao tiếp độc lập Hypervisor 
để xây dựng trình điều khiển thiết bị, cho phép cùng bộ các trình điều khiển thiết bị được sử dụng 
cho nhiều Hypervisor, cho phép khả năng tương tác của Guest tốt hơn. Trình điều khiển VirtIO 
chứa trong các nhân Linux mới (2.6.25 trở về sau), bao gồm trong Red Hat Enterprise Linux 4.8+ 
và 5,3+, và có sẵn cho Red Hat Enterprise Linux 3. Red Hat đã phát triển trình điều khiển VirtIO 
cho các Guest Microsoft Windows nhằm tối ưu hóa mạng và I/O đĩa, được chứng nhận theo chương 
trình chứng nhận Microsoft's Windows Hardware Quality Labs (WHQL) của Microsoft. 
Hiệu năng và khả năng mở rộng: KVM cũng thừa hưởng hiệu suất và khả năng mở rộng của 
Linux, hỗ trợ máy ảo với lên đến 16 CPU ảo và 256GB RAM, hệ thống Host với 256 lõi và hơn 
1TB RAM. Nó có thể cung cấp: Lên đến 95 - 135% hiệu suất tương đối so với bare-metal cho khối 
lượng công việc doanh nghiệp thực tế như SAP, Oracle, LAMP, và Microsoft Exchange. Hơn 1.2 
triệu thông điệp mỗi giây và độ trễ trong khoảng 200 ms khi máy ảo chạy trên một máy chủ tiêu 
chuẩn. Tỷ lệ cao nhất với hơn 600 máy ảo chạy tải công việc doanh nghiệp trên một máy chủ duy 
nhất. Điều đó có nghĩa là KVM cho phép ngay cả các ứng dựng có khối lượng công việc yêu cầu 
cao nhất được ảo hóa. 
Quản lý các máy ảo: Có một số giải pháp quản lý máy ảo có sẵn bao gồm: Qemu/KVM: ta 
có thể chạy trực tiếp từ command line trên một máy KVM. Virsh: Một tập shell tối thiểu để quản lý 
các máy ảo. Virtual Machine Manager: còn được biết như là virt-manager, giao diện đồ họa GUI để 
quản lý các máy ảo. Webvirtmgr: quản lý máy ảo với giao diện Web. 
Một số ưu khuyết điểm 
Mặt ưu điểm: KVM là một Hypervisor mới so với các giải pháp ảo hóa khác, modul kích 
thước nhỏ này tích hợp với nhân Linux cung cấp sự đơn giản trong việc thực hiện ảo hóa, cộng 
thêm sự tiếp tục hỗ trợ từ Linux và các nhà phát triển như RedHat. KVM khá linh hoạt; khi hệ điều 
hành Guest giao tiếp với một Hypervisor được tích hợp vào trong nhân Linux, chúng có thể đánh 
địa chỉ phần cứng trực tiếp trong mọi trường hợp mà không cần phải sửa đổi hệ điều hành ảo. Điều 
này khiến KVM thành một giải pháp nhanh hơn cho máy ảo. Các bản vá lỗi cho KVM tương thích 
với nhân Linux. Ảo hóa với KVM được thực hiện trong chính nhân Linux; hệ quả là điều đó khiến 
việc điều khiển các tiến trình ảo hóa trở nên dễ dàng. 
Mặt hạn chế: Không có công cụ mang tính phức tạp nào cho việc quản lý máy chủ KVM và 
các máy ảo. KVM vẫn cần phải cải thiện hỗ trợ mạng ảo, hỗ trợ lưu trữ ảo, bảo mật nâng cao, sẵn 
sàng cao (high availability), khả năng chịu lỗi, quản lý năng lượng, hỗ trợ HPC/thời gian thực, mở 
rộng khả năng CPU ảo, khả năng tương thích với nhà cung cấp, di động máy ảo, và xây dựng hệ 
thống các dịch vụ đám mây. 
Các công cụ quản lí ảo hóa hỗ trợ KVM: hiện nay có rất nhiều công cụ quản lý ảo hóa, rất 
nhiều trong số đó hỗ trợ đa nền tảng, tức là hỗ trợ nhiều giải pháp ảo hóa khác nhau, trong đó có 
KVM. Số lượng các công cụ hỗ trợ KVM tương đối lớn, tuy nhiên, những công cụ chuyên biệt 
được phát triển dành riêng cho KVM lại hầu như thiếu. Đây là một trong những hạn chế lớn nhất 
của ảo hóa với KVM. Tuy vậy, điều đó không có nghĩa không có công cụ hữu hiệu để làm việc 
cùng giải pháp ảo hóa này. Như đã đề cập trong phần trước, các ứng dụng được xây dựng và làm 
việc dựa trên Libvirt có khả năng ảo hóa mạnh mẽ.Công cụ virsh với giao diện dòng lệnh, các lệnh 
đơn giản nhưng tính linh hoạt cao. Công cụ virt-manager với giao diện đồ họa hay webvirtmgr với 
giao diện web hoàn toàn có thể giúp nhà quản trị xây dựng, triển khai và quản lý hệ thống với nền 
tảng ảo hóa KVM. Ngoài ra, với giải pháp công nghệ điện toán đám mây, việc sử dụng nền tảng ảo 
hóa KVM trong quá trình xây dựng và quản lý hệ thống là một hướng đi hoàn toàn hợp lý. Các giải 
THE INTERNATIONAL CONFERENCE ON MARINE SCIENCE AND TECHNOLOGY 2016 
HỘI NGHỊ QUỐC TẾ KHOA HỌC CÔNG NGHỆ HÀNG HẢI 2016 457 
pháp công cụ quản lý hệ thống với công nghệ đám mây như OpenStack hỗ trợ và lựa chọn KVM 
làm công cụ ảo hóa mặc định. 
2.2. Lựa chọn giải pháp ảo hóa với KVM 
Lựa chọn giải pháp để xây dựng và triển khai một hệ thống: như đã trình bày trong các phần 
trước, có thể thấy được sự đa dạng của các phương pháp và công cụ ảo hóa. Các nhà cung cấp đưa 
ra các giải pháp ảo hóa nhằm đáp ứng các nhu cầu khác nhau của từng nhóm đối tượng sử dụng cụ 
thể. Từ các bản tính phí cho đến các bản thử nghiệm hay miễn phí, từ các giải pháp thương mại 
đóng cho đến giải pháp mã nguồn mở, từ các phiên bản quy mô nhỏ cho tới các doanh nghiệp lớn, 
từ các phiên bản tiêu chuẩn cho đến các phiên bản cao cấp, nhà quản trị hệ thống đang đứng trước 
rất nhiều sự lựa chọn nếu muốn triển khai ảo hóa cho hệ thống của mình. Tham khảo thêm về các 
giải pháp ảo hóa tại [2]. 
Tuy nhiên để có thể xây dựng một giải pháp ảo hóa hợp lý nhất cho hệ thống thì không hề 
đơn giản. Có hay không nên áp dụng ảo hóa, sử dụng nền tảng nào, sử dụng công cụ nào để quản lý 
hệ thống sau ảo hóa, thì còn phụ thuộc rất nhiều yếu tố. Ngoài ra khi đã chọn lựa và triển giai 
một giải pháp ảo hóa, cũng chưa thể khẳng định ngay được giải pháp đó có thực sự hoàn hảo hoặc 
phù hợp với hệ thống hay chưa. Cần phải có rất nhiều thời gian theo dõi, vận hành, đưa ra đánh giá 
để biết được khả năng hoạt động của một nền tảng ảo hóa cụ thể trên hệ thống cụ thể. Thực tế sẽ có 
rất nhiều vấn đề phát sinh không thể nào lường hết, có thể nền tảng ảo hóa vận hành trơn tru trên hệ 
thống này nhưng lại có hiệu năng rất thấp trên hệ thống khác. Vậy nhà quản trị phải làm gì để có 
thể chọn lựa được một giải pháp ban đầu tạm coi là phù hợp, lựa chọn công cụ nào trong hàng tá 
công cụ đã liệt kê. 
Có thể thấy rằng, để đưa ra một giải pháp và thử nghiệm triển khai, ít nhất nên thực hiện 
một số công việc sau đây: phân tích và lên kế hoạch; cài đặt triển khai; vận hành và duy trì hệ 
thống. Đối với bước đầu tiên, cần phải hiểu rõ được chính hệ thống, từ cấu hình cho đến kiến trúc, 
tải trọng công việc của hệ thống. Sau khi đánh giá được điều này, nhà quản trị sẽ xác định nhu cầu 
cũng như mục đích sử dụng giải pháp ảo hóa. Xác định xem để có thể nắm được công cụ ảo hóa 
trong tay, cần phải trang bị các kiến thức chuyên môn nào, yêu cầu hệ thống ra sao. Sau đó, hãy lựa 
chọn công cụ ảo hóa phù hợp. 
Lựa chọn nền tảng ảo hóa: trong hàng loạt các nền tảng ảo hóa khác nhau, KVM là nền 
tảng ảo hóa mã nguồn mở trên Linux, nó được xây dựng như một module tích hợp vào nhân của 
Linux. Đối với những hệ thống thông thường, không yêu cầu các máy chủ có cấu hình quá mạnh, 
nên một giải pháp ảo hóa đòi hỏi cấu hình phần cứng trung bình sẽ rất hợp lý. Ngoài ra, tải công 
việc của hệ thống máy chủ là không cao, chỉ tập trung ở một số thời điểm nhất định. Vấn đề tiếp 
theo, một trong những vấn đề then chốt, ảnh hưởng lớn đến sự quyết định lựa chọn công cụ ảo hóa 
cũng như việc triển khai và duy trì hệ thống ảo hóa về lâu dài, đó chính là vấn đề kinh phí. Đối với 
các tổ chức hay doanh nghiệp có quy mô lớn, đòi hỏi một giải pháp ảo hóa mạnh mẽ và cao cấp, 
cung cấp các tính năng nâng cao hỗ trợ cho việc quản lí hệ thống lớn thì vấn đề kinh tế có thể 
không phải là chủ yếu, họ có thể chi trả để đổi lại được sự hoạt động ổn định, sử dụng và quản lý 
đơn giản. Nhưng đối với các doanh nghiệp nhỏ hay các đơn vị trường học, không có quá nhiều nhu 
cầu về tính năng cao cấp, việc đầu tư cả một khoản tiền không nhỏ vào công cụ ảo hóa quả là lãng 
phí và bất hợp lý. Chi phí để mua bản quyền bản quyền ban đầu đôi khi không lớn, nhưng kinh phí 
bỏ ra để duy trì công nghệ và nhận hỗ trợ từ nhà cung cấp còn lớn hơn rất nhiều. Thật may mắn vì 
nó rất nhiều công cụ ảo hóa miễn phí, thậm chí các nhà cung cấp lớn vẫn đưa ra các phiên bản miễn 
phí cho những sản phẩm cao cấp của họ. Những sản phẩm miễn phí tuy có thể không cung cấp 
nhiều tính năng nâng cao nhưng không vì lẽ đó mà đấy lại là giải pháp kém chất lượng. Các công 
cụ ảo hóa phiên bản miễn phí như ESXi của Vmware, XenServer của Citrix là những ví dụ điển 
hình của công cụ miễn phí được đánh giá rất cao. 
Một hướng đi khác để chúng ta có thể tiếp cận giải pháp ảo hóa miễn phí chính là việc sử 
dụng các công cụ mã nguồn mở. Xen, KVM, những giải pháp ảo hóa mã nguồn mở tốt nhất trên 
THE INTERNATIONAL CONFERENCE ON MARINE SCIENCE AND TECHNOLOGY 2016 
HỘI NGHỊ QUỐC TẾ KHOA HỌC CÔNG NGHỆ HÀNG HẢI 2016 458 
nền Linux, hay công cụ ảo hóa mức OS OpenVZ có hiệu năng ảo hóa rất cao đều là những giải 
pháp sáng giá. Tuy nhiên, những phiên bản miễn phí của các công cụ cao cấp như ESXi thường vẫn 
có liên quan đến vấn đề bản quyền hay có sự giới hạn sử dụng, mở rộng hệ thống. Ngoài ra do 
ESXi là một công cụ hoạt động nặng, ngốn tài nguyên nên đòi hỏi phải được triển khai trên các hệ 
thống có cấu hình khá đáp ứng được nhu cầu hoạt động. Các giải pháp mã nguồn mở có hiệu năng 
tốt, hoạt động trên nền Linux nên chạy khá nhẹ, yêu cầu về phần cứng không cao. Các công cụ ảo 
hóa mã nguồn mở như Xen hay KVM đều hoàn toàn miễn phí, không hề có giới hạn sử dụng nên 
chúng ta hoàn toàn có thể phát triển, mở rộng hệ thống. Hiện nay khi dạo quanh các diễn đàn hay 
các thảo luận chuyên môn về chủ đề ảo hóa, thường xuyên bắt gặp các câu hỏi dạng như: tại sao lại 
sử dụng vmWare, so sánh Xen với KVM, 
Giống như đã từng đề cập trước đó, việc lựa chọn công cụ chỉ là tương đối, cần phải có thời 
gian và thử nghiệm lâu dài. Hơn nữa do tính chất cạnh tranh nên hiệu năng của các công cụ ảo hóa 
không chênh lệch quá nhiều, chẳng hạn như giữa Xen và KVM. Một số so sánh giữa 2 giải pháp ảo 
hóa Xen và KVM được trình bày trong [5], và một số bài benchmark giữa Xen với KVM tại [6]. 
Chi phí về công cụ ảo hóa chỉ là một phần, ngoài ra chi phí về hệ điều hành cũng là một vấn đề 
đáng để lưu tâm. Sử dụng các bản phân phối hệ điều hành mã nguồn mở là một ý tưởng không tồi. 
Các hệ điều hành mã nguồn mở hiện nay đã bắt kịp với các hệ điều hành cao cấp như Windows, 
cộng với sự phát triển của cộng đồng nguồn mở. Không phải ngẫu nhiên mà các hệ điều hành như 
Debian, Fedora, CentOS, Suse,... [7, 8] được ưa chuộng mà thường xuyên được lựa chọn để cài đặt 
trên các máy chủ. Việc cài đặt và triển khai một hệ thống ảo hóa với KVM trên môi trường hệ điểu 
hành Ubuntu được trình bày chi tiết trong tài liệu của Ubuntu về KVM [9]. 
Như vậy, tại sao lại lựa chọn KVM? thứ nhất như đã đề cập, KVM là mã nguồn mở. KVM 
hoàn toàn miễn phí và có thể sử dụng không có giới hạn. Ngoài ra vì là một sản phẩm mã nguồn mở 
nên KVM có một cộng đồng xây dựng và phát triển lớn mạnh. KVM hoạt động rất tốt trên Linux, 
trong khi các sản phẩm như Vmware,HyperV không hỗ trợ hoặc hoạt động với hiệu suất thấp. 
KVM được tích hợp sẵn trong nhân Linux. Như vậy chỉ cần cài đặt Linux hoặc các phiên bản hệ 
điều hành phân phối của Linux, cộng thêm hệ thống phần cứng hỗ trợ ảo hóa là ta hoàn toàn có thể 
triển khai công nghệ ảo hóa. KVM có hiệu năng không hề thua kém các giải pháp ảo hóa mã nguồn 
mở hay thậm chí là các sản phẩm thương mại, điều này đã được chứng minh qua các tài liệu và báo 
cáo so sánh về hiệu năng giữa KVM với các sản phẩm khác (điển hình như Xen). KVM hỗ trợ ảo 
hóa toàn phần. Ngoài ra hiện nay các phiên bản KVM mở rộng do các nhà phát triển lớn như 
RedHat cung cấp cho phép KVM hỗ trợ cả ảo hóa song song. KVM theo định nghĩa là một 
Hypervisor loại 2, tức là hosted-hypervisor bởi nó nằm trong nhân của Linux, hay có thể hiểu là có 
hệ điều hành host. Tuy nhiên thực chất KVM hoạt động như một Hypervisor loại 1 (bare-metal 
hypervisor), nó có thể hoàn toàn truy xuất vào tài nguyên phần cứng để tiến hành ảo hóa. Hiện nay 
KVM được hỗ trợ bởi rất nhiều các nhà sản xuất, nhà phát triển lớn. Đặc biệt là RedHat phát triển 
KVM thành một công cụ ảo hóa mạnh mẽ cho RHEL (RedHat Enterprise Linux) [10]. Hãng sản 
xuất máy chủ hàng đầu IBM đang phát triển nền tảng ảo hóa KVM trên các máy hiện đại mẽ của 
họ. Có rất nhiều công cụ quản lý ảo hóa hỗ trợ hoặc thậm chí là phát triển dành riêng cho KVM. 
Các nền tảng đám mây sử dụng ảo hóa KVM ngày càng nhiều. Các hệ điều hành phân phối của 
Linux như Ubuntu đưa ra các gói giải pháp xây dựng hệ thống đám mây hoàn toàn là mã nguồn mở, 
sử dụng KVM và một công cụ quản lý đám mây như OpenStack, CloudStack. 
Với một số những điểm khái quát nêu trên, có thể thấy rằng dù cho KVM không hẳn là một 
công cụ ảo hóa ưu việt nhất, nhưng lợi ích về chi phí, mã nguồn mở và công cụ quản lý đem lại 
khiến nhà quản trị hoàn toàn có thể có thêm một cơ hội trải nghiệm sử dụng KVM cho hệ thống của 
của mình. 
3. Kết luận 
Chủ đề của bài báo là công nghệ ảo hóa và giải pháp ảo hóa máy chủ mã nguồn mở KVM. 
Trong khuôn khổ bài báo, tác giả đã trình bày tổng quan về ảo hóa, triển khai ảo hóa trong một hệ 
THE INTERNATIONAL CONFERENCE ON MARINE SCIENCE AND TECHNOLOGY 2016 
HỘI NGHỊ QUỐC TẾ KHOA HỌC CÔNG NGHỆ HÀNG HẢI 2016 459 
thống CNTT, phân loại các phương pháp ảo hóa và tập trung trình bày về ảo hóa máy chủ cũng như 
sử dụng ảo hóa với hypervisor. Bài báo cũng đề cập về các giải pháp ảo hóa, lựa chọn giải pháp ảo 
hóa mã nguồn mở KVM, đưa ra các thông tin và phân tích về đặc điểm, tính năng của KVM, đồng 
thời giải thích lí do lựa chọn giải pháp KVM để triển khai ảo hóa hệ thống máy chủ. Tác giả đã cài 
đặt và triển khai một hệ thống ảo hóa máy chủ cụ thể với KVM trong môi trường hệ điều hành 
Ubuntu và sẽ trình bày quá trình triển khai cụ thể, chi tiết trong những bài viết khác. Tham khảo cài 
đặt và triển khai KVM trên Ubuntu với [9]. 
Tài liệu tham khảo 
[1]. Jonathan Strickland. How Server Virtualization Works. HowStuffWorks. InfoSpace LLC. 
16/06/2016. 
[2]. Graphiq Inc. Best virtualization Software & Hypervisor Comparison. SoftwareInsider. 
Graphiq Inc. 16/06/2016. 
[3]. MediaWiki. HOWTO - KVM. KVM. 29/02/2016. KVM. 16/06/2016. 
[4]. Bhanu P Tholeti. Hypervisors, virtualization, and the cloud: Dive into the KVM hypervisor. 
IBMdeveloperWorks®. IBM. 16/06/2016. 
[5]. William von Hagen. Using KVM virtualization. IBMdeveloperWorks®. IBM. 16/06/2016. 
[6]. Xen. Xen Benchmarks. Xen, Xen org. 16/06/2016 
[7]. Debian. KVM - Debian Wiki. Debian. Software in the Public Interest Inc. 16/06/2016. 
[8]. CentOS. HowTos/KVM - CentOS Wiki. Centos, The CentOS Project. 16/06/2016. 
[9]. Ubuntu. KVM - Commnity Help Wiki. Ubuntu, Canonical Ltd. 16/06/2016. 
[10]. RedHat. KVM - Kernel-based Virtual Machine. RedHat, RedHat Inc. 16/06/2016. 

File đính kèm:

  • pdfcong_nghe_ao_hoa_va_giai_phap_ao_hoa_may_chu_voi_kvm.pdf