Setup Windows iSCSI for use with Everpure Cloud Dedicated

Everpure Cloud Dedicated for AWS

Audience
Public
Technology Integrations
Amazon Web Services (AWS)
Source Type
Documentation

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

Note:

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.

  1. Log onto the Windows host.
  2. 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
  3. 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.

  4. 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.
    
  5. Reboot the Windows host.
  6. 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
    
  7. In the same PowerShell terminal, run the following command to start the iSCSI service.

    
    PS C:\> Start-Service -Name msiscsi
    
  8. Set the iSCSI service to start on boot, run:
    
    PS C:\> Set-Service -Name msiscsi -StartupType Automatic
    
  9. Add Pure FlashArray as an MPIO vendor. In the same PowerShell terminal, run:

    
    PS C:\> New-MSDSMSupportedHw -VendorId PURE -ProductId FlashArray
    VendorId ProductId
    --------       ---------
    PURE        FlashArray
    
  10. Enable iSCSI support by Microsoft MPIO. In the same PowerShell terminal, run:

    
    PS C:\> Enable-MSDSMAutomaticClaim -BusType iSCSI
    VendorId ProductId
    -------- ---------
    MSFT2005 iSCSIBusType_0x9
    False
    
  11. Set default MPIO path policy to Lowest Queue Depth.

    PS C:\> Set-MSDSMGlobalDefaultLoadBalancePolicy -Policy LQD
    
  12. Set MPIO Timer Values. In the same PowerShell terminal, run:

    PS C:\> Set-MPIOSetting -NewPathRecoveryInterval 20 -CustomPathRecovery Enabled -NewPDORemovePeriod 120 -NewPathVerificationState Enabled
    
  13. Both NewDiskTimeout and LinkDownTime parameters must be set by editing Windows registry settings.For NewDiskTimeout, open Windows Registry Editor (regedt32) and navigate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Disk and select it. Find the entry named TimeOutValue and change the value (double click or right-click -> Modify) to 240 (decimal). Click OK to save.

  14. For LinkDownTime, open Windows Registry Editor (regedt32) and navigate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet and 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 Parameters under the number, find the entry named LinkDownTime and change the value (double click or right-click -> Modify) to 180 (decimal). Click OK to save.

  15. It's required to reboot the Windows host to apply all settings.

MPIO setup is now complete.

Mounting a volume on Windows iSCSI host

Note:

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.

  1. (Run as administrator) On the Windows host, open an elevated PowerShell terminal and run the following command to gather the IP address of your Windows instance. The following example shows 10.0.1.118
    PS C:\> get-netadapter |Get-NetIPAddress -AddressFamily ipv4
    IPAddress         : 10.0.1.118
    InterfaceIndex    : 5
    InterfaceAlias    : Ethernet
    AddressFamily     : IPv4
    Type              : Unicast
    PrefixLength      : 24
    PrefixOrigin      : Dhcp
    SuffixOrigin      : Dhcp
    AddressState      : Preferred
    ValidLifetime     : 00:57:00
    PreferredLifetime : 00:57:00
    SkipAsSource      : False
    PolicyStore       : ActiveStore
    

    2. In the same PowerShell window, run the following command to create a new Target Portal connection between your Windows host and your Everpure Cloud Dedicated instance.

    PS C:\> New-IscsiTargetPortal -TargetPortalAddress <Everpure Cloud Dedicated iSCSI IP address>

    where

    <Everpure Cloud Dedicated iSCSI IP address> is the IP address of the iSCSI port on Everpure Cloud Dedicated controller 0 or controller 1. You only need to enter one.

  2. In the same PowerShell window, run the following command to create an iSCSI session to Everpure Cloud Dedicated controller 0.
    PS C:\> Get-IscsiTarget | Connect-IscsiTarget -InitiatorPortalAddress <Windows IP address> -IsMultipathEnabled $true -IsPersistent $true -TargetPortalAddress <Everpure Cloud Dedicated iSCSI interface IP address CT0>
    

    where

    <Windows IP address> is the Windows host IP address obtained in step one.

    <Everpure Cloud Dedicated iSCSI IP address CT0> is the iSCSI IP address of Everpure Cloud Dedicated controller 0.

    See the following screenshot as an example.

  3. (Optional) For additional performance throughput, you may add additional iSCSI sessions. Repeat the same command for each additional iSCSI session you would like to add to controller 0. You can add up to 16 iSCSI sessions to each controller, but it is recommended to vary and test the number of sessions against your unique workload.
  4. In the same PowerShell window, run the same command to create iSCSI sessions to Everpure Cloud Dedicated controller 1.
    
    PS C:\> Get-IscsiTarget | Connect-IscsiTarget -InitiatorPortalAddress <Windows IP address> -IsMultipathEnabled $true -IsPersistent $true -TargetPortalAddress <Everpure Cloud Dedicated iSCSI interface IP address CT1>
    

    where:

    <Windows IP address> is the Windows host IP address obtained in step two.

    <Everpure Cloud Dedicated iSCSI IP address CT1> is the iSCSI IP address of Everpure Cloud Dedicated controller 1.

  5. (Optional) For additional performance throughput, you may add additional iSCSI sessions. Repeat the same command for each additional iSCSI session you would like to add to controller 1. You can add up to 16 iSCSI sessions to each controller, but it is recommended to vary and test the number of sessions against your unique workloads.
    Note:

    You can use this Powershell script (GitHub link below) to automate steps 3-6

    https://github.com/PureStorage-OpenC...CSISession.ps1

  6. To confirm the total number of sessions, run:
    
    PS C:\> Get-IscsiSession | measure
    
  7. Go to Disk Management and perform a rescan to confirm the new volume.

  8. Bring the volume online and format with the desired file system. Any subsequent volume you create and connect to this host in the Everpure Cloud Dedicated UI (CLI/GUI/REST) displays automatically in Disk Management after a rescan.

    You have successfully connected and mounted an Everpure Cloud Dedicated volume to your host.