Contact Info

Chicago 12, Melborne City, USA

+88 01682648101

[email protected]

Get Started
  1. Home
  2. Knowledge Base
  3. Cloud
  4. Giới thiệu về nền tảng ảo hóa KVM

Giới thiệu về nền tảng ảo hóa KVM


KVM (Kernel-based Virtual Machine) là một công nghệ ảo hóa mã nguồn mở cho phép người dùng chạy nhiều máy ảo trên Linux. KVM lần đầu tiên được giới thiệu trong phiên bản kernel 2.6.20 của Linux vào năm 2007. Kể từ đó, nó đã trở thành một trong những giải pháp ảo hóa phổ biến và được sử dụng rộng rãi nhất trên Linux.

KVM là gì?

KVM viết tắt của Kernel-based Virtual Machine. Đây là cơ sở hạ tầng ảo hóa được xây dựng trực tiếp vào trong kernel Linux. Điều này cho phép kernel Linux hoạt động như một hypervisor và tạo ra các máy ảo. KVM yêu cầu phần cứng hỗ trợ ảo hóa như Intel VT hay AMD-V mà hiện nay phổ biến trên hầu hết các bộ xử lý.

KVM ảo hóa các tài nguyên phần cứng CPU và bộ nhớ vật lý để tạo ra các máy ảo hoàn toàn tách biệt nhưng chia sẻ chung phần cứng. Mỗi máy ảo có bộ phần cứng ảo hóa riêng bao gồm CPU, bộ nhớ, đĩa cứng, card mạng, v.v. Phần cứng ảo này được ánh xạ với phần cứng vật lý thực tế thông qua các module kernel của KVM.

Do KVM là một phần của kernel Linux, nó cung cấp hiệu năng và hiệu quả rất tốt mà không yêu cầu phải mô phỏng phần cứng. Hơn nữa, KVM kế thừa tất cả các tính năng bảo mật của Linux như namespace, cgroups, SELinux, giúp công tác cô lập và bảo mật các máy ảo được tốt hơn.

Cơ chế hoạt động của KVM

Hypervisor KVM bao gồm các module kernel cung cấp cơ sở hạ tầng ảo hóa cốt lõi và các module đặc trưng cho từng loại CPU cho phép truy cập vào các tính năng ảo hóa phần cứng.

Khi một máy ảo được tạo ra, các module kernel KVM sẽ khởi tạo một cấu trúc VM mới và cấp một id mới cho nó. Đối với mỗi CPU ảo và thiết bị I/O được yêu cầu bởi VM, KVM sẽ tạo một phần cứng ảo tương ứng và ánh xạ nó với phần cứng vật lý.

Các module kernel cụ thể của KVM sẽ tương tác với phần cứng để cung cấp khả năng tăng tốc ảo hóa bằng các tính năng phần cứng như Intel VT-x hay AMD-V. Điều này cho phép các máy ảo chạy với tốc độ gần như nguyên bản mà không gặp phải chi phí mô phỏng phần mềm truyền thống.

Hypervisor cũng quản lý thời gian xử lý của CPU để mỗi VM có thể nhận được thời gian xử lý hợp lý. Bộ nhớ được ảo hóa bằng cách thiết lập một không gian địa chỉ riêng cho mỗi VM và được ánh xạ với bộ nhớ vật lý bởi hypervisor.

Ngoài ra, KVM sử dụng QEMU để ảo hóa I/O bằng cách mô phỏng các thiết bị phổ biến cho phép VM truy cập đĩa, card mạng, card đồ họa, v.v. Sự kết hợp của QEMU và KVM cung cấp một môi trường ảo hóa mạnh mẽ và hiệu quả.

Công cụ quản lý KVM

