Multi-Paths IO(MPIO) Setting Recommendation for VMware vSAN iSCSI Target Service
search cancel

Multi-Paths IO(MPIO) Setting Recommendation for VMware vSAN iSCSI Target Service

book

Article ID: 326500

calendar_today

Updated On:

Products

VMware vSAN

Issue/Introduction

This article provides information about the recommended Multi-Paths IO(MPIO) setting for VMware vSAN iSCSI target service.

Resolution

Windows Platforms

Example of Enabling Multipath I/O Feature on Windows Server 2019 UI

Add Multipath I/O Feature

1.  Click 'Windows' and click 'Server Manager'.
Add-MPIO1.jpg

2. Click 'Manage' and 'Add Roles and Features'.
Add-MPIO2.jpg
3. Follow the instructions and keep clicking the 'Next' button until the left menu is 'Features', then tick before 'Multipath I/O' box. Finally, click 'Next' button. 
Add-MPIO3.jpg
4. Click 'Install' button. Wait for the installation to succeed, and then restart your computer.
Add-MPIO4.jpg

Add Device  

1. Click 'Tools' and 'MPIO'.
Add-device1.jpg

2. Select the 'Discover Multi-Paths' tab and select 'Add support for iSCSI devices' box, then click 'Add' button.
Add-device2.jpg

MPIO Settings

1. We recommend you follow the MPIO retry count and related interval configuration via the below command in PowerShell:

Set-MPIOSetting -CustomPathRecovery Enabled -NewPathRecoveryInterval 20 -NewRetryCount 60 -NewPDORemovePeriod 60 -NewPathVerificationPeriod 30

You can see the following warning:
MPIO-settings1.jpg

2. We recommend you configure load balance policies for vSAN iSCSI Target via the following command:

mpclaim -l -t "VMware  Virtual SAN     "  1

3. As vSAN iSCSI target service only supports active/passive High Availability(HA), we suggest you configuring load balance policy as failover only. If you run clustering software which leverages persistent reservation, it is a must-have to set the load balance policy as failover only.

PS E:\> mpclaim.exe -s -t
 
"Target H/W Identifier   "   LB Policy
-------------------------------------------------------------------------------
"VMware  Virtual SAN     "      FOO

4. Reboot the server.

5. If you want to check what your current MPIO settings, running the following command in PowerShell.
 

PS E:\> Get-MPIOSetting
 
PathVerificationState     : Disabled
PathVerificationPeriod    : 30
PDORemovePeriod           : 60
RetryCount                : 60
RetryInterval             : 1
UseCustomPathRecoveryTime : Enabled
CustomPathRecoveryTime    : 20
DiskTimeoutValue          : 60

Configure iSCSI Initiator

1. Click 'Tools' and 'iSCSI Initiator'.
Configure-iSCSI-initiator1.jpg

2. In the 'Discover' tab, click 'Discover Portal'. 
Configure-iSCSI-initiator2.jpg
3. File the 'IP address or DNS name' and click 'OK' button.
Configure-iSCSI-initiator3.jpg

4. In the 'Targets' tab, you will see that the status of the target is inactive, and click 'Properties'. 
Configure-iSCSI-initiator4.jpg
5. In 'Sessions' tab, click 'Add session' and a new panel appears. Tick before 'Enable multi-path' box and click 'Advanced'.
Configure-iSCSI-initiator5.jpg
6. Select the 'target'  in the 'Target portal IP' drop-down list and click 'OK' button.
Configure-iSCSI-initiator6.jpg
7. In the 'Targets' tab, you will see that the status is 'Connected'.
Configure-iSCSI-initiator7.jpg

Note: the UI can be different in different Windows release versions.

Verified Windows Platforms

  1. Windows 10
  2. Windows server 2019, server 2016, server 2012 R2(R2U3), server 2012, server 2008 R2(R2U3), server 2008(R2SP1)
 

Linux Platforms

For the Linux platforms, we recommend the below settings in /etc/multipath.conf:

defaults {
    user_friendly_names yes
}
devices {
    device {
       vendor     "VMware  "
       product    "Virtual SAN     "
       path_grouping_policy   failover
       no_path_retry               100
  }
}
We suggest changing replacement_timeout to 15 seconds in /etc/iscsi/iscsid.conf:
# To specify the length of time to wait for session re-establishment
# before failing SCSI commands back to the application when running
# the Linux SCSI Layer error handler, edit the line.
# The value is in seconds and the default is 120 seconds.
# Special values:
# - If the value is 0, IO will be failed immediately.
# - If the value is less than 0, IO will remain queued until the session
# is logged back in, or until the user runs the logout command.
node.session.timeo.replacement_timeout = 15
If you configured two paths to the vSAN iSCSI target, use "multipath -l" command then you will see the message like below:
# multipath -l
mpathe (1VMware_VITDEVID679bcb58351873774a7702003056e5fe) dm-4 VMware  ,Virtual SAN    
size=954M features='1 queue_if_no_path' hwhandler='0' wp=rw
|-+- policy='service-time 0' prio=0 status=active
| `- 112:0:0:0 sde 8:64 active undef  running
`-+- policy='service-time 0' prio=0 status=enabled
  `- 110:0:0:0 sdc 8:32 active undef  running

The feature includes queue_if_no_path, and one path is active, and the other one is enabled.

Noted: the "multipath -l" command for iSCSI may require some prerequisites to be installed on your Linux initiators before it can be used.

For RHEL and Oracle Linux systems, to check if your system includes the device-mapper-multipath package:

# rpm -q device-mapper-multipath
device-mapper-multipath-current-package-version

If not, you can install it by running the following command: 

# yum install device-mapper-multipath

For SLES systems, if the multipath-tools is not installed, you can use the following command to install multipath-tools package:

zypper addrepo https://download.opensuse.org/repositories/Base:System/SLE_12_SP5/Base:System.repo
zypper refresh
zypper install multipath-tools

The repo is based on SLES 12 SP5, it can be different based on your SLES version, details please refer to the openSUSE source page.

 

Verified Linux Platforms

  1. RHEL 8, RHEL 7.5, RHEL 7, RHEL 6, RHEL 5

  2. SUSEĀ® Linux Enterprise Server 12 SP2, SLES 12
  3. SLES 11 SP4, SLES 11 SP3, SLES 11 SP1

  4. Oracle Linux 7, Oracle Linux 6


 


Additional Information