Migrarea unui server fizic in Hyper-V (P2V) pare simpla pana iti dai seama ca exista 12 capcane care pot strica weekend-ul.
Etape implementare P2V corecta
- Audit pre-migrare — inventar aplicatii, dependinte, drivere, agenti, conectari storage extern, licente legate de hardware
- Curatare server sursa — defragmentare, dezactivare servicii nerelevante, verificare integritate disk
- Alegerea metodei — Disk2VHD, Veeam Agent for Windows, MVMC (depind de OS, downtime acceptat, dimensiune)
- Sizing VM — calcul vCPU/RAM bazat pe utilizare reala, NU pe ce era fizic (overprovisioning = risipa)
- Generation 1 vs 2 — Gen 2 e standardul modern (UEFI, Secure Boot), dar nu toate OS-urile vechi suporta
- Network — VLAN, MAC address (atentie la software MAC-licensed), bridge config
- Storage — VHDX dynamic vs fixed, plasament pe CSV, deduplicare ReFS pentru economie spatiu
Provocari tipice intalnite
Driver-ele ramase de pe hardware-ul vechi cauzeaza BSOD la primul boot. Aplicatii legate de hardware ID sau dongle USB necesita solutii custom (USB passthrough, license re-issuance). Antivirus / backup agents vechi trebuie reconfigurati cu config nou pentru VM.
Decizii arhitecturale
Decidem impreuna cu clientul: standalone Hyper-V (simplu, 1 nod), Failover Cluster cu Cluster Shared Volume (HA real), sau Storage Spaces Direct (S2D) hyperconverged (3+ noduri cu storage local agregat). Fiecare are cost vs HA tradeoff.
Pas critic: rollback plan
Inainte de orice migrare, pastram serverul fizic intact pentru rollback rapid daca apare ceva critic. Migrare = test 24h pe VM, validare functionalitate completa, apoi cutover oficial. Server fizic vechi - decomission abia dupa 1 saptamana.
Ce livram
VM functional in productie cu performante mai bune decat originalul, agent backup nou activ, monitoring integrat, documentatie completa cu diagrame retea, runbook DR pentru restore rapid, training echipa client.
Exemplu: P2V cu Disk2VHD
Conversia unui server fizic Windows in VM Hyper-V Gen2:
# 1. P2V cu Disk2VHD (Sysinternals) — VHDX pt Gen2
disk2vhd.exe C: D: C:\out\server.vhdx -accepteula
# 2. creaza VM Gen2 in Hyper-V (PowerShell)
New-VM -Name 'SRV-MIG' -Generation 2 -MemoryStartupBytes 8GB `
-VHDPath 'D:\VMs\server.vhdx' -SwitchName 'vSwitch'
# 3. la primul boot: sterge driverele fantoma de pe hardware-ul vechi
# (Device Manager -> Show hidden devices -> uninstall)
P2V pas cu pas (Disk2VHD)
Capturezi discurile serverului fizic intr-un VHDX:
# CLI, VHDX pt Gen2, fara volume shadow blocante
disk2vhd.exe C: D: C:\out\srv.vhdx -accepteula
# creezi VM Gen2 in Hyper-V
New-VM -Name SRV-MIG -Generation 2 -MemoryStartupBytes 8GB `
-VHDPath D:\VMs\srv.vhdx -SwitchName vSwitch
Set-VMProcessor SRV-MIG -Count 4
Curatare drivere + boot fix
La primul boot scoti driverele fantoma si repari boot-ul daca e cazul:
# in VM (Windows), arata si scoate device-urile ascunse de pe HW-ul vechi
set DEVMGR_SHOW_NONPRESENT_DEVICES=1
start devmgmt.msc # View -> Show hidden devices -> uninstall
# reparare boot UEFI daca nu porneste
bcdboot C:\Windows /s S: /f UEFI
Cluster Hyper-V (HA real)
Pui VM-ul intr-un failover cluster ca sa supravietuiasca la cadere de nod:
Install-WindowsFeature Failover-Clustering -IncludeManagementTools
Test-Cluster -Node srv1,srv2
New-Cluster -Name HV-CL -Node srv1,srv2 -StaticAddress 10.0.0.50
# Storage Spaces Direct (hyperconverged)
Enable-ClusterStorageSpacesDirect
Add-ClusterVirtualMachineRole -VMName SRV-MIG
Validare performanta post-migrare
Confirmi ca VM-ul merge bine, nu doar ca porneste:
Get-VM SRV-MIG | Get-VMProcessor
Get-Counter '\Hyper-V Hypervisor Virtual Processor(*)\% Guest Run Time'
# integrare services + dynamic memory
Get-VMIntegrationService SRV-MIG
Set-VMMemory SRV-MIG -DynamicMemoryEnabled $true -MinimumBytes 2GB -MaximumBytes 16GB