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.
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à QEMUlibvirt-daemon-system: Daemon Libvirt để quản lý ảo hóalibvirt-clients: Các tiện ích phía client cho libvirtbridge-utils: Các tiện ích bridge mạngvirtinst: Công cụ dòng lệnh để tạo VMvirt-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
- Điều hướng đến Virtual Machines trong Cockpit
- Nhấp Create VM
- Chọn nguồn cài đặt (file ISO, URL, hoặc PXE)
- Cấu hình thiết lập VM (CPU, RAM, disk)
- 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
- Tường lửa: Chỉ mở các cổng giao diện web cho các mạng đáng tin cậy
- SSL/TLS: Sử dụng chứng chỉ phù hợp cho môi trường production
- 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ế
- Cập nhật: Giữ KVM và các công cụ quản lý luôn được cập nhật
- 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ả.