Source Platform
VMware vSphere 8
ESXi · vCenter · vSAN · NSX
Target Platform
Microsoft Hyper-V
Hyper-V · SCVMM · Azure Stack HCI

Microsoft Hyper-V
vs vSphere 8 · Migration Guide

A complete operational reference for Microsoft Hyper-V on Windows Server 2022 / Azure Stack HCI — architecture, management, networking, storage, HA/live migration, and PowerShell administration. Side-by-side comparison with VMware vSphere 8. Detailed IT operational impact analysis for migrating from vSphere 8 to Hyper-V.

Hyper-V 2022 SCVMM 2022 Azure Stack HCI vSphere 8.0.3 vSphere → Hyper-V Migration Impact PowerShell / WinRM
HV ARCH

Hyper-V Architecture

🏗️ Core Architecture
HV
Type 1 Hypervisor — Hyper-V is a bare-metal (Type 1) hypervisor that sits between the hardware and operating system. The Windows Server OS itself runs in a privileged VM called the Root Partition (Parent Partition). Unlike ESXi, the management OS (Windows) runs above the hypervisor in the root partition
RP
Root Partition — the privileged Windows Server instance that hosts the Hyper-V management stack. Has direct hardware access via the VMBus. Runs Hyper-V Manager, SCVMM agent, WMI providers. Unlike ESXi, you manage root partition like any Windows Server — GPO, updates, AV, etc.
GP
Guest Partitions (VMs) — child partitions running guest OSes. Communicate with hardware via VMBus and synthetic drivers. VMs have no direct hardware access — all I/O mediated by hypervisor. Generation 1 (BIOS/IDE) vs Generation 2 (UEFI/SCSI) VMs
VB
VMBus — high-performance inter-partition communication channel. Allows guest VMs to use synthetic NIC, SCSI, and other high-speed virtual devices bypassing hardware emulation. Requires Hyper-V Integration Services (Linux: linux-hyperv / hyperv-daemons)
VS
Virtual Switch (Hyper-V vSwitch) — software switch within the root partition. External, Internal, and Private types. Bound to physical NIC team via NIC Teaming or SET (Switch Embedded Teaming). SET is the preferred teaming for Hyper-V — embedded in the vSwitch itself
📐 Hyper-V Scale Limits — Windows Server 2022
Max vCPUs per VM240 vCPUs
Max RAM per VM12 TB
Max VMs per host1,024 VMs
Max vNICs per VM12 synthetic + 4 legacy NIC
Max SCSI controllers4 per VM · 64 disks per controller
Max VHDX size64 TB per VHDX
Max logical procs/host2,048 logical processors
Max RAM per host48 TB physical RAM
Max cluster nodes64 nodes (Windows Server Failover Cluster)
Max cluster VMs8,000 per cluster
Storage Spaces Direct400 drives · 4 PB per cluster
Generation 2 VMs (recommended): UEFI firmware, Secure Boot, SCSI boot, NIC, faster boot. Only VMs in Gen 2 format support modern security features. Gen 1 = legacy BIOS only.
🖥️ Hyper-V Role (Windows Server)

Install the Hyper-V role on Windows Server 2022. The host OS becomes the root partition. Suitable for existing Windows Server infrastructure. Managed via Hyper-V Manager, PowerShell, or SCVMM.

Install-WindowsFeature -Name Hyper-V -IncludeManagementTools -Restart
💾 Hyper-V Server (Free)

Standalone free hypervisor — minimal Windows Server Core with only the Hyper-V role. No GUI. No Windows Server license cost. Limited to PowerShell and WinRM remote management. Note: reaching end of support.

☁️ Azure Stack HCI

Microsoft's HCI platform combining Hyper-V, Storage Spaces Direct, SDN, and Azure integration. Direct competitor to VMware VCF. Subscription-based licensing. Managed via Windows Admin Center + Azure Arc.

VMs

Virtual Machine Management

