Evenly distributing workload and providing a predictable failover scenario in a data replication system
AssigneeInternational Business Machines Corporation
InventorsPaul Anthony Jennas, Jason Lee Peipelman, Joshua Marshall Rhoades, David Montgomery, Philip Matthew Doatmas, Michael Robert Groseclose, Larry Juarez, Todd Charles Sorenson
A method for more effectively distributing the I/O workload in a data replication system is disclosed herein. In selected embodiments, such a method may include generating an I/O request and identifying a storage resource group associated with the I/O request. In the event the I/O request is associated with a first storage resource group, the I/O request may be directed to a first storage device and a copy of the I/O request may be mirrored from the first storage device to a second storage device. Alternatively, in the event the I/O request is associated with a second storage resource group, the I/O request may be directed to a second storage device and a copy of the I/O request may be mirrored from the second storage device to the first storage device. A corresponding system, apparatus, and computer program product are also disclosed and claimed herein.
Drawings
Claims12
An apparatus for distributing load in a data replication system comprising a first storage device and a second storage device, the apparatus comprising:
a processor;
a generation module to generate an I/O request for processing in one of a first storage resource group and a second storage resource group;
a routing module to direct the I/O request to the first storage device in the event the I/O request is to be processed in the first storage resource group, and to direct the I/O request to the second storage device in the event the I/O request is to be processed in the second storage resource group;
a first mirroring module associated with the first storage device to mirror a copy of the I/O request to the second storage device in the event the I/O request is directed to the first storage device;
and
a second mirroring module associated with the second storage device to mirror a copy of the I/O request to the first storage device in the event the I/O request is directed to the second storage device;
the routing module further configured to, in the event the I/O request is to be processed in the first storage resource group but communication with the first storage device fails, redirect the I/O request to the second storage device:
and
the routing module further configured to, in the event the I/O request is to be processed in the second storage resource group but communication with the second storage device fails, redirect the I/O request to the first storage device.
6 more elements
A system for distributing a load in a data replication environment, the system comprising:
first and second storage devices;
a host device configured to generate an I/O request for processing in one of a first storage resource group and a second storage resource group;
the host device further configured to direct the I/O request to the first storage device in the event the I/O request is to be processed in the first storage resource group, and direct the I/O request to the second storage device in the event the I/O request is to be processed in the second storage resource group;
the first storage device configured to mirror a copy of the I/O request to the second storage device in the event the I/O request is directed to the first storage device;
and
the second storage device configured to mirror a copy of the I/O request to the first storage device in the event the I/O request is directed to the second storage device;
the host device further configured to, in the event the I/O request is to be processed in the first storage resource group but communication with the first storage device fails, redirect the I/O request to the second storage device;
and
the host device further configured to, in the event the I/O request is to be processed in the second storage resource group but communication with the second storage device fails redirect the I/O request to the first storage device.
6 more elements
A computer program product for distributing a load in a data replication system comprising a first storage device and a second storage device, the computer program product comprising a non-transitory computer-readable medium having computer-usable program code embodied therein, the computer-usable program code comprising:
computer-usable program code to generate an I/O request for processing in one of a first storage resource group and a second storage resource group;
computer-usable program code to direct the I/O request to the first storage device and mirror a copy of the I/O request to the second storage device in the event the I/O request is to be processed in the first storage resource group;
computer-usable program code to direct the I/O request to the second storage device and mirror a copy of the I/O request to the first storage device in the event the I/O request is to be processed in the second storage resource group;
computer-usable program code to, in the event the I/O request is to be processed in the first storage resource group but communication with the first storage device fails, redirect the I/O request to the second storage device;
and
computer-usable program code to, in the event the I/O request is to be processed in the second storage resource group but communication with the second storage device fails redirect the I/O request to the first storage device.
21 Nov 2031Estimated · howhide20 years from earliest known nonprovisional domestic filing plus recorded patent term adjustment, including 762 days of adjustment. Maintenance-fee lapses, terminal disclaimers and statutory extensions have not been checked. The continuity chain may be incomplete; this is not an enforceability determination.
#This invention relates to networking technology, and more particularly to apparatus and methods for distributing the I/O workload in a data replication system.
#In order that the advantages of the invention will be readily understood, a more particular description of the invention briefly described above will be rendered by reference to specific embodiments illustrated in the appended drawings. Understanding that these drawings depict only typical embodiments of the invention and are not therefore to be considered limiting of its scope, the invention will be described and explained with additional specificity and detail through use of the accompanying drawings, in which:
#FIG. 1 is a high-level block diagram showing one example of a prior art PPRC system;
#FIG. 2 is a high-level block diagram showing one non-limiting example of a storage device in accordance with certain embodiments of the invention;
Detailed description4,040 words
#It will be readily understood that the components of the present invention, as generally described and illustrated in the Figures herein, could be arranged and designed in a wide variety of different configurations. Thus, the following more detailed description of the embodiments of the invention, as represented in the Figures, is not intended to limit the scope of the invention, as claimed, but is merely representative of certain examples of presently contemplated embodiments in accordance with the invention. The presently described embodiments will be best understood by reference to the drawings, wherein like parts are designated by like numerals throughout.
#As will be appreciated by one skilled in the art, the present invention may be embodied as an apparatus, system, method, or computer-program product. Furthermore, the present invention may take the form of a hardware embodiment, a software embodiment (including firmware, resident software, micro-code, etc.) configured to operate hardware, or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “module” or “system.” Furthermore, the present invention may take the form of a computer-usable medium embodied in any tangible medium of expression having computer-usable program code stored therein.
#Any combination of one or more computer-usable or computer-readable medium(s) may be utilized to store the computer program product. The computer-usable or computer-readable medium may be, for example, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device. More specific examples (a non-exhaustive list) of the computer-readable medium may include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (“RAM”), a read-only memory (“ROM”), an erasable programmable read-only memory (“EPROM” or “Flash memory”), an optical fiber, a portable compact disc read-only memory (“CD-ROM”), an optical storage device, or a magnetic storage device. In the context of this document, a computer-usable or computer-readable medium may be any medium that can contain, store, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.