1. Tóm tắt điều hành
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
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 1Gbps | 125 MB/s | ~95–110 MB/s | TCP/IP overhead ~10–15%, switch latency |
| HDD 7.2K sequential | 150–180 MB/s | ~100–130 MB/s | Cache thrashing khi write large file |
| HDD RAID 5/6 | 200–300 MB/s | ~100–120 MB/s | Parity calculation, write penalty |
| NFS over 1Gbps | 120 MB/s | ~80–100 MB/s | NFS sync write overhead |
| SMB 3.0 over 1Gbps | 125 MB/s | ~90–110 MB/s | SMB 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)
OPTION 02 — HYPER-V (Total ~95 phút)
Option 1 — Migrate ESXi → Proxmox VE
5 phase · 85 phút/VM · Tool: vSphere + qm importovf
5 Phase chi tiết
Phase 1: Export OVA từ ESXi
~25 phút · 09:00 → 09:25
- 1Vào vSphere Client:
https://<esxi-ip>/ui→ login root - 2Chuột phải VM → Power → Shut Down Guest OS (chờ 2-3 phút)
- 3Verify Snapshots → Delete All (nếu còn)
- 4Chuột phải VM → Export → chọn Format: OVA (Single file)
- 5Trình duyệt download file
VM01.ovavề workstation (~22 phút cho 100GB)
Phase 2: Upload OVA lên Proxmox
~22 phút · 09:25 → 09:47
- 1Mở Proxmox Web UI:
https://<pve-ip>:8006 - 2Datacenter → Node → local → tab Content
- 3Click Upload → Content type: OVA → Select file
VM01.ova - 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/
Phase 3: Import OVA → VM
~15 phút · 09:47 → 10:02
⏱️ Thời gian này = giải nén OVA + convert VMDK → raw/qcow2. Trên HDD chậm hơn SSD ~2x.
Phase 4: Cấu hình + Boot test
~10 phút · 10:02 → 10:12
- 1VM 200 → tab Hardware → check CPU/RAM/Disk match với VM gốc
- 2Add Network Device → Bridge vmbr0 + Model VirtIO (paravirtualized)
- 3Windows VM: giữ disk controller IDE/SATA → mount virtio-win.iso làm CD-ROM
- 4Linux VM: đổi disk controller → SCSI + VirtIO SCSI ngay
- 5Options → Boot Order → Disk first
- 6Click Start → Console để verify boot OK
Phase 5: Post-migration cleanup
~13 phút · 10:12 → 10:25
WINDOWS VM
- Trong VM: Run virtio-win-gt-x64.msi (Complete)
- Restart VM
- Tắt VM → Hardware → đổi Disk controller → VirtIO SCSI
- Network → đổi NIC Model → VirtIO
- Start VM → Cài qemu-ga-x86_64.msi (từ ISO)
- Control Panel → uninstall VMware Tools
- Options → QEMU Guest Agent → Enabled
LINUX VM
- SSH/Console vào VM
sudo apt remove --purge open-vm-toolssudo apt install qemu-guest-agentsudo systemctl enable --now qemu-guest-agent- Verify
/etc/fstabUUID (nếu /dev/sda → /dev/vda) - Options → QEMU Guest Agent → Enabled
- Reboot test
Option 2 — Migrate ESXi → Hyper-V
5 phase · 95 phút/VM · Tool: vSphere + StarWind V2V
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:
Phase 2: Convert VMDK → VHDX
~21 phút · 09:25 → 09:46
- 1Mở StarWind V2V Converter (free)
- 2Source location: Local file → chọn
VM01-disk1.vmdk - 3Destination location: Local file
- 4Destination format: Microsoft VHDX image (Hyper-V)
- 5Image type: VHDX growable image (Dynamic)
- 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)
Phase 3: Copy VHDX → Hyper-V host
~22 phút · 09:46 → 10:08
Phase 4: Tạo VM trong Hyper-V Manager
~9 phút · 10:08 → 10:17
- 1Mở Hyper-V Manager → Action → New → Virtual Machine
- 2Name & Location: VM01 ·
D:\Hyper-V\VMs\ - 3Generation: Gen 1 (nếu VM gốc BIOS) hoặc Gen 2 (UEFI)
- 4Memory: match VM gốc + tick Dynamic Memory
- 5Network: vSwitch-External-01
- 6Connect Virtual Hard Disk → Use an existing VHD → browse tới VM01.vhdx
- 7Finish · VM Settings: tăng CPU cores match gốc
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.
- 1Connect VM → Start → khi thấy logo Windows, giữ Shift+F8
- 2Safe Mode with Networking → login
- 3Control Panel → Programs → Uninstall VMware Tools
- 4Restart bình thường → Integration Services tự load (vmic*)
- 5Device Manager → View → Show hidden → uninstall NIC VMware E1000
- 6Cấu hình lại IP tĩnh trên NIC Hyper-V mới
- 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ông | 5 phase, 25 step | 5 phase, 30 step |
| Tools cần | vSphere Client | vSphere + 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 đầu | Thấp (giữ IDE/SATA) | Trung bình |
| Phù hợp khi | Mix Linux/Win · Budget thấp | Microsoft 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:
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 migrate | High | Test 1 VM nhỏ trước · Snapshot trước import | Bật lại VM gốc trên ESXi |
| Data loss khi convert | Med | Verify checksum MD5 trước/sau · Giữ OVA gốc | Import lại từ OVA gốc |
| Network mismatch | Med | Document MAC + IP trước migrate | Cấu hình lại IP tĩnh manually |
| License OS bị invalid | Med | Volume license · Activate lại | Reach out MS/Vendor activation |
| App config gãy (DB path) | High | Document config · Test smoke trước go-live | Restore từ backup app-level |
| LAN bị nghẽn cả ngày | Med | Schedule off-hours · QoS trên switch | Tạ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