Configuring Multipath-IO for Windows Server

Microsoft Platform Guide

Audience
Public
Source Type
Documentation
Note:

This document is intended for supported versions of Windows Server newer than Windows Server 2008/2008R2. For Windows Server 2008 and 2008R2, please refer to Configuring Multipath-IO for Windows Server 2008/2008R2.

Note:

Everpure no longer officially supports Windows Server 2008 or 2008R2 , which has reached end of support by Microsoft. Please refer to the Supported Versions of Windows Server for version compatibility.

Overview

There are three Windows Server management tasks that need to be completed for the Everpure FlashArray volumes (LUNs) to work properly. The first two discussed in the Configuring Multipath-IO section are:

  1. Setup an MPIO Device

  2. Configuring MPIO Timers

    The next sections walkthrough each of these management tasks using the graphical user interface (GUI) or Windows PowerShell.

Setting the MPIO Policy

Please refer to Setting the MPIO Policy article to set the policy for the MPIO devices.

Multipath-IO Devices

The Everpure FlashArray needs to be setup as an MPIO Device in order to support multipathing. See the Installing Multipath-IO section for more details.

Setting up MPIO using the Control Panel Applet

These steps work for Windows Server 2012, 2012 R2, 2016, 2019, 2022 and 2025. The only differences between the graphical user interface is the changes in the dialogs visual appearances. The example provided in this section are taken from Windows Server 2016.

  1. Using the Control Panel double-click on the MPIO applet to open up the MPIO Properties dialog box.
    Note:

    The MPIO applet can also be started from Start > Run mpiocpl.

  2. Click Add to show the Add MPIO Support dialog box. Note: Pay close attention to the instructions in the dialog box for string formatting. There should be 4 extra spaces after the capitalized word "PURE" and 6 extra spaces after the word "FlashArray".
    Note:

    3rd party Device Specific Modules (DSMs) will not claim Everpure FlashArray volumes. No 3rd party DSMs are supported. This includes EMC PowerPath, NetApp ONTAP DSM, HP 3PAR DSM or others.

  3. Click OK to complete the addition of the MPIO device.
    Note:
    • At this point configuration for Fibre Channel (FC) on the Windows Server is completed

      . If using iSCSI please continue to Setting up MPIO using the control panel applet for iSCSI .

    • A Reboot Required dialog box will be displayed after completing this configuration. Choose Yes or No depending on what other management or application tasks you are performing, but keep in mind that a reboot is required for the new MPIO Devices settings to take effect.

    • Important iSCSI Setup Note

      If iSCSI connectivity is being used, you may ignore this reboot requirement. The reason for this is to reduce the number of reboot cycles for the Windows Server host since adding iSCSI support requires an additional reboot. If iSCSI is not being planned, then Reboot the Windows Server host.

Setting up MPIO with iSCSI Support using the Control Panel Applet

  1. iSCSI Setup Step

    Click on the Discover Multi-Paths tab in the MPIO Properties dialog. Click on Add support for iSCSI devices.

    After adding the support for iSCSI devices click the MPIO Devices tab and see the MSFT2005SCSIBusType_0x9 device has been added.

  2. Click OK. You will be prompted to perform a reboot at this time. The host must be rebooted for the MPIO Devices settings to take effect.

Setting up MPIO using Windows PowerShell on Windows Server

Using Windows PowerShell is the preferred method for setting up MPIO devices. The reason for preferring PowerShell is the requirements of ensuring the device that is added adheres to the string formatting of Vendor (8 characters) and Product (16 characters). The PowerShell cmdlet, New-MSDSMSupportedHw, handles this formatting requirement.

The PowerShell below shows how to add a new MPIO device for Everpure, retrieve the MPIO devices and remove the example MPIO device provided by Windows Server.

Note that if using iSCSI, please confirm that the additional adapter is present.

Start a Windows PowerShell session and run the following.

Add New MPIO Device


PS C:\> New-MSDSMSupportedHw -VendorId PURE -ProductId FlashArray

VendorId ProductId
-------- ---------
PURE     FlashArray
Retrieve Available MPIO Devices


PS C:\> Get-MSDSMSupportedHw

VendorId ProductId
-------- ---------
Vendor 8 Product       16
PURE     FlashArray
Remove Default MPIO DeviceRemoving the default MPIO device is not necessary but simply a recommendation as the default Vendor 8 Product 16 device does not do anything.


PS C:\> Remove-MSDSMSupportedHw -VendorId 'Vendor*' -ProductId 'Product*'
PS C:\> Get-MSDSMSupportedHw

VendorId ProductId
-------- ---------
PURE     FlashArray
The final step to perform using PowerShell is to reboot the computer. This operation is performed automatically when using the graphical user interface (GUI). In the case of PowerShell, a manual command needs to be executed.

Restart-Computer

Updating MPIO Timers using Windows PowerShell

Using Windows PowerShell is the preferred method for setting the MPIO Timer values when managing Windows Server using Set-MPIOSetting cmdlet which is part of the MPIO module.

Start a Windows PowerShell session and run the following.

Retrieving Current MPIO Timer Values

This will return the current MPIO Timer values. On a newly installed Windows Server all of the default settings will be set as shown below.


PS C:\> Get-MPIOSetting

PathVerificationState     : Disabled
PathVerificationPeriod    : 30
PDORemovePeriod           : 20
RetryCount                : 3
RetryInterval             : 1
UseCustomPathRecoveryTime : Disabled
CustomPathRecoveryTime    : 40
DiskTimeoutValue          : 60

Update MPIO Timer Values

The below PowerShell shows running Set-MPIOSetting four different times with new parameter values. This was done to show each new timer value for clarity. The same can be accomplished with a single line of PowerShell using each of the parameters, this alternative is shown as well.

Set-MPIOSetting -NewPathRecoveryInterval 20
Set-MPIOSetting -CustomPathRecovery Enabled
Set-MPIOSetting -NewPDORemovePeriod 30
Set-MPIOSetting -NewDiskTimeout 60
Set-MPIOSetting -NewPathVerificationState Enabled

OR

Set-MPIOSetting -NewPathRecoveryInterval 20 -CustomPathRecovery Enabled -NewPDORemovePeriod 30 -NewDiskTimeout 60 -NewPathVerificationState Enabled