Skip to content

Windows Server Hyper-V Dell iSCSI

3-Node Hyper-V Failover Cluster with Shared SAN Storage

Project Type

Enterprise infrastructure project — production Hyper-V HA cluster with shared SAN storage, full network segmentation, and validated Live Migration.


Project Overview

This project covers the end-to-end design and implementation of a 3-node Microsoft Hyper-V failover cluster backed by a Dell PowerVault ME5084 SAN over iSCSI, running Windows Server 2022 on Dell PowerEdge R750 hosts.

Goals

  • Provide high availability for VMs in the event of a host failure
  • Enable Live Migration between nodes with minimal disruption
  • Centralize storage using a shared SAN with dual-controller redundancy
  • Implement full network traffic separation across management, live migration, cluster, storage, and production traffic
  • Standardize compute, network, and storage configuration across all cluster nodes

Architecture

Logical Topology

                    +------------------------------------------+
                    |         Dell PowerVault ME5084           |
                    |   CTL-A: 10.20.0.11 / 10.20.0.12    |
                    |   CTL-B: 10.20.0.13 / 10.20.0.14    |
                    |   Dual-controller, dual iSCSI fabric     |
                    +----+------------------+------------------+
                         |                  |
                    iSCSI-A             iSCSI-B
                  (10.10.10.x)      (10.10.20.x)
                         |                  |
          +--------------+------------------+--------------+
          |                   |                            |
+---------+--------+ +---------+--------+  +--------------+---+
|  HPV-NODE-01     | |  HPV-NODE-02     |  |  HPV-NODE-03     |
|  iSCSI-A: .10.15 | |  iSCSI-A: .10.17 |  |  iSCSI-A: .10.19 |
|  iSCSI-B: .20.16 | |  iSCSI-B: .20.18 |  |  iSCSI-B: .20.20 |
+------------------+ +------------------+  +------------------+
          |                   |                            |
          +-------------------+----------------------------+
                              |
              +---------------+---------------+
              |     Windows Failover Cluster  |
              | Disk Witness / CSV / Live Mig |
              +-------------------------------+

Network Segments

Traffic Type Subnet Port
iSCSI-A (Fabric A) 10.10.10.0/24 Slot 1 Port 1 per host
iSCSI-B (Fabric B) 10.10.20.0/24 Slot 7 Port 1 per host
Host NIC-A (Mgmt/VM) Production VLAN Slot 1 Port 2 per host
Host NIC-B (Mgmt/VM) Production VLAN Slot 7 Port 2 per host
Live Migration Dedicated LM subnet Slot 1 Port 4 per host
iDRAC (OOB) 10.30.0.43–45 Dedicated per host
SAN Controller MGMT 10.30.0.41–42 CTL-A/B MGMT ports

Switch Infrastructure

Switch Role
TOR-SW-01 Primary ToR — iSCSI-B fabric, LM, host NICs
TOR-SW-02 Secondary ToR — iSCSI-A fabric, host NICs
MGMT-SW-01 Out-of-band — iDRAC + SAN management ports

Each iSCSI fabric cross-connects to a separate ToR switch for path redundancy.


Environment

Compute

Attribute Value
Server Model Dell PowerEdge R750 (×3)
CPU 2× Intel Xeon Gold 5317 @ 3.00 GHz (12 cores each)
RAM 192 GB per node
OS Windows Server 2022
NIC Teaming LBFO
Out-of-band Dell iDRAC

Storage

Attribute Value
SAN Model Dell PowerVault ME5084
Controller A CTL-A0: 10.20.0.11 / CTL-A1: 10.20.0.12
Controller B CTL-B0: 10.20.0.13 / CTL-B1: 10.20.0.14
Protocol iSCSI (10 GbE)
Redundancy Dual fabric — each host has iSCSI-A and iSCSI-B paths
Pools Pool A (CTL-A) / Pool B (CTL-B)