⚙️ VM Configuration — Key Settings
VM disk formatVHDX (preferred) · VHD (legacy Gen 1 only)
VHDX typesFixed (best perf) · Dynamic (thin) · Differencing (snapshot)
Virtual NIC typeSynthetic (preferred) · Legacy (emulated for PXE)
CPU virtualizationvCPU · NUMA topology · CPU hot-add (limited)
Dynamic MemoryStartup / Minimum / Maximum MB with weight
Memory hot-addGen 2 VMs with supported guest OS only
Secure BootGen 2 only — Microsoft or UEFI CA template
TPM 2.0 (vTPM)Gen 2 — enables BitLocker inside VM
Nested virtualizationSet-VMProcessor -ExposeVirtualizationExtensions $true
VM checkpointsStandard (crash-consistent) · Production (VSS-based)
Integration ServicesTime sync · Heartbeat · Guest Shutdown · Data Exchange · VSS
💻 Core VM PowerShell
VM lifecycle operations
# Create new VM (Gen 2) New-VM -Name "WebServer01" -Generation 2 ` -MemoryStartupBytes 8GB ` -Path "C:\VMs" ` -NewVHDPath "C:\VMs\WebServer01.vhdx" ` -NewVHDSizeBytes 100GB # Set vCPUs and memory Set-VM -Name "WebServer01" -ProcessorCount 4 Set-VMMemory -VMName "WebServer01" -DynamicMemoryEnabled $true ` -MinimumBytes 4GB -MaximumBytes 16GB # Connect to virtual switch Add-VMNetworkAdapter -VMName "WebServer01" -SwitchName "ProductionSwitch" # Power operations Start-VM -Name "WebServer01" Stop-VM -Name "WebServer01" -Force Save-VM -Name "WebServer01" # suspend to disk # List VMs with status Get-VM | Select Name, State, CPUUsage, MemoryAssigned
📸 Checkpoints (Snapshots) — Hyper-V
S
Standard Checkpoint — captures VM state, memory, and saved state. Created instantly but not application-consistent (no VSS). Use only when VM can tolerate a crash-consistent recovery. Checkpoint-VM -Name "WebServer01" -SnapshotName "Pre-Patch"
P
Production Checkpoint — uses VSS inside the guest to create application-consistent snapshots. Requires Integration Services. Preferred for production VMs — SQL, Exchange, AD. Set-VM -Name VM1 -CheckpointType Production
W
Checkpoint sprawl risk — differencing disk grows with every checkpoint. Long-running checkpoints cause performance degradation. Keep checkpoints under 72 hours in production. Get-VMSnapshot -VMName * | Where {$_.CreationTime -lt (Get-Date).AddDays(-3)}
Checkpoint operations
# Create production checkpoint Set-VM -Name "WebServer01" -CheckpointType Production Checkpoint-VM -Name "WebServer01" -SnapshotName "Pre-Patch-$(Get-Date -f 'yyyyMMdd')" # List all checkpoints Get-VMSnapshot -VMName "WebServer01" # Restore checkpoint Restore-VMSnapshot -VMName "WebServer01" -Name "Pre-Patch" -Confirm:$false # Remove checkpoint Remove-VMSnapshot -VMName "WebServer01" -Name "Pre-Patch"
NETWORK

Hyper-V Networking

🌐 Virtual Switch Types
E
External Virtual Switch — connected to a physical NIC. VMs on this switch can reach the physical network. The root partition can also use it. Most common for production. New-VMSwitch -Name "External" -NetAdapterName "Ethernet" -AllowManagementOS $true
I
Internal Virtual Switch — allows communication between VMs and the root partition only. No access to physical network. Good for management communication within the host. New-VMSwitch -Name "Internal" -SwitchType Internal
P
Private Virtual Switch — VM-to-VM only, completely isolated. Root partition cannot communicate. Good for isolated test networks. New-VMSwitch -Name "Private" -SwitchType Private
SET
Switch Embedded Teaming (SET) — NIC teaming built directly into the Hyper-V virtual switch. Supports RDMA (RoCE/iWARP). Replaces Windows NIC Teaming for Hyper-V hosts. Required for S2D. New-VMSwitch -Name "SET-Switch" -NetAdapterName "NIC1","NIC2" -EnableEmbeddedTeaming $true
🔧 Advanced Networking — SR-IOV & SDN
SR
SR-IOV (Single Root I/O Virtualization) — bypass the vSwitch entirely. VM connects directly to a physical NIC Virtual Function. Extremely low latency for high-throughput workloads. Requires SR-IOV capable NIC and BIOS. Enable-VMNetworkAdapterSriov -VMName VM1 -VMNetworkAdapterName "NIC1"
RD
RDMA over vSwitch (RoCE) — Remote Direct Memory Access over Converged Ethernet. Required for Storage Spaces Direct (S2D) for NVMe-over-Fabric performance. SMB Direct uses RDMA. Enables lossless storage traffic at 25/100GbE speeds
SDN
Software-Defined Networking (SDN) — Microsoft's NSX equivalent for Hyper-V. Requires Network Controller role (SCVMM or Windows Admin Center). Provides micro-segmentation, load balancing, VPN. Only available via Azure Stack HCI or SCVMM — not bare Hyper-V
V
VLAN Tagging — configure per VM NIC or on the vSwitch port. Guest-level or host-managed VLAN tagging both supported. Set-VMNetworkAdapterVlan -VMName VM1 -VMNetworkAdapterName "NIC1" -Access -VlanId 100
STORAGE

