Cài Đặt KVM trên Ubuntu 24.04

Hướng dẫn chi tiết cách cài đặt KVM (Kernel-based Virtual Machine) trên Ubuntu 24.04 LTS với giao diện quản lý web Cockpit hoặc Kimchi. Tìm hiểu cách thiết lập môi trường ảo hóa hoàn chỉnh, cấu hình network bridge, và tạo máy ảo đầu tiên của bạn một cách dễ dàng.

Cài Đặt KVM trên Ubuntu 24.04

KVM (Kernel-based Virtual Machine) là một giải pháp ảo hóa mã nguồn mở mạnh mẽ cho Linux. Khi kết hợp với giao diện quản lý dựa trên web như Cockpit hoặc Kimchi, việc quản lý máy ảo trở nên trực quan và có thể truy cập từ bất kỳ đâu. Hướng dẫn này sẽ hướng dẫn bạn cách cài đặt KVM trên Ubuntu 24.04 và thiết lập giao diện web để quản lý VM dễ dàng.

Yêu Cầu Hệ Thống

  • Ubuntu 24.04 LTS đã cài đặt
  • Quyền truy cập root hoặc sudo
  • CPU hỗ trợ ảo hóa (Intel VT-x hoặc AMD-V)
  • Tối thiểu 4GB RAM (khuyến nghị 8GB trở lên)
  • Đủ dung lượng ổ đĩa cho các VM

Bước 1: Kiểm Tra Hỗ Trợ Ảo Hóa Phần Cứng

Đầu tiên, kiểm tra xem CPU của bạn có hỗ trợ ảo hóa không:

egrep -c '(vmx|svm)' /proc/cpuinfo

Nếu kết quả là 0, ảo hóa không được hỗ trợ hoặc chưa được bật trong BIOS. Bất kỳ số nào lớn hơn 0 đều cho thấy có hỗ trợ.

Bạn cũng có thể sử dụng:

kvm-ok

Nếu kvm-ok chưa được cài đặt, hãy cài đặt nó trước:

sudo apt install cpu-checker
kvm-ok

Kết quả mong đợi: INFO: /dev/kvm exists. KVM acceleration can be used

Bước 2: Cập Nhật Các Gói Hệ Thống

Cập nhật hệ thống của bạn để đảm bảo tất cả các gói đều mới nhất:

sudo apt update
sudo apt upgrade -y

Bước 3: Cài Đặt KVM và Các Gói Liên Quan

Cài đặt KVM cùng với các công cụ ảo hóa thiết yếu:

sudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virtinst virt-manager

Giải thích các gói:

  • qemu-kvm: Gói chính KVM và QEMU
  • libvirt-daemon-system: Daemon Libvirt để quản lý ảo hóa
  • libvirt-clients: Các tiện ích phía client cho libvirt
  • bridge-utils: Các tiện ích bridge mạng
  • virtinst: Công cụ dòng lệnh để tạo VM
  • virt-manager: Ứng dụng desktop để quản lý VM (tùy chọn)

Bước 4: Kích Hoạt và Khởi Động Dịch Vụ Libvirt

Kích hoạt dịch vụ libvirt để tự động khởi động khi boot và khởi động nó ngay:

sudo systemctl enable libvirtd
sudo systemctl start libvirtd

Kiểm tra dịch vụ đang chạy:

sudo systemctl status libvirtd

Bước 5: Thêm User Vào Các Nhóm Cần Thiết

Thêm user của bạn vào nhóm libvirt và kvm để quản lý VM mà không cần sudo:

sudo usermod -aG libvirt $USER
sudo usermod -aG kvm $USER

Đăng xuất và đăng nhập lại để các thay đổi nhóm có hiệu lực, hoặc chạy:

newgrp libvirt

Bước 6: Xác Minh Cài Đặt KVM

Kiểm tra KVM đã được cài đặt đúng:

virsh list --all

Lệnh này sẽ trả về danh sách VM rỗng (trừ khi bạn đã tạo một số VM).

Bước 7: Cài Đặt Giao Diện Web - Tùy Chọn 1: Cockpit (Khuyến Nghị)

Cockpit là giao diện web hiện đại, nhẹ để quản lý các máy chủ Linux, bao gồm cả ảo hóa KVM.

Cài Đặt Cockpit

sudo apt install -y cockpit cockpit-machines

Kích Hoạt và Khởi Động Cockpit

sudo systemctl enable --now cockpit.socket

Truy Cập Giao Diện Web Cockpit

Mở trình duyệt web và truy cập:

https://your-server-ip:9090

Hoặc nếu truy cập cục bộ:

https://localhost:9090

Đăng nhập bằng tên người dùng và mật khẩu Ubuntu của bạn. Điều hướng đến Virtual Machines trong thanh bên trái để quản lý KVM.

Cho Phép Cockpit Qua Tường Lửa (nếu UFW được bật)

sudo ufw allow 9090/tcp

Bước 8: Cài Đặt Giao Diện Web - Tùy Chọn 2: Kimchi

Kimchi là một công cụ quản lý ảo hóa dựa trên web khác chạy trên Wok.

Cài Đặt Các Phụ Thuộc

sudo apt install -y git python3-pip nginx

Cài Đặt Wok và Kimchi

sudo apt install -y wok kimchi

Nếu không có trong repository, cài đặt từ mã nguồn:

