Bối cảnh & Tại sao cần chuyển dịch sang XCP-ng
Đúng 2 giờ sáng, PagerDuty réo inh ỏi. Một host ESXi trong cụm 6 node production mất liên lạc với vCenter. Bốn máy ảo cơ sở dữ liệu MySQL dung lượng hơn 800GB lập tức bị cô lập. Đúng lúc đó, ban giám đốc yêu cầu cắt giảm 40% chi phí hạ tầng sau khi VMware chuyển sang chính sách thuê bao theo số core CPU. Nhìn màn hình vSphere Client đơ cứng vì lỗi SCSI reservation lock trên SAN, cả đội trực gần như rơi vào ngõ cụt.
Ở quy mô homelab, Proxmox VE là một giải pháp rất tốt. Mình từng dựng cụm 3 node chạy 20 VM mượt mà. Tuy nhiên, bài toán enterprise với 150 VM lại cần những tiêu chuẩn khắt khe hơn: phân quyền RBAC chi tiết, Live Migration đa host mượt mà và Delta Backup chuẩn snapshot. Proxmox đôi khi buộc sysadmin phải can thiệp bằng script thủ công khá nhiều. Cặp đôi XCP-ng (hypervisor mã nguồn mở dựa trên XenServer) và Xen Orchestra (XO) xuất hiện như lời giải chuẩn chỉnh thay thế bộ đôi ESXi + vCenter.
Về kiến trúc, XCP-ng đóng vai trò Type-1 Hypervisor chạy trực tiếp trên bare-metal (tương đương ESXi). Xen Orchestra là bảng điều khiển web tập trung (tương đương vCenter). Toàn bộ cluster, template, mạng ảo và lịch sao lưu đều được điều khiển qua REST API của XO mà không cần cài agent nặng nề vào từng máy ảo.
Cài đặt XCP-ng và Xen Orchestra
1. Chuẩn bị và cài đặt XCP-ng trên bare-metal
Hãy tải bản ISO XCP-ng 8.2 LTS (hoặc 8.3) từ trang chủ và tạo bộ cài USB bằng Rufus hoặc lệnh dd. Khởi động server (ví dụ Dell PowerEdge R640), vào BIOS kích hoạt ảo hóa phần cứng (Intel VT-x/VT-d hoặc AMD-V/IOMMU). Cắm USB và boot vào giao diện cài đặt ncurses.
Các bước thiết lập cần chú ý:
- Chọn bàn phím mặc định (US) và chấp nhận thỏa thuận mã nguồn mở GPLv2.
- Chọn ổ cứng cài OS: Khuyến nghị dùng 2 ổ SSD/SAS chạy Hardware RAID-1 (tối thiểu 120GB) để tách biệt với phân vùng chứa VM.
- Đặt mật khẩu
rootphức tạp: Chuỗi này dùng cho cả kết nối SSH lẫn API sau này. - Gán Static IP cho cổng Management Interface (ví dụ
192.168.10.50/24, gateway192.168.10.1), tránh dùng DHCP trên môi trường production.
Sau khi máy chủ khởi động lại, màn hình xconsole xuất hiện hiển thị IP quản trị. Hãy kiểm tra trạng thái host qua SSH:
ssh [email protected]
# Liệt kê trạng thái host và tài nguyên dom0
xe host-list
xentop
2. Triển khai Xen Orchestra Appliance (XOA)
Cách chuẩn xác và nhanh nhất để dựng bảng điều khiển là sử dụng lệnh triển khai chính thức của Vates trực tiếp từ dom0:
# Khởi tạo nhanh máy ảo Xen Orchestra Appliance (XOA)
curl -sL https://xoa.io/deploy | bash
Nếu muốn dùng bản miễn phí mở khóa 100% tính năng Enterprise (Xen Orchestra Community Edition), hãy tạo một máy ảo Debian 12 (cấp 2 vCPU, 4GB RAM) rồi build từ nguồn:
# Trên máy ảo Debian 12:
sudo apt update && sudo apt install -y curl git build-essential
# Chạy script build tự động Xen Orchestra Community Edition
curl -sL https://raw.githubusercontent.com/ronivay/XenOrchestraInstallerUpdater/master/xo-install.sh | bash
Quá trình build mất khoảng 5-7 phút. Khi hoàn tất, mở trình duyệt truy cập http://<IP_XOA_HOAC_VM>. Tài khoản mặc định là [email protected] với mật khẩu admin. Hãy đổi ngay mật khẩu này tại mục Settings > Users.
Cấu hình chi tiết hạ tầng
1. Kết nối XCP-ng Host vào Xen Orchestra
Từ giao diện XO, truy cập Settings > Servers và bấm Add Server:
- Label: Đặt tên định danh (ví dụ:
Node-01-DellR640). - Host: Nhập IP của XCP-ng host (
192.168.10.50). - Username:
root - Password: Mật khẩu quản trị của host.
- Tích chọn Auto-connect rồi nhấn Connect. Khi icon chuyển sang màu xanh lục, XO đã sẵn sàng quản lý cụm.
2. Cấu hình Storage Repository (SR) qua giao diện lệnh
Storage tập trung (NFS/iSCSI) là điều kiện bắt buộc để chạy Live Migration không downtime. Nếu giao diện web gặp lỗi kết nối SAN/NAS, bạn có thể tạo Storage Repository nhanh bằng CLI:
# Tạo Storage Repository chuẩn NFS từ NAS Synology hoặc TrueNAS
xe sr-create \
name-label="NFS-Production-Pool" \
type=nfs \
device-config:server=192.168.10.20 \
device-config:serverpath=/volume1/xcp-vms \
shared=true
Lệnh trả về mã UUID của SR nghĩa là phân vùng lưu trữ đã gắn thành công vào mọi host trong cụm pool.
3. Thiết lập VLAN và Virtual Network
Hệ thống doanh nghiệp nên cô lập luồng dữ liệu quản trị, backup và production. Sử dụng card mạng 10GbE để tạo VLAN interface:
# Lấy UUID của card mạng vật lý eth1 (uplink 10GbE)
PIF_UUID=$(xe pif-list device=eth1 --minimal)
# Khởi tạo VLAN 100 riêng cho dải máy ảo Database
xe vlan-create pif-uuid=$PIF_UUID vlan=100
Kiểm tra & Monitoring
1. Kiểm thử Live Migration không downtime
Tạo một VM Ubuntu 22.04 chạy thử nghiệm trên Node 1. Bật ping liên tục với tần số cao từ máy cá nhân đến IP của VM:
ping -i 0.2 192.168.10.105
Trong Xen Orchestra, chọn VM, bấm nút Migrate và chọn đích đến là Node 2. Quá trình đồng bộ bộ nhớ RAM diễn ra ngầm. Kết quả thực tế cho thấy quá trình chuyển host chỉ làm rớt đúng 1 gói tin (độ trễ dưới 80ms), máy chủ web bên trong vẫn phục vụ request bình thường không khác gì vMotion.
2. Giám sát tài nguyên và xử lý nghẽn
dom0 là control domain quyết định hiệu năng I/O của toàn bộ hypervisor. Khi VM xuất hiện tình trạng nghẽn disk, hãy kiểm tra ngay dom0:
# Kiểm tra thông số CPU, RAM và I/O thời gian thực của từng VM
xentop
# Theo dõi log quản trị bộ lưu trữ để tìm lỗi khóa VDI lock
tail -f /var/log/SMlog | grep -E "ERROR|WARNING"
Đồng thời, hãy mở mục Backup > New trên Xen Orchestra để đặt lịch Delta Backup 4 tiếng/lần đẩy về MinIO S3 hoặc máy chủ NFS dự phòng. Nhờ cơ chế Changed Block Tracking (CBT), dung lượng truyền tải mỗi lần chỉ dao động từ vài trăm megabyte, thời gian hoàn thành chỉ mất 2-3 phút mà không làm nghẽn đường truyền mạng production.