Roles & Features (Per Node)

  • Hyper-V
  • Failover Clustering + Management Tools
  • Hyper-V PowerShell Module
  • Multipath I/O (MPIO)
  • RSAT tools

Implementation

1. SAN Setup

The ME5084 was configured first to establish shared storage before any Windows cluster roles were installed.

  • Configured dual storage pools (Pool A / Pool B per controller)
  • Created LUNs: quorum disk, CSV volumes, large-capacity workload LUNs
  • Created host group mappings for all 3 Hyper-V hosts
  • Presented volumes to all hosts simultaneously
  • Distributed large-volume LUNs across Pool A and Pool B to balance controller I/O

iSCSI fabric connections:

CTL-A0 (10.20.0.11) ←→ TOR-02 Port 20 ←→ HPV-NODE-01/02/03 iSCSI-A
CTL-A1 (10.20.0.12) ←→ TOR-01 Port 21 ←→ HPV-NODE-01/02/03 iSCSI-A
CTL-B0 (10.20.0.13) ←→ TOR-01 Port 20 ←→ HPV-NODE-01/02/03 iSCSI-B
CTL-B1 (10.20.0.14) ←→ TOR-02 Port 21 ←→ HPV-NODE-01/02/03 iSCSI-B

2. Hyper-V Role Installation

Installed identically on all three hosts.

  • Installed Hyper-V role and PowerShell module
  • Created external virtual switch with identical name on all nodes
  • Confirmed NIC binding and switch visibility per host

Critical

Virtual switch naming must be identical across all cluster nodes. Mismatched names will silently block Live Migration.


3. Network Configuration

Network Purpose NIC
iSCSI-A Storage fabric A Slot 1 Port 1
iSCSI-B Storage fabric B Slot 7 Port 1
NIC-A Management + VM (LBFO pair) Slot 1 Port 2
NIC-B Management + VM (LBFO pair) Slot 7 Port 2
Live Migration Dedicated LM Slot 1 Port 4
  • Configured LBFO team (NIC-A + NIC-B) for management/VM traffic
  • Assigned static IPs to all interfaces
  • Verified reachability across all segments between nodes
  • Confirmed iSCSI traffic is isolated from LM and management traffic

4. Failover Clustering Installation and Validation

Install-WindowsFeature -Name Failover-Clustering -IncludeManagementTools

Test-Cluster -Node HPV-NODE-01, HPV-NODE-02, HPV-NODE-03

Validation checks reviewed: storage visibility, network communication, OS compatibility, hardware supportability.


5. Cluster Creation and Quorum

New-Cluster -Name [CLUSTER-NAME] -Node HPV-NODE-01,HPV-NODE-02,HPV-NODE-03 -StaticAddress [CLUSTER-IP]

Set-ClusterQuorum -DiskWitness "Cluster Disk X"
  • Disk witness selected (3-node cluster, odd-node quorum)
  • CNO created in Active Directory
  • Core cluster resources brought online

6. Cluster Shared Volumes (CSV)

Add-ClusterDisk -InputObject (Get-Disk | Where-Object PartitionStyle -eq "GPT")
Add-ClusterSharedVolume -Name "Cluster Disk X"

CSVs mount at:

C:\ClusterStorage\VolumeX\


7. Live Migration Configuration

Get-VMMigrationNetwork

Add-VMMigrationNetwork -Subnet [LM-SUBNET-CIDR] -Priority 1

Compare-VM -Name "[VMNAME]" -DestinationHost "[DESTINATION-HOST]"
Setting Value
Authentication CredSSP
Performance Option Compression
Migration Network Dedicated LM subnet only
Storage NICs excluded Yes

8. VM Placement

VHDX naming convention:

[VMNAME]_C_OS.vhdx
[VMNAME]_D_Data01.vhdx
[VMNAME]_E_Data02.vhdx

Folder structure:

C:\ClusterStorage\[CSVNAME]\[VMNAME]\


