Bối cảnh: Làn sóng “di cư” khỏi VMware
Sự kiện Broadcom thâu tóm VMware và thay đổi chính sách cấp phép đã tạo ra một làn sóng dịch chuyển hạ tầng chưa từng có. Nhiều doanh nghiệp đang đối mặt với bài toán chi phí bản quyền tăng vọt, có nơi ghi nhận mức tăng gấp 2-3 lần. Điều này thúc đẩy anh em Sysadmin tìm đường sang các giải pháp mã nguồn mở như KVM hoặc Proxmox.
Mình hiện vận hành một homelab Proxmox với 12 VM và container. Đây là “sân chơi” để mình test mọi thứ trước khi đẩy lên production. Việc bốc một máy ảo từ VirtualBox cá nhân lên server KVM để debug diễn ra như cơm bữa. Tuy nhiên, rào cản thực sự không nằm ở cấu hình RAM hay CPU.
Mấu chốt vấn đề là sự xung đột giữa các định dạng ổ đĩa ảo (Disk Format). VMware dùng .vmdk, VirtualBox dùng .vdi, còn KVM/Proxmox lại ưa chuộng .qcow2. Nếu bê nguyên ổ cứng từ nhà này sang nhà nọ, bạn sẽ ăn ngay lỗi Kernel Panic trên Linux hoặc màn hình xanh (BSOD) trên Windows.
Chuẩn bị “vũ khí”: Cài đặt qemu-img
Để xử lý mượt mà các định dạng disk, chúng ta cần qemu-img. Đây là công cụ “thụy sĩ” đa năng, cực kỳ mạnh mẽ trong bộ QEMU. Nó giúp convert qua lại giữa hầu hết các định dạng máy ảo hiện nay.
Trên Ubuntu hoặc Debian, bạn cài đặt nhanh bằng lệnh:
sudo apt update && sudo apt install qemu-utils -y
Với Windows, bạn có thể dùng WSL2 hoặc tải bản build sẵn. Một lưu ý sống còn: Hãy tắt hẳn máy ảo (Shutdown) trước khi làm. Tuyệt đối không convert khi máy đang Suspend hoặc còn Snapshot. Việc này giúp tránh tình trạng hỏng dữ liệu (corruption) đáng tiếc.
Quy trình chuyển đổi thực tế
Việc di chuyển thường gói gọn trong 3 bước: Chuyển đổi định dạng -> Tạo VM mới -> Cấu hình Driver. Dưới đây là các kịch bản phổ biến nhất.
1. Từ VMware (.vmdk) sang KVM/Proxmox (.qcow2)
Định dạng .qcow2 rất được ưa chuộng vì hỗ trợ nén và snapshot linh hoạt. Để convert, bạn dùng lệnh:
# Chuyển đổi và nén file để tiết kiệm dung lượng
qemu-img convert -f vmdk -O qcow2 source-vmware.vmdk target-kvm.qcow2 -c
Mẹo thực chiến: Với máy ảo Windows, hãy gỡ VMware Tools trước khi convert. Sau khi sang KVM, bạn cần mount file ISO virtio-win để cài driver ổ cứng. Nếu thiếu bước này, Windows sẽ không thể khởi động do không nhận diện được controller mới.
2. Từ VirtualBox (.vdi) sang KVM
Nhiều dev thường build môi trường local trên VirtualBox rồi đẩy lên server. Cách làm cũng tương tự:
qemu-img convert -f vdi -O qcow2 source-vbox.vdi target-kvm.qcow2
3. Chuyển ngược từ KVM sang VMware
Nếu cần đem máy ảo từ server về máy cá nhân chạy VMware Workstation, bạn hãy convert ngược lại sang vmdk:
qemu-img convert -f qcow2 -O vmdk target-kvm.qcow2 source-vmware.vmdk
Những cái bẫy sau khi di chuyển
Convert xong file disk mới chỉ đi được nửa chặng đường. Có 3 thứ bạn phải kiểm tra ngay để máy có thể boot thành công.
Chế độ Boot: BIOS vs UEFI
Đây là lỗi kinh điển khiến máy báo “No bootable device found”. Nếu máy cũ chạy UEFI mà VM mới bạn chọn BIOS (Legacy), hệ thống sẽ đứng im. Hãy vào phần Hardware của VM mới để chỉnh chuẩn Boot cho khớp với máy gốc.
Xung đột Card mạng
Khi sang môi trường mới, địa chỉ MAC sẽ thay đổi. Trên Linux, interface có thể bị đổi tên từ eth0 thành ens33. Bạn cần check lại file cấu hình network để tránh mất kết nối:
# Tìm tên interface mới
ip a
# Cập nhật lại Netplan (trên Ubuntu)
sudo nano /etc/netplan/00-installer-config.yaml
Cài đặt Guest Agent
Đừng quên cài Guest Agent để Hypervisor quản lý VM tốt hơn. Nó hỗ trợ shutdown an toàn và hiển thị IP chính xác trên dashboard quản trị.
- KVM/Proxmox: Cài
qemu-guest-agent. - VMware: Cài
open-vm-tools.
Kinh nghiệm của mình là luôn dùng thêm flag -c khi convert sang qcow2. Một file 40GB có thể giảm xuống còn 15GB, giúp tiết kiệm đáng kể không gian lưu trữ cho server. Chỉ cần nắm vững qemu-img và driver VirtIO, bạn sẽ không còn lo bị “khóa chặt” vào bất kỳ nhà cung cấp ảo hóa nào.