# Cài đặt các phụ thuộc
sudo apt install -y python3-cherrypy3 python3-cheetah python3-pam python3-m2crypto gettext

# Clone repositories
cd /tmp
git clone https://github.com/kimchi-project/wok.git
git clone https://github.com/kimchi-project/kimchi.git

# Cài đặt Wok
cd wok
sudo make install

# Cài đặt Kimchi
cd ../kimchi
sudo make install

Khởi Động Dịch Vụ Wok

sudo systemctl enable wokd
sudo systemctl start wokd

Truy Cập Giao Diện Web Kimchi

Mở trình duyệt web và truy cập:

https://your-server-ip:8001

Đăng nhập bằng tên người dùng và mật khẩu Ubuntu của bạn.

Bước 9: Cấu Hình Network Bridge (Tùy Chọn)

Để VM có quyền truy cập mạng trực tiếp, cấu hình network bridge:

Sử Dụng Netplan (Mặc định Ubuntu 24.04)

Chỉnh sửa cấu hình netplan:

sudo nano /etc/netplan/00-installer-config.yaml

Cấu hình ví dụ:

network:
  version: 2
  ethernets:
    enp0s3:
      dhcp4: no
  bridges:
    br0:
      interfaces: [enp0s3]
      dhcp4: yes
      parameters:
        stp: false
        forward-delay: 0

Thay thế enp0s3 bằng tên giao diện mạng thực tế của bạn (tìm bằng lệnh ip a).

Áp dụng cấu hình:

sudo netplan apply

Xác Minh Bridge

ip addr show br0
brctl show

Bước 10: Tạo Máy Ảo Đầu Tiên

Sử Dụng Giao Diện Web Cockpit

  1. Điều hướng đến Virtual Machines trong Cockpit
  2. Nhấp Create VM
  3. Chọn nguồn cài đặt (file ISO, URL, hoặc PXE)
  4. Cấu hình thiết lập VM (CPU, RAM, disk)
  5. Bắt đầu cài đặt

Sử Dụng Dòng Lệnh

Tải xuống file ISO (ví dụ: Ubuntu Server):

cd /var/lib/libvirt/images/
sudo wget https://releases.ubuntu.com/24.04/ubuntu-24.04-live-server-amd64.iso

Tạo một VM:

sudo virt-install \
  --name ubuntu-vm \
  --ram 2048 \
  --vcpus 2 \
  --disk path=/var/lib/libvirt/images/ubuntu-vm.qcow2,size=20 \
  --os-variant ubuntu24.04 \
  --network bridge=virbr0 \
  --graphics vnc,listen=0.0.0.0 \
  --cdrom /var/lib/libvirt/images/ubuntu-24.04-live-server-amd64.iso

Xử Lý Sự Cố

Vấn Đề: Permission Denied (Quyền Bị Từ Chối)

Nếu bạn gặp lỗi quyền, hãy đảm bảo user của bạn nằm trong các nhóm đúng:

groups $USER

Nên bao gồm libvirt và kvm.

Vấn Đề: Dịch Vụ libvirtd Thất Bại

Kiểm tra logs:

sudo journalctl -u libvirtd

Vấn Đề: Không Thể Truy Cập Giao Diện Web

Kiểm tra xem dịch vụ có đang chạy không:

# Với Cockpit
sudo systemctl status cockpit.socket

# Với Kimchi/Wok
sudo systemctl status wokd

Kiểm tra tường lửa:

sudo ufw status

Vấn Đề: Không Có Kết Nối Mạng Trong VM

Xác minh mạng mặc định đang hoạt động:

virsh net-list --all
sudo virsh net-start default
sudo virsh net-autostart default

Các Vấn Đề Bảo Mật

  1. Tường lửa: Chỉ mở các cổng giao diện web cho các mạng đáng tin cậy
  2. SSL/TLS: Sử dụng chứng chỉ phù hợp cho môi trường production
  3. Quyền truy cập người dùng: Tạo người dùng chuyên dụng với quyền hạn chế
  4. Cập nhật: Giữ KVM và các công cụ quản lý luôn được cập nhật
  5. Sao lưu: Thường xuyên sao lưu cấu hình và dữ liệu VM

Các Lệnh Hữu Ích

# Liệt kê tất cả VM
virsh list --all

# Khởi động VM
virsh start vm-name

# Tắt VM
virsh shutdown vm-name

# Buộc tắt VM
virsh destroy vm-name

# Xóa VM
virsh undefine vm-name

# Chỉnh sửa cấu hình VM
virsh edit vm-name

# Xem console VM
virsh console vm-name

# Liệt kê các mạng
virsh net-list --all

# Liệt kê storage pools
virsh pool-list --all

Kết Luận

Bây giờ bạn đã có một môi trường ảo hóa KVM hoàn chỉnh trên Ubuntu 24.04 với giao diện quản lý dựa trên web. Cockpit cung cấp giao diện hiện đại, dễ sử dụng để quản lý máy ảo, trong khi Kimchi cung cấp các tính năng nâng cao hơn cho người dùng chuyên nghiệp. Chọn cái phù hợp nhất với nhu cầu của bạn và bắt đầu tạo và quản lý máy ảo một cách hiệu quả.

Tài Nguyên Bổ Sung

#kvm #virtualization #ubuntu #ubuntu-24.04 #cockpit