Mặc dù KVM cung cấp cơ sở hạ tầng cốt lõi, việc quản lý KVM vẫn đòi hỏi các công cụ để tạo, chạy và giám sát các máy ảo. Một số công cụ quản lý phổ biến cho KVM bao gồm:

  • QEMU – Dùng để chủ máy ảo, quản lý ảnh đĩa và cung cấp mô phỏng I/O.
  • libvirt – Cung cấp API và công cụ quản lý chung cho KVM và các hypervisor khác. Cho phép quản lý KVM bằng libvirt client virsh.
  • virt-manager – Một công cụ GUI để quản lý KVM và tạo/gỡ lỗi máy ảo.
  • oVirt – Một nền tảng quản lý ảo hóa mã nguồn mở cung cấp khả năng quản lý tập trung nhiều máy chủ KVM và tích hợp các công cụ như libvirt và spice server cho truy cập từ xa.
  • OpenNebula – Một nền tảng điện toán đám mây mã nguồn mở hỗ trợ KVM cùng với các container và cung cấp phần cứng trần.
  • OpenStack – Phần mềm mã nguồn mở phổ biến để xây dựng điện toán đám mây, hỗ trợ KVM để triển khai cơ sở hạ tầng như một dịch vụ (IaaS).

Các trường hợp sử dụng KVM

Một số trường hợp sử dụng phổ biến của ảo hóa KVM bao gồm:

  • Cơ sở hạ tầng điện toán đám mây – KVM được dùng làm hypervisor trong nhiều nền tảng điện toán đám mây mã nguồn mở như OpenStack cho điện toán đám mây IaaS. Hiệu năng xuất sắc của KVM phù hợp để lưu trữ các tải trọng điện toán đám mây.
  • Cơ sở hạ tầng máy tính ảo (VDI) – Cung cấp máy tính ảo tập trung cho người dùng doanh nghiệp. KVM hỗ trợ card đồ họa giúp cung cấp đồ họa và media trên máy tính ảo.
  • Tập trung hóa máy chủ – Các công ty sử dụng KVM để ảo hóa và kết hợp nhiều ứng dụng lên ít máy chủ hơn, giúp tăng hiệu quả sử dụng phần cứng và tiết kiệm chi phí.
  • Tạo môi trường cách ly – Tách biệt và cách ly các ứng dụng vì mục đích bảo mật bằng các tính năng cô lập và bảo mật của KVM.
  • Môi trường lab ảo – Sử dụng KVM để xây dựng các môi trường thử nghiệm, phát triển và nghiên cứu nhờ khả năng linh hoạt trong cấu hình.

Ưu điểm của KVM

Dưới đây là một số ưu điểm chính khi sử dụng KVM cho ảo hóa:

  • Mã nguồn mở – KVM là giải pháp ảo hóa mã nguồn mở miễn phí đi kèm Linux. Điều này giúp tiết kiệm chi phí so với các hypervisor thương mại.
  • Hiệu năng và khả năng mở rộng – Sử dụng hỗ trợ phần cứng cho ảo hóa mang lại hiệu năng gần như thật ngay cả khi có mật độ cao các máy ảo.
  • Bảo mật – KVM kế thừa mô hình bảo mật của Linux như namespace, cgroups, SELinux giúp ngăn chặn và không lan truyền các cuộc tấn công.
  • Hệ sinh thái – KVM có sự hỗ trợ của cộng đồng Linux. Có nhiều công cụ quản lý trưởng thành như oVirt, OpenStack.
  • Hỗ trợ phần cứng – KVM hỗ trợ rộng rãi các thiết bị I/O cho máy ảo. Sử dụng libvirt API để dễ dàng tích hợp các thiết bị mới.
  • Quản lý bộ nhớ – KVM quản lý và chia sẻ bộ nhớ giữa các VM hiệu quả. Cho phép tính năng overcommit bộ nhớ và ballooning.
  • Live migration – Khả năng di chuyển máy ảo giữa các máy chủ vật lý mà không gây gián đoạn để đảm bảo tính sẵn sàng cao.

Kết luận

KVM cung cấp một nền tảng ảo hóa mã nguồn mở tuyệt vời tích hợp trong kernel Linux. Với kiến trúc module, hiệu năng cao và các tính năng bảo mật hiện đại, KVM đã trở thành công nghệ ảo hóa được sử dụng rộng rãi nhất trên Linux. Việc tích hợp dễ dàng với các nền tảng điện toán đám mây như OpenStack đã dẫn đến việc áp dụng rộng rãi trong các điện toán đám mây công cộng và riêng tư. KVM tiếp tục được phát triển tích cực với sự hỗ trợ của cộng đồng Linux, hứa hẹn một hypervisor mạnh mẽ trong tương lai.

Was this article helpful?

Related Articles

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *