What is Multipathing?

Quick definition: Multipathing provides multiple physical paths between compute and storage devices to increase reliability, performance, and fault tolerance.
In the world of IT infrastructure, there's a saying: "Two is one, and one is none." Which is to say, redundancies are critical, and single points of failure are unacceptable. Servers use RAID arrays because one hard drive is one failure away from downtime. Network switch protocols like spanning tree allow for the failure of one switch without causing a wide outage. Multiple internet connections will keep you online if one ISP goes dark.
A lesser-known form of redundancy, though, is multipathing.
It has a rather niche application: providing redundancy between servers and storage devices. This redundancy comes from multiple connections, which vary depending on the technology being used. It often includes SCSI HBAs for SANs, fiber channel cables and switches for NASes, and ethernet cables and switches for NASes.
Simply put, multipathing has multiple connections using any of these technologies to provide more than one physical connection.
Multipathing is crucial in a highly available environment, keeping the bits flowing in the event of a path failure. But there's a lot more to it than just plugging in extra cables. Let's explore multipathing, its extra benefits, and how best to implement it.
What is Multipathing?
Multipathing establishes more than one physical connection between a host and a storage system. These paths may travel through different switches, network adapters, or controllers, depending on the infrastructure setup. Multipathing software and drivers manage these paths and decide which path to use for any given data transfer.
In the event that one path becomes unavailable (due to a cable failure, switch malfunction, or controller issue), the software automatically reroutes the data traffic to an alternate path without any disruption to the applications accessing the storage.
Beyond failure handling, multipathing can also distribute the load across multiple available paths, optimizing the performance and making the most of the available bandwidth.
Types of Multipathing Algorithms
Reliability isn't the only benefit of multipathing, however. Multiple connections mean an overall bigger pipe between servers and storage, and multipathing can take advantage of this to increase throughput, reduce bottlenecks, and enhance performance overall. Multipathing uses a number of different load-balancing algorithms to optimize the data flow, including:
Round Robin: This is the simplest algorithm, where data is equally distributed sequentially between the available paths. It does not consider paths with different throughput levels; for example, it will send equal amounts of data across 64 Gbps and 16 Gbps fiber channel links.
Least Queue Depth: This algorithm monitors the depth of the queues of each path and sends data through the one with the least data waiting to go out.
Weighted Path: An admin sets different weights, or priorities, for each path based on their choosing, usually performance characteristics. Higher-performing paths are usually given a higher weight, resulting in more traffic being sent through them.
Failover Only: In this mode, no load balancing or performance enhancements are applied; one path is used as a primary and carries all the data unless it is interrupted, at which point a secondary path takes over. This is the choice when multipathing is only desired for its fault tolerance capabilities.
What are the Benefits of Multipathing?
There are multiple benefits to multipathing, but here are the main ones to be aware of:
Increased Reliability
Reliability is crucial in environments where servers and data must be always available. By establishing multiple paths between storage and host, you can remove what would otherwise be a single point of failure for your infrastructure.
Enhanced Performance
As discussed, multipathing can offer several forms of load balancing that can increase data bandwidth. This is particularly advantageous in environments with abnormally high data throughput needs, where multiple paths reduce congestion and improve the overall speed of data access.
Redundancy and Fault Tolerance
Perhaps the most crucial benefit of multipathing is its ability to offer redundancy and fault tolerance. If one path fails due to a hardware issue or network disruption, another path can seamlessly take over, ensuring continuous data transmission without service interruption.
How to Implement Multipathing
Multipathing is supported by a wide range of storage hardware vendors, including big players like Dell, IBM, and NetApp. On the OS side, support and native drivers are available for Windows, Linux, and VMware.
Depending on your setup, specific software packages may be required, like Microsoft’s Multipath I/O (MPIO) or Linux Device Mapper Multipath (DM-Multipath). The hardware vendor will be best equipped to guide you on supported configurations for their gear.
Configuration Steps
The specifics of these steps will vary, and your storage hardware vendor will be best to consult with. The general process, though, will look like this:
Install and enable multipathing software (if required).
Configure the storage system, including the physical paths, and ensure the software and OS recognize them and your preferred load-balancing configuration.
Verify storage availability using hardware vendor diagnostic tools and test file operations through the OS.
Test failover by simulating path failures and rerunning availability tests.
Best Practices for Implementation
Obviously, solving one point of single failure doesn't do much good if you create others, so it's essential to make sure every step along all your paths is redundant, including switches, controllers, etc.
Paths must also be monitored to quickly address issues with automated alerts if a path goes offline. Finally, paths should be optimized, especially regarding load balancing algorithms, to get the best performance possible.
Troubleshooting Common Issues with Multipathing
One common problem with multipathing is misconfigured paths, where they are either misidentified or mismapped, resulting in one or both paths not functioning. You'll also want to ensure every component along each path is functional; cables, adapters, and switches should be confirmed working to rule out a bad component.
Finally, dealing with performance bottlenecks can be a pain. Careful selection of a load balancing algorithm and load testing each link can help find the bottleneck.
Multipathing Use Cases
The most common use case for multipathing is probably with Storage Area Networks (SANs). In these environments, storage devices are typically shared among multiple servers. Another is network-attached storage (NAS), where again, storage is shared but across TCP links. In both of these cases, multiple paths between servers and storage are crucial for reliability and can help improve performance considerably.
An everyday application-level use case is in virtualization environments. Instead of virtual hard disks living on individual hosts, they live on shared storage, and multiple hosts are in a cluster configuration where any host can run any VM on the cluster. The connection between hosts and storage is critical, as a loss of connection doesn't just affect data but can take down entire servers.
Final Thoughts on Multipathing
Multipathing is an essential feature in modern IT infrastructure. It provides necessary resiliency for connections between servers and storage to ensure critical data has one less failure point. It also brings a substantial performance boost with load-balancing features. With proper configurations following best practices, multipathing can also provide a considerable advantage in your data center.
Multipathing is a key concept on the CompTIA Network+ exam. Prepare for the test with CBT Nuggets CompTIA Network+ (N10-009) Certification Training.
delivered to your inbox.
By submitting this form you agree to receive marketing emails from CBT Nuggets and that you have read, understood and are able to consent to our privacy policy.