Skip to main content
Pure1 Support Portal

Step 02 -- Configuring Multipath-IO for Windows Server 2008/2008R2

Overview

There are three Windows Server management tasks that need to be completed for the Pure Storage FlashArray volumes (LUNs) to work properly. The next sections walkthrough each of these management tasks using the graphical user interface (GUI) or Windows PowerShell.

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

Multipath-IO Devices

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

Setting up MPIO using the Control Panel Applet for Fibre Channel

These steps work for Windows Server 2008 and 2008 R2 (Service Pack 1). The example provided in this section are taken from Windows Server 2008 R2.

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

Win2k8R2_MPIO.png 

2. Click Add to add a new device entry. Pay close attention to the instructions in the dialog box for string formatting. There should be 4 extra spaces after PURE and 6 extra spaces after FlashArray

Win2k8R2_PUREFlashArray.png

3. Click OK. Adding the new device entry requires a reboot.

Win2k8R2_Reboot.png
 

Reboot Required dialog box will be displayed on all Windows Server versions. 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 settings to take effect.

If you choose not to reboot immediately and click No. A success message will be shown after adding the new device entry.

Win2k8R2_AddDeviceSuccess.png

4. MPIO for Fibre Channel (FC) on the Windows Server is completed. 

 

Setting up MPIO using the Control Panel Applet for iSCSI

These steps work for Windows Server 2008 and 2008 R2 (Service Pack 1). The example provided in this section are taken from Windows Server 2008 R2.

1. To enable Add support for iSCSI devices in the MPIO Properties dialog and iSCSI connection and connected volume from the FlashArray need to be configured. Follow Setup iSCSI on Windows Server 2008 R2 and 2008 R2 (Service Pack 1) to configure iSCSI before proceeding to Step 6.

2. Once and iSCSI connection has been established use 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 the Discover Multi-paths MPIO Properties dialog and select Discover Mulit-Paths. After selecting the tab you will see PURE    FlashArray listed. Click Add support for iSCSI devices.

Win2K8R2_DiscoverMultiPath.png

2. Click the MPIO Devices tab to add a new device entry. Click Add to add a new device entry.

Win2K8R2_MPIODevices.png

3. Pay close attention to the instructions in the dialog box for string formatting. There should be 4 extra spaces after PURE and 6 extra spaces after FlashArray

Win2k8R2_PUREFlashArray.png

3. Click OK. Adding the new device entry requires a reboot.

Win2k8R2_Reboot.png
 

Reboot Required dialog box will be displayed on all Windows Server versions. 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 settings to take effect.

If you choose not to reboot immediately and click No. A success message will be shown after adding the new device entry.

Win2k8R2_AddDeviceSuccess.png

4. MPIO for iSCSI on the Windows Server is completed. 

 

Setting up MPIO using Windows PowerShell

Multipath-IO Timers

There are 5 MPIO Timer values that are the recommended for use with a Pure Storage FlashArray for optimal performance. See MPIO Timers for full details. This section describes how to update these timer values specifically for Windows Server 2008 R2 and 2008 R2 Service Pack 1 as the methods differ from what can be accomplished with newer versions of Windows Server. 

When changing the Mulitpath-IO timers a Reboot is Required for the new settings to take effect.

 

Setting Default FlashArray Definition

HKLM\
   System\
      CurrentControlSet\
          Services\
             MPIO\
                Parameters\
                   UseCustomPathRecoveryInterval

0 1

Flag that enables path verification by MPIO on all paths every N seconds (where N depends on the value set in PathVerificationPeriod).

Type is boolean and must be filled with either 0 (disable) or 1 (enable). By default, it is disabled.

HKLM\
   System\
      CurrentControlSet\
          Services\
             MPIO\
                Parameters\
                   PathRecoveryInterval

40 20

Specifies a custom path recovery time, in seconds. This is the length of time before the server attempts path recovery.

This parameter is not relevant unless the CustomPathRecovery parameter has the value Enabled.

HKLM\
   System\
      CurrentControlSet\
          Services\
             MPIO\
                Parameters\
                   PDORemovePeriod

20 30

This setting controls the amount of time (in seconds) that the multipath pseudo-LUN will continue to remain in system memory, even after losing all paths to the device.

When this timer value is exceeded, pending I/O operations will be failed, and the failure is exposed to the application rather than attempting to continue to recover active paths.

This timer is specified in seconds. 

HKLM\
   System\
      CurrentControlSet\
          Services\
             MPIO\
                Parameters\
                   TimeoutValue

60

 

60

Specifies the disk timeout value, in seconds. This value is the length of time the server waits before it marks the I/O request as timed out.

HKLM\
   System\
      CurrentControlSet\
          Services\
             MPIO\
                Parameters\
                   PathVerifyEnabled
Disabled Enabled Specifies whether to enable path verification. 
HKLM\
   System\
      CurrentControlSet\
          Services\
             MPIO\
                Parameters\
                   PathVerificationPeriod
30 30 Specifies a path verification period, in seconds. This is the length of time for the server to verify every path. This parameter is not relevant unless the path verification state has a value of Enabled.
Retrieving Current MPIO Timer Values

Using Windows PowerShell is the preferred method for setting the MPIO Timer values when managing Windows Server 2008 and 2008 R2. 

Start a Windows PowerShell session and run the following.

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.

Get-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Services\MPIO\Parameters' -Name 'UseCustomPathRecoveryInterval'
Get-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Services\MPIO\Parameters' -Name 'PathRecoveryInterval'
Get-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Services\MPIO\Parameters' -Name 'PDORemovePeriod'
Get-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Services\Disk' -Name 'TimeoutValue'
Get-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Services\MPIO\Parameters' -Name 'PathVerifyEnabled'
Get-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Services\MPIO\Parameters' -Name 'PathVerificationPeriod'

UseCustomPathRecoveryInterval : 0
PathRecoveryInterval : 40
PDORemovePeriod : 20
TimeOutValue : 60
Update MPIO Timer Values

The below PowerShell shows running Set-ItemProperty to set the values of the different registry keys.  Once the new timer values have been set the previous method of retrieving the values can be run. 

Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Services\MPIO\Parameters' -Name 'UseCustomPathRecoveryInterval' -Value 1
Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Services\MPIO\Parameters' -Name 'PathRecoveryInterval' -Value 20
Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Services\MPIO\Parameters' -Name 'PDORemovePeriod' -Value 30
Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Services\Disk' -Name 'TimeoutValue' -Value 60
Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Services\MPIO\Parameters' -Name 'PathVerifyEnabled' -Value 1
Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Services\MPIO\Parameters' -Name 'PathVerificationPeriod' -Value 30