This paper describes the Dynamic Multi-pathing (DMP) feature of Veritas Storage Foundation™. The product architecture described herein was introduced with DMP release 5.0. It was subsequently backported to the Solaris 4.1 code base in SxRT 4.1 MP2, the AIX 4.0 code base in AxRT 4.0 MP4 and the Linux 4.1 code base in LxRT 4.1 MP4. These three releases and up are collectively referred to as DMP Backport releases throughout this document.
The paper should be used as a guide to understanding Dynamic Multi-pathing. For up-to-date information on features and coverage, readers are advised to consult Symantec documentation and support sources.
The basic techniques for keeping business-critical computer applications and digital data available to users despite hardware and software failures are well-known:
In enterprise data centers, there is another increasingly important link in the information access chain—the I/O path that connects servers with the data they process. The I/O path, represented in Figure 1, is a complex chain consisting of host bus adapter, cables, storage network switch, storage device adapter port, and, in disk arrays, a disk controller.
The I/O path shown in Figure 1 begins at a host bus adapter (HBA)2 that connects an I/O cable to a server’s internal memory access bus. The cable connects the HBA to a corresponding port in a storage network switch. As Figure 1 suggests, the switch manages logical connections between HBAs and ports within disk array controllers, or between HBAs and disk drives. Disk array controllers, which typically have more than one port, virtualize disks within the array and present them to the storage network as logical units, or LUNs. 3
With increasing deployment of storage networks, IT managers are becoming conscious of the important role that I/O paths play in keeping data available. For example, two disks mirrored by a host-based volume manager may be connected to their hosting server either by the same I/O path, as shown on the left side of Figure 2, or by different paths, as shown on the right. If multiple paths are available, mirroring not only protects against data loss due to disk failure, it also protects against loss of access to data if an I/O path element fails, as Figure 2 illustrates.
The server on the left in Figure 2 cannot access its data when the cable between its HBA and the network switch port fails, even though the storage itself remains completely functional, because the cable is a single point of failure. The server on the right, on the other hand, can continue to access data if one of its HBAs fails, if a cable fails, or even if one of the disk array’s controllers fails, because in each case there is an alternate path that does not include the failed element.
Thus, a second independent path between server and storage increases the number of component failures an I/O subsystem can withstand without loss of function. But even with an alternate path, I/O path failure can still be tantamount to storage device failure unless the system recognizes that it has an alternate path and reroutes I/O requests to it. If a server does not recognize an alternate path to a storage device, the device may as well have failed. Even with failure-tolerant mirrored devices, for example, only devices on still-functioning paths are updated after a path failure. Data redundancy is diminished, even though the unreachable device is still functional. Moreover, I/O performance decreases because one less device is available to satisfy read requests.
Thus, an ability to recognize and utilize alternate I/O paths to storage devices would clearly be preferable. If a path failed, I/O requests would be re-routed to the alternate. Mirrored data would remain fully protected, and the effect on I/O performance would be smaller.
Multiple I/O paths between server and storage device can also improve I/O performance. In many applications, disk arrays satisfy a significant percentage of I/O requests from cache. For example, most disk arrays recognize sequential read patterns, and begin to read data into cache in advance of host I/O requests. In this scenario, I/O path bandwidth can actually limit LUN performance. With multiple I/O paths to a LUN however, all can be delivered concurrently as fast as applications request it. Similarly, if an I/O path that provides access to multiple LUNs becomes momentarily overloaded due to activity on one LUN, other LUNs’ I/O requests can be routed to less-busy paths.
Disks and disk arrays support multi-path access to LUNs in several different ways. Fundamentally, there is a distinction between:
In addition to this broad classification, active-passive disk arrays capabilities differ in other ways that affect availability and I/O performance:
As discussed in later sections, the Dynamic Multi-pathing (DMP) feature of Storage Foundation has a modular architecture that allows it to support new and different types of multi-path access control quickly and easily.
UNIX operating systems “discover” the storage devices that are accessible to them automatically when they start up. Operating system device discovery consists of:
At the end of device discovery, an operating system has an in-memory database, or device tree, that represents the storage devices with which it can communicate, and has loaded the drivers required to control them.
To an operating system, a storage device is an address on a network that responds appropriately to SCSI storage device commands. UNIX operating systems are not inherently multi-path aware. They view a storage device accessible on two or more paths as two devices at different network addresses. Path management software, such as Storage Foundation’s Dynamic Multi-pathing , is required to analyze the device tree and identify multi-path devices. DMP’s discovery process and the modifications it makes to the operating system device tree are described in Section 4.3.
DOWNLOAD COMPLETE WHITE PAPER BELOW
1 In this paper, the term disk refers both to actual disk drives and to the logical units (LUNs) presented to storage network ports by disk arrays.
2 Some HBAs have multiple ports, each of which is the starting point of a separate path through the storage network. Since each port is effectively a separate HBA, the model is simplified by treating an HBA as a port.
3 In addition to disk array virtualization, both disks and LUNs are sometimes virtualized by appliances or switches within the storage network, and by host-based volume managers such as VxVM. The virtual devices that result from disk array virtualization are universally referred to as LUNs. Virtual devices that result from switch and host-based virtualization are called virtual disks or volumes.