Multipath Connectivity
UltraPath
UltraPath is a Huawei-developed multipathing software. It can manage and process disk creation/deletion and I/O delivery of operating systems.
UltraPath provides the following functions:
- Masking of redundant LUNs
In a redundant storage network, an application server with no multipathing software detects a LUN on each path. Therefore, a LUN mapped through multiple paths is mistaken for two or more different LUNs. UltraPath installed on the application server masks redundant LUNs on the operating system driver layer to provide the application server with only one available LUN, the virtual LUN. In this case, the application server only needs to deliver data read and write operations to UltraPath that masks the redundant LUNs, and properly writes data into LUNs without damaging other data.
- Optimum path selection
In a multipath environment, the owning controller of the LUN on the storage system mapped to an application server is the prior controller. With UltraPath, an application server accesses the LUN on the storage system through the prior controller, thereby obtaining the highest I/O speed. The path to the prior controller is the optimum path.
- Failover and failback
- Failover
When a path fails, UltraPath fails over its services to another functional path.
- Failback
UltraPath automatically delivers I/Os to the first path again after the path recovers from the fault.
- Failover
- I/O Load balancing
UltraPath provides load balancing within a controller and across controllers.
- For load balancing within a controller, I/Os poll among all the paths of the controller.
- For load balancing across controllers, I/Os poll among the paths of all these controllers.
- Path test
UltraPath tests the following paths:
- Faulty paths
UltraPath tests faulty paths with a high frequency to detect the path recover as soon as possible.
- Idle paths
UltraPath tests idle paths to identify faulty paths in advance, preventing unnecessary I/O retries. The test frequency is kept low to minimize impact on service I/Os.
- Faulty paths
DM-Multipath
DM-Multipath is built-in multipathing software in Red Hat.
DM-Multipath allows you to configure multiple I/O paths between a host and a storage system as one device. These I/O paths may contain independent physical devices such as cables, switches, and controllers.
DM-Multipath supports redundant paths and improves system performance.
- Redundancy
DM-Multipath supports active/standby path configuration. This configuration creates a redundant path for each active path. The redundant paths are not used when the active paths work properly. Once an element (such as a cable, switch, or controller) on an active I/O path becomes faulty, DM-Multipath switches I/Os to a standby path.
- Performance enhancement
DM-Multipath supports active-active paths, that is, I/Os are distributed to all paths based on the I/O scheduling algorithm. DM-Multipath can check I/O loads on paths and dynamically balance I/Os among the paths using the round-robin algorithm.
Table 2-1 describes DM-Multipath components.
Component |
Description |
---|---|
Kernel module |
Redirects I/Os on paths and path groups and provides redundant paths. |
mpathconf |
A command used to configure and manage DM-Multipath (applicable in some operating systems) |
multipath |
A management command used to list and configure multipathing devices |
multipathd |
A daemon process that monitors paths. It initiates path switchover upon a path fault. This process also interactively modifies multipathing devices. This process is started before the /etc/multipath.conf file is modified. |
ALUA
- ALUA definition:
Asymmetric Logical Unit Access (ALUA) is a multi-target port access model. In a multipathing state, the ALUA model provides a way of presenting active/passive LUNs to a host and offers a port status switching interface to switch over the working controller. For example, when a host multipathing program that supports ALUA detects a port status change (the port becomes unavailable) on a faulty controller, the program will automatically switch subsequent I/Os to the other controller.
- Support by Huawei storage
Old-version Huawei storage supports ALUA only in dual-controller configuration, but not in multi-controller or HyperMetro configuration.
New-version Huawei storage supports ALUA in dual-controller, multi-controller, and HyperMetro configurations.
Table 2-2 defines old- and new-version Huawei storage.
Storage Type |
Version |
Remarks |
---|---|---|
Old-version Huawei storage |
T V1, T V2, 18000 V1, V300R001, V300R002, V300R003C00, V300R003C10, V300R005, and Dorado V300R001C00 |
- |
New-version Huawei storage |
V300R003C20, V300R006C00, V500R007C00, Dorado V300R001C01, and later versions |
V300R003C20: refers to only V300R003C20SPC200 and later versions. V300R006C00: refers to only V300R006C00SPC100 and later versions. Dorado V300R001C01: refers to only V300R001C01SPC100 and later versions. |
- ALUA impacts
ALUA is mainly applicable to a storage system that has only one prior LUN controller. All host I/Os can be routed through different controllers to the working controller for execution. ALUA will instruct the hosts to deliver I/Os preferentially from the LUN working controller, thereby reducing the I/O routing-consumed resources on the non-working controllers.
If all I/O paths of the LUN working controller are disconnected, the host I/Os will be delivered only from a non-working controller and then routed to the working controller for execution.
- Suggestions for using ALUA on Huawei storage
To prevent I/Os from being delivered to a non-working controller, you are advised to ensure that:
- LUN home/working controllers are evenly distributed on storage systems so that host service I/Os are delivered to multiple controllers for load balancing.
- Hosts always try the best to select the optimal path to deliver I/Os even after an I/O path switchover.