Migration Plan · Real-world Timing

Plan chuyển ESXi VM 100GB
sang Proxmox hoặc Hyper-V

Plan từng phút · HDD storage · LAN 1Gbps · Tính toán thời gian thực tế · Mermaid Gantt chart

100
GB / VM
1G
LAN bps
HDD
Storage
~90'
Per VM

1. Tóm tắt điều hành

01

Option 1 — Proxmox VE

  • ✅ Open source · license $0
  • ✅ Linh hoạt hardware (không cần HCL)
  • ✅ Có built-in cluster + HA + Ceph
  • ⏱️ Thời gian ước tính: ~85 phút/VM
  • 🛠️ Tool: vSphere export + qm importovf
02

Option 2 — Hyper-V

  • ✅ Tích hợp Windows Server
  • ✅ Phù hợp Microsoft ecosystem
  • ✅ Tools GUI thân thiện (Hyper-V Manager)
  • ⏱️ Thời gian ước tính: ~95 phút/VM
  • 🛠️ Tool: vSphere export + StarWind V2V

2. Pre-flight Checklist (chuẩn bị)

Source ESXi

  • ☐ vSphere Client/Web UI access
  • ☐ Root credentials
  • ☐ Datastore còn ≥ 1.5× VM size
  • ☐ Snapshot VM đã consolidate hết
  • ☐ VM list + IP + OS + role document
  • ☐ Maintenance window đã thông báo

Destination

  • ☐ Proxmox/Hyper-V host đã cài
  • ☐ Storage trống ≥ 2× VM size
  • ☐ Network/VLAN cấu hình OK
  • ☐ Tài khoản admin
  • ☐ Web UI accessible
  • ☐ NTP sync với source

Workstation

  • ☐ Disk trống ≥ 1.2× VM size
  • ☐ LAN 1Gbps tới cả 2 site
  • ☐ vSphere Client browser
  • ☐ StarWind V2V (Hyper-V path)
  • ☐ WinSCP / SCP để upload
  • ☐ virtio-win.iso (cho Windows VM)

Pre-flight cho VM cụ thể

  • Windows VM: Disable startup services không cần thiết · Backup System State · Set boot driver từ BIOS sang generic
  • Linux VM: Backup /etc/fstab · Note IP/DNS · Kiểm tra kernel hỗ trợ VirtIO (≥ 2.6.25)
  • Cả 2: Snapshot trước khi tắt + remove static MAC bindings + document network

3. Phương pháp tính thời gian

Bandwidth thực tế

Thông số Lý thuyết Thực tế (overhead) Lý do
LAN 1Gbps125 MB/s~95–110 MB/sTCP/IP overhead ~10–15%, switch latency
HDD 7.2K sequential150–180 MB/s~100–130 MB/sCache thrashing khi write large file
HDD RAID 5/6200–300 MB/s~100–120 MB/sParity calculation, write penalty
NFS over 1Gbps120 MB/s~80–100 MB/sNFS sync write overhead
SMB 3.0 over 1Gbps125 MB/s~90–110 MB/sSMB encryption + auth

Công thức tính

Thời gian truyền = Dung lượng VM (MB) ÷ Tốc độ thực tế (MB/s) ÷ 60 (phút)

Với 100GB = 102,400 MB:
  • Optimistic (110 MB/s): 102400 ÷ 110 ÷ 60 = ~15.5 phút
  • Realistic  (100 MB/s): 102400 ÷ 100 ÷ 60 = ~17.0 phút
  • Pessimistic ( 80 MB/s): 102400 ÷  80 ÷ 60 = ~21.3 phút

Breakdown thời gian — Per VM 100GB

OPTION 01 — PROXMOX (Total ~85 phút)

Export OVA
~22 min
22'
Upload → Proxmox
~22 min
22'
qm importovf
~15 min
15'
VM config + boot
~10 min
10'
Driver/Agent install
~16 min
16'

OPTION 02 — HYPER-V (Total ~95 phút)

Export OVA
~22 min
22'
StarWind convert VHDX
~21 min
21'
Copy → Hyper-V host
~22 min
22'
Create VM + attach
~9 min
9'
Boot + IS install
~21 min
21'
OPT 01

Option 1 — Migrate ESXi → Proxmox VE

