By default MPIO is not installed / enabled on Server 2012/2016 - so we'll firstly enable it with:
Enable-WindowsOptionalFeature –Online –FeatureName MultiPathIO
To enable automatic use of MPIO we should issue:
Enable-MSDSMAutomaticClaim -BusType iSCSI
and then set the load balancing type we'll want to use with it (in this case we'll use a round robin style):
Set-MSDSMGlocalDefaultLoadBalancePolicy -Policy RR
and finally set the disk timeout period used for MPIO:
Set-MPIOSetting -NewDiskTimeout 45
And reboot the system:
shutdown /r -t 0
Set the interface IP addresses by firstly obtaining the interface index for the relevant ports:
Get-NetAdapter
and assign the relevant IP addresses:
New-NetIPAddress -InterfaceIndex <int> -IPAddress 10.11.12.254 -PrefixLength 24
We'll also need to ensure that iSCSI support has been enabled:
Set-Service -Name msiscsi -StartupType Automatic
Start-Service msiscsi
And reboot the system:
shutdown /r -t 0
Set the interface IP addresses by firstly obtaining the interface index for the relevant ports:
Get-NetAdapter
and assign the relevant IP addresses:
New-NetIPAddress -InterfaceIndex <int> -IPAddress 10.11.12.254 -PrefixLength 24
We'll also need to ensure that iSCSI support has been enabled:
Set-Service -Name msiscsi -StartupType Automatic
Start-Service msiscsi
We'll now proceed by configuring our iSCSI connectors via Powershell:
New-IscsiTargetPortal -TargetPortalAddress <SAN-IP-1> -InitiatorPortalAddress <LOCAL-SAN-IP-1> -InitiatorInstanceName "ROOT\ISCSIPRT\0000_0"
New-IscsiTargetPortal -TargetPortalAddress <SAN-IP-2> -InitiatorPortalAddress <LOCAL-SAN-IP-1> -InitiatorInstanceName "ROOT\ISCSIPRT\0000_0"
Now obtain the node address with:
Get-IscsiTarget
and connect to them with:
Connect-IscsiTarget -IsMultipathEnabled $true -NodeAddress <node-address> -IsPersistent $true
Connect-IscsiTarget -IsMultipathEnabled $true -NodeAddress <node-address> -IsPersistent $true
New-IscsiTargetPortal -TargetPortalAddress <SAN-IP-1> -InitiatorPortalAddress <LOCAL-SAN-IP-1> -InitiatorInstanceName "ROOT\ISCSIPRT\0000_0"
New-IscsiTargetPortal -TargetPortalAddress <SAN-IP-2> -InitiatorPortalAddress <LOCAL-SAN-IP-1> -InitiatorInstanceName "ROOT\ISCSIPRT\0000_0"
Now obtain the node address with:
Get-IscsiTarget
and connect to them with:
Connect-IscsiTarget -IsMultipathEnabled $true -NodeAddress <node-address> -IsPersistent $true
Connect-IscsiTarget -IsMultipathEnabled $true -NodeAddress <node-address> -IsPersistent $true
Then get a list of the disks with:
Get-IscsiSession | Get-Disks
Get-IscsiSession | Get-Disks