Migration Guide

Migrate VM từ VMware ESXi
sang Proxmox VE

Hướng dẫn từng bước qua giao diện GUI — áp dụng cho cả Windows lẫn Linux VM. Không cần gõ lệnh phức tạp.

Bài viết này được thiết kế như một SOP ngắn gọn nhưng đủ sâu để áp dụng thực tế: từ chuẩn bị, migrate, cài driver/agent, đến kiểm tra và xử lý lỗi thường gặp.

2
Phương pháp
~30'
Thực hiện
GUI
Giao diện

Tổng quan quy trình migrate

Bài viết này trình bày 2 hướng migrate máy ảo từ VMware ESXi sang Proxmox VE. Cách thứ nhất dùng file OVA trung gian, cách thứ hai dùng Proxmox VE Import Wizard để import trực tiếp từ ESXi.

Sơ đồ tổng quan 2 phương án migrate:

Infographic 3D quy trình migrate ESXi sang Proxmox
Phương án 1

Export OVA rồi import vào Proxmox

Phù hợp khi cần file trung gian để lưu trữ, đối chiếu hoặc migrate theo quy trình thủ công dễ kiểm soát.

Phương án 2

Add ESXi vào Proxmox và import trực tiếp

Phù hợp khi Proxmox kết nối trực tiếp được với ESXi và bạn muốn rút ngắn thời gian migrate.

Cách đọc bài này

Phần sau sẽ đi từ so sánh tổng quan, rồi vào từng phương án, sau đó là so sánh Windows vs Linux, mục cài đặt công cụ và checklist sau migration.

So sánh 2 phương án migrate

Tiêu chíPhương án 1Phương án 2
Cách thực hiệnExport VM ra file OVA/OVF rồi import vào Proxmox.Add trực tiếp ESXi vào Proxmox rồi import VM từ host nguồn.
Tốc độChậm hơn vì có bước trung gian.Nhanh hơn vì import trực tiếp.
Kiểm soátDễ lưu file và kiểm soát từng giai đoạn.Gọn hơn, ít thao tác hơn.
Phù hợpKhi cần file trung gian hoặc migrate offline.Khi Proxmox kết nối trực tiếp tới ESXi qua mạng nội bộ.

Phương án 1 — Export OVA

Export OVA từ ESXi rồi import vào Proxmox

Thực hiện trên vSphere/ESXi Client rồi chuyển sang Proxmox Web UI. Áp dụng cho cả Windows và Linux VM.

1

Đăng nhập ESXi & tắt VM

Mở vSphere/ESXi Client, đưa VM về trạng thái tắt hoàn toàn trước khi export.

  1. a Mở Virtual Machines, chọn đúng VM cần migrate
  2. b Chuột phải → Power → Shut Down Guest OS (hoặc Power Off nếu cần tắt ngay)
  3. c Chờ trạng thái chuyển sang Powered Off
  4. d Ghi lại CPU, RAM, disk, NIC, VLAN, IP, gateway, boot mode để đối chiếu sau này
Tắt VM trên vSphere/ESXi Client
2

Xóa toàn bộ Snapshot (bắt buộc)

Snapshot làm VMDK phân mảnh — PHẢI xóa hết trước khi export, nếu không OVA sẽ lỗi hoặc thiếu data.

  1. a Chuột phải VM → Snapshots → Manage Snapshots
  2. b Chọn Delete All → xác nhận
  3. c Chờ task hoàn thành (xem tab Recent Tasks ở dưới)
Xóa toàn bộ snapshot trước khi export
3

Export OVF Template → Lưu dạng OVA

Xuất VM thành file đóng gói để chuyển sang Proxmox.

  1. a Chuột phải VM → ExportExport OVF Template
  2. b Đặt tên file. Nếu có ô Format, chọn OVA (Single file) để ra 1 file .ova
  3. c Click OK → trình duyệt tự động download các file VM
  4. d Theo dõi tiến trình ở tab Recent Tasks, chờ download hoàn tất