Hyper-V Storage

💾 Storage Types
VX
VHDX Files — virtual disk files on NTFS/ReFS volumes. Fixed size (pre-allocated) or Dynamic (thin). 64TB max. ReFS enables fast cloning for VHDX operations on Storage Spaces Direct. Use Fixed VHDX for production — predictable performance, no fragmentation
PT
Pass-Through Disks — VM gets direct access to a physical disk or LUN. No VHDX overhead. Performance identical to bare-metal. Cannot be snapshotted. Use for latency-sensitive workloads — SQL Server, heavy I/O databases
S2
Storage Spaces Direct (S2D) — Microsoft's HCI storage, comparable to vSAN. Pools NVMe/SSD/HDD across cluster nodes. Provides shared storage without a SAN. Requires Windows Server Datacenter or Azure Stack HCI. Enable-ClusterStorageSpacesDirect -CacheMode ReadWrite
SM
SMB 3.x Direct (Live Storage Migration) — Hyper-V stores VM files on SMB 3.x file shares (Scale-Out File Server). Allows live storage migration without SAN. SMB Direct uses RDMA for performance. \\sofs-server\share — UNC path for VM storage
FC
iSCSI / Fibre Channel / NVMe-oF — traditional block storage. iSCSI: software initiator built into Windows. FC: HBA required. NVMe-oF: supported in Server 2022. Create shared VHDX on shared CSVFS for clustered VMs
🔧 Cluster Shared Volumes (CSV)

Cluster Shared Volumes (CSV) allow multiple Hyper-V cluster nodes to simultaneously read and write to the same NTFS or ReFS volume. This is how clustered VMs (Highly Available VMs) are stored — analogous to VMFS datastores shared across ESXi hosts in vSphere.

CSV locationC:\ClusterStorage\Volume1\ on each cluster node
FilesystemNTFS or ReFS (ReFS preferred for S2D)
AccessAll cluster nodes mount simultaneously — coordinator model
I/O pathRedirected I/O (via coordinator) or Direct I/O (local access)
FailoverCSV ownership transfers to another node on coordinator failure
CSV = Hyper-V's equivalent of VMware VMFS. CSV enables live migration (like vMotion) and VM failover (like vSphere HA) by giving all cluster nodes shared read-write access to the same storage volume.
HA

High Availability & Live Migration

⚡ HA & Live Migration — vSphere vs Hyper-V Side-by-Side
ESXi + vCenter
vSphere HA — monitors hosts via Fault Domain Manager. On host failure, VMs restart on surviving hosts within cluster. Master/slave election via datastore heartbeats.

vMotion — live VM migration between hosts while running. Zero downtime. Uses shared storage (VMFS/NFS/vSAN). Requires vMotion VMkernel adapter on dedicated network.

DRS — automatic VM load balancing across cluster. Fully Automated, Partially Automated, or Manual. Triggers vMotion to rebalance.

Storage vMotion — live migration of VM disks between datastores. No downtime.

Cross-vCenter vMotion — migrate VMs between vCenter instances (requires ELM or temporary network connectivity).

  • HA restart time: typically 1–3 minutes
  • HA uses: dedicated FDM agent on every host
  • Admission control reserves capacity for N host failures
WSFC + Hyper-V
Windows Server Failover Cluster (WSFC) — HA platform for Hyper-V. Cluster health via network heartbeat + witness (file share, disk, or cloud). On node failure, VMs restart as Failover Cluster resources on surviving nodes.

Live Migration — move running VMs between Hyper-V cluster nodes. Requires Kerberos or CredSSP, shared storage (CSV) or SMB 3.x. Supports compression and SMB Direct (RDMA) for performance.

No native DRS equivalent — Hyper-V has no automatic load balancing. SCVMM provides Dynamic Optimization (limited DRS equivalent). Requires SCVMM license.

Storage Live Migration — move VHDX files while VM runs. Source and destination can be different storage paths.

Cross-host Live Migration (no shared storage) — "Shared Nothing Live Migration" — migrate VMs between hosts with NO shared storage. Copies VHDX over network to destination.

  • HA restart time: typically 30–120 seconds
  • HA uses: WSFC cluster service on every node
  • Quorum determines cluster health — needs odd votes
