Tổng quan ảo hóa KVM

0
387

Giới thiệu

KVM (viết tắt của Kernel Virtualization Machine) là công nghệ ảo hóa phần cứng. Có nghĩa là OS (hệ điều hành) chính mô phỏng phần cứng cho các OS khác để chạy trên đó. Nó hoạt động tương tự như một người quản lý siêu việt chia sẻ công bằng các tài nguyên như disk (ổ đĩa), network IO và CPU. KVM VPS không có tài nguyên dùng chung, tất cả đã được mặc định sẵn và chia sẻ. Điều đó có nghĩa là RAM của mỗi VPS KVM đã được phân bổ sẵn cho từng gói VPS để sở hữu, tận dụng hoàn toàn 100% và không bị chia sẻ ra ngoài. Đồng nghĩa với việc VPS KVM sẽ hoạt động ổn định hơn mà không bị ảnh hưởng bởi các VPS khác cùng hoạt động trên hệ thống. Tương tự điều đó với disk space, tài nguyên ổ cứng cũng đã được xác định sẵn và không bị vay mượn bởi các VPS khác.

Bởi vì KVM mô phỏng toàn bộ các phần cứng như một server vật lý nên bạn có thể chạy bất cứ kernel (lõi) nào mà bạn muốn (không giới hạn). Điều đó có nghĩa KVM VPS không giới hạn bất cứ linux kernel nào được cài đặt trong root node và có thể chạy hệ thống x86 operating systems như: BSD và thập chí hỗ trợ tốt cả hệ điều hành Windows. Với việc sở hữu độc lập toàn bộ kernel có nghĩa VPS KVM có thể tự do sửa đổi kernel hay tải riêng modul của mình. Điều này rất quan trọng vì có nhiều tính năng KVM VPS đáp ứng được mà OpenVZ không thể hỗ trợ.

Một điều quan trọng nữa do đặc tính ảo hóa hoàn toàn phần cứng nên mặc dù thông số VPS KVM có vẻ nhỏ hơn (do thể hiện thông số của từng VPS), khác với VPS OpenVZ (thể hiện thông số server vật lý).

Nhưng sự khác biệt ở đây đó là cấu hình từng gói VPS KVM sẽ chỉ một người sở hữu và toàn quyền sử dụng tài nguyên đó (CPU, RAM, diskspace…) mà không hề bị chia sẻ hay ảnh hưởng bởi các VPS khác trên cùng hệ thống.

Trong khi VPS OpenVZ (thể hiện thông số server vật lý), nhưng là nhiều người sử dụng chung tài nguyên đó và rất dễ dẫn đến tình trạng quá tải hay VPS này gây ảnh hưởng đến VPS khác đang hoạt động chung trong một hệ thống. Việc này dẫn đến VPS OpenVZ bị đánh giá là thiếu ổn định hơn do bất cứ người dùng nào cũng đều cố tận dùng toàn bộ tài nguyên mà họ có thể sử dụng thậm chí không ngại gây ảnh hưởng đến các VPS khác.

Có nhiều trường hợp khi mới sử dụng VPS thì hay so sánh cấu hình, nhận thấy VPS OpenVZ có cấu hình cao hơn và đánh giá là chất lượng tốt hơn. Điều này hiện tại rất hay xảy ra đối với những người dùng chưa hiểu rõ về các công nghệ ảo hóa.

Chính vì công nghệ ảo hóa hoàn toàn phần cứng nên VPS KVM yêu cầu cấu hình server vật lý cao hơn rất nhiều so với VPS OpenVZ. Thậm chí yêu cầu phải sử dụng các server của các thương hiệu lớn như IBM, Dell thì mới đảm bảo hoạt động tốt được. Do đó thường VPS KVM sẽ có giá cao hơn là OpenVZ.

Ưu điểm của công nghệ ảo hóa KVM

  • Các VM hoàn toàn độc lập, cài đặt từ ISO
  • Sử dụng 100% memory được chia từ máy chủ chính
  • Tính năng SELinux người dùng có thể thay đổi tùy ý
  • Hỗ trợ tất cả các OS
  • Người dùng có thể thay đổi TUN/TAP, có thể chạy tất cả các loại dịch vụ mạng (VPN, …)

Kiến trúc của KVM

KVM

– Mô-đun hạt nhân Linux cho phép ánh xạ CPU vật lý thành CPU ảo

– Hợp nhất vào hạt nhân Linux

– Giả lập hardware để có thể chạy VM guest

QEMU

Sử dụng mô phỏng cho các thiết bị I/O ảo

x86 virtualization extensions

Intel VT-x

– AMD (AMD-V)

Các công cụ quản lý KVM

Libvirt là một nhóm các công cụ cung cấp một cách thức quản lý các máy ảo và các tinh năng ảo hóa khác nhau như network interface hay store

Mục đích của libvirt là đưa ra một phương thức đơn giản, quản lý tập trung các hypervisor

Các thanh phần trong libvirt:

  • API: Phương thức để kết nối tới các hypervisor
  • Libvritd: daemon chạy trên các host để quản lý các máy ảo của hypervisor
  • Virsh: cung cấp một giao diện dòng lệnh cho người dùng

virsh – virtual shell để quản lý máy ảo

Kimchi – công cụ quản lý máy ảo trên nền web

Virtual Machine Manager (virt-manager) – công cụ hỗ trợ tạo, chỉnh sửa, khởi động và dừng máy ảo thông qua giao diện đồ họa GNOME

oVirt – công cụ quản lý mã nguồn mở cho KVM được xây dựng dựa trên libvirt

OpenStack – Sử dụng trong Nova

Tóm lại: Đối với mỗi dạng ảo hóa như KVM, Xen… sẽ có một tiến trình libvirt chạy để điều khiển các dạng ảo hóa và cung cấp những API để các tool như virsh, virt-manager… có thể giao tiếp với KVM/QEMU thông qua libvirt.

Linux Bridge trong KVM

Linux bridge là một phần mềm đươc tích hợp vào trong nhân Linux để giải quyết vấn đề ảo hóa phần network trong các máy vật lý. Về mặt logic Linux bridge sẽ tạo ra một con switch ảo để cho các VM kết nối được vào và có thể nói chuyện được với nhau cũng như sử dụng để ra mạng ngoài.

  • tap : có thể hiểu nó là một giao diên mạng để các máy ảo có thể giao tiếp được với bridge và nó nằm trong nhân kernel. Tap hoat động ở lớp 2 trong mô hình OSI
  • fd (forward data): dùng để chuyển tiếp data từ máy ảo

ĐỂ LẠI BÌNH LUẬN