Giới thiệu ảo hóa và ảo hóa mã nguồn KVM hypervisor

I. Mở đầu

Ngày nay, hạ tầng CNTT là một phần không thể thiếu đối với tất cả các doanh nghiệp. Sự cần thiết của hạ tầng CNTT được tồn tại dưới nhiều hình thức và quy mô khác nhau, từ một vài máy chủ, vài thiết bị mạng cho đến hàng chục, hàng trăm máy chủ, hạ tầng chuyển mạch, truyền dẫn và an ninh thông tin. Tuy nhiên, việc sử dụng tài nguyên theo phương thức truyền thống thường gặp nhiều khó khăn và không tối ưu về hiệu năng sử dụng tài nguyên, cụ thể:
– Mỗi máy chủ vật lý chỉ cài đặt tương ứng 01 hệ điều hành, từ đó chỉ thiết lập được 01 môi trường hoạt động, dẫn đến thiếu linh hoạt về các loại ứng dụng có thể cài đặt phục vụ cho mục đích của doanh nghiệp.
– Việc đầu tư máy chủ nhưng không sử dụng hết năng lực của máy chủ dẫn đến phí phạm tài nguyên và quản lý tài nguyên trở nên khó khăn.
– Các máy chủ vật lý được cài đặt trực tiếp hệ điều hành và ứng dụng gặp khó khăn trong việc sao lưu và phục hồi (backup và restore), một số máy chủ vật lý đang hoạt động có những cơ chế đặc thù riêng và gần như rất khó hoặc “không thể” thực hiện sao lưu và phục hồi.
– Thời gian downtime của máy chủ vật lý thường rất lâu và dễ gặp trục trặc trong quá trình khởi động lại.
– Khó khăn trong quản trị và giám sát tập trung khi số lượng máy chủ vật lý tăng lên.
Vì vậy, việc sử dụng công nghệ ảo hóa để tối ưu việc sử dụng và khai thác tài nguyên vật lý là rất cần thiết và phù hợp với hạ tầng CNTT của bất kỳ doanh nghiệp nào. Ảo hóa được áp dụng với nhiều loại tài nguyên của hệ thống, từ hệ thống máy chủ đến thiết bị lưu trữ và thiết bị mạng, trong khuôn khổ của bài viết chỉ đề cập đến chủ đề chính là ảo hóa máy chủ và các tài nguyên liên quan đến máy chủ.

II. Tổng quan về ảo hóa

Ảo hóa được hiểu một cách đơn giản là chạy nhiều máy chủ ảo trên hạ tầng 01 máy chủ vật lý. Trên mỗi máy ảo có hệ điều hành riêng giống như 01 máy chủ thật và được triển khai các môi trường, ứng dụng khác nhau để phù hợp với hoạt động và mục đích của doanh nghiệp.

vmare-virtualization-dubai

Hình 1: Ảo hóa máy chủ

Hình 1 mô tả về ảo hóa máy chủ, từ 01 máy chủ vật lý có thể triển khai nhiều máy ảo (là các VM: Virtual Machine) trên cùng 01 máy vật lý. Các ứng dụng được cài đặt trên máy ảo.

Ảo hóa mang lại nhiều lợi ích, trong đó bao gồm 02 nhóm lợi ích chính:

– Giảm chi phí về hạ tầng IT và quản trị hệ thống: ảo hóa giúp tạo nhiều máy chủ ảo, khai thác triệt để tài nguyên vật lý của máy chủ, từ đó giúp giảm chi phí đầu tư của doanh nghiệp, đồng thời giúp thiết lập hệ thống nhanh hơn, thuận tiện cho quản trị và giám sát, giảm chi phí nhân công vận hành.
– Tăng hiệu suất và tính linh hoạt của hệ thống: việc quản trị và khai thác triệt để tài nguyên vật lý giúp nâng cao hiệu suất của từng máy chủ vật lý và của toàn hệ thống, đồng thời linh hoạt trong vấn đề mở rộng máy ảo, sao lưu, dự phòng, di chuyển máy ảo.

Ảo hóa có các tính năng chính sau:

– Partitioning – Phân chia máy chủ vật lý
+ Chạy nhiều máy ảo trên 01 máy chủ vật lý
+ Có cơ chế phân chia và phân phối tài nguyên tương ứng, chính xác cho các máy ảo được khai báo và khởi tạo.
– Isolation – Cách ly máy ảo
+ Cách ly các máy ảo với nhau. Đây là tính năng rất hiệu quả khi xảy ra các sự cố, đặc biệt về ANTT, việc lây nhiễm từ 01 máy ảo sẽ hạn chế bị ảnh hưởng đến các máy ảo khác cũng như các hệ thống khác.
+ Kiểm soát và tối ưu tài nguyên hợp lý giữa các máy ảo, tránh các hiện tượng không kiểm soát tài nguyên và gây quá tải hoặc dư thừa tài nguyên trên các máy ảo.

isolation

Hình 2: Isolation – Cách ly các máy chủ ảo

– Encapsulation – Đóng gói máy ảo
+ Đóng gói các máy ảo thành các file riêng biệt.
+ Dễ dàng sao chép và di chuyển các máy ảo sang các hệ thống khác, hoặc phục vụ sao lưu, dự phòng.

encapsulation

Hình 3: Encapsulation – Đóng gói máy ảo thành files

– Hardware Independence – Không phụ thuộc thiết bị phần cứng
+ Ảo hóa được thiết kế phù hợp với tất cả các phần cứng có hỗ trợ công nghệ ảo hóa.

Lựa chọn công nghệ ảo hóa

Vì các lợi ích và ưu điểm của Ảo hóa, việc ứng dụng ảo hóa trong các doanh nghiệp là rất cần thiết và hiệu quả. Tuy nhiên, triển khai và sử dụng ảo hóa có 2 hướng tiếp cận:
– Các giải pháp thương mại từ các hãng như Vmware (ESXi), Microsoft (Hyper-V), Vmware WorkStation, Virtual PC, XenServer, … với ưu điểm dễ dàng triển khai và vận hành, được sự hỗ trợ từ các hãng và có tính “bảo hiểm, tuy nhiên phải tính đến chi phí bản quyền và chi phí hỗ trợ sản phẩm.
– Các giải pháp nguồn mở như KVM, Qemu, Virtualbox, … với ưu điểm có tính linh hoạt cao, không phụ thuộc vào một vendor nào (hãng sản xuất) và không phải bỏ chi phí đầu tư về bản quyền, tuy nhiên khó khăn trong triển khai và vận hành, đòi hỏi phải có trình độ kỹ thuật cao,
Tùy thuộc vào nhu cầu và chi phí đầu tư, doanh nghiệp có thể lựa chọn sử dụng giải pháp thương mại hoặc giải pháp nguồn mở. Trong khuôn khổ của bài viết muốn giới thiệu giải pháp ảo hóa KVM – là giải pháp ảo hóa mã nguồn mở được sử dụng khá phổ biến hiện nay. KVM cũng như các giải pháp nguồn mở có ưu điểm không phải đầu tư chi phí bản quyền như các giải pháp thương mại, tuy nhiên sẽ khó khăn trong triển khai và vận hành.
Phân loại ảo hóa

Ảo hóa có 02 loại chính đó là:

Loại 1: Đây là loại ảo hóa “Bare-Metal Hypervisor”, trong đó Hypervisor tương tác trực tiếp với phần cứng của máy chủ để quản lý, phân phối và cấp phát tài nguyên (hình …). Loại ảo hóa này bao gồm các giải pháp như Vmware ESXi, Microsoft Hyper-V, Xen Server, KVM.

Ao hoa type 1Ao hoa type 2

Hình 4: 2 loại ảo hóa chính

Loại 2: Đây là loại ảo hóa Hypervisor giao tiếp với phần cứng thông qua hệ điều hành. Hypervisor lúc này được xem như một ứng dụng của hệ điều hành và các phương thức quản lý, cấp phát tài nguyên đều phải thông qua hệ điều hành. Loại ảo hóa này bao gồm các giải pháp như Vmware WorkStation, Oracle VirtualBox, Microsoft Virtual PC, …
Trong loại ảo hóa 01, Vì Hypervisor tương tác trực tiếp với phần cứng nên việc quản lý và phân phối tài nguyên được tối ưu và hiệu quả hơn so với loại 02, vì vậy khi triển khai trong thực tế, ảo hóa Loại 01 (Bare-Metal Hypervisor) được sử dụng, loại 02 chỉ sử dụng trong các trường hợp thử nghiệm, hoặc mục đích học tập.
KVM thuộc loại ảo hóa thứ 01 (Bare-Metal hypervisor), là một trong các lựa chọn phổ biến hiện nay trong việc triển khai các giải pháp ảo hóa cho hệ thống.

III. Ảo hóa KVM – Kernel-Based Virtual Machine

KVM ra đời phiên bản đầu tiên vào năm 2007 bởi công ty Qumranet tại Isarel, KVM được tích hợp sẵn vào nhân của hệ điều hành Linux bắt đầu từ phiên bản 2.6.20. Năm 2008, RedHat đã mua lại Qumranet và bắt đầu phát triển, phổ biến KVM Hypervisor.

download

Hình 5: Ảo hóa KVM Hypervisor

