Multipath I/O (MPIO)
Multipath I/O (MPIO) is a Microsoft framework designed to mitigate the effects of a host bus adapter (HBA) failure by providing an alternate data path between storage devices and a Windows operating system. MPIO enables up to 32 alternate paths to add redundancy and load balancing for Windows storage environments.
Pathing is a networking approach used to address the specific needs of storage networks by changing the way that communication paths are managed and organized. Unlike connection failures in message networks -- which generally just require that the connection be retried -- in storage networks, a failure is more likely to cause a system crash. Storage networks also require faster error recovery.
Technically, MPIO represents a hybrid approach to multipathing, combining software specific to each HBA -- the Device Specific Module (DSM) -- with the MPIO features integrated into the Windows operating system. While the DSMs must be written for specific hardware and cannot be generic, Microsoft designed MPIO to be as HBA-agnostic as possible. As such, it depends on the rest of the hardware and software to work correctly in order to do its job.
MPIO requires at least two HBAs connected to the storage device. (A dual-port HBA may provide two data paths, but it still represents a single point of failure.) In a storage area network (SAN) you also need to ensure that any switches or routers laying in the data path have enough path management intelligence to handle disruptions caused by an HBA failure.