📋 Failover Cluster Configuration
Cluster creationNew-Cluster -Name HVCluster -Node node1,node2 -StaticAddress 10.0.0.50
Witness typesFile Share · Disk · Cloud (Azure) — provides tie-breaking vote
QuorumMajority of votes must be alive for cluster to function
Cluster validationTest-Cluster — run before creating cluster; required for support
CSV creationAdd-ClusterSharedVolume -Name "Cluster Disk 1"
HA VM creationAdd-ClusterVirtualMachineRole -VMName WebServer01
Failover testMove-ClusterVirtualMachineRole -Name WebServer01 -Node node2
⚡ Live Migration PowerShell
Live migration operations
# Live migrate VM to another node Move-VM -Name "WebServer01" -DestinationHost "hyperv02" ` -IncludeStorage -DestinationStoragePath "C:\VMs" # Live migrate just the VM (shared CSV storage) Move-ClusterVirtualMachineRole -Name "WebServer01" -Node "hyperv02" # Storage live migration only Move-VMStorage -VMName "WebServer01" ` -DestinationStoragePath "D:\VMs" # Shared Nothing Live Migration (no shared storage) Move-VM -Name "WebServer01" -DestinationHost "hyperv02" ` -DestinationStoragePath "\\hyperv02\VMStorage"
SCVMM

System Center Virtual Machine Manager (SCVMM)

🏗️ SCVMM Architecture & Capabilities

System Center VMM is the management layer for Hyper-V at scale — the rough equivalent of vCenter Server. It provides centralized management, VM templates, networking profiles, storage management, and Dynamic Optimization (limited DRS).

L
Library — centralized repository for VM templates, ISOs, VHDX templates, driver files, and scripts. Analogous to vCenter Content Library. Physical shares registered as SCVMM Library Servers
T
VM Templates — hardware profile + guest OS profile + VM template. Deploy standardized VMs rapidly. Supports sysprep for Windows and kickstart for Linux. Analogous to vSphere VM Templates with guest customization specs
D
Dynamic Optimization — automatic VM placement and live migration for load balancing. Triggers on CPU/memory thresholds. Limited compared to vSphere DRS. Not real-time — runs on a configurable interval (default 10 min)
C
Clouds — resource pools in SCVMM. Self-service portal for users to deploy VMs within defined capacity limits. Analogous to vSphere Resource Pools + vCenter Permissions. SCVMM Self-Service Portal allows user-driven VM deployment
SDN
Network Controller integration — SCVMM provides the management layer for Microsoft SDN. Configure virtual networks, load balancers, and gateways centrally. Requires Network Controller deployment — comparable to NSX Manager
🔑 SCVMM vs vCenter — Key Differences
CapabilityvCenterSCVMM
DeploymentLinux appliance (vCSA)Windows Server + SQL DB
HA/ClusteringvCSA native HAWSFC + SQL AlwaysOn
DatabaseEmbedded PostgreSQLExternal SQL Server (required)
Scale2,500 hosts / 45,000 VMs~4,000 hosts / ~80,000 VMs
VM load balancingDRS (real-time, continuous)Dynamic Optimization (interval-based)
Network SDNNSX (integrated)Network Controller (separate)
Storage managementvSAN + VVSA + vStorageS2D + SMB + iSCSI/FC
LicensingvSphere Enterprise PlusSystem Center (separate)
Web UIHTML5 vSphere ClientSCVMM Console (Windows app)
REST APIFull REST + SOAPSCVMM API via PowerShell only (limited REST)
POWERSHELL

Hyper-V PowerShell Administration

