Method to balance I/O transactions in a multipath environment based on application, process or thread information.
Original Publication Date: 2008-Jun-10
Included in the Prior Art Database: 2008-Jun-10
Multipath I/O is a method of having multiple paths available to deliver I/O from an initiator to a target. Algorithms are used to determine which path each I/O should take. Current MPIO algorithms are limited to Round Robin, Fail over and load balancing. The problem is none of the current algorithms account for the type or content of I/O transactions to determine which path the I/O should use. Example: There are two paths to the same disk. The first path has a high throughput and the second has a low throughput (ie Fibre Channel path vs SATA path). This disk is being used by two applications to read and write I/O transactions. The first application may have a high priority and need I/O transactions completed as fast as possible where the second application is lower priority and is less time sensitive. With the current MPIO algorithms there is no method to give an application priority on a certain path or to bind I/O to a dedicated path. All current MPIO algorithms will intermix the I/O transactions from both applications without taking the application needs or priority into account.
Method to balance I/O transactions in a multipath environment based on application , process or thread information.
The solution is an algorithm that takes into account input from the system administrator on application, process or thread priorities and path designation. This gives the system administrator the ability to improve Quality of Service by tailoring path usage for his environment.
The solution is to allow the system administrator to provide input on path selection based on specific applications, processes or threads. This input will include the application identifier, process id or thread id as well as which paths should be used for I/O transactions matching these identifiers. One or more paths can be bound to the application, process or thread. Multi-pathing software using this algorithm will use this information to select the path that the I/O transaction will be sent down. This provides a mechanism for the system administrator to tune his system and path usage that is best suited for his particular MPIO environment and applications.
This idea can be used in a unique solution with Workload partitions. I/O transactions for each workload partition (the application) can be assigned to specific paths or have priorities set to increase the use of certain paths. This can improve the Quality of Service for Workload partitions.