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:

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.
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 1 | Phương án 2 |
|---|---|---|
| Cách thực hiện | Export 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át | Dễ 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ợp | Khi 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.
Đă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.
- a Mở Virtual Machines, chọn đúng VM cần migrate
- b Chuột phải → Power → Shut Down Guest OS (hoặc Power Off nếu cần tắt ngay)
- c Chờ trạng thái chuyển sang Powered Off
- d Ghi lại CPU, RAM, disk, NIC, VLAN, IP, gateway, boot mode để đối chiếu sau này
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.
- a Chuột phải VM → Snapshots → Manage Snapshots
- b Chọn Delete All → xác nhận
- c Chờ task hoàn thành (xem tab Recent Tasks ở dưới)
Export OVF Template → Lưu dạng OVA
Xuất VM thành file đóng gói để chuyển sang Proxmox.
- a Chuột phải VM → Export → Export OVF Template
- b Đặt tên file. Nếu có ô Format, chọn OVA (Single file) để ra 1 file
.ova - c Click OK → trình duyệt tự động download các file VM
- 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.
Upload OVA lên Proxmox Storage
Đăng nhập https://<proxmox-ip>:8006 bằng tài khoản root.
- a Chọn node → storage đích (thường là local)
- b Mở tab Content → click Upload
- c Đổi Content type thành
OVA(hoặc ISO nếu không thấy) - d Chọn file
.ova→ Upload
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.
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
B Trường hợp có .ovf + .vmdk rời (export từ ESXi host)
- 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 Vào Shell của node, trỏ
qm importovfvào file .ovf (KHÔNG phải .vmdk)
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):
✅ 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.
Kiểm tra sau import
- a Kiểm tra Boot Order để disk boot lên đầu
- b Kiểm tra disk controller & network bridge
- c Boot thử VM, xác nhận IP, DNS, gateway, dịch vụ ứng dụng
- 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.
Chuẩn bị trước khi add ESXi
- a Tắt VM trên ESXi hoàn toàn (cold migration an toàn nhất)
- b Xóa snapshot nếu có
- c Ghi lại cấu hình mạng, IP, VLAN, MAC, boot mode
- d Đảm bảo Proxmox truy cập được ESXi qua mạng & account có quyền đọc VM
Add ESXi host vào Proxmox
- a Datacenter → Storage → Add → ESXi
- b Nhập ID, IP/FQDN của ESXi host
- c Nhập username/password có quyền truy cập
- d Tick Skip Certificate Verification nếu ESXi dùng cert tự ký → Add
Chọn VM cần import
- a Mở storage ESXi vừa add ở panel trái
- b Chọn tab Virtual Guests để xem danh sách VM
- c Chọn VM cần migrate, kiểm tra dung lượng disk & trạng thái
Chạy Import Wizard
- a Click Import để mở wizard
- b Chọn Target Node & storage đích cho disk
- c Chỉnh CPU, RAM, bridge network, VM name, VM ID nếu cần
- 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.
Kiểm tra sau import
- a Boot VM thử, kiểm tra network, disk controller, boot order, service
- b Cài qemu-guest-agent để Proxmox hiển thị IP & trạng thái chính xác
- c Windows: cài VirtIO driver trước khi đổi sang VirtIO SCSI
- 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.
Link tải phần mềm
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.
Upload ISO VirtIO & gắn vào VM
- a Tải
virtio-win.iso(link ở trên) → upload vào storage Proxmox: storage → Content → Upload, Content type ISO - b Chọn VM → Hardware → Add → CD/DVD Drive → chọn file
virtio-win.iso - c Boot VM (disk vẫn để IDE/SATA, chưa đổi VirtIO)
Cài driver + Guest Agent (1 bộ cài)
Cách nhanh nhất: chạy bộ all-in-one trong ISO.
- a Mở ổ CD VirtIO trong File Explorer
- b Chạy
virtio-win-guest-tools.exe→ Next → Finish (cài hết driver: viostor, vioscsi, NetKVM, Balloon, vioserial + QEMU GA) - 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.
Gỡ VMware Tools
- a Control Panel → Programs and Features → chọn VMware Tools → Uninstall
- b Restart VM khi được hỏi
Đổi disk sang VirtIO SCSI & bật Guest Agent
- a Shutdown VM. Trong Hardware: detach disk → re-add dạng SCSI, SCSI Controller = VirtIO SCSI single
- b Options → QEMU Guest Agent → Enabled
- 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
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
RHEL / Rocky / AlmaLinux / CentOS
Bật dịch vụ & kiểm tra
Sau đó trên Proxmox: VM → Options → QEMU Guest Agent → Enabled, kiểm tra tab Summary đã hiện IP.
Gỡ open-vm-tools / VMware 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)
- Import VM sang Proxmox (disk tạm để IDE/SATA).
- Boot thử bằng controller cũ để chắc VM khởi động được.
- Gắn VirtIO ISO, cài driver (storage trước → network → balloon) + QEMU GA.
- Gỡ VMware Tools / open-vm-tools.
- Đổi disk sang VirtIO SCSI, bật QEMU Guest Agent trong Options.
- 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.
Cài đặt Cockpit theo distro
Chạy với quyền root hoặc thêm sudo phía trước.
Debian / Ubuntu
RHEL / Rocky / AlmaLinux / CentOS
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.
✅ Thấy active (listening) trên port 9090 là dịch vụ đã sẵn sàng.
Mở firewall port 9090
Ubuntu/Debian (ufw)
RHEL/Rocky (firewalld)
Truy cập giao diện web
- a Mở trình duyệt:
https://<ip-server>:9090 - b Bỏ qua cảnh báo cert tự ký (Advanced → Proceed)
- c Đăng nhập bằng user Linux của hệ thống; tick "Reuse my password for privileged tasks" để có quyền admin
- 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ý:
- Tắt VM → tab Hardware → đổi disk controller về IDE/SATA tạm thời
- Boot lại → cài VirtIO driver (virtio-win.iso)
- 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ý:
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:
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