💻 Host & Inventory Management
Host and VM queries
# Get all VMs with resource usage Get-VM | Select Name, State, CPUUsage, MemoryAssigned, ` @{N='RAM_GB';E={[math]::Round($_.MemoryAssigned/1GB,1)}}, @{N='Uptime';E={$_.Uptime}} # Get VMs on remote Hyper-V host Get-VM -ComputerName "hyperv02" # Find VMs with checkpoints older than 7 days Get-VMSnapshot -VMName * | Where-Object {$_.CreationTime -lt (Get-Date).AddDays(-7)} | Select VMName, Name, CreationTime # VM resource usage across all hosts Invoke-Command -ComputerName hyperv01,hyperv02,hyperv03 -ScriptBlock { Get-VM | Select Name, State, CPUUsage, MemoryDemand } | Export-Csv "vm-inventory.csv" -NoTypeInformation # Get virtual switch configuration Get-VMSwitch | Select Name, SwitchType, NetAdapterInterfaceDescription # Get NIC information for a VM Get-VMNetworkAdapter -VMName "WebServer01"
⚙️ Configuration & Maintenance
VHDX and storage operations
# Resize VHDX (online when supported) Resize-VHD -Path "C:\VMs\WebServer01.vhdx" -SizeBytes 200GB # Compact dynamic VHDX (free unused space) Optimize-VHD -Path "C:\VMs\WebServer01.vhdx" -Mode Full # Convert VHD to VHDX Convert-VHD -Path "C:\VMs\old.vhd" -DestinationPath "C:\VMs\new.vhdx" # Enable Replication (Hyper-V Replica) Enable-VMReplication -VMName "WebServer01" ` -ReplicaServerName "replica-server" ` -ReplicaServerPort 443 -AuthenticationType Kerberos ` -ReplicationFrequencySec 300 # Export VM (offline or running) Export-VM -Name "WebServer01" -Path "\\fileserver\vm-exports" # Import VM Import-VM -Path "\\fileserver\vm-exports\WebServer01\Virtual Machines\*.vmcx"
COMPARISON

vSphere 8 vs Hyper-V — Full Platform Comparison

📊 Platform Feature Comparison Matrix
Category VMware vSphere 8 Microsoft Hyper-V 2022 Migration Impact
Core Hypervisor
ArchitectureType 1, VMkernel (no Windows)Type 1, root partition = WindowsRoot partition adds attack surface + Windows patch cycle
Max vCPUs/VM768 vCPUs (HW v21)240 vCPUsLimited — large VMs may need redesign
Max RAM/VM24 TB12 TBHalf vSphere capacity — most VMs unaffected
VM firmwareEFI/BIOS both supportedGen 1 (BIOS) / Gen 2 (UEFI)VMs convert to Gen 1 or Gen 2 — test boot
Management
Central managementvCenter (Linux appliance)SCVMM (Windows + SQL)Major — new management stack, new learning curve
Web UIHTML5 vSphere ClientWindows Admin Center / SCVMM ConsoleSignificant retraining required
REST APIFull REST API + PowerCLIPowerShell + limited REST (SCVMM)Rewrite all automation scripts
Inventory modelDatacenter / Cluster / Folder / VMHost / Cluster / VMFolders and tags must be recreated as SCVMM constructs
HA & Availability
Host HAvSphere HA (FDM)WSFC (Windows Server Failover Cluster)Different HA config — quorum witness required
HA restart time~1–3 minutes~30–120 secondsHyper-V faster for some workloads
Load balancingDRS (real-time, continuous)Dynamic Optimization (interval, SCVMM only)Major gap — no real-time DRS equivalent
Live migrationvMotion — zero downtimeHyper-V Live Migration — near-zero downtimeComparable capability
FT (zero RPO/RTO)vSphere FT (logging)No equivalent — Hyper-V Replica (async)FT-dependent workloads need redesign
Networking
SDNNSX (integrated)Network Controller (SCVMM / WAC)NSX-to-SDN is complex — no 1:1 mapping
Distributed switchvDS — vCenter managedNo distributed switch — per-host vSwitchNo central network config — manage per-host or via SCVMM
Micro-segmentationNSX DFW (vNIC level)Network Controller ACLs / SDN FWSDN must be deployed for parity — complex
NIC teamingVDS LACP / load balancing policiesSET (Switch Embedded Teaming)Different teaming model — reconfigure uplinks
Storage
HCI storagevSAN ESA (NVMe-only)Storage Spaces Direct (S2D)Equivalent capability — different config model
Shared storage modelVMFS datastoreCluster Shared Volumes (CSV)Conceptually similar — different tooling
VM disk formatVMDKVHDXAll VMDKs must be converted to VHDX
Storage policiesSPBM per-VMStorage QoS per VHDXRedefine storage policies per workload
Licensing & Cost
Hypervisor licensevSphere (per-core or subscription)Included with Windows Server DatacenterHyper-V included — significant cost reduction potential
Management toolvCenter (subscription required)SCVMM (System Center license)SCVMM cost vs vCenter cost — evaluate
HCI licensingvSAN Ent+ or VCFAzure Stack HCI (subscription/per-core)Azure Stack HCI has monthly Azure subscription cost
🔄 Terminology Mapping — vSphere to Hyper-V
  • ESXi Host — bare-metal hypervisor node
  • vCenter Server — centralized management
  • vSphere Cluster — group of ESXi hosts
  • VMDK — VM disk format
  • VMFS Datastore — shared storage volume
  • VMX file — VM configuration
  • vDS (Distributed Switch)
  • Port Group — network assignment
  • VMkernel Adapter (vmk)
  • vMotion — live VM migration
  • vSphere HA — automatic restart
  • DRS — load balancing
  • vSphere FT — continuous HA
  • vSAN — HCI storage
  • NSX DFW — micro-segmentation
  • Snapshot
  • Content Library
  • Resource Pool
  • VM Hardware Version
  • VMware Tools
  • Hyper-V Host — Windows Server + Hyper-V role
  • SCVMM / Windows Admin Center
  • Failover Cluster — WSFC node group
  • VHDX — VM disk format
  • Cluster Shared Volume (CSV)
  • VMCX file — VM configuration
  • Per-host vSwitch (no distributed)
  • VM Network / VLAN tag
  • Host vNIC / Management OS NIC
  • Live Migration
  • Failover Cluster HA
  • Dynamic Optimization (SCVMM only)
  • Hyper-V Replica (async, ~5 min RPO)
  • Storage Spaces Direct (S2D)
  • Network Controller ACL / SDN
  • Checkpoint
  • SCVMM Library
  • SCVMM Cloud / User Role quota
  • VM Generation (Gen 1 / Gen 2)
  • Hyper-V Integration Services
