MPIO – What is it and why should I use it

Dell Storage Community

Dell Storage Community
Dell Storage Community

Dell Storage Community - Wiki

MPIO – What is it and why should I use it

Dell Storage Community - Wiki

What is MPIO? 

MPIO is an acronym for MultiPath Input Output.   This is a framework that gives administrators the ability to configure load balancing and failover processes for connections to storage devices.  Most storage arrays offer this in the form of multiple controllers, but the servers still need a way to spread the I/O load and handle internal failover from one path to the next.  This is where MPIO plays a key function, because without it servers would see multiple instances of the same disk.

Multipathing solutions use redundant physical path components like adapters, cables, and network switches, to create logical paths between the server and the storage device.  In the event that one or more of these components fails, causing the path to fail, multipathing logic uses an alternate path for I/O so that applications can still access their data.  Each network interface card or HBA should be connected by using redundant network switching to provide continued access to storage in the event of a failure.

New MPIO features in Windows Server 2008 include a Device Specific Module (DSM) designed to work with storage arrays, and are included with most of the Dell Storage products.

The Microsoft DSM provides the following load balancing policies. Note that load balance policies are generally dependent on the controller model (ALUA or true Active/Active) of the storage array attached to Windows-based computers.

  • Failover   No load balancing is performed. The application specifies a primary path and a set of standby paths. The primary path is used for processing device requests. If the primary path fails, one of the standby paths is used. Standby paths must be listed in decreasing order of preference (the most preferred path first).

 

  • Failback   Failback is the ability to dedicate I/O to a preferred path whenever it is functioning. If the preferred path fails, I/O is directed to an alternate path until function is restored to the preferred path, but I/O automatically switches back to the preferred path when function is restored.

 

  • Round-robin   The DSM uses all available paths for I/O in a balanced, round-robin fashion.

 

  • Round-robin with a subset of paths   The application specifies a set of paths to be used in a round-robin fashion, and a set of standby paths. The DSM uses paths from primary pool of paths for processing requests, as long as at least one of the paths is available. The DSM uses a standby path only when all primary paths fail. Standby paths must be listed in decreasing order of preference (most preferred path first). If one or more of the primary paths become available, DSM uses the standby paths in their order of preference. For example, given 4 paths — A, B, C, and D — A, B, and C are listed as primary paths, and D is standby path. The DSM chooses a path from A, B, and C in round-robin fashion as long as at least one of them is available.

    If all three fail, the DSM uses D, the standby path. If A, B, or C become available, DSM stops using D and switches to available paths among A, B, and C.

 

  • Dynamic Least Queue Depth   The DSM routes I/O to the path with the least number of outstanding requests.

 

  • Weighted Path   The application assigns weights to each path; the weight indicates the relative priority of a given path. The larger the number, the lower the priority. The DSM chooses the path that has the least weight from among the available paths.
0