Dynamic path selection based on scheduler's resource allocation domain (SRAD) of I/O buffers and adapters
Dynamic path selection based on SRAD of I/O buffers and adapters includes: receiving, by a driver, an allocation of an input/output (I/O) buffer for an I/O request targeting a storage device; selecting a path to the storage device for carrying out the I/O request based on a buffer SRAD associated with the I/O buffer; and sending the IO request via the selected path connected to the adapter belonging to same SRAD as I/O buffer.
1 . A method for dynamic path selection based on Scheduler's Resource Allocation Domain (SRAD), the method comprising:
receiving, by a driver, an allocation of an input/output (I/O) buffer for an I/O request targeting a storage device;
selecting a path to the storage device for carrying out the I/O request based on a buffer SRAD associated with the I/O buffer; and
sending the I/O request via the selected path.
2 . The method of claim 1 , wherein selecting the path includes:
identifying the buffer SRAD associated with the I/O buffer responsive to receiving the V/O buffer; and
selecting, based on a determination that a potential path exists to an adapter having an adapter SRAD that matches the buffer SRAD, the potential path for carrying out the I/O request.
3 . The method of claim 1 , wherein selecting the path includes:
identifying the buffer SRAD associated with the I/O buffer responsive to receiving the I/O buffer; and
selecting, based on a determination that a potential path does not exist to an adapter having an adapter SRAD that matches the buffer SRAD, a second path to a second adapter having an adapter SRAD closest to the buffer SRAD.
4 . The method of claim 1 , further comprising:
determining, prior to sending the I/O request via the selected path, whether the selected path is overloaded; and
selecting, based on the selected path being overloaded, an alternative path for carrying out the I/O request.
5 . The method of claim 4 , wherein determining whether the selected path is overloaded includes comparing an I/O rate associated with the selected path with an I/O path threshold.
6 . The method of claim 4 , wherein selecting the alternative path for carrying out the I/O request includes:
identifying the buffer SRAD associated with the I/O buffer responsive to receiving the I/O buffer; and
selecting a second path to an adapter having an adapter SRAD closest to the buffer SRAD, wherein the second path is not overloaded.
7 . The method of claim 1 , wherein the buffer SRAD associated with the I/O buffer is identified using kernel services.
8 . A computer system for dynamic path selection based on Scheduler's Resource Allocation Domain (SRAD), the computer system comprising:
a processor set;
one or more computer-readable storage media; and
program instructions stored on the one or more computer-readable storage media configured to cause the processor set to perform operations comprising:
receiving, by a driver, an allocation of an input/output (I/O) buffer for an I/O request targeting a storage device;
selecting a path to the storage device for carrying out the I/O request based on a buffer SRAD associated with the I/O buffer; and
sending the I/O request via the selected path.
9 . The computer system of claim 8 , wherein selecting the path includes:
identifying the buffer SRAD associated with the I/O buffer responsive to receiving the I/O buffer; and
selecting, based on a determination that a potential path exists to an adapter having an adapter SRAD that matches the buffer SRAD, the potential path for carrying out the I/O request.
10 . The computer system of claim 8 , wherein selecting the path includes:
identifying the buffer SRAD associated with the I/O buffer responsive to receiving the I/O buffer; and
selecting, based on a determination that a potential path does not exist to an adapter having an adapter SRAD that matches the buffer SRAD, a second path to a second adapter having an adapter SRAD closest to the buffer SRAD.
11 . The computer system of claim 8 , wherein the operations further comprise:
determining, prior to sending the I/O request via the selected path, whether the selected path is overloaded; and
selecting, based on the selected path being overloaded, an alternative path for carrying out the I/O request.
12 . The computer system of claim 11 , wherein determining whether the selected path is overloaded includes comparing an I/O rate associated with the selected path with an I/O path threshold.
13 . The computer system of claim 11 , wherein selecting the alternative path for carrying out the I/O request includes:
identifying the buffer SRAD associated with the I/O buffer responsive to receiving the I/O buffer; and
selecting a second path to an adapter having an adapter SRAD closest to the buffer SRAD, wherein the second path is not overloaded.
14 . The computer system of claim 8 , wherein the buffer SRAD associated with the I/O buffer is identified using kernel services.
15 . A computer program product for dynamic path selection based on Scheduler's Resource Allocation Domain (SRAD), the computer program product comprising:
one or more computer-readable storage media; and
program instructions stored on the one or more computer-readable storage media configured to perform operations comprising:
receiving, by a driver, an allocation of an input/output (I/O) buffer for an I/O request targeting a storage device;
selecting a path to the storage device for carrying out the I/O request based on a buffer SRAD associated with the I/O buffer; and
sending the I/O request via the selected path.
16 . The computer program product of claim 15 , wherein selecting the path includes:
identifying the buffer SRAD associated with the I/O buffer responsive to receiving the I/O buffer; and
selecting, based on a determination that a potential path exists to an adapter having an adapter SRAD that matches the buffer SRAD, the potential path for carrying out the I/O request.
17 . The computer program product of claim 15 , wherein selecting the path includes:
identifying the buffer SRAD associated with the I/O buffer responsive to receiving the I/O buffer; and
selecting, based on a determination that a potential path does not exist to an adapter having an adapter SRAD that matches the buffer SRAD, a second path to a second adapter having an adapter SRAD closest to the buffer SRAD.
18 . The computer program product of claim 15 , wherein the operations further comprise:
determining, prior to sending the I/O request via the selected path, whether the selected path is overloaded; and
selecting, based on the selected path being overloaded, an alternative path for carrying out the I/O request.
19 . The computer program product of claim 18 , wherein determining whether the selected path is overloaded includes comparing an I/O rate associated with the selected path with an I/O path threshold.
20 . The computer program product of claim 18 , wherein selecting the alternative path for carrying out the I/O request includes:
identifying the buffer SRAD associated with the I/O buffer responsive to receiving the I/O buffer; and
selecting a second path to an adapter having an adapter SRAD closest to the buffer SRAD, wherein the second path is not overloaded.