Một số đặc điểm của KVM:
– Là giải pháp ảo hóa dạng toàn phần và hoàn toàn nguồn mở, miễn phí.
– Hỗ trợ các loại công nghệ phần cứng đa dạng và thông dụng như Intel-VT, AMD-V.
– Cung cấp các máy ảo đa dạng, hỗ trợ nhiều loại hệ điều hành và không cần tinh chỉnh lại các ảnh của hệ điều hành
– Sử dụng cơ chế quản lý vùng nhớ của Linux (KSM) và các cơ chế bảo mật có sẵn của Linux (SELinux)

Kien truc KVM

Hình 6: Kiến trúc KVM Hypervisor

Với ưu điểm nguồn mở và độ tùy biến cao, KVM hypervisor được lựa chọn là nền tảng ảo hóa chính khi lựa chọn công nghệ ảo hóa nguồn mở. KVM cũng đồng thời là nền tảng của giải pháp điện toán đám mây nguồn mở nổi tiếng nhất hiện nay là OpenStack.

KVM-OpenStack

Hình 7: Mô hình quản lý tập trung và phân phối tài nguyên nhiều máy chủ KVM trong hệ thống điện toán đám mây nguồn mở OpenStack

IV. Các bước thiết lập hệ thống ảo hóa KVM

Với các ưu điểm về nguồn mở, tính ổn định, hiệu suất cao, việc triển khai KVM ở quy mô nhỏ cũng hoàn toàn dễ dàng và phù hợp với các môi trường SMB. Để thiết lập và quản trị một hệ thống ảo hóa KVM có thể thực hiện thông qua 5 thao tác cơ bản sau:
B1. Cài đặt HĐH Linux cho máy chủ.
HĐH thông thường được lựa chọn là CentOS (6.x, 7.x) hoặc Ubuntu, Debian. Bước này yêu cầu máy chủ phải hỗ trợ công nghệ ảo hóa.
Để khai thác hiệu quả tài nguyên, hệ điều hành được cài đặt trên máy chủ được khuyến cáo sử dụng bản “Minimal” – đây là bản đã được tinh giảm, chỉ giữ lại những thành phần cần thiết cho một máy chủ.
Máy chủ phải được thiết lập địa chỉ IP tĩnh để thuận tiện trong quản trị và giám sát.
B2. Cài đặt Hypervisor KVM lên máy chủ
Cài đặt các phần mềm cần thiết cho KVM Hypervisor, bao gồm các thành phần chính sau: kvm qemu-kvm libvirt bridge-utils.
Khởi động các dịch vụ liên quan như libvirtd và messagebus
#/etc/rc.d/init.d/libvirtd start
#/etc/rc.d/init.d/messagebus start
# …
B3. Cài đặt phần mềm Virtual Machine Manager trên máy Linux Client (CentOS)
Tiến hành cài đặt phần mềm Virtual Machine Manager trên 01 máy Linux để quản trị các máy chủ KVM – Hypervisor
Trên HĐH CentOS sử dụng lệnh sau để cài đặt: #yum install virt-manager
B4. Quản trị KVM host (Máy chủ) bằng phần mềm Virtual Machine Manager trên máy Client (CentOS)
VMM cho phép thực hiện các thao tác quản trị máy ảo như: tạo máy ảo, thay đổi máy ảo (sửa, xóa, nâng cấp phần cứng), quản trị thông qua command-line, …
B5. Sử dụng Virt Web Management – quản trị qua giao diện web
Virt Web Manager hỗ trợ quản trị qua giao diện web, từ giao diện web người quản trị có thể toàn quyền thao tác quản trị các máy ảo như sử dụng các công cụ quản trị khác.
Đây là công cụ hỗ trợ hữu hiệu qua việc quản trị từ xa thông qua website và thuận tiện trong việc truy cập từ nhiều nền tảng khác nhau, như windows, mobile.

Rhel6_virt-manager_main

Hình 8: Giao diện quản trị máy ảo của VMM (Virtual Machine Manager)

V. Tổng kết

Ảo hóa nói chung và giải pháp nguồn mở KVM nói riêng là công cụ phục vụ mục đích tối ưu, khai thác hiệu quả tài nguyên hạ tầng CNTT của doanh nghiệp. Tùy điều kiện của mỗi cá nhân, tổ chức mà sử dụng các giải pháp cho phù hợp. Các giải pháp nguồn mở là một trong những lựa chọn tốt đối với các doanh nghiệp SMB khi vấn đề chi phí đầu tư luôn là bài toán cần phải cân nhắc. Tuy nhiên cần cân bằng các yêu tố về công nghệ, chi phí, mục đích, con người để vừa bảo đảm hoạt động của doanh nghiệp đồng thời khai thác nguồn lực về hạ tầng, nhân sự một cách hiệu quả và tiết kiệm.

Bình luận