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.
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
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:
- cong_nghe_ao_hoa_va_giai_phap_ao_hoa_may_chu_voi_kvm.pdf