5 phase · 85 phút/VM · Tool: vSphere + qm importovf

gantt title VM 100GB ESXi → Proxmox · LAN 1Gbps · HDD dateFormat HH:mm axisFormat %H:%M section P-1 Export Tắt VM + check snapshot :p11, 09:00, 3m Export OVF Template từ vSphere :p12, after p11, 22m section P-2 Transfer Upload OVA tới Proxmox storage :p21, after p12, 22m section P-3 Import qm importovf vào local-lvm :p31, after p21, 15m section P-4 Config Cấu hình VM (CPU/RAM/NIC) :p41, after p31, 5m Boot test VM :p42, after p41, 5m section P-5 Post Cài VirtIO drivers (Win) :p51, after p42, 10m qemu-guest-agent + final check :p52, after p51, 6m

5 Phase chi tiết

P-1

Phase 1: Export OVA từ ESXi

~25 phút · 09:00 → 09:25

  1. 1Vào vSphere Client: https://<esxi-ip>/ui → login root
  2. 2Chuột phải VM → Power → Shut Down Guest OS (chờ 2-3 phút)
  3. 3Verify Snapshots → Delete All (nếu còn)
  4. 4Chuột phải VM → Export → chọn Format: OVA (Single file)
  5. 5Trình duyệt download file VM01.ova về workstation (~22 phút cho 100GB)
P-2

Phase 2: Upload OVA lên Proxmox

~22 phút · 09:25 → 09:47

  1. 1Mở Proxmox Web UI: https://<pve-ip>:8006
  2. 2Datacenter → Node → local → tab Content
  3. 3Click Upload → Content type: OVA → Select file VM01.ova
  4. 4Chờ upload (~22 phút @ 100 MB/s thực tế)

Cách nhanh hơn: SCP trực tiếp ESXi → Proxmox (bỏ qua workstation, tiết kiệm 1 hop):

# Trên Proxmox shell
scp root@<esxi-ip>:/vmfs/volumes/datastore1/VM01/VM01.ova /var/lib/vz/template/iso/
P-3

Phase 3: Import OVA → VM

~15 phút · 09:47 → 10:02

# SSH/Shell vào Proxmox node # Tìm đường file OVA ls -lh /var/lib/vz/template/iso/VM01.ova # Import OVA vào VM ID 200 trên storage local-lvm qm importovf 200 /var/lib/vz/template/iso/VM01.ova local-lvm # Kết quả: VM 200 đã tạo với disk imported (~15 phút giải nén + convert)

⏱️ Thời gian này = giải nén OVA + convert VMDK → raw/qcow2. Trên HDD chậm hơn SSD ~2x.

P-4

Phase 4: Cấu hình + Boot test

~10 phút · 10:02 → 10:12

  1. 1VM 200 → tab Hardware → check CPU/RAM/Disk match với VM gốc
  2. 2Add Network Device → Bridge vmbr0 + Model VirtIO (paravirtualized)
  3. 3Windows VM: giữ disk controller IDE/SATA → mount virtio-win.iso làm CD-ROM
  4. 4Linux VM: đổi disk controller → SCSI + VirtIO SCSI ngay
  5. 5Options → Boot Order → Disk first
  6. 6Click Start → Console để verify boot OK
P-5

Phase 5: Post-migration cleanup

~13 phút · 10:12 → 10:25

WINDOWS VM

  1. Trong VM: Run virtio-win-gt-x64.msi (Complete)
  2. Restart VM
  3. Tắt VM → Hardware → đổi Disk controller → VirtIO SCSI
  4. Network → đổi NIC Model → VirtIO
  5. Start VM → Cài qemu-ga-x86_64.msi (từ ISO)
  6. Control Panel → uninstall VMware Tools
  7. Options → QEMU Guest Agent → Enabled

LINUX VM

  1. SSH/Console vào VM
  2. sudo apt remove --purge open-vm-tools
  3. sudo apt install qemu-guest-agent
  4. sudo systemctl enable --now qemu-guest-agent
  5. Verify /etc/fstab UUID (nếu /dev/sda → /dev/vda)
  6. Options → QEMU Guest Agent → Enabled
  7. Reboot test
OPT 02

Option 2 — Migrate ESXi → Hyper-V