MIGRATION

vSphere 8 → Hyper-V: Migration Overview

Phase 1
Assessment & Planning
VM inventory, dependency mapping, licensing evaluation, target architecture design, tool selection
Phase 2
Target Build
Hyper-V hosts deployed, WSFC configured, SCVMM installed, networking & storage configured
Phase 3
Pilot Migration
Migrate non-critical VMs, validate VHDX conversion, test application behavior, update runbooks
Phase 4
Wave Migration
Migrate production workloads in waves by application tier. Validate each wave before proceeding.
Phase 5
Cutover & Decommission
Final DNS/IP cutover, monitoring validation, ESXi host decommission, vCenter/NSX removal
Phase 6
Stabilize
Performance tuning, team training, automation rebuild, documentation update, backup validation
🔧 VM Conversion — VMDK to VHDX
MS
Microsoft Virtual Machine Converter (MVMC) — free Microsoft tool (deprecated). Converts VMware VMs to Hyper-V format. Windows guest OS only. No longer updated — use for simple migrations. Offline conversion — VM must be powered off
GS
StarWind V2V Converter (Free) — converts between VMDK/VHDX/VHD/RAW. Supports online and offline conversion. Widely used for simple VM migrations. GUI-based. starwindsoftware.com/starwind-v2v-converter — free download
SY
Syniti Migrate (Commercial) — enterprise VM migration platform. Supports live and offline migration between vSphere and Hyper-V. Minimal downtime. Use for large-scale enterprise migrations with SLA requirements
AZ
Azure Migrate — Microsoft's free migration platform. Discovers VMware VMs, analyzes dependencies, and migrates to Azure. Can migrate to on-premises Hyper-V via Azure Site Recovery. Best for Azure destination — works for on-prem HCI via ASR
QC
QEMU-IMG / DiskPart (Manual) — PowerShell-based manual conversion. Convert-VHD cmdlet converts VHD to VHDX. QEMU-img converts VMDK to VHDX. Full control, no tool cost. qemu-img convert -f vmdk -O vhdx vm.vmdk vm.vhdx
⚙️ Conversion Process — VMDK to VHDX
1
Prepare the VM in vSphere
Uninstall VMware Tools. Remove VMware-specific hardware (VMXNET3 → E1000e for conversion, then update after). Shutdown cleanly. Take final snapshot for rollback.
2
Export VMDK from vSphere
Export VM as OVA/OVF, or copy VMDK files directly from VMFS datastore. Flatten any snapshots first — vmkfstools -i src.vmdk flat.vmdk
3
Convert VMDK to VHDX
Use StarWind V2V, qemu-img, or Microsoft tools. Verify integrity of converted disk. For Windows VMs, the VHDX will boot but may need driver updates post-conversion.
4
Create VM in Hyper-V
Create new VM (Gen 2 for Windows), attach converted VHDX. Configure vCPU, memory, connect to virtual switch. For Linux VMs: ensure GRUB is configured for Hyper-V boot.
5
Install Integration Services & Test
Power on VM. Install Hyper-V Integration Services (Windows: via update or ISO; Linux: already in kernel). Install Hyper-V synthetic NIC drivers. Validate application function.
OPS IMPACT

