Abstract:
A computer management apparatus one embodiment includes a split component configured to split data into a plurality of data elements; a send component configured to send each one of the plurality of data elements to a different location selected from a plurality of locations in response to the split component splitting the data, wherein each data element is different; and a message component configured to send a message to each of the locations. A computer management apparatus in another embodiment includes a receive component configured to receive a first data element; an analyze component configured to recieve a message, wherein the message comprises an address of each of the further locations; and a send component configured to send the first data element to each of the further locations of the plurality of further locations in response to the analyze component determining the address of each of the further locations.

Description:
TECHNICAL FIELD 
       [0001]    The invention relates to copying data between storage devices. In particular, the invention relates to an apparatus, method and computer program for sharing bandwidth between multiple remote copy targets. 
       BACKGROUND OF THE INVENTION 
       [0002]    Peer to Peer Remote Copy (PPRC) is a method to replicate a storage volume to another storage unit over extended distances to a remote site. PPRC is used to provide business continuity and disaster recovery capabilities. A PPRC may be performed synchronously or asynchronously. In Synchronous PPRC, each write to a local site is performed to the remote site as well. The Synchronous PPRC is complete when the write completes to both sites. An example of a Synchronous PPRC implementation is IBM® Metro Mirror (IBM is a registered trademark of International Business Machines Corporation in the United States, other countries, or both.) In Asynchronous PPRC, each write is made to the local site, and then copied to the remote site when time permits. The Asynchronous PPRC is complete when the write completes to the local site. Different copy functions may be combined to provide remote copy functionality. For example, a Point in Time copy may be made at the local site between a souŕce volume and a target volume, and then a remote copy may be made from the target volume to a remote site. An example of a combinatorial implementation is IBM Global Mirror. PPRC may be used to provide very fast data recovery due to failure of the primary site. 
         [0003]    PPRC may also be extended to more than one remote site to improve business continuity and disaster recovery capabilities. 
         [0004]    If an organisation has three sites, A, B, and C, and wishes to replicate data from a storage system at A onto similar systems at B and C using a PPRC method, a high-bandwidth network connection is required from A to B, and from A to C. An example of a suitable network connection protocol is Fibre Channel (FC). However, FC links are expensive as they are priced by distance and bandwidth. 
         [0005]    Therefore, there is a need in the art to address the aforementioned problem. 
       SUMMARY OF INVENTION 
       [0006]    Viewed from a first aspect, the present invention provides a computer management apparatus for sharing bandwidth in a data processing system, wherein the data processing system comprises a plurality of locations, the apparatus comprising: a split component operable for splitting data into a plurality of data elements; a send component, operable for sending each one of the plurality of data elements to a different location selected from the plurality of locations, wherein each data element is different, responsive to the split component splitting the data; and a message component, operable for sending a message to each of the locations. 
         [0007]    Advantageously, the present invention provides for bandwidth requirements of a remote copy environment to be reduced, without reducing the amount of data that may be copied. 
         [0008]    Preferably, the present invention provides an apparatus, wherein the split component is further operable for splitting the data into equal size data elements. Preferably, the present invention provides an apparatus, wherein the send component sends data elements to each location alternately. Advantageously, the present invention provides multiple data split algorithms may be used, for example by disk, or by batch. 
         [0009]    Preferably, the present invention provides an apparatus, wherein the message comprises an address of each of the locations of the plurality of locations. 
         [0010]    Viewed from a second aspect the present invention provides a computer management apparatus for sharing bandwidth in a data processing system, wherein the data processing system comprises a host and a plurality of locations, wherein the plurality of locations comprises a first location and plurality of further locations, the apparatus comprising: a receive component, operable for receiving a first data element; an analyse component, operable for receiving a message, wherein the message comprises an address of each of the further locations; and a send component, operable for sending the first data element to each of the further locations of the plurality of further locations, responsive to the analyse component determining the address of each of the further locations. 
         [0011]    Preferably, the present invention provides an apparatus, wherein the receive component is further operable for receiving a second data element. 
         [0012]    Preferably, the present invention provides an apparatus, wherein the apparatus further comprises a combine component operable for combining the first data element with the second data element. 
         [0013]    Advantageously, the present invention provides means for an apparatus on a remote location to forward on data to the other remote locations, and also to receive data from the other remote locations. Received data may be combined to replicate the data at the local location. 
         [0014]    Viewed from a third aspect the present invention provides a method for sharing bandwidth in a data processing system, wherein the data processing system comprises a plurality of locations, the method comprising the steps of: splitting data into a plurality of data elements; sending each one of the plurality of data elements to a different location selected from the plurality of locations, wherein each data element is different, responsive to splitting the data; and sending a message to each of the locations. 
         [0015]    Preferably, the present invention provides a method, wherein the data is split into equal size data elements. 
         [0016]    Preferably, the present invention provides a method, wherein the data elements are sent to each location alternately. 
         [0017]    Preferably, the present invention provides a method, wherein the message comprises an address of each of the locations of the plurality of locations. 
         [0018]    Viewed from a fourth aspect the present invention provides a method for sharing bandwidth in a data processing system, wherein the data processing system comprises a host and a plurality of locations, wherein the plurality of locations comprises a first location and plurality of further locations, the method comprising the steps of receiving a first data element; receiving a message, wherein the message comprises an address of each of the further locations; and sending the first data element to each of the further locations of the plurality of further locations, responsive to determining the address of each of the further locations. 
         [0019]    Preferably, the present invention provides a method, wherein the method further comprises the step of receiving a second data element. 
         [0020]    Preferably, the present invention provides a method, wherein the method further comprises the step of combining the first data element with the second data element. 
         [0021]    Viewed from a fifth aspect the present invention provides for a system for sharing bandwidth in a data processing system, wherein the data processing system comprises at least one local location and a plurality of remote locations, the system comprising: a local apparatus operable on the at least one local location, wherein the local apparatus comprises: a split component operable for splitting data into a plurality of data elements; a first send component, operable for sending each one of the plurality of data elements to a different remote location selected from the plurality of remote locations, wherein each data element is different, responsive to the split component splitting the data; and a message component, operable for sending a message to each of the remote locations; and a remote apparatus, operable on each remote location, wherein the remote apparatus comprises: a receive component, operable for receiving a first data element selected from the plurality of data elements; an analyse component, operable for receiving the message, wherein the message comprises an address of each of the other remote locations; and a second send component, operable for sending the first data element to each of the other remote locations, responsive to the analyse component determining the address of each of the other remote locations. 
         [0022]    Preferably, the present invention provides a system, wherein the split component is further operable for splitting the data into equal size data elements. 
         [0023]    Preferably, the present invention provides a system, wherein the first send component sends data elements to each remote location alternately. 
         [0024]    Preferably, the present invention provides a system, wherein the message comprises an address of each of the remote locations. 
         [0025]    Preferably, the present invention provides a system, wherein the receive component is further operable for receiving a second data element selected from the plurality of data elements. 
         [0026]    Preferably, the present invention provides a system, wherein the remote apparatus further comprises a combine component operable for combining the first data element with the second data element. 
         [0027]    Viewed from a sixth aspect the present invention provides a system for sharing bandwidth in a data processing system, wherein the data processing system comprises at least one local location and a plurality of remote locations, the system comprising: an apparatus of the invention operable on the at least one local location; and an apparatus of the invention operable on each remote location of the plurality of remote locations. 
         [0028]    Viewed from a seventh aspect, the present invention provides a computer program comprising computer code to, when loaded into a computer system and executed thereon, cause said computer system to perform all of the steps of the invention. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0029]    The present invention will now be described, by way of example only, with reference to preferred embodiments, as illustrated in the following figures: 
           [0030]      FIG. 1  is a block diagram depicting a data processing system, in accordance with the prior art, and in which a preferred embodiment of the present invention may be implemented; 
           [0031]      FIG. 2  is also a block diagram depicting a data processing system, in accordance with the prior art, and in which a preferred embodiment of the present invention may be implemented; 
           [0032]      FIG. 3  is a high-level exemplary schematic flow diagram depicting typical operation method steps performed for copying data in a data processing system, in accordance with a preferred embodiment of the present invention; 
           [0033]      FIG. 4 , is an exemplary block diagram depicting a computer management apparatus in which the present invention may be embodied; 
           [0034]      FIG. 5  is also a block diagram depicting a data processing system, in which a preferred embodiment of the present invention may be implemented; and 
           [0035]      FIG. 6  is also block diagram depicting a data processing system, in which a preferred embodiment of the present invention may be implemented. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0036]      FIG. 1  is a block diagram depicting a data processing system  10 , in accordance with the prior art, and in which a preferred embodiment of the present invention may be implemented. 
         [0037]    The illustrated data processing system  10  comprises a host server node subsystem  15  having a set of server nodes  20 , which are connectable through a network  30  to a back-end storage subsystem  90 . A network  30  typically comprises network devices  31 , for example switches, and cabling that connect a server node subsystem  15  to a hardware back-end storage subsystem  90 . The storage subsystem  90  may comprise a variety of physical storage devices having, for example, stand-alone a Just a Bunch of Disks(JBOD) device  50 , and a RAID array  42 . The RAID array  42  comprises a plurality of storage devices  60 . The storage devices  42 ,  50  may be presented to the server node subsystem  15  as a set of physical or logical storage volumes (not depicted). Typically the system  10  is managed by a management subsystem  70  comprising management servers  75 , connectable to the server node subsystem  15 , the storage subsystem  90 , and the network devices  31  through the network  30  or through a separate Local Area Network(LAN)  95 . Typically, a RAID Controller  40  controls the functionality of the RAID array  42 , including data accesses and power controls to the individual storage devices  60 . Read and write commands may be sent to the storage subsystem  90  by a requester (not depicted) that may be an application program operable in the data processing system  10 . A further storage subsystem  92  may be present at a remote site. 
         [0038]      FIG. 2  is also a block diagram depicting a data processing system  10 ,  200 , in accordance with the prior art, and in which a preferred embodiment of the present invention may be implemented.  FIG. 2  depicts an exemplary data processing system  10 ,  200  with a local site  210 , and two remote sites  215 ,  220 . A host server node subsystem  15 ,  205  is connectable through a network  30 ,  250  to a local back-end storage subsystem A  90 ,  225  at local site  210 . The local site  210  is connectable to remote site B  215  through output network  255  and input network (not depicted). Local site  210  is connectable to remote site C  220  through output network  260  and input network (not depicted). There are also network connections  275 ,  285  between remote site B  215  and remote site C  220 . Remote site B  215  comprises a storage subsystem B  92 ,  230 , and remote site C  220  comprises a storage subsystem C  92 ,  235 . 
         [0039]    As an example, according to the prior art, if replication is required at rate of 10 Mbps, the network connections from the local site  210  to remote site B  215  (A→B), and from local site  210  to remote site C  220  (A→C) each need to have 10 Mbps of bandwidth. The same stream of data is sent from local site  210  to remote site B  215  (A→B) as is sent from local site  210  to remote site C  220  (A→C). For symmetry and redundancy, there is a link  275 ,  285  from remote site B  215  to remote site C  220 , also with a 10 Mbps bandwidth. The host server node subsystem  15 ,  205  writes data on network  30 ,  250  to the local site  210  at 10 Mbps. To replicate writes to remote site B  215  and remote site C  220 , network  255 ,  260  with 10 Mbps of bandwidth are required. The remaining networks  275 ,  285  are idle, except for non-data traffic. 
         [0040]    Data may be sent from A→B, and then remote site B  215  may forward the data to remote site C  220 . This still requires the links to be able to cope with 10 Mbps of bandwidth. 
         [0041]      FIG. 3 , which should be read in conjunction with  FIGS. 4 and 5 , is a high-level exemplary schematic flow diagram  300  depicting typical operation method steps performed for copying data in a data processing system, in accordance with a preferred embodiment of the present invention.  FIG. 4 , is an exemplary block diagram depicting a computer management apparatus in which the present invention may be embodied.  FIG. 5  is also a block diagram depicting a data processing system  10 ,  200 , in which a preferred embodiment of the present invention may be implemented.  FIG. 5  depicts an exemplary data processing system  10 ,  200 ,  500  with a local site  210 ,  445 ,  510  and two remote sites  215 ,  450 ,  515 ,  220 ,  455 ,  515 . 
         [0042]    In a preferred embodiment of the present invention, the data is split at local site  210 ,  445 ,  510  into portions. One portion is sent on network  555  to remote site B  215 ,  450 ,  515  and the other portion is sent on network  560  to remote site C  220 ,  455 ,  520 . Remote site B  215 ,  450 ,  515  comprises a storage subsystem B  92 ,  230 ,  530  and remote site C  220 ,  455 ,  520  comprises a storage subsystem C  92 ,  235 ,  535 . The remote sites  215 ,  450 ,  515 ,  220 ,  455 ,  515  send each other the portion that they were sent by the local site  210 ,  445 ,  510 . In a preferred embodiment the portions are of equal size. Advantageously, each network  255 ,  260  need only provide half the bandwidth of the prior art, as depicted in  FIG. 2 . 
         [0043]    To illustrate a preferred embodiment of the invention, an exemplary bandwidth of 10 Mbps will be used, as the required replication rate. 
         [0044]    The method starts at step  301 . Steps  305 ,  310 ,  315  and  320  are operable at the local site  210 ,  445 ,  510 . At step  310 , a receive component  410  of a computer management apparatus  400  at local site  210 ,  445 ,  510  receives data from a host server node subsystem  15 ,  205 ,  460 ,  505  over the network  30 ,  250 ,  550  at 10 Mbps. At step  310 , a split component  420  of a computer management apparatus  400  operable at the local site  210 ,  445 ,  510  splits the received data into equal portions: portion B and portion C. In this example, the data is split into two equal sized portions. 
         [0045]    At step  315 , a send component  415  at the local site  210 ,  445 ,  510  sends portion B to remote site B  215 ,  450 ,  515 , and portion C to remote site C  220 ,  455 ,  520  over the respective output networks  555 ,  560 . The bandwidth required for both connections is 5 Mbps. At step  320 , a message component  430  at the local site  210 ,  445 ,  510  sends a message to each of the remote sites  215 ,  450 ,  515 ,  220 ,  455 ,  520 . The message comprises, for example, information about both portions, and the address of the remote sites  215 ,  450 ,  515 ,  220 ,  455 ,  520 . 
         [0046]    Steps  325 ,  330 ,  335 ,  340  and  345  are operable at each of the remote sites. As an example, remote site B  215 ,  450 ,  515 , is used to illustrate the steps. However, an equivalent set of steps is operable at remote site C  220 ,  455 ,  520 . At step  325 , a receive component at remote site B  215 ,  450 ,  515  receives portion B. At step  330 , an analyse component  425  at remote site B  215 ,  450 ,  515  receives the message sent at step  320  by the message component  430  at the local site  210 ,  445 ,  510 . The analyse component  425  at remote site B  215 ,  450 ,  515  also analyses the message to determine information about portion C, and the address of remote site C  220 ,  455 ,  520 . At step  335 , a send component  415  at remote site B  215 ,  450 ,  515  sends portion B to remote site C  220 ,  455 ,  520  over a network  575  at 5 Mbps. 
         [0047]    At step  340 , the receive component at remote site B  215 ,  450 ,  515  receives portion C from remote site C  220 ,  455 ,  520  over a network  585  at 5 Mbps. At step  345 , the analyse component determines whether all portions have been received. If further portions are required, the method returns to step  340 . However, if all portions have been received, at step  350 , a combine component  405  at remote site B  215 ,  450 ,  515  combines portion B and portion C and stores the resulting data. The method ends at step  399 . 
         [0048]      FIG. 3  is set forth as a logical flow chart diagram. As such, the depicted order and labelled steps are indicative of one embodiment of the presented method. Other steps and methods may be conceived that are equivalent in function, logic, or effect of one or more steps or portions thereof, of the illustrated method. Additionally the format and symbols employed are provided to explain the logical steps of the method and are understood not to limit the scope of the method. 
         [0049]    In an alternative embodiment, the portions are of different size. The split of data may split at the disk level, so a storage system copying 10 disks may split the first 5 into portion B, and the second 5 into portion C. In this case, the replication protocol is unaware of the split as this is a static configuration. It is limited, though, as it required the input/output (10) workload to the 10 disks to be spread such that a similar amount of data is sent to each disk. IO to any given disk may never reach the full performance of the inter-site links. 
         [0050]    In an alternative embodiment, data is split at a batch level. Batch IO operations on local site  210 ,  445 ,  510  may be applied on remote sites  215 ,  450 ,  515 ,  220 ,  455 ,  520 . Each batch IO completing all writes from one batch before starting the next. Even batches may be sent (A→B→C). Odd batches may be sent (A→C→B). The combine component  405  may then combine the batches in the correct order. 
         [0051]    In an alternative embodiment data is split at the write level. Writes may be sent in any order to the remote sites  215 ,  450 ,  515 ,  220 ,  455 ,  520 , if the local site  210 ,  445 ,  510  has not yet completed the write back to the  15 ,  205 ,  460 ,  505 . In this case, writes may be sent alternatively (A→B→C), and (A→C→B). Messages regarding completion of IO may either come back the same path or shortcut directly back to local site  210 ,  445 ,  510 . 
         [0052]    In a preferred embodiment, data recovery from remote site B  215 ,  450 ,  515 , to local site  210 ,  445 ,  510  use the method of  FIG. 3  to send portion B (B→A), and portion C (B→C→A). In an alternative embodiment, portion B is sent (B→A), and portion C (C→A), using the portion stored on remote site C  220 ,  455 ,  520 . 
         [0053]    The method of  FIG. 3  may also be applied to further remote sites. An example is depicted in  FIG. 6 . 
         [0054]      FIG. 6  is also block diagram depicting a data processing system  10 ,  200 , in which a preferred embodiment of the present invention may be implemented.  FIG. 6  depicts the exemplary data processing system  10 ,  200 ,  500  with an additional remote site D  458 ,  622 , comprising a storage subsystem D  92 ,  740 . Remote site D  458 ,  622  is connectable through network connections  696 ,  698  to remote site C  220 ,  455 ,  520 , and through network connections  690 ,  692  to remote site B  215 ,  450 ,  515 . Data received at the local site  210 ,  445 ,  510  at 10 Mbps is split into 3 portions, and sent to the remote sites  215 ,  450 ,  515 ,  220 ,  455 ,  520 ,  622  at a third of 10 Mbps (that is 3.3 Mbps). Each remote site  215 ,  450 ,  515 ,  220 ,  455 ,  520 ,  622  forwards on the portion that it received to the other remote sites  215 ,  450 ,  515 ,  220 ,  455 ,  520 ,  622 . The portions are combined and stored when all portions have been received. In this example connections are made at 3.3 Mbps between remote sites  215 ,  450 ,  515 ,  220 ,  455 ,  520 ,  622 . 
         [0055]    It will be clear to one of ordinary skill in the art that all or part of the method of the preferred embodiments of the present invention may suitably and usefully be embodied in a logic apparatus, or a plurality of logic apparatus, comprising logic elements arranged to perform the steps of the method and that such logic elements may comprise hardware components, firmware components or a combination thereof. 
         [0056]    It will be appreciated that the method and arrangement described above may also suitably be performed fully or partially in software running on one or more processors (not depicted in the Figures), and that the software may be provided in the form of one or more computer program elements carried on any suitable data-carrier (also not depicted in the Figures) such as a magnetic or optical storage device or the like. 
         [0057]    For the avoidance of doubt, the term “comprising”, as used herein throughout the description and claims is not to be construed as meaning “consisting only of”. Also for the avoidance of doubt, copying one location to another, as used herein throughout the description and claims, is to be construed as meaning copy the data contents of one location to the other location.