Ảo hóa

KVM là gì?

Còn được gọi là: Kernel-based Virtual Machine
Định nghĩa

KVM is full hardware virtualisation built into the Linux kernel, giving each guest its own kernel and hardware-enforced isolation from other tenants. Because a KVM guest runs its own kernel, it can load kernel modules, run non-Linux operating systems, use real swap and support nested virtualisation.

Tại sao KVM quan trọng

Vì máy khách KVM chạy nhân riêng, nó có thể nạp mô-đun nhân, chạy hệ điều hành không phải Linux, sử dụng swap thực sự và hỗ trợ ảo hóa lồng nhau. Bộ nhớ được cấp cho máy khách KVM được giữ thực sự, đó là sự khác biệt thực tế so với ảo hóa dựa trên container.

KVM trong thực tế

Khi chạy máy chủ KVM, điều đầu tiên bạn kiểm tra là /proc/cpuinfo trong guest—nếu nó không khớp với flags của host, có thể bạn đang thấy các shortcut paravirtualized, không phải KVM đầy đủ. Bạn đặt bộ nhớ cấp phát với mức dự trữ thực sự: overcommit sẽ khiến OOM killer của guest kích hoạt trong khi host trông có vẻ bình thường. Nếu cấu hình sai ảo hóa lồng, bạn mất hardware-assisted paging và guest chạy chỉ bằng một phần tốc độ. Cấu hình sai làm bạn mất hiệu năng không thể khôi phục nếu không khởi động lại.

Điều mọi người hiểu sai về KVM

Mọi người cho rằng KVM giống OpenVZ hay LXC vì cả hai đều dùng nhân Linux. Điều đúng: KVM cấp cho mỗi guest một kernel riêng, trong khi container dùng chung kernel của host. Bạn chỉ có thể nạp module kernel và chạy các hệ điều hành không phải Linux trên KVM. Cô lập bằng namespace dùng chung không được bảo vệ bằng phần cứng.

KVM — các câu hỏi thường gặp

KVM có ý nghĩa gì về hiệu năng?

Ảo hóa phần cứng của KVM có nghĩa mỗi guest có kernel riêng, vì vậy hiệu năng CPU và bộ nhớ gần như nguyên khối. Bộ nhớ được dự trữ thật, không dùng chung. Bạn có thể kỳ vọng throughput dự đoán được và cô lập so với container.

Tôi có thể chạy Windows trên KVM không?

Có, guest KVM chạy kernel riêng, nên có thể chạy các hệ điều hành không phải Linux như Windows. Bạn cần tải lên một ISO và gắn bảng điều khiển VNC. Giấy phép Windows Server có sẵn như một mục chọn thêm tại một số khu vực.

Nơi KVM xuất hiện

Thêm từ ảo hóa

OpenVZ
OpenVZ là ảo hóa dựa trên container trong đó mọi phiên bản chia sẻ nhân máy chủ, vì vậy máy khách không thể nạp mô-đun nhân hoặc chạy hệ điều hành khác.
LXC
LXC là container hóa gốc Linux cô lập các tiến trình với namespace và cgroups trong khi chia sẻ nhân máy chủ.
Hypervisor
Hypervisor là lớp phần mềm tạo và chạy máy ảo, phân bổ CPU vật lý, bộ nhớ và IO giữa chúng.
Ảo hóa lồng nhau
Ảo hóa lồng nhau cho phép một máy ảo tự chạy các máy ảo, bằng cách hiển thị các phần mở rộng ảo hóa của bộ xử lý cho khách.
vCPU
vCPU là bộ xử lý ảo được cung cấp cho máy khách, được hỗ trợ bởi thời gian lập lịch trên một lõi hoặc luồng vật lý.
cloud-init
cloud-init là cơ chế tiêu chuẩn để cấu hình máy ảo trong lần khởi động đầu tiên, sử dụng siêu dữ liệu do nền tảng cung cấp.