IT Operational Impact — vSphere to Hyper-V

📊 Impact Assessment by Domain
Management tooling (vCenter → SCVMM/WAC)
CRITICAL
Automation & scripting rebuild (PowerCLI → HV PS)
CRITICAL
Networking — NSX policy replacement
HIGH
Staff retraining — vSphere expertise lost
HIGH
Backup tool reconfiguration
HIGH
Monitoring & alerting tool updates
HIGH
VM migration (VMDK → VHDX conversion)
MEDIUM
Storage reconfiguration (VMFS → CSV)
MEDIUM
Licensing and contract changes
MEDIUM
Hardware compatibility (most servers work)
LOW
VM guest OS (minimal driver changes)
LOW
⛔ Critical Operational Gaps to Plan For
!
No real-time DRS equivalent — Hyper-V has no continuous, automatic load balancing. SCVMM Dynamic Optimization runs every N minutes. Manual vMotion or scripted migration required for load balancing. Impact: potential VM density imbalance during peak hours
!
No Fault Tolerance (FT) equivalent — vSphere FT provides synchronous VM replication with zero RPO/RTO. Hyper-V Replica is asynchronous (minimum ~5 minute RPO). VMs using FT need a different HA strategy. Impact: FT-protected workloads lose zero-downtime guarantee
!
NSX micro-segmentation requires full SDN stack — DFW equivalent requires deploying Network Controller + SDN. This is a major infrastructure project, not a simple config change. Impact: security posture may regress during migration if SDN not ready
!
Root partition = Windows Server overhead — Hyper-V hosts run a full Windows Server instance that requires patching, AV, GPO, monitoring, and reboots separate from VM workloads. ESXi had none of this. Impact: increased OS patching scope, potential host reboots for Windows updates
⚠️ Operational Changes Required
C
Change management processes — vSphere change tickets (vMotion, DRS rule changes, snapshot management) all need new Hyper-V equivalents. Update ITSM templates. Estimated rework time: 2–4 weeks for ITSM template updates
M
Monitoring reconfiguration — vSphere-specific monitoring (vROps, vCenter alarms, ESXTOP metrics) all need Hyper-V equivalents. Performance counter names differ. Rebuild all dashboards and alert thresholds in new monitoring tools
B
Backup solution update — Veeam, Commvault, and Rubrik all support both platforms but require Hyper-V agents/proxies separate from vSphere ones. Reconfigure backup jobs and test restores. Validate recovery time objectives with new backup agent before migration
👥 Team Skills Gap — vSphere Expertise vs Hyper-V Requirements
What the team knows
  • vSphere Client / vCenter navigation
  • PowerCLI scripting and automation
  • VMware HA/DRS/vMotion concepts
  • vSAN management and health monitoring
  • NSX DFW policy management
  • ESXi host management (esxcli, esxtop)
  • VMFS datastore management
  • vSphere networking (vDS, port groups)
  • Snapshot lifecycle management
  • VCF lifecycle / SDDC Manager
  • vROps performance monitoring
What they need to learn
  • SCVMM Console / Windows Admin Center
  • Hyper-V PowerShell module (Get-VM, etc.)
  • WSFC / Failover Cluster Manager
  • Storage Spaces Direct / S2D management
  • Network Controller / SDN configuration
  • Hyper-V host management (Windows Server)
  • CSV / ReFS / SMB Direct storage
  • Hyper-V vSwitch + SET teaming
  • Checkpoint vs Hyper-V Replica
  • Azure Stack HCI / Arc integration
  • Performance Monitor / PAL counters
TOOLS

Migration Tools & Scripts

