In this Article, we will be discussing about:
- Why do we need Multipathing?
- What is Multipathing?
- Advantages of Multipathing
- How Multipathing Works
Before understanding what is Multipathing, let’s first understand why we need multipathing.
Let me first ask you, Do you see any issue with the below mentioned diagram of datacenter design?
There are 4 Mission Critical VMs residing on some LUN coming from Storage Array and it is accessible to ESXi hypervisor using Single Path.
Yes, you guessed it correctly!!!
If we look at this design, there are two issues:
- What if the Path between ESXi and LUN goes down? All VMs becomes inaccessible and brings down the entire infrastructure. Path Failure could happen due to HBA failures, switch failures or Controller failures.
- What if VMs are pumping huge IO but Hypervisor is not able to send those IOs at faster speed to Storage Device due to single path availability. Hence most of the IOs generated by VMs are getting queued up in Hypervisor Kernel Queue/Guest OS queue and decreasing the VMs Storage Performance.
In conclusion, we don’t get Failover and Load Balancing functionalities if single path is available between Hypervisor and Storage Device.
WHY DO WE NEED MULTI-PATHING?
Configuration of multiple paths increases the data availability through path failover. If servers are configured with one I/O path to the data there will be no access to the data if that path fails. Redundant paths eliminate the path to become single points of failure. Multiple paths to data also improve I/O performance through load sharing and maximize server, storage, and data path utilization.
WHAT IS MULTI-PATHING
The connection from the server through the HBAs to the Storage Controller is referred as PATH. Multipath Connectivity refers to a system configuration where multiple connection paths exists between Server and Storage Device called LUNs within a Storage Subsystem.
ADVANTAGES OF MULTI-PATHING:
FAILOVER: Multipath connectivity provides redundant access to the storage devices, for ex. Always provide access to the storage device even when any of the component in entire path fails.
LOAD BALANCING: This multipath configuration can be used to provide redundancy or increased Bandwidth. It increased throughput by way of load-balance Disks IO across multiple paths available.
Note: Multipathing protects against the failure of Path(s) and not the failure of a specific storage unit.
Below is the example of Highly Available Storage Design:
HOW MULTI-PATHING WORKS
only configuring multiple paths doesn’t serve the purpose. Even with multiple paths, if one path fails, IO will not re-route unless the system recognizes that it has an alternative path.
That’s where we need multi-pathing driver in System to provide the functionality to recognize and utilize alternate I/O paths to data & also manage the load balancing by distributing I/O to all available Active Paths.
Without Multipathing driver, the same device through different physical ports/paths would appear as totally different devices which can cause data corruption.
Multipathing driver interprets multiple paths coming from same device and shows up as single device to system to avoid any data corruption.
Below figure depicts this scenario:
Example of Multipathing Driver built in operating systems:
- MPIO for windows OS
- DM-Multipath for Linux OS
- NMP for VMware ESXi
Example of Multipathing Driver designed by Storage Vendor
- PowerPath by EMC for Windows/Linux/ESXi
- SDDDSM by IBM for Windows OS, DM-Multipath for Linux and NMP for ESXi
- SecurePath by HP for Windows/Linux/ESXi