Troubleshooting

CNO Permissions — Cluster Creation Failed

Symptom: Cluster creation failed; could not register computer object in Active Directory.

Root Cause: The installing account lacked Create Computer Objects permission on the target OU in Active Directory.

Resolution: Granted the installing account Create Computer Objects on the target OU, then re-ran cluster creation successfully.

Best Practice

Pre-stage the CNO as a disabled computer account in the correct OU before running cluster creation. Grant the CNO account Full Control over its own object. This avoids permission issues entirely.


Live Migration Generic Failure

Symptom: Live Migration failed with a generic "Live migration failed" error. Compare-VM returned no incompatibilities.

Root Cause: Get-VMMigrationNetwork returned empty on all hosts — no Live Migration networks had been configured.

Resolution:

Add-VMMigrationNetwork -Subnet [LM-SUBNET] -Priority 1

Diagnostic tip

If Compare-VM shows no issues but migration fails, always run Get-VMMigrationNetwork on the source host. An empty result means Hyper-V has no valid migration path.


VM Off-Critical: Cannot Connect to VM Configuration Storage

Symptom: VMs entered Off-Critical state with Cannot connect to virtual machine configuration storage.

Root Cause: VM config or VHDX files were deleted during initial setup iteration while Hyper-V and the cluster retained stale registrations.

Resolution:

Remove-VM -Name "[VMNAME]" -Force
Remove-ClusterGroup -Name "[VMNAME]" -Force -RemoveResources


Live Migration Network Scope Included Storage NICs

Symptom: Cluster showed iSCSI NICs listed as valid Live Migration paths.

Resolution: Removed iSCSI subnets from the Live Migration scope and restricted LM to the dedicated LM subnet exclusively.


LBFO Virtual Switch Deprecation Warning

Symptom: Hyper-V event logs warned about vSwitch attachment to LBFO team.

Context: LBFO is deprecated for Hyper-V vSwitch binding in favor of SET (Switch Embedded Teaming). The build proceeded with LBFO with consistent configuration. SET is the preferred design for future greenfield deployments.


SAN Pool Load Imbalance

Symptom: Large-capacity LUNs were unintentionally concentrated on one controller.

Resolution: Redistributed large-volume LUNs evenly across Pool A and Pool B to balance controller I/O.


Validation

Test Result
Test-Cluster validation report Passed — no blocking errors
Shared storage visible from all 3 nodes Confirmed
CSV mount paths accessible Confirmed
Live Migration — all node pairs Passed
Failover / planned node drain Passed
Event log review post-build Clean

Key Learnings

  • Designing and implementing Windows Server 2022 Hyper-V failover clusters
  • Integrating Dell PowerVault ME5084 with Windows clustering over dual-fabric iSCSI
  • Configuring Cluster Shared Volumes with dual-pool SAN storage layouts
  • Implementing full network traffic separation across five logical networks
  • Troubleshooting Live Migration failures, AD CNO permission issues, and stale VM registrations
  • Using PowerShell for cluster validation, migration diagnostics, and cleanup
  • Understanding LBFO vs SET NIC teaming implications in Hyper-V environments

Core principle: Successful Hyper-V clustering depends on consistency across every host — switch naming, storage presentation, cluster identity, migration networks, and AD permissions all need to align.


Tools & Technologies

Category Technology
Hypervisor Microsoft Hyper-V (Windows Server 2022)
Clustering Windows Failover Clustering
Shared Storage Cluster Shared Volumes (CSV)
SAN Dell PowerVault ME5084
Protocol iSCSI (10 GbE), dual fabric
NIC Teaming LBFO
Diagnostics PowerShell (FailoverClusters, Hyper-V modules)
Identity Active Directory, DNS
OOB Management Dell iDRAC
SAN Management Dell PowerVault Manager
Event Diagnostics Windows Event Viewer
Multipath I/O MPIO