Ghi chú kỹ thuật của zhaoJian

Cài đặt QEMU+KVM, libvirt, Virt-Manager trên EndeavourOS, Manjaro và các Linux dựa trên Arch

Công nghệ ~4413 từ · 12 phút đọc - lượt xem

QEMU, KVM, libvirt và Virt-Manager là các thành phần quan trọng để xây dựng giải pháp ảo hóa. Chúng đảm nhận các vai trò khác nhau nhưng phối hợp với nhau để cung cấp khả năng ảo hóa mạnh mẽ.

QEMU là một trình giả lập phần cứng đa năng và trình quản lý máy ảo mã nguồn mở. Nó có thể chạy như một trình giả lập thuần túy (hiệu suất thấp hơn) hoặc kết hợp với KVM để cung cấp ảo hóa được tăng tốc phần cứng (hiệu suất cao hơn, tương đương với bare metal).

KVM là một module trong nhân Linux, chạy trực tiếp trên nhân Linux. Với công nghệ ảo hóa phần cứng, nó có thể đạt hiệu suất gần với phần cứng gốc.

libvirt là bộ API và công cụ mã nguồn mở để quản lý các nền tảng ảo hóa (như QEMU/KVM, Xen, VMware, Hyper-V, v.v.).

Virt-Manager là công cụ quản lý dựa trên giao diện đồ họa, không trực tiếp quản lý máy ảo mà chuyên dùng để quản lý máy ảo do libvirt cung cấp. Nó chủ yếu hướng đến người dùng không quen với dòng lệnh, cung cấp giao diện đồ họa tiện lợi.

KVM được tích hợp sẵn trong nhân Linux và đạt được ảo hóa hiệu suất cao khi tích hợp với QEMU. libvirt đơn giản hóa sự phức tạp của QEMU và cung cấp chức năng quản lý dòng lệnh, là công cụ cốt lõi cho quản lý ảo hóa. Virt-Manager là giao diện đồ họa của libvirt, phù hợp cho người dùng cần GUI để quản lý máy ảo thuận tiện hơn.

Cài đặt các thành phần cần thiết để chạy máy ảo

yay -S qemu virt-manager virt-viewer dnsmasq vde2 bridge-utils openbsd-netcat ebtables swtpm
sudo systemctl enable libvirtd.service
sudo systemctl start libvirtd.service
sudo usermod -aG libvirt $USER
  1. qemu là máy ảo và trình giả lập mã nguồn mở đa năng. Nó cho phép bạn chạy các hệ điều hành khác trong một hệ điều hành, hỗ trợ ảo hóa hệ thống đầy đủ và giả lập tiến trình.

  2. virt-manager là công cụ quản lý máy ảo đồ họa, đơn giản hóa việc tạo, quản lý và giám sát máy ảo.

  3. virt-viewer là công cụ xem từ xa nhẹ, cho phép kết nối với bảng điều khiển đồ họa của máy ảo (qua giao thức SPICE hoặc VNC).

  4. dnsmasq là máy chủ DNS và DHCP nhẹ. Libvirt sử dụng nó để cung cấp kết nối mạng NAT cho máy ảo (cài đặt mặc định).

  5. vde2 là switch ảo dùng để tạo môi trường mạng ảo. Công cụ tùy chọn, chủ yếu dùng cho cấu hình mạng ảo nâng cao, phù hợp cho người dùng cần topology mạng phức tạp.

  6. bridge-utils cung cấp công cụ quản lý mạng bridge để bridge giao diện mạng máy ảo với giao diện mạng vật lý. Điều này cần thiết nếu bạn cần máy ảo truy cập trực tiếp mạng bên ngoài (chế độ bridge).

  7. openbsd-netcat là công cụ để debug mạng và truyền dữ liệu, hỗ trợ giao thức TCP và UDP. Libvirt sử dụng nó cho một số tác vụ liên quan đến mạng (ví dụ: truyền dữ liệu giữa các host từ xa).

  8. ebtables là công cụ user-space để quản lý bảng lọc bridge của nhân Linux. Cần thiết khi quản lý các quy tắc lưu lượng mạng máy ảo trong mạng bridge.

  9. swtpm là TPM giả lập phần mềm cho phép máy ảo sử dụng chức năng TPM mà không cần hỗ trợ phần cứng vật lý. Hỗ trợ Windows 11 hoặc các tình huống ứng dụng khác yêu cầu TPM.

Bật chia sẻ clipboard và kéo thả file trong QEMU, virt-manager

yay -S spice-vdagent qemu-guest-agent
sudo pacman -S spice-vdagent qemu-guest-agent
  1. spice-vdagent chủ yếu dùng để nâng cao trải nghiệm người dùng, cung cấp chia sẻ clipboard, kéo thả file và các tính năng khác.
  2. qemu-guest-agent cung cấp khả năng quản lý và giao tiếp giữa máy ảo và host, cho phép máy ảo thực hiện các hoạt động và tác vụ quản lý hiệu quả hơn.

Sau khi cài đặt xong, cần cấu hình máy ảo trong virt-manager (phía Linux host)

  1. Giao thức hiển thị Spice Spice server - Loại: Spice server

Giao thức hiển thị Spice

  1. Thêm phần cứng (hai cái): Kênh: Chọn com.redhat.spice.0 Kênh: Chọn org.qemu.guest_agent.0

Thêm phần cứng Kênh com.redhat.spice.0

Thêm phần cứng Kênh org.qemu.guest_agent.0

Cài đặt Spice Guest Tools trong máy ảo (guest, hệ thống máy ảo đã cài đặt) để bật hỗ trợ chia sẻ clipboard, kéo thả file và các tính năng khác.

Nếu gặp lỗi “Error starting domain: Requested operation is invalid: network ‘default’ is not active” khi chạy, cần khởi động mạng default.

Khởi động mạng default

sudo virsh net-start default

Cài đặt tự động khởi động khi boot

sudo virsh net-autostart default
Chia sẻ:

Bình luận