HP-UX 11i v3 Native Multi-Pathing for Mass Storage (August 2012)
6
• Round-robin (round_robin) – This policy distributes the I/O load equally across all active
lunpaths irrespective of the current load on each lunpath. It is suitable when lunpaths have similar
I/O operation turnaround characteristics.
• Least command load (least_cmd_load) – This policy selects the lunpath with the least number of
pending I/O requests for the next I/O operation. It is suitable when lunpaths have asymmetric
performance characteristics.
• Cell aware round robin (cl_round_robin) – This policy is applicable to servers supporting hard
partitions, which have high latencies for non-local memory access operations. The lunpath chosen to
issue an I/O operation is in the same locality in which the I/O is issued. This policy helps optimize
memory access latency.
When using cl_round_robin, the mass storage stack looks at the locality value of the CPU
initiating the specific I/O request and attempts to find a LUN path to the specific disk device with
exactly the same locality value. If suitable LUN paths with the same locality value are found, only
these are used. Otherwise, all available paths are used, much like the standard round robin policy.
The policy also has the following characteristics:
– Typically, the interface driver data structures reside in the cell local memory (if it is configured on
the cell based machine). The actual data that needs to be transferred between the device and
system memory is typically located in the file cache, which typically resides in interleaved memory
(ILM). The cl_round_robin scheduling policy tries to minimize the memory access latency only
for these interface driver data structures and not the interleaved memory access, which is required
to do the actual data transfer for an I/O.
– If an I/O issued from a process is tied to a particular CPU, using the cl_round_robin policy
limits the mass storage stack to use only a subset of LUN paths to a LUN that have the same
locality value as the CPU on which the process runs.
The cl_round_robin scheduling policy is beneficial in those cell based system configurations
where cell local memory is set up and a uniform distribution of interface cards across all the cells of
the system exists.
• Closest path (closest_path) – This policy selects the lunpath based on its affinity with the CPU
processing the I/O operation so as to minimize memory access latency. This policy is more
appropriate for cell-based platforms. The affinity between the lunpath and CPU is determined based
on the relative locations of the CPU processing the I/O operation and the CPU to which the HBA
used by the lunpath is bound. The lunpath is selected by order of preference depending on whether
both CPUs share:
1. The same core
2. The same socket
3. The same Front Side Bus (FSB)
4. The same cell
5. Different cells
• Preferred path (preferred_path), Preferred target port (pref_tport) – These two policies
apply to certain types of targets that present an optimized/un-optimized controller model (different
from active-passive). An optimized/un-optimized controller pair is one in which the optimized
controller is favored for accessing that LUN since it yields better performance.
– With the preferred path, you specify a lunpath to the optimized controller. This lunpath is used
preferably for I/O transfers to the disk device.
– With the preferred target port, you specify an optimized target port. Lunpaths to this target port
are used preferably for I/O transfers to the disk device.