US-12625616-B2 - Techniques for servicing I/O operations using redirection
Abstract
Techniques can include: configuring a federation to have a volume as active from only a first storage system so that hosts only sends I/O operations, directed to the first volume, to the first storage system; configuring a second storage system of the federation as inactive with respect to volume; determining, in accordance with criteria, to allow I/O operations directed to the volume to be sent to both the first and second storage systems; transitioning the second storage system, with respect to the volume, from inactive to active; and receiving, from a host at the first and second storage systems, I/O operations directed to the volume while the first and second storage systems are configured as active. The I/O operations can include a first I/O operation received at the second storage system which is redirected, by the second storage system, to the first storage system for servicing.
Inventors
- Amitai Alkalay
- Vladimir Shveidel
- Lior Kamran
Assignees
- DELL PRODUCTS L.P.
Dates
- Publication Date
- 20260512
- Application Date
- 20240813
Claims (18)
- 1 . A computer-implemented method comprising: receiving, at a first storage system from a host, a first I/O operation directed to a first volume, wherein the first volume is local to a second storage system and is owned by the second storage system; determining, at the first storage system, whether the first volume is owned by the first storage system; responsive to determining that the first volume is owned by the first storage system, servicing the first I/O operation locally on the first storage system; responsive to determining that the first volume is not owned by the first storage system, performing first processing including: determining that the first volume is i) owned by a second storage system and ii) local to the second storage system; redirecting the first I/O operation from the first storage system to the second storage system that owns the first volume; and responsive to said redirecting, the second storage system servicing the first I/O operation; wherein the first volume is owned by the first storage system and wherein the host sends a first plurality of I/Os to the first volume over first paths between the host and first one or more front-end (FE) ports of the first storage system, and wherein the host sends a second plurality of I/Os to the first volume over second paths between the host and second one or more FE ports of the second storage system; and the first storage system providing first information to the host, the first information including first port information indicating that a first port set of the first one or more FE ports of the first storage system are non-redirected ports with respect to the first volume owned by the first storage system such that I/Os directed to the first volume that are received at an FE port of the first port set are serviced locally by the first storage system, wherein each of the first paths is between a corresponding host port of the host and an FE port of the first port set.
- 2 . The computer-implemented method of claim 1 , wherein said redirecting includes sending the first I/O operation over an inter-system connection or link between the first storage system and the second storage system.
- 3 . The computer-implemented method of claim 2 , wherein the inter-system connection or link is used exclusively for inter-system communications between storage systems including the first storage system and the second storage system.
- 4 . The computer-implemented method of claim 3 , wherein said first processing includes: subsequent to the second storage system servicing the first I/O operation, the second storage system returning a first response for the first I/O operation to the first storage system; and the first storage system returning the first response to the host.
- 5 . The computer-implemented method of claim 4 , wherein the first response is sent from the second storage system to the first storage system over the inter-system connection or link.
- 6 . The computer-implemented method of claim 5 , wherein the host includes a multi-path (MP) driver that sends the first plurality of I/Os and the second plurality of I/Os.
- 7 . The computer-implemented method of claim 6 , further comprising: the second storage system providing second information to the host, the second information including second port information indicating that a second port set of the second one or more FE ports of the second storage system are redirected ports with respect to the first volume owned by the first storage system such that I/Os directed to the first volume that are received at an FE port of the second port set are redirected and thus forwarded by the second storage system to the first storage system for servicing by the first storage system, wherein each of the second paths is between a corresponding host port of the host and an FE port of the second port set.
- 8 . The computer-implemented method of claim 7 , wherein the MP driver uses the first information and the second information in connection with selecting a path over which to send each of the first plurality of I/O operations and each of the second plurality of I/O operations.
- 9 . The computer-implemented method of claim 8 , wherein each of the first plurality of I/O operations has a corresponding I/O data payload that is less than a maximum size and wherein the MP driver of the host performs second processing including: for each of the first plurality of I/O operations, determining that the size of said each I/O operation is less than a maximum size; and responsive to determining that said each I/O operation of the first plurality is less than the maximum size, selecting, using the first information, to send said each I/O operation of the first plurality over one of the first paths to a non-redirected port of the first storage system.
- 10 . The computer-implemented method of claim 9 , wherein the second processing includes: responsive to determining that said each I/O operation of the first plurality is less than the maximum size, determining not to send said each I/O operation of the first plurality over one of the second paths to a redirected port of the first storage system.
- 11 . The computer-implemented method of claim 9 , wherein each of the second plurality of I/O operations has a corresponding I/O data payload that is not less than the maximum size and wherein the second processing performed by the MP driver of the host includes: for each of the second plurality of I/O operations, determining that the size of said each I/O operation is not less than a maximum size; and responsive to determining said each I/O operation of the second plurality is not less than the maximum size, selecting, using the second information, to send said each I/O operation of the second plurality over one of the second paths to a directed port of the second storage system.
- 12 . The computer-implemented method of claim 11 , wherein the second processing includes: responsive to determining that said each I/O operation of the second plurality is not less than the maximum size, determining not to send said each I/O operation of the second plurality over one of the first paths to a non-redirected port of the first storage system.
- 13 . The computer-implemented method of claim 8 , further comprising: the MP driver of the host sending all write I/Os directed to the first volume over the first paths to the first port set of one or more non-redirected ports of the first storage system.
- 14 . The computer-implemented method of claim 1 , wherein the first storage system and the second storage system are included in a federation.
- 15 . The computer-implemented method of claim 14 , wherein the federation further includes a third storage system.
- 16 . The computer-implemented method of claim 15 , wherein a plurality of storage systems of the federation include the first storage system, the second storage system and the third storage system, wherein a plurality of volumes includes the first volume, and wherein the method further comprises: partitioning ownership of the plurality of volumes among the plurality of storage systems of the federation.
- 17 . One or more non-transitory computer readable media comprising code stored there that, when executed, performs a method comprising: receiving, at a first storage system from a host, a first I/O operation directed to a first volume, wherein the first volume is local to a second storage system and is owned by the second storage system; determining, at the first storage system, whether the first volume is owned by the first storage system; responsive to determining that the first volume is owned by the first storage system, servicing the first I/O operation locally on the first storage system; responsive to determining that the first volume is not owned by the first storage system, performing first processing including: determining that the first volume is i) owned by a second storage system and ii) local to the second storage system; redirecting the first I/O operation from the first storage system to the second storage system that owns the first volume; and responsive to said redirecting, the second storage system servicing the first I/O operation; wherein the first volume is owned by the first storage system and wherein the host sends a first plurality of I/Os to the first volume over first paths between the host and first one or more front-end (FE) ports of the first storage system, and wherein the host sends a second plurality of I/Os to the first volume over second paths between the host and second one or more FE ports of the second storage system; and the first storage system providing first information to the host, the first information including first port information indicating that a first port set of the first one or more FE ports of the first storage system are non-redirected ports with respect to the first volume owned by the first storage system such that I/Os directed to the first volume that are received at an FE port of the first port set are serviced locally by the first storage system, wherein each of the first paths is between a corresponding host port of the host and an FE port of the first port set.
- 18 . A system comprising: one or more processors; and one or more memories comprising code stored thereon that, when executed, performs a method comprising: receiving, at a first storage system from a host, a first I/O operation directed to a first volume, wherein the first volume is local to a second storage system and is owned by the second storage system; determining, at the first storage system, whether the first volume is owned by the first storage system; responsive to determining that the first volume is owned by the first storage system, servicing the first I/O operation locally on the first storage system; responsive to determining that the first volume is not owned by the first storage system, performing first processing including: determining that the first volume is i) owned by a second storage system and ii) local to the second storage system; redirecting the first I/O operation from the first storage system to the second storage system that owns the first volume; and responsive to said redirecting, the second storage system servicing the first I/O operation; wherein the first volume is owned by the first storage system and wherein the host sends a first plurality of I/Os to the first volume over first paths between the host and first one or more front-end (FE) ports of the first storage system, and wherein the host sends a second plurality of I/Os to the first volume over second paths between the host and second one or more FE ports of the second storage system; and the first storage system providing first information to the host, the first information including first port information indicating that a first port set of the first one or more FE ports of the first storage system are non-redirected ports with respect to the first volume owned by the first storage system such that I/Os directed to the first volume that are received at an FE port of the first port set are serviced locally by the first storage system, wherein each of the first paths is between a corresponding host port of the host and an FE port of the first port set.
Description
BACKGROUND Systems include different resources used by one or more host processors. The resources and the host processors in the system are interconnected by one or more communication connections, such as network connections. These resources include data storage devices such as those included in data storage systems. The data storage systems are typically coupled to one or more host processors and provide storage services to each host processor. Multiple data storage systems from one or more different vendors can be connected to provide common data storage for the one or more host processors. A host performs a variety of data processing tasks and operations using the data storage system. For example, a host issues I/O (input/output) operations, such as data read and write operations, that are subsequently received at a data storage system. The host systems store and retrieve data by issuing the I/O operations to the data storage system containing a plurality of host interface units, disk drives (or more generally storage devices), and disk interface units. The host systems access the storage devices through a plurality of channels provided therewith. The host systems provide data and access control information through the channels to a storage device of the data storage system. Data stored on the storage device is provided from the data storage system to the host systems also through the channels. The host systems do not address the storage devices of the data storage system directly, but rather, access what appears to the host systems as a plurality of files, objects, logical units, logical devices or logical volumes. Thus, the I/O operations issued by the host are directed to a particular storage entity, such as a file or logical device. The logical devices generally include physical storage provisioned from portions of one or more physical drives. Allowing multiple host systems to access the single data storage system allows the host systems to share data stored therein. SUMMARY Various embodiments of the techniques of the present disclosure can include a computer-implemented method, a system and a non-transitory computer readable medium. The system can include one or more processors and a memory including code stored therein that, when executed, performs the method. The non-transitory computer readable medium can include code stored thereon that, when, executed, performs the method. The method can comprise: configuring a federation to have a first volume as active from only a first storage system of the federation, wherein while the first volume is configured as active from only the first storage system of the federation, a host only sends I/O operations, which are directed to the first volume, to the first storage system of the federation, wherein said configuring the federation includes: configuring as inactive, with respect to the first volume, a second storage system of the federation; determining, subsequent to said configuring and in accordance with criteria, to allow I/O operations directed to the first volume to be sent to both the first storage system and the second storage system of the federation; responsive to said determining, transitioning the second storage system, with respect to the first volume, from inactive to active, wherein the first storage system is configured as active while the second storage system is also configured as active; and receiving, from the host at the first storage system and the second storage system, a plurality of I/O operations directed to the first volume while the first storage system and the second storage system are configured as active, wherein the plurality of I/O operations includes a first I/O operation received at the second storage system which is redirected, by the second storage system, to the first storage system for servicing. In at least one embodiment, configuring the federation can further include configuring as active, with respect to the first volume, the first storage system of the federation, wherein the host sends I/O operations directed to the first volume over a first set of one or more paths between the host and the first storage system while the first storage system is configured as active. The host may not send I/O operations directed to the first volume over a second set of one or more paths between the host and the second storage system while the second storage system is configured as inactive. The first volume can be owned by the first storage system and physical storage mapped to the first volume can be included on one or more non-volatile storage devices of the first storage system. While the first storage system is owner of the first volume, the first storage system can service all I/O operations which are received by the federation and directed to the first volume. In at least one embodiment, the criteria can include a plurality of conditions which all evaluate to true in the determining step and indicate to allow I/O operation