5 phase · 95 phút/VM · Tool: vSphere + StarWind V2V

gantt title VM 100GB ESXi → Hyper-V · LAN 1Gbps · HDD dateFormat HH:mm axisFormat %H:%M section P-1 Export Tắt VM + verify snapshot :h11, 09:00, 3m Export OVA từ vSphere :h12, after h11, 22m section P-2 Convert StarWind: VMDK → VHDX :h21, after h12, 21m section P-3 Transfer Copy VHDX tới Hyper-V host :h31, after h21, 22m section P-4 Create VM Hyper-V Manager: New VM :h41, after h31, 5m Attach VHDX + config :h42, after h41, 4m section P-5 Boot Boot VM lần đầu :h51, after h42, 5m Cài Integration Services :h52, after h51, 8m Gỡ VMware Tools + finalize :h53, after h52, 8m
P-1

Phase 1: Export OVA từ ESXi

~25 phút · 09:00 → 09:25

Giống Option 1, Phase 1. Sau khi download OVA, giải nén bằng 7-Zip:

# Giải nén OVA (= file tar) cd C:\Migration\VM01\ # Sử dụng 7-Zip GUI hoặc command line: "C:\Program Files\7-Zip\7z.exe" x VM01.ova -oC:\Migration\VM01\extracted\ # Kết quả: VM01.ovf + VM01-disk1.vmdk
P-2

Phase 2: Convert VMDK → VHDX

~21 phút · 09:25 → 09:46

  1. 1Mở StarWind V2V Converter (free)
  2. 2Source location: Local file → chọn VM01-disk1.vmdk
  3. 3Destination location: Local file
  4. 4Destination format: Microsoft VHDX image (Hyper-V)
  5. 5Image type: VHDX growable image (Dynamic)
  6. 6Click Convert → chờ ~21 phút @ HDD

Tốc độ convert phụ thuộc disk workstation: SSD ~3-5 phút · HDD ~20-25 phút (read VMDK + write VHDX cùng lúc)

P-3

Phase 3: Copy VHDX → Hyper-V host

~22 phút · 09:46 → 10:08

# Option A: Robocopy qua SMB share (Windows native) robocopy C:\Migration\VM01\ \\HV-HOST01\C$\Hyper-V\Virtual Hard Disks\ VM01.vhdx /J /Z # Option B: BITS Transfer (cho large file, resumable) # PowerShell: Start-BitsTransfer ` -Source "C:\Migration\VM01\VM01.vhdx" ` -Destination "\\HV-HOST01\C$\Hyper-V\Virtual Hard Disks\"
P-4

Phase 4: Tạo VM trong Hyper-V Manager

~9 phút · 10:08 → 10:17

  1. 1Mở Hyper-V Manager → Action → New → Virtual Machine
  2. 2Name & Location: VM01 · D:\Hyper-V\VMs\
  3. 3Generation: Gen 1 (nếu VM gốc BIOS) hoặc Gen 2 (UEFI)
  4. 4Memory: match VM gốc + tick Dynamic Memory
  5. 5Network: vSwitch-External-01
  6. 6Connect Virtual Hard Disk → Use an existing VHD → browse tới VM01.vhdx
  7. 7Finish · VM Settings: tăng CPU cores match gốc
P-5

Phase 5: Boot + Post-migration

~21 phút · 10:17 → 10:38

Boot lần đầu có thể BSOD: driver SCSI VMware không tương thích Hyper-V. Boot Safe Mode để fix.

  1. 1Connect VM → Start → khi thấy logo Windows, giữ Shift+F8
  2. 2Safe Mode with Networking → login
  3. 3Control Panel → Programs → Uninstall VMware Tools
  4. 4Restart bình thường → Integration Services tự load (vmic*)
  5. 5Device Manager → View → Show hidden → uninstall NIC VMware E1000
  6. 6Cấu hình lại IP tĩnh trên NIC Hyper-V mới
  7. 7Verify Network adapter: Get-Service vmic* → all Running

6. So sánh 2 options

