Microsoft's Multipath I/O (MPIO) feature in Windows Server provides redundancy and load balancing for connections to storage devices. To protect against a single point of failure, follow this procedure to allow multiple paths from the application host to the Everpure Cloud Dedicated instance. You only need to perform this procedure once on your Windows application host. As per our Best Practices, we recommend changing the default Microsoft MPIO configuration to the following values:
| Configuration item | Description | Default value | Recommended value |
|---|---|---|---|
| MSDSMGlobalDefaultLoadBalancePolicy | The default global load-balancing policy for Microsoft's Device Specific Module (MSDSM) for MPIO. | Round-Robin with Subset | LQD (Least Queue Depth) |
| PathRecoveryInterval | It defines how long (in seconds) the system waits after a failed path is restored before attempting to fail back to it (if it is a preferred path). | 40 | 20 |
| UseCustomPathRecoveryInterval | When UseCustomPathRecoveryInterval is enabled, the PathRecoveryInterval value becomes active. If it's disabled, Windows uses its built-in default path recovery behavior and may ignore the interval setting. | Disabled (0) | Enabled (1) |
| PDORemovePeriod | The amount of time (in seconds) the multipath pseudo-LUN (the logical disk presented to Windows) will remain in system memory even after all paths to the device have failed. If no paths recover within this period, the disk is removed from the system. | 20 | 120 |
| DiskTimeoutValue | The maximum length of time (in seconds) that the server waits before marking an I/O request as timed out. | 120 | 240 |
| PathVerifyEnabled | Enables or disables periodic path verification (i.e., checking that paths are still alive). | Disabled (0) | Enabled (1) |
| LinkDownTime | Determines how long (in seconds) I/O requests will be held in the device queue for a MPIO path and retried if the connection to the target is lost. | 15 | 180 |
Setting up multipathing with Microsoft MPIO
To protect against a single point of failure, this procedure allows multiple paths from the application host to the Everpure Cloud Dedicated instance. You only need to perform this procedure once on your Windows application host.
- Log onto the Windows host.
- To check if Microsoft MPIO is installed on the system, open an elevated PowerShell terminal (Run as administrator) and run:
PS C:\> Get-WindowsFeature -Name 'Multipath-IO' Display Name Name Install State ------------ ---- ------------- [ ] Multipath I/O Multipath-IO Available -
If it shows the install state as ‘
Available’, follow the next steps to install Microsoft MPIO. If it shows as 'Installed', move on to step 7. -
In the same PowerShell terminal, run:
PS C:\> Add-WindowsFeature -Name 'Multipath-IO' Success Restart Needed Exit Code Feature Result ------- -------------- --------- -------------- True Yes SuccessRest... {Multipath I/O} WARNING: You must restart this server to finish the installation process. - Reboot the Windows host.
-
When the Windows host boots back up, verify that Microsoft MPIO is installed.
PS C:\> Get-WindowsFeature -Name 'Multipath-IO' Display Name Name Install State ------------ ---- ------------- [X] Multipath I/O Multipath-IO Installed -
In the same PowerShell terminal, run the following command to start the iSCSI service.
PS C:\> Start-Service -Name msiscsi - Set the iSCSI service to start on boot, run:
PS C:\> Set-Service -Name msiscsi -StartupType Automatic -
Add
Pure FlashArrayas an MPIO vendor. In the same PowerShell terminal, run:PS C:\> New-MSDSMSupportedHw -VendorId PURE -ProductId FlashArray VendorId ProductId -------- --------- PURE FlashArray -
Enable iSCSI support by Microsoft MPIO. In the same PowerShell terminal, run:
PS C:\> Enable-MSDSMAutomaticClaim -BusType iSCSI VendorId ProductId -------- --------- MSFT2005 iSCSIBusType_0x9 False -
Set default MPIO path policy to Lowest Queue Depth.
PS C:\> Set-MSDSMGlobalDefaultLoadBalancePolicy -Policy LQD -
Set MPIO Timer Values. In the same PowerShell terminal, run:
PS C:\> Set-MPIOSetting -NewPathRecoveryInterval 20 -CustomPathRecovery Enabled -NewPDORemovePeriod 120 -NewPathVerificationState Enabled Both
NewDiskTimeoutandLinkDownTimeparameters must be set by editing Windows registry settings.ForNewDiskTimeout, open Windows Registry Editor (regedt32) and navigate toHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Diskand select it. Find the entry namedTimeOutValueand change the value (double click or right-click -> Modify) to 240 (decimal). Click OK to save.For
LinkDownTime, open Windows Registry Editor (regedt32) and navigate toHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSetand select it. Next select Edit on the Title Bar and then Find. Input the text "iscsi" without quotes.The first search hit should be the Microsoft iSCSI Initiator. Select the subkey
Parametersunder the number, find the entry namedLinkDownTimeand change the value (double click or right-click -> Modify) to 180 (decimal). Click OK to save.-
It's required to reboot the Windows host to apply all settings.
MPIO setup is now complete.
Mounting a volume on Windows iSCSI host
Follow the next steps (1-7) to establish iSCSI connections. Once you make a connection, subsequent volumes connected from Everpure Cloud Dedicated to this host appear in Disk Management.
To complete the following steps, you need the IP addresses of both Everpure Cloud Dedicated controller iSCSI interfaces. See Viewing Network Interface to obtain the iSCSI IP addresses. Keep the iSCSI IP addresses handy.