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. UltraPath then masks the redundant LUNs, and writes data into LUNs without damaging other data.
- Optimum path selection
In a multipath environment, an application server with UltraPath accesses a LUN on the storage system through an optimum path, thereby obtaining the highest I/O speed.
- 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 faulty and idle paths:
- Faulty paths
UltraPath frequently tests faulty paths to detect the path recovery as soon as possible.
- Idle paths
UltraPath tests idle paths to identify potentially faulty paths early on, preventing unnecessary I/O retries. The test frequency is kept low to minimize impact on service I/Os.
- Faulty paths
MPIO
Windows Microsoft Multi-Path IO (MPIO) allows storage vendors to develop multipathing solutions that contain the hardware-specific information needed to optimize connectivity with storage systems. MPIO can be used independently. This software helps balance loads among multiple paths, and implement path selection and failover between storage systems and hosts.
MPIO supports the following policy settings:
- Failover Only
This policy does not perform load balancing. This policy uses a single active path, and the rest of the paths are standby paths. The active path is used for sending all I/Os. If the active path fails, then one of the standby paths is used. When the failed path is reactivated or reconnected, the standby path that was activated returns to standby.
- Round Robin
This load balancing policy allows the Device Specific Module (DSM) to use all available paths for MPIO in a balanced way. This is the default policy that is chosen when the storage controller follows the active-active model and the management application does not specifically choose a load balancing policy.
- Round Robin with Subset
This load balancing policy allows the application to specify a set of paths to be used in a round robin fashion, and with a set of standby paths. The DSM uses paths from a primary path pool for processing requests as long as at least one of the paths is available. The DSM uses a standby path only when all the primary paths fail. For example, given 4 paths: A, B, C, and D, paths A, B, and C are listed as primary paths and D is the standby path. The DSM chooses a path from A, B, and C in round robin fashion as long as at least one of them is available. If all three paths fail, the DSM uses D, the standby path. If paths A, B, or C become available, the DSM stops using path D and switches to the available primary paths.
- Least Queue Depth
This load balancing policy sends I/O down the path with the fewest currently outstanding I/O requests. For example, consider that there is one I/O sent to LUN 1 on Path 1, and the other I/O is sent to LUN 2 on Path 1. The cumulative outstanding I/O on Path 1 is 2, and on Path 2 is 0. Therefore, the next I/O for either LUN will process on Path 2.
- Weighed Paths
This load balancing policy assigns a weight to each path. The weight indicates the relative priority of a given path. The larger the number, the lower ranked the priority. The DSM chooses the least-weighted path from among the available paths.
- Least Blocks
This load balancing policy sends I/O down the path with the least number of data blocks currently being processed. For example, consider that there are two I/Os: one is 10 bytes and the other is 20 bytes. Both are in process on Path 1, and there are no outstanding I/Os on Path 2. The cumulative outstanding amount of I/O on Path 1 is 30 bytes. On Path 2, it is 0. Therefore, the next I/O will process on Path 2.