Tiêu chí Option 1 · Proxmox Option 2 · Hyper-V
Tổng thời gian (100GB)~85 phút~95 phút (+10')
Số bước thủ công5 phase, 25 step5 phase, 30 step
Tools cầnvSphere ClientvSphere + StarWind V2V + 7-Zip
License OS đích$0 (Proxmox free)Windows Server + Hyper-V license
Driver issues (Win)VirtIO (cần cài thêm)Integration Services có sẵn
Risk BSOD lần đầuThấp (giữ IDE/SATA)Trung bình
Phù hợp khiMix Linux/Win · Budget thấpMicrosoft ecosystem · AD/M365

✅ Chọn Option 1 (Proxmox) khi

  • • Ngân sách license < $5K/năm
  • • Có người biết Linux trong team
  • • Cần migrate > 20 VM (script được)
  • • Mix Linux/Windows workload
  • • Cần Ceph HCI miễn phí

✅ Chọn Option 2 (Hyper-V) khi

  • • Đã có Windows Server Datacenter
  • • Workload 100% Windows VM
  • • Integration với AD, M365, Azure
  • • Team chỉ biết Windows
  • • SCVMM/WAC đã setup sẵn

7. Migration nhiều VM — Lập kế hoạch theo wave

Với 20 VM × 100GB = 2TB total, không nên làm song song hết (nghẽn LAN). Chia wave 3-4 VM/lần:

gantt title Migration 20 VM × 100GB · 4 wave × 5 VM · LAN 1Gbps dateFormat HH:mm axisFormat %H:%M section Wave 1 (Day 1) VM01-05 (5 VM song song):w1, 09:00, 100m section Wave 2 (Day 1) VM06-10:w2, after w1, 100m section Wave 3 (Day 2) VM11-15:w3, 09:00, 100m section Wave 4 (Day 2) VM16-20:w4, after w3, 100m section Cutover DNS switch + validation:cu, after w4, 60m

Tips tối ưu

  • Order migration: non-critical → dev/test → production (đảo ngược priority)
  • Stagger upload: max 3 parallel để mỗi VM có ~33 MB/s, vẫn dùng LAN hiệu quả
  • Schedule off-hours: 22:00 → 06:00 ít người dùng → tăng tốc
  • 2 workstation parallel: 1 export OVA, 1 convert + upload — pipeline 2 stages
  • Pre-stage VHDX: convert sẵn 1 đêm trước cutover

8. Rủi ro & Rollback Plan

Rủi ro Mức Mitigation Rollback
Boot fail sau migrateHighTest 1 VM nhỏ trước · Snapshot trước importBật lại VM gốc trên ESXi
Data loss khi convertMedVerify checksum MD5 trước/sau · Giữ OVA gốcImport lại từ OVA gốc
Network mismatchMedDocument MAC + IP trước migrateCấu hình lại IP tĩnh manually
License OS bị invalidMedVolume license · Activate lạiReach out MS/Vendor activation
App config gãy (DB path)HighDocument config · Test smoke trước go-liveRestore từ backup app-level
LAN bị nghẽn cả ngàyMedSchedule off-hours · QoS trên switchTạm dừng migration, resume sau

Golden Rule

KHÔNG xóa VM gốc trên ESXi trong ít nhất 7 ngày sau khi VM mới chạy ổn định trên Proxmox/Hyper-V. Tắt VM gốc nhưng giữ để rollback nếu phát sinh.

9. Cutover Day Runbook (T-Day)

T-30 min · Pre-cutover

  • Thông báo users: "System maintenance, downtime 15-30 phút"
  • Disable user logins trên app
  • Flush DB transactions → checkpoint
  • Final snapshot VM nguồn ESXi (backup cuối)

T-0 · Cutover Window

  • Tắt VM ESXi (graceful shutdown qua VMware Tools)
  • Start VM mới trên Proxmox/Hyper-V (đã pre-staged)
  • Verify boot OK, services start
  • Cập nhật DNS A record (TTL đã hạ 60s từ trước)

T+5 min · Validation

  • Smoke test: ping, RDP/SSH, web URL, DB query
  • App health check endpoint trả 200 OK
  • Enable user logins
  • Monitor logs 30 phút đầu

T+1 hour · Post-cutover

  • Send notification: "Migration completed"
  • Update CMDB / documentation
  • Configure backup mới (PBS/Windows Backup) cho VM mới
  • Setup monitoring alert (Zabbix/Grafana)
  • Schedule decommission VM cũ sau 7 ngày
Zalo