Giao diện ESXi host KHÔNG có option OVA — ra file rời .ovf + .vmdk

Khi export trực tiếp từ ESXi host UI (https://<esxi-ip>/ui), VMware không cho chọn OVA single-file mà luôn tải về nhiều file rời: TenVM.ovf + một/nhiều TenVM-disk1.vmdk (đôi khi kèm .mf). Option OVA chỉ có trong vCenter hoặc công cụ ovftool. Đừng lo — vẫn import được, xem cách xử lý ở Bước 5.

Lưu ý thời gian export

VM 50GB disk → OVA/VMDK khoảng 15–40GB (tùy mức nén). Đường truyền 1Gbps nội bộ có thể mất 10–30 phút. Giữ .ovf và .vmdk cùng một thư mục, không đổi tên lệch nhau.

Export OVF Template thành file OVA Theo dõi trạng thái task export trên ESXi
4

Upload OVA lên Proxmox Storage

Đăng nhập https://<proxmox-ip>:8006 bằng tài khoản root.

  1. a Chọn node → storage đích (thường là local)
  2. b Mở tab Content → click Upload
  3. c Đổi Content type thành OVA (hoặc ISO nếu không thấy)
  4. d Chọn file .ovaUpload

Có file .ovf + .vmdk rời (không có .ova)?

Nút Upload của Proxmox chỉ nhận .ova / .iso, không upload trực tiếp được cặp .ovf + .vmdk qua GUI. Hãy đẩy cả 2 file lên node Proxmox bằng SCP/WinSCP (hoặc gói thành .ova), rồi import qua Shell — chi tiết ở Bước 5.

5

Import thành VM (OVA hoặc .ovf + .vmdk)

Lệnh import của Proxmox là qm importovf — nó đọc file .ovf (file mô tả cấu hình), và tự động nạp .vmdk nằm cùng thư mục. Vì vậy cả OVA lẫn cặp .ovf+.vmdk đều import được.

A Trường hợp có file .ova

  • GUI (PVE 8.1+): chuột phải file OVA trong storage → Import as VM → wizard tự tạo VM
  • Shell: dùng lệnh ngay dưới đây
# Tìm file OVA đã upload find /var/lib/vz -name "*.ova" # Import OVA → VM ID 200, disk vào storage local-lvm qm importovf 200 /var/lib/vz/template/iso/TenVM.ova local-lvm

B Trường hợp có .ovf + .vmdk rời (export từ ESXi host)

  1. 1 Dùng WinSCP / scp đẩy cả .ovf và .vmdk lên cùng 1 thư mục trên node, ví dụ /root/import/
  2. 2 Vào Shell của node, trỏ qm importovf vào file .ovf (KHÔNG phải .vmdk)
# Đứng tại thư mục chứa cả .ovf + .vmdk cd /root/import ls -lh # thấy TenVM.ovf và TenVM-disk1.vmdk # Import: chỉ định file .ovf, .vmdk được nạp tự động qm importovf 200 TenVM.ovf local-lvm

Cách khác: gói lại thành .ova để upload qua GUI

OVA thực chất chỉ là 1 file tar chứa .ovf + .vmdk. Gói lại để upload bằng nút Upload như Bước 4 (.ovf phải đứng đầu):

# Trên máy có file (Linux/macOS, hoặc Git Bash trên Windows) tar -cvf TenVM.ova TenVM.ovf TenVM-disk1.vmdk

✅ Tóm lại: .ovf + .vmdk vẫn import được bình thường bằng qm importovf TenVM.ovf. Chỉ cần giữ 2 file cùng thư mục. Không bắt buộc phải có .ova single-file.

6

Kiểm tra sau import

  1. a Kiểm tra Boot Order để disk boot lên đầu
  2. b Kiểm tra disk controller & network bridge
  3. c Boot thử VM, xác nhận IP, DNS, gateway, dịch vụ ứng dụng
  4. d Windows: cài VirtIO driver & QEMU Guest Agent sau khi boot ổn định

Phương án 2 — Import Wizard

Add ESXi vào Proxmox & import trực tiếp

Proxmox VE 8.2+ có sẵn ESXi import wizard — kéo disk trực tiếp từ host ESXi, không cần file OVA trung gian.

1

Chuẩn bị trước khi add ESXi

  1. a Tắt VM trên ESXi hoàn toàn (cold migration an toàn nhất)
  2. b Xóa snapshot nếu có
  3. c Ghi lại cấu hình mạng, IP, VLAN, MAC, boot mode
  4. d Đảm bảo Proxmox truy cập được ESXi qua mạng & account có quyền đọc VM
2

Add ESXi host vào Proxmox

  1. a Datacenter → Storage → Add → ESXi
  2. b Nhập ID, IP/FQDN của ESXi host
  3. c Nhập username/password có quyền truy cập
  4. d Tick Skip Certificate Verification nếu ESXi dùng cert tự ký → Add
3

Chọn VM cần import

  1. a Mở storage ESXi vừa add ở panel trái
  2. b Chọn tab Virtual Guests để xem danh sách VM
  3. c Chọn VM cần migrate, kiểm tra dung lượng disk & trạng thái
4

Chạy Import Wizard

  1. a Click Import để mở wizard
  2. b Chọn Target Node & storage đích cho disk
  3. c Chỉnh CPU, RAM, bridge network, VM name, VM ID nếu cần
  4. d Xác nhận Import → chờ Proxmox copy disk & tạo VM

Wizard có thể tự set disk = VirtIO SCSI. Với Windows chưa có driver, đổi tạm về IDE/SATA để boot, cài VirtIO driver rồi mới chuyển lại VirtIO SCSI.

5

Kiểm tra sau import

  1. a Boot VM thử, kiểm tra network, disk controller, boot order, service
  2. b Cài qemu-guest-agent để Proxmox hiển thị IP & trạng thái chính xác
  3. c Windows: cài VirtIO driver trước khi đổi sang VirtIO SCSI
  4. d Sau khi ổn định → xóa storage ESXi khỏi Datacenter để dọn kết nối

Video minh họa — Import Wizard (Linux)

Video minh họa — Import Wizard (Windows)

Sau Import — Guest Tools

Cài VirtIO, QEMU Guest Agent & gỡ VMware Tools

VirtIO cho hiệu năng disk/network cao nhất trên KVM. QEMU Guest Agent giúp Proxmox đọc IP, shutdown mềm & đồng bộ thời gian. VMware Tools nên gỡ vì không còn tác dụng.

Windows VM

Cài driver TRƯỚC, đổi controller SAU

Đổi disk sang VirtIO SCSI khi Windows chưa có driver → BSOD INACCESSIBLE_BOOT_DEVICE. Luôn cài driver trong lúc disk vẫn ở IDE/SATA rồi mới chuyển.

1

Upload ISO VirtIO & gắn vào VM

  1. a Tải virtio-win.iso (link ở trên) → upload vào storage Proxmox: storage → Content → Upload, Content type ISO
  2. b Chọn VM → Hardware → Add → CD/DVD Drive → chọn file virtio-win.iso
  3. c Boot VM (disk vẫn để IDE/SATA, chưa đổi VirtIO)
2

Cài driver + Guest Agent (1 bộ cài)

Cách nhanh nhất: chạy bộ all-in-one trong ISO.

  1. a Mở ổ CD VirtIO trong File Explorer
  2. b Chạy virtio-win-guest-tools.exe → Next → Finish (cài hết driver: viostor, vioscsi, NetKVM, Balloon, vioserial + QEMU GA)
  3. c Kiểm tra Services thấy QEMU Guest Agent đang Running

Windows Server Core / không GUI: cài driver bằng pnputil /add-driver E:\vioscsi\2k22\amd64\*.inf /install, cài agent bằng msiexec /i E:\guest-agent\qemu-ga-x86_64.msi /qn.

3

Gỡ VMware Tools

  1. a Control Panel → Programs and Features → chọn VMware Tools → Uninstall
  2. b Restart VM khi được hỏi
4

Đổi disk sang VirtIO SCSI & bật Guest Agent

  1. a Shutdown VM. Trong Hardware: detach disk → re-add dạng SCSI, SCSI Controller = VirtIO SCSI single
  2. b Options → QEMU Guest Agent → Enabled
  3. c Kiểm tra Boot Order trỏ về disk SCSI → boot lại, xác nhận tab Summary hiển thị IP

Linux VM

1

Cài qemu-guest-agent theo distro

Linux có sẵn VirtIO driver trong kernel — chỉ cần cài guest agent (có sẵn trong repo, không cần tải thủ công).

Debian / Ubuntu

apt update && apt -y install qemu-guest-agent

RHEL / Rocky / AlmaLinux / CentOS

dnf -y install qemu-guest-agent # bản cũ: yum -y install qemu-guest-agent
2

Bật dịch vụ & kiểm tra

systemctl enable --now qemu-guest-agent systemctl status qemu-guest-agent

Sau đó trên Proxmox: VM → Options → QEMU Guest Agent → Enabled, kiểm tra tab Summary đã hiện IP.

3

Gỡ open-vm-tools / VMware Tools

# Debian/Ubuntu apt -y remove open-vm-tools # RHEL/Rocky dnf -y remove open-vm-tools

Kiểm tra lại /etc/fstab (nên dùng UUID), tên NIC (ens18), IP tĩnh & service startup trước khi chuyển traffic.

Trình tự chuẩn (tóm tắt)

  1. Import VM sang Proxmox (disk tạm để IDE/SATA).
  2. Boot thử bằng controller cũ để chắc VM khởi động được.
  3. Gắn VirtIO ISO, cài driver (storage trước → network → balloon) + QEMU GA.
  4. Gỡ VMware Tools / open-vm-tools.
  5. Đổi disk sang VirtIO SCSI, bật QEMU Guest Agent trong Options.
  6. Boot lại, xác nhận Summary hiển thị IP & service chạy đúng.

Bonus — Linux Web Console

Cài Cockpit quản trị Linux qua web

Sau khi migrate VM Linux sang Proxmox, cài Cockpit để quản trị server qua trình duyệt (port 9090): xem tài nguyên, dịch vụ, log, network, terminal, cập nhật — không cần SSH.

1

Cài đặt Cockpit theo distro

Chạy với quyền root hoặc thêm sudo phía trước.

Debian / Ubuntu

apt update apt -y install cockpit # (Tùy chọn) module quản lý VM/KVM & container ngay trong Cockpit apt -y install cockpit-machines cockpit-podman

RHEL / Rocky / AlmaLinux / CentOS

dnf -y install cockpit # (Tùy chọn) module quản lý VM & container dnf -y install cockpit-machines cockpit-podman
2

Bật & khởi động dịch vụ

Cockpit dùng socket activation — chỉ chạy khi có truy cập, nhẹ tài nguyên.

systemctl enable --now cockpit.socket # Kiểm tra trạng thái systemctl status cockpit.socket

✅ Thấy active (listening) trên port 9090 là dịch vụ đã sẵn sàng.

3

Mở firewall port 9090

Ubuntu/Debian (ufw)

ufw allow 9090/tcp

RHEL/Rocky (firewalld)

firewall-cmd --permanent --add-service=cockpit firewall-cmd --reload
4

Truy cập giao diện web

  1. a Mở trình duyệt: https://<ip-server>:9090
  2. b Bỏ qua cảnh báo cert tự ký (Advanced → Proceed)
  3. c Đăng nhập bằng user Linux của hệ thống; tick "Reuse my password for privileged tasks" để có quyền admin
  4. d Vào Overview / Services / Logs / Networking / Terminal để quản trị

Mẹo

Đăng nhập bằng root có thể bị chặn mặc định — nên dùng user thường có quyền sudo. Cài cockpit-machines sẽ thêm tab Virtual Machines để quản lý KVM ngay trong Cockpit.

So sánh Windows vs Linux Migration

Windows VM

  • • Cần VirtIO driver trước khi đổi controller.
  • • Nên cài QEMU Guest Agent sau migrate.
  • • Dễ gặp BSOD nếu đổi sang VirtIO quá sớm.

Linux VM

  • • Tương thích tốt hơn với VirtIO.
  • • Cần kiểm tra fstab, network config và service.
  • • Nên bật qemu-guest-agent để Proxmox nhận trạng thái VM chính xác.

Checklist sau Migration

  • • VM boot thành công.
  • • IP, DNS, gateway hoạt động đúng.
  • • Disk, partition và mount point chính xác.
  • • Service và application chạy bình thường.
  • • qemu-guest-agent đang hoạt động.
  • • Backup và monitoring đã sẵn sàng.

Kết luận thực hành

Nếu ưu tiên kiểm soát và lưu file trung gian, chọn Phương án 1. Nếu ưu tiên tốc độ và giảm thao tác, chọn Phương án 2. Dù theo cách nào, hãy luôn backup trước, kiểm tra boot sau migrate và chỉ gỡ VMware Tools khi VM đã ổn định trên Proxmox.

Xử lý sự cố thường gặp

Windows BSOD (màn hình xanh) sau khi import

Nguyên nhân: Disk controller đã đổi sang VirtIO nhưng driver chưa được cài trong Windows.

Xử lý:

  1. Tắt VM → tab Hardware → đổi disk controller về IDE/SATA tạm thời
  2. Boot lại → cài VirtIO driver (virtio-win.iso)
  3. Sau khi cài xong → tắt → đổi lại VirtIO SCSI → boot lại
Linux boot vào emergency mode / kernel panic

Nguyên nhân: /etc/fstab còn ghi /dev/sda nhưng disk đã là /dev/vda (VirtIO), hoặc UUID thay đổi.

Xử lý:

# Trong emergency mode, sửa fstab mount -o remount,rw / blkid # xem UUID thực nano /etc/fstab # cập nhật UUID hoặc /dev/vda reboot
qm importovf báo lỗi "unsupported disk format"

Nguyên nhân: OVA chứa VMDK dạng streamOptimized không được Proxmox hỗ trợ trực tiếp.

Xử lý: Giải nén OVA và convert VMDK trước khi import:

# Giải nén OVA (OVA = file tar) tar -xvf TenVM.ova # Convert VMDK sang qcow2 qemu-img convert \ -f vmdk \ -O qcow2 \ TenVM.vmdk \ TenVM.qcow2 # Tạo VM mới (ID 200) qm create 200 \ --name "TenVM" \ --memory 4096 # Import disk đã convert vào VM qm importdisk 200 TenVM.qcow2 local-lvm # Gắn disk vào controller SCSI qm set 200 --scsi0 local-lvm:vm-200-disk-0 # Cấu hình boot order qm set 200 \ --boot c \ --bootdisk scsi0
Mạng không hoạt động sau migrate

Nguyên nhân phổ biến:

  • MAC address thay đổi → Windows/Linux "thấy" NIC mới, cần cấu hình lại IP
  • Driver network chưa đúng (cần VirtIO)
  • Bridge network trong Proxmox chưa cấu hình đúng

Xử lý Windows: Device Manager → Network Adapters → cập nhật IP cho NIC mới

Xử lý Linux: ip link show → tìm tên interface mới (eth0/ens3/ens18) → cập nhật file network config

Zalo