Khi bạn quyết định migrate VMware sang Proxmox VE, việc di chuyển máy ảo (VM) giữa hai nền tảng ảo hóa tưởng phức tạp nhưng thực ra khá straightforward nếu làm đúng quy trình. Cả VMware ESXi và Proxmox đều hỗ trợ các định dạng disk image tương thích, giúp quá trình migrate VMware sang Proxmox hoàn toàn khả thi mà không cần cài lại hệ điều hành.
Trong bài viết này, mình sẽ hướng dẫn bạn 3 phương pháp migrate VMware sang Proxmox: dùng qemu-img convert, dùng vmdk2img, và clone trực tiếp qua network. Mỗi phương pháp phù hợp với từng use case khác nhau — từ migrate thủ công từng VM đến automation hàng loạt. Mình cũng sẽ hướng dẫn cài VirtIO drivers cho Windows VMs, tối ưu cấu hình sau migration, và cung cấp script tự động hóa.
Tại sao nên migrate VMware sang Proxmox?
Trước khi đi vào hướng dẫn kỹ thuật, hãy xem tại sao việc migrate VMware sang Proxmox đang trở thành xu hướng. Broadcom mua VMware cuối 2023 đã thay đổi dramatically pricing model — nhiều tổ chức đối mặt với chi phí license tăng gấp 3-5 lần. Proxmox VE là giải pháp thay thế mã nguồn mở, miễn phí, với đầy đủ tính năng enterprise: clustering, HA, backup, live migration, và Ceph storage tích hợp.
Quá trình convert VMware sang Proxmox không yêu cầu cài lại OS. Bạn chỉ cần export disk từ VMware, convert format, và import vào Proxmox. Toàn bộ data, applications, và configurations đều được giữ nguyên.
Chuẩn bị trước khi migrate VMware
- Backup VM gốc — Luôn snapshot hoặc backup đầy đủ trước khi bắt đầu. Nếu migration thất bại, bạn vẫn có bản gốc.
- Shutdown VM trên VMware — Cold migration (VM đã tắt) đảm bảo data integrity. Hot migration có thể gây disk corruption.
- Flatten snapshots — Nếu VM có snapshots, consolidate thành 1 disk duy nhất trước khi export.
- Storage đủ chỗ trên Proxmox — Cần ít nhất bằng dung lượng VM gốc + buffer 20%.
- Network connectivity — Đảm bảo Proxmox và VMware host có thể communicate qua SSH/SCP.
- Ghi lại VM config — CPU, RAM, disk size, network adapter type, IP address để cấu hình lại trên Proxmox.
Phương pháp 1: Export VMDK và Convert bằng qemu-img
Đây là phương pháp phổ biến nhất để migrate VMware sang Proxmox. Quy trình: export VMDK từ VMware → convert sang QCOW2 hoặc RAW → import vào Proxmox. Phương pháp này hoạt động với cả Linux và Windows VMs. Tham khảo thêm hướng dẫn migration chính thức từ Proxmox Wiki.
Bước 1: Export VMDK từ VMware ESXi
# Cách 1: Dùng vmkfstools trên ESXi host
# SSH vào ESXi, stop VM trước
vim-cmd vmsvc/power.off {vmid}
# Clone VMDK sang single flat file
vmkfstools -i /vmfs/volumes/datastore1/VM-name/VM-name.vmdk -d thin /vmfs/volumes/datastore1/VM-name/export.vmdk
# Cách 2: Dùng OVF Tool (từ workstation)
ovftool vi://root@esxi-ip/VM-name /tmp/vm-export/
# Cách 3: Download qua datastore browser
# vSphere Client → Storage → Datastore Browser → Download .vmdk
Bước 2: Convert VMDK sang QCOW2
# Trên Proxmox hoặc Linux có qemu-utils apt install qemu-utils -y # Convert single VMDK sang QCOW2 qemu-img convert -p -O qcow2 source.vmdk output.qcow2 # Convert split VMDK (source-flat.vmdk + source.vmdk) qemu-img convert -p -O qcow2 source-000001.vmdk output.qcow2 # Convert sang RAW (nếu muốn import vào LVM) qemu-img convert -p -O raw source.vmdk output.raw # Kiểm tra disk info sau convert qemu-img info output.qcow2
Bước 3: Import vào Proxmox và Tạo VM
# Upload QCOW2 lên Proxmox scp output.qcow2 root@proxmox:/var/lib/vz/images/100/ # Tạo VM mới (chưa có disk) qm create 100 --name "migrated-vm" --memory 4096 --cores 4 --net0 virtio,bridge=vmbr0 --ostype l26 # Import disk vào VM qm importdisk 100 /var/lib/vz/images/100/output.qcow2 local-lvm # Attach disk và set boot qm set 100 --scsi0 local-lvm:vm-100/disk-0 qm set 100 --boot order=scsi0 # Start VM qm start 100
Phương pháp 2: Dùng vmdk2img để convert VMware disk
vmdk2img là công cụ nhỏ gọn giúp convert VMware disk sang raw image nhanh hơn qemu-img trong một số trường hợp, đặc biệt với split VMDK files.
# Clone và build vmdk2img git clone https://github.com/gnif/vmdk2img.git cd vmdk2img && make # Convert VMDK sang raw image ./vmdk2img source.vmdk output.raw # Convert sang QCOW2 (thin provisioning) qemu-img convert -p -O qcow2 output.raw output.qcow2 # Import trực tiếp vào Proxmox qm importdisk 100 output.raw local-lvm
Phương pháp 3: Clone trực tiếp qua Network
Phương pháp này phù hợp khi bạn không có đủ storage trung gian. Thay vì download rồi convert, bạn stream disk trực tiếp từ VMware ESXi sang Proxmox qua SSH — convert on-the-fly.
# Stream VMDK từ ESXi, convert on-the-fly, ghi vào Proxmox ssh root@esxi-host "cat /vmfs/volumes/datastore1/VM/VM-flat.vmdk" | qemu-img convert -p -O qcow2 - /var/lib/vz/images/100/vm-100.qcow2 # Import vào VM qm importdisk 100 /var/lib/vz/images/100/vm-100.qcow2 local-lvm qm set 100 --scsi0 local-lvm:vm-100/disk-0 qm set 100 --boot order=scsi0
Ưu điểm: Không cần storage trung gian. Nhược điểm: Phụ thuộc vào network bandwidth, nếu connection drop phải bắt đầu lại từ đầu.
So sánh 3 phương pháp migrate VMware
| Tiêu chí | qemu-img | vmdk2img | Network Stream |
|---|---|---|---|
| Độ khó | Dễ | Trung bình | Nâng cao |
| Cần storage trung gian | Có | Có | Không |
| Tốc độ | Nhanh | Nhanh | Phụ thuộc network |
| Phù hợp | 1-5 VMs | Split VMDK | Nhiều VMs, ít storage |
| Resume nếu fail | Có | Có | Không |
Cấu hình sau khi migrate VMware sang Proxmox
Cài đặt VirtIO Drivers (Windows VM)
Windows VM migrate từ VMware thường dùng driver E1000/E1000E (emulated). Trên Proxmox, chuyển sang VirtIO sẽ cho performance tốt hơn đáng kể — nhưng cần cài driver trước khi đổi adapter.
# Bước 1: Download VirtIO drivers ISO # Download từ VirtIO Windows Drivers chính thức wget https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso # Bước 2: Mount ISO vào VM qm set 100 --ide2 local:iso/virtio-win.iso,media=cdrom # Bước 3: Trong Windows VM # - Mở Device Manager # - Tìm "Network Controller" hoặc "Storage Controller" # - Right-click → Update Driver → Browse → chọn CD drive virtio-win # - Cài đặt tất cả drivers: NetKVM, viostor, Balloon, viorng # Bước 4: Sau khi cài driver, đổi adapter sang VirtIO qm set 100 --net0 virtio,bridge=vmbr0 # Bước 5: Restart VM và verify network hoạt động
Tối ưu Hardware Configuration
# Đổi disk controller sang VirtIO SCSI (performance tốt nhất) qm set 100 --scsihw virtio-scsi-pci # Enable QEMU Guest Agent qm set 100 --agent 1 # Cài qemu-guest-agent trong VM # Debian/Ubuntu: apt install qemu-guest-agent # CentOS/RHEL: yum install qemu-guest-agent # Windows: cài từ VirtIO ISO (component: qemu-ga) # Enable discard (TRIM support cho SSD) qm set 100 --scsi0 local-lvm:vm-100/disk-0,discard=on # Cấu hình BIOS (nếu VM dùng UEFI trên VMware) qm set 100 --bios ovmf
Script tự động hóa migrate VMware sang Proxmox
Nếu bạn cần migrate nhiều VMs, dùng script dưới đây để tự động hóa toàn bộ quy trình từ export đến import trên Proxmox.
#!/bin/bash
# migrate-vmware-to-proxmox.sh
# Usage: ./migrate.sh VM_NAME TARGET_VMID
ESXI_HOST="192.168.1.100"
ESXI_USER="root"
VM_NAME="$1"
VMID="$2"
if [ -z "$VM_NAME" ] || [ -z "$VMID" ]; then
echo "Usage: $0 VM_NAME TARGET_VMID"
exit 1
fi
# 1. Shutdown VM trên VMware
echo "Shutting down VM on VMware..."
ssh ${ESXI_USER}@${ESXI_HOST} "vim-cmd vmsvc/power.off \$(vim-cmd vmsvc/getallvms | grep '${VM_NAME}' | awk '{print \$1}')"
# 2. Export VMDK
echo "Exporting VMDK..."
ssh ${ESXI_USER}@${ESXI_HOST} "vmkfstools -i /vmfs/volumes/datastore1/${VM_NAME}/${VM_NAME}.vmdk -d thin /tmp/${VM_NAME}-export.vmdk"
# 3. Stream + Convert + Import
echo "Streaming and converting..."
mkdir -p /var/lib/vz/images/${VMID}
ssh ${ESXI_USER}@${ESXI_HOST} "cat /tmp/${VM_NAME}-export-flat.vmdk" | qemu-img convert -p -O qcow2 - /var/lib/vz/images/${VMID}/disk.qcow2
# 4. Create VM trên Proxmox
echo "Creating Proxmox VM..."
qm create ${VMID} --name ${VM_NAME} --memory 4096 --cores 4 --net0 virtio,bridge=vmbr0 --ostype l26
qm importdisk ${VMID} /var/lib/vz/images/${VMID}/disk.qcow2 local-lvm
qm set ${VMID} --scsi0 local-lvm:vm-${VMID}/disk-0
qm set ${VMID} --boot order=scsi0
# 5. Cleanup
ssh ${ESXI_USER}@${ESXI_HOST} "rm /tmp/${VM_NAME}-export*"
echo "Migration complete! VM ${VM_NAME} → Proxmox VMID ${VMID}"
Troubleshooting khi migrate VMware
| Vấn đề | Nguyên nhân | Cách xử lý |
|---|---|---|
| VM không boot | Disk controller không đúng | Thử đổi scsihw sang IDE hoặc VirtIO SCSI |
| Network không hoạt động | Thiếu VirtIO driver (Windows) | Giữ E1000, cài VirtIO driver, rồi đổi sang VirtIO |
| Disk không nhận | File system corruption | Chạy fsck (Linux) hoặc chkdsk (Windows) |
| Performance chậm | Chưa dùng VirtIO | Enable virtio-scsi cho disk, virtio cho network |
| Boot loop / BSOD | UEFI/BIOS mismatch | Đổi BIOS mode: qm set 100 --bios ovmf hoặc seabios |
| Windows Activation lost | Hardware changed | Reactivate Windows hoặc dùng Volume License |
FAQ – Câu hỏi thường gặp về migrate VMware
- Có cần shutdown VM để migrate VMware không? Khuyến nghị shutdown (cold migration) để đảm bảo data integrity. Hot migration có thể gây disk corruption.
- VM có bị chậm hơn sau khi migrate VMware sang Proxmox? Không. Với VirtIO drivers, performance trên Proxmox thường tương đương hoặc tốt hơn VMware.
- VMware snapshots có migrate được không? Không trực tiếp. Cần consolidate/flatten snapshots thành 1 disk duy nhất trước khi export.
- Thời gian migrate mất bao lâu? Phụ thuộc vào dung lượng VM và network bandwidth. 100GB disk qua 1Gbps network mất khoảng 15-30 phút.
- Có cần cài lại Windows không? Không. Chỉ cần cài thêm VirtIO drivers. Windows sẽ detect hardware mới và tự configure.
- Có thể migrate VMware Cluster sang Proxmox Cluster không? Có, nhưng cần migrate từng VM. Xem thêm hướng dẫn cài đặt Proxmox Cluster.
Tìm hiểu thêm về so sánh Proxmox vs VMware và Proxmox Backup Server trên vnhte.com.