⚙️ PowerShell Migration Helpers
Inventory VM data from vSphere before migration
# On vSphere — export full inventory for migration planning Connect-VIServer -Server vcenter.domain.com Get-VM | Select Name, PowerState, NumCpu, MemoryGB, @{N='DiskGB';E={[math]::Round(($_ | Get-HardDisk | Measure-Object -Property CapacityGB -Sum).Sum,1)}}, @{N='Network';E={($_ | Get-NetworkAdapter).NetworkName -join ','}}, @{N='OS';E={$_.ExtensionData.Config.GuestFullName}}, @{N='Tools';E={$_.ExtensionData.Guest.ToolsVersionStatus}}, @{N='Host';E={$_.VMHost.Name}} | Export-Csv "vsphere-inventory-for-migration.csv" -NoTypeInformation
Build matching VMs on Hyper-V from inventory CSV
# On Hyper-V — create VMs from inventory CSV Import-Csv "vsphere-inventory-for-migration.csv" | ForEach-Object { $vm = $_ New-VM -Name $vm.Name -Generation 2 ` -MemoryStartupBytes ([int]$vm.MemoryGB * 1GB) ` -Path "C:\ClusterStorage\Volume1\VMs" ` -NoVHD # VHDX will be attached after conversion Set-VMProcessor -VMName $vm.Name -Count [int]$vm.NumCpu Add-VMNetworkAdapter -VMName $vm.Name -SwitchName "ProductionSwitch" }
🔄 VMDK to VHDX Conversion Script
Bulk VHDX import after qemu-img conversion
# Convert VMDK to VHDX using qemu-img (run on Windows with qemu installed) Get-ChildItem "\\vsan-share\exports" -Filter "*.vmdk" | Where-Object {$_.Name -notmatch "flat|s\d{6}"} | # skip flat/snapshot files ForEach-Object { $src = $_.FullName $dest = "C:\VHDXs\$($_.BaseName).vhdx" Write-Host "Converting $($_.Name)..." qemu-img convert -f vmdk -O vhdx -o subformat=dynamic $src $dest Write-Host "Done: $dest" } # Attach converted VHDX to existing VM on Hyper-V Add-VMHardDiskDrive -VMName "WebServer01" ` -ControllerType SCSI -ControllerNumber 0 ` -Path "C:\VHDXs\WebServer01.vhdx" # Set boot order (Gen 2 VMs) $bootdrive = Get-VMHardDiskDrive -VMName "WebServer01" Set-VMFirmware -VMName "WebServer01" -BootOrder $bootdrive
RUNBOOK

Migration Runbook — Per-VM Cutover Checklist

📋 Pre-Migration Checklist (per VM)
Document VM configuration — vCPU, RAM, disk sizes, NIC count, VLAN, IP address, guest OS version, application details, backup policy
Map network dependencies — which VMs does this one communicate with? Same VLAN? Cross-VLAN via NSX? Document for Hyper-V network reconfiguration
Check VMware Tools status — must be current before migration. Plan to replace with Integration Services post-migration
Take vSphere snapshot — final pre-migration snapshot for rollback capability. Do NOT proceed until rollback point confirmed
Notify application owner — confirm maintenance window, expected downtime (typically 15–60 min for offline conversion), rollback criteria
Verify Hyper-V target resources — confirm destination host has sufficient vCPU/RAM/disk. Verify VLAN is configured on Hyper-V vSwitch
Test backup on source — perform a test backup restore on vSphere before migration to confirm backup is valid
✅ Post-Migration Validation Checklist
VM boots successfully — confirm OS boots to login screen. Check Windows Event Log / Linux journal for boot errors
Network connectivity — ping default gateway, DNS server, and at least one application dependency. Confirm VLAN assignment correct
Integration Services installed & running — Get-VMIntegrationService -VMName VM1 → all services should be Enabled and OK
Application function test — application owner performs functional test. Web app loads, database connects, services respond
Performance baseline — check CPU, RAM, and disk I/O performance. Compare to pre-migration baseline. Investigate if >20% degradation
Backup enrollment — enroll VM in Hyper-V backup policy (Veeam/Commvault/WAB). Run first backup and verify completion
Monitoring enrollment — add VM to monitoring platform with Hyper-V-specific counters. Verify alerts are configured
Decommission vSphere VM — ONLY after 7-day stability period. Power off vSphere VM, retain 30 days before permanent deletion
⚠️ Migration Anti-Patterns to Avoid
!
Migrating too fast — attempting to migrate all VMs in a single weekend. Wave-based migration with validation between waves is mandatory. Two-platform operations for 3–6 months is normal.
!
Skipping the pilot phase — migrating production VMs without first running 10–20 non-critical VMs on Hyper-V for 2–4 weeks to find issues with tooling, networking, and backup.
!
Assuming tools work the same — Veeam, SolarWinds, and ServiceNow integrations need reconfiguration. Do not assume "it supports both" means zero reconfiguration effort.
!
Migrating NSX-dependent VMs without SDN — VMs protected by NSX DFW policies lose micro-segmentation if SDN is not deployed on Hyper-V first. Security gap created.
!
Converting snapshots in the VMDK chain — always flatten VMware snapshots before converting. A VMDK chain with snapshots will produce an incorrect VHDX. Flat the disk first.
!
Forgetting root partition patching — Hyper-V hosts run Windows Server. Include Hyper-V hosts in your Windows patching program. ESXi host patching cadence does not apply.