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-imgvmdk2imgNetwork Stream
Độ khóDễTrung bìnhNâng cao
Cần storage trung gianKhông
Tốc độNhanhNhanhPhụ thuộc network
Phù hợp1-5 VMsSplit VMDKNhiều VMs, ít storage
Resume nếu failKhô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ânCách xử lý
VM không bootDisk controller không đúngThử đổi scsihw sang IDE hoặc VirtIO SCSI
Network không hoạt độngThiếu VirtIO driver (Windows)Giữ E1000, cài VirtIO driver, rồi đổi sang VirtIO
Disk không nhậnFile system corruptionChạy fsck (Linux) hoặc chkdsk (Windows)
Performance chậmChưa dùng VirtIOEnable virtio-scsi cho disk, virtio cho network
Boot loop / BSODUEFI/BIOS mismatchĐổi BIOS mode: qm set 100 --bios ovmf hoặc seabios
Windows Activation lostHardware changedReactivate 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 VMwareProxmox Backup Server trên vnhte.com.

Chào các bạn mình là Quốc Hùng , mình sinh ra thuộc cung song tử ,song tử luôn khẳng định chính mình ,luôn luôn phấn đấu vượt lên phía trước ,mình sinh ra và lớn lên tại vùng đất võ cổ truyền ,đam mê của mình là coder ,ngày đi học tối về viết blog ...