Start a Conversation

Unsolved

DB

3 Posts

1861

November 28th, 2019 02:00

MD36xx/38xx with Linux multipath.conf "service-time" path_selector and ALUA?

Hi!

I'm trying to find documentation on recommended and supported options with regards to Linux multipath and MD36/38 systems.

The only thing I can find is an old document from 2010-2011 (https://www.dell.com/downloads/global/products/pvaul/en/powervault-md-linux-device-manager-installation.pdf) which says to use "round-robin 0" as the Linux multipath path_selector, and "rdac" both as hardware_handler and prio for generating path priority.

 

path_selector: "service-time 0" or "round-robin 0"?

Even long ago, at least since 2013, the Linux multipath.conf path_selector default has been "service-time 0", which also take into account outstanding path I/O and its relative bandwidth to determine a path. Is there any specific reason for not using service-time instead of round-robin?

 

prio and hardware_handler: rdac or alua?

Can ALUA be used with MD36xx/38xx? The documentation indicates it, but I believe it's vaguely written. Example from https://www.dell.com/support/manuals/se/sv/sebsdt1/powervault-md3400/mdseriesagpub/configuring-asymmetric-logical-unit-access (highlighting by me):

"If your MD Series RAID storage array supports Asymmetric Logical Unit Access (ALUA), active-active throughput allows I/O to pass from a RAID controller module to a virtual disk that is not owned by the RAID controller. Without ALUA, the host multipath driver is required to send data requests targeted to a specific virtual disk to the owning RAID controller module. If the RAID controller module does not own the virtual disk, it rejects the request."

What are Dell's recommendations for the hardware_handler and prio settings in multipath.conf? If it's rdac, why? Any drawbacks to using ALUA?

Best regards,

Danny

Moderator

 • 

7.1K Posts

December 2nd, 2019 15:00

Hello Danny,

With an MD36xx or MD38xx system you want to use Round Robin for multipathing.  Round Robin is the preferred, you can use others however you may get performance issues or errors that may occur. 

Here is a link to the administrator guide and if you look on page 148 it explains Device Mapper multipath for Linux.  https://topics-cdn.dell.com/pdf/powervault-md3400_administrator-guide_en-us.pdf

As for ALUA that is explained on page 154 of the administrator guide.

Please let us know if you have any other questions.

December 5th, 2019 12:00

Hi, and thanks for the reply.

However, it didn't really provide references as to why Dell recommends round-robin instead of service-time, which is a smarter algorithm, and it's been around for many years.

Question still stands: why does Dell recommend round-robin instead of service-time?

From the multipath.conf man page:

 

       path_selector    The default path selector algorithm to use; they are offered by the kernel multipath target. There are three selector algorithms:

                        round-robin 0
                                    Loop through every path in the path group, sending the same amount of I/O to each. Some aspects of behavior can be controlled with the attributes: rr_min_io, rr_min_io_rq and rr_weight.

                        queue-length 0
                                    (Since 2.6.31 kernel) Choose the path for the next bunch of I/O based on the amount of outstanding I/O to the path.

                        service-time 0
                                    (Since 2.6.31 kernel) Choose the path for the next bunch of I/O based on the amount of outstanding I/O to the path and its relative throughput.

                        The default is: service-time 0

 

 

Also, the section about ALUA I have already read. As I quoted in the original post, the documentation states "If your MD Series RAID storage array supports Asymmetric Logical Unit Access (ALUA)...", which doesn't really say much. Dell should know what their hardware supports and not, and that should be clear in the documentation.

I tried using "1 alua" as hardware_handler and "alua" as prio in multipath.conf, but that yielded this:

 

Dec 2 09:48:07 srv-gpf-02 multipathd[9664]: sdex: alua not supported

 

 

Also from the manpage:

 

Important Note: Linux kernels 4.3 and newer automatically attach a device handler to known devices (which includes all devices supporting SCSI-3 ALUA) and disallow changing the handler afterwards. Setting hardware_handler for such devices on these kernels has no effect.

 

Given the above, at least with kernels >=4.3, ALUA will automatically be used for hardware_handler and prio if it's supported. The kernel chooses rdac for both, indicating that ALUA is not supported on neither MD3660f nor MD3860f (at least not with the firmware versions I have).

The documentation is vague and should be updated.

 


@DELL-Sam L wrote:

Hello Danny,

With an MD36xx or MD38xx system you want to use Round Robin for multipathing.  Round Robin is the preferred, you can use others however you may get performance issues or errors that may occur. 

Here is a link to the administrator guide and if you look on page 148 it explains Device Mapper multipath for Linux.  https://topics-cdn.dell.com/pdf/powervault-md3400_administrator-guide_en-us.pdf

As for ALUA that is explained on page 154 of the administrator guide.

Please let us know if you have any other questions.




December 11th, 2019 04:00

Let's dig a little deeper.

 

Low-level style of finding out if a LUN supports ALUA, since neither Dell's documentation or the Internetz provides clear answers.

 

Install sg3-utils, then send a SCSI inqury command to the LUN. This is a Dell ME4084 enclosure.

root@srv-gpf-02:~# sg_inq /dev/mapper/me408401.adapt2.00 
standard INQUIRY:
  PQual=0  Device_type=0  RMB=0  LU_CONG=0  version=0x06  [SPC-4]
  [AERC=0]  [TrmTsk=0]  NormACA=0  HiSUP=1  Resp_data_format=2
  SCCS=0  ACC=0  TPGS=1  3PC=1  Protect=1  [BQue=0]
  EncServ=0  MultiP=1 (VS=0)  [MChngr=0]  [ACKREQQ=0]  Addr16=0
  [RelAdr=0]  WBus16=0  Sync=0  [Linked=0]  [TranDis=0]  CmdQue=1
  [SPI: Clocking=0x0  QAS=0  IUS=0]
    length=174 (0xae)   Peripheral device type: disk
 Vendor identification: DellEMC 
 Product identification: ME4             
 Product revision level: G275
 Unit serial number: 00c0ff4464400000cb59e55d01000000

Here we see TPGS=1, which is Target Port Groups Support, which is ALUA. If it's not 0, it supports ALUA. We can also see SPC-4, which tells us that this device supports SCSI Primary Commands version 4.

Comparing with an older device, it doesn't support ALUA (TPGS=0) and it only supports SPC-3. This device is a Dell MD3860f enclosure, and the output from Dell MD3660f enclosures is the same.

root@srv-gpf-02:~# sg_inq /dev/mapper/md07.00
standard INQUIRY:
  PQual=0  Device_type=0  RMB=0  LU_CONG=0  version=0x05  [SPC-3]
  [AERC=0]  [TrmTsk=0]  NormACA=1  HiSUP=1  Resp_data_format=2
  SCCS=0  ACC=0  TPGS=0  3PC=1  Protect=0  [BQue=0]
  EncServ=1  MultiP=1 (VS=0)  [MChngr=0]  [ACKREQQ=0]  Addr16=0
  [RelAdr=0]  WBus16=1  Sync=1  [Linked=0]  [TranDis=0]  CmdQue=1
  [SPI: Clocking=0x0  QAS=0  IUS=0]
    length=74 (0x4a)   Peripheral device type: disk
 Vendor identification: DELL    
 Product identification: MD38xxf         
 Product revision level: 0825
 Unit serial number: 021651000133  

Moderator

 • 

7.1K Posts

December 11th, 2019 06:00

Hello Danny,

With the MD3xxx series we found that round robin works the best with the least amount of issues.  With that being said you can use service-time as your multipath if you would like to.  now if your multipathing is not working correctly and you need to contact support for assistance, we would suggest that you try using round robin to see if you are getting the same issues.

Please let us know if you have any other questions.

No Events found!

Top