blog header
Subscribe via: (Email / RSS)

VCDX Enterprise Admin Notes: Round-Robin Multi-pathing

by Harley Stagner on November 18, 2009

This VCDX study note deals with Round-Robin Multi-pathing. The 1.1.K.4 section of the VCDX Enterprise Administration Exam blueprint asks the certification candidate to “Explain the use cases for round-robin load balancing.” Well, in VMware 3.5, round-robin is “experimentally” supported. So, in my opinion, the use cases are limited to test/dev and not production environments. That being said, the round-robin path selection policy is used to load-balance paths from the ESX host to the LUNs that are presented to it. Here is my take on round-robin, as I understand it. If anyone reading has something more to add, please do so in the comments section.

  • I believe round-robin to be most effective in Active/Active arrays where a LUN can be “owned” by more than one storage processor.
  • Round-robin can be set up for both Active/Active and Active/Passive arrays. However, if it is used on an Active/Passive array, then the array must NOT be configured to automatically switch controllers (path ping-ponging / thrashing can occur).
  • Path switching for failover can be set in the VI client, but load-balancing can only be set from the command line.
  • You set the path switching policy for load balancing on a per LUN basis using the esxcfg-mpath command.

This brings us to the 1.1.S.1 section in “Skills and Abilities”. Perform advanced multi-pathing configuration (specifically, configure round-robin behavior using command-line tools.

Notes for 1.1.S.1

  • Configure patch switching policy using the esxcfg-mpath command.
  • Round-robin and esxcfg-mpath are discussed in the Round-Robin Load Balancing technical note from VMware. Refer to this technical note for esxcfg-mpath options and syntax.
  • Below are some examples of setting a round-robin custom load balancing policy using esxcfg-mpath.
    • esxcfg-mpath --lun=vmhba0:0:0 -p custom (sets this particular LUN to use a custom policy. After this has been set, there is no need to specify the -p option on additional custom configurations for that LUN.
    • esxcfg-mpath --lun=vmhba0:0:0 -H any -B 4000 (Sets a custom HBA policy with the -H option to choose switch to any available HBA after 4000 blocks have been issued on the current path).
    • esxcfg-mpath --lun=vmhba0:0:0 -C 100 (Sets the maximum amount of commands before a path switch to 100 using -C or --custom-max-commands policy)
    • esxcfg-mpath -q --lun=vmhba0:0:0 (Shows the current load-balancing policy settings for that particular LUN).
  • There are some default settings for the --custom-max-blocks (2048) and --custom-max-commands (50) options. These defaults can be changed with the esxcfg-advcfg command as shown below.
    • esxcfg-advcfg -s 4000 /Disk/SPBlksToSwitch (Sets the number of blocks sent over a given path before a path switch default to 4000)
    • esxcfg-advcfg -s 100 /Disk/SPCmdsToSwitch (Sets the number of  I/O commands sent over a given path before a path switch default to 100)
    • esxcfg-advcfg -g /Disk/SPBlksToSwitch (Shows the current setting on the SPBlksToSwitch parameter).
    • esxcfg-advcfg-g /Disk/SPCmdsToSwitch (Shows the current setting on the SPCmdsToSwitch parameter).

Leave a Comment