MPIO CONFIGURATION in windows server 2012r2

Hi experts ,
we have windows servers 2012 R2 running SQL cluster my problem is how to check that MPIO is properly configured or not? is there any way to find that is working fine?
Jacob GlassmanAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Coolie SheppardSystems EngineerCommented:
How are you connecting up to the SAN?  If SAS, go into your SAN configuration manager and view the host identifiers.  If you have two in there (assuming you've connected 2 SAS ports per host), then its doing its job.

If you're connected via iSCSI, go into the iSCSI configuration, go to the session and select "Devices", in there you can set the MPIO.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Ben Personick (Previously QCubed)Lead SaaS Infrastructure EngineerCommented:
Powershell is my preferred method to check the nitty gritty as you can also change it through that method and it offers more control than the GUI.


I'm just going to go grab a script I wrote to do the needful and post it back after sanitizing some of the info.
##### iSCSI Settings Check:
## Uncomment the following Lines if you need to check iSCSI Setup:

# Set-Service -Name msiscsi -StartupType Automatic
#Start-Service msiscsi
# $InterfaceAliases=$(Get-NetAdapter | Get-NetIPAddress -AddressFamily ipv4 | ?{$_.IPAddress -match "192.168.7" -or $_.InterfaceAlias -match "iSCSI"}).InterfaceAlias
# $InterfaceAliases=$(Get-NetAdapter |  ?{$_.InterfaceAlias -match "10G_e" -or $_.InterfaceAlias -match "iSCSI" }).InterfaceAlias
# Get-iSCSIConnection | FT -Property ConnectionIdentifier, InitiatorAddress, TargetAddress -Auto
# Get-iSCSISession | FT -property IsPersistent, IsConnected, SessionIdentifier, InitiatorPortalAddress -Auto
# Get-iSCSITargetPortal | FT -Auto
# Get-NetAdapterAdvancedProperty | ? {$_.Name -in $InterfaceAliases -AND $_.Displayname -match "Jumbo" } | FT -Auto

##### MPIO Check - Regardless of iSCSI or SAN:
"Hardware:
----------------"
Get-MPIOAvailableHW| FT -Auto
"
MIPIO Settings:
------------------------`n`n 
Setting                   :  Value"
Get-MPIOSetting| FT -Auto
"
Auto-Claim Settings:"
Get-MSDSMAutomaticClaimSettings| FT -Auto
"
Load balancing Policy:"
Get-MSDSMGlobalDefaultLoadBalancePolicy| FT -Auto
"
Supported Hardware:"
Get-MSDSMSupportedHW |FT -Auto

$WhatIfPreference=$True

## Un-comment the Next line if you want to change MPIO to best practices:

# $WhatIfPreference=$False

#####  Enable MPIO and change the Settings
Enable-WindowsOptionalFeature –Online –FeatureName MultiPathIO
Get-Command -Module mpio
Enable-MSDSMAutomaticClaim -BusType iSCSI
Enable-MSDSMAutomaticClaim -BusType SAS
Set-MSDSMGlobalDefaultLoadBalancePolicy -Policy RR
Set-MPIOSetting -NewDiskTimeout 60
Set-MPIOSetting -NewPathVerificationState "enabled"

$WhatIfPreference=$False

Open in new window

It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Microsoft Server OS

From novice to tech pro — start learning today.