Patent Publication Number: US-7904684-B2

Title: System and article of manufacture for consistent copying of storage volumes

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application is a continuation of application Ser. No. 11/534,136 (issued as U.S. Pat. No. 7,475,208) filed on Sep. 21, 2006, which is incorporated herein by reference in its entirety. 
     Application Ser. No. 11/534,136 is a continuation of application Ser. No. 10/464,937 (issued as U.S. Pat. No. 7,133,982) filed on Jun. 18, 2003, which is also incorporated herein by reference in its entirety. 
    
    
     BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention relates to a method, system, and an article of manufacture for consistent copying of storage volumes. 
     2. Description of the Related Art 
     Information technology systems, including storage systems, may need protection from site disasters or outages, where outages may be planned or unplanned. Furthermore, information technology systems may require features for data migration, data backup, or data duplication. Implementations for disaster or outage recovery, data migration, data backup, and data duplication may include mirroring or copying of data in storage systems. Such mirroring or copying of data may involve interactions among servers, clients, storage systems and networking components of the information technology system. 
     Enterprise storage servers (ESS), such as, the IBM* TotalStorage Enterprise Storage Server*, maybe a disk storage server that includes one or more processors coupled to storage devices, including high capacity scalable storage devices, Redundant Array of Independent Disks (RAID), etc. The enterprise storage servers are connected to a network and include features for copying data in storage systems. *IBM, IBM TotalStorage Enterprise Storage Server, Enterprise System Connection (ESCON) are trademarks of International Business Machines Corp. 
     Enterprise storage servers (ESS) may include copy functions for copying data either locally, i.e., within the same on-site ESS, or remotely, i.e., copying data to a separate remote-site ESS. The copy functions can be classified as either dynamic or point-in-time copy functions. Dynamic copy functions constantly update the secondary copy as applications make changes to the primary data source. Point-in-time copying techniques provide an instantaneous copy or view of what the original data looked like at a specific point in time. 
     In certain enterprise storage servers there may be copy functions, such as, Flashcopy, that provide a point-in-time copy of the data. Implementations may copy data between a set of local/source volumes and a corresponding set of remote/target volumes in enterprise storage servers. Flashcopy may provide a point-in-time copy for ESS volumes by creating a physical point-in-time copy of the data, with minimal interruption to applications, and make it possible to access both the source and target copies substantially immediately. Both the source and the target volumes reside on the same ESS system, although implementations maybe possible where the source and target volumes reside on different ESS systems. Further details of the Flashcopy are described in the IBM publication “IBM TotalStorage Enterprise Storage Server: Implementing ESS Copy Services with IBM eServer zSeries,” IBM document no. SG24-5680-01 (Copyright IBM, 2003), which publication is incorporated herein by reference in its entirety. 
     SUMMARY OF THE PREFERRED EMBODIMENTS 
     Provided are a method, system, and article of manufacture for copying storage. Copy operations are performed on source storage units to copy to target storage units, wherein the copy operations create a consistent copy of the source storage units in the target storage units. While performing a copy operation to copy from one source storage unit to one target storage unit, a write operation is restricted from being performed on the one source storage unit, until the copy operations have been performed on the source storage units. 
     In further implementations, a first write operation is received for a first storage unit. A determination is made if the first storage unit is in a state where write operations are restricted. If the first storage unit is in a state where write operations are restricted, then the first write operation is queued. If the first storage unit is in a state where write operations are not restricted, then the first write operation is performed on the first storage unit. 
     Provided also are a method, system, and article of manufacture, where a copy command is received to copy from a source storage unit to a target storage unit. Copying is started from the source storage unit. A state is entered into at the source storage unit in response to starting to copy from the source storage unit, wherein no write operation can be completed to the source storage unit in the state. The state is released at the source storage unit in response to an additional command received at the source storage unit, wherein the additional command indicates the release of the state, and wherein data in the source and target storage units are in a consistent state in response to the release of the state at the source storage unit. 
     In further implementations, the source storage unit is coupled to a storage control unit, wherein the copy command is received from a host coupled to the storage control unit, and wherein the source storage unit is a logical unit addressed via a logical storage subsystem coupled to the storage control unit. 
     The implementations copy a set of source volumes to a set of target volumes, while maintaining the data on the set of source volumes and target volumes in a consistent state at a point in time with respect to each other. Maintaining source and target volumes in a consistent state ensures that no out of order dependent writes are copied to any target volumes in a consistency group. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Referring now to the drawings in which like reference numbers represent corresponding parts throughout: 
         FIG. 1  illustrates a block diagram of a computing environment, in accordance with certain described aspects of the invention; 
         FIG. 2  illustrates a block diagram of source and target logical volumes in a storage control unit, in accordance with certain described implementations of the invention; 
         FIG. 3  illustrates a block diagram of a consistent flashcopy application, in accordance with certain described implementations of the invention; 
         FIG. 4  illustrates logic for writing on logical volumes, in accordance with certain described implementations of the invention; 
         FIG. 5  illustrates logic for the consistent flashcopy application, in accordance with certain described implementations of the invention; 
         FIG. 6  illustrates logic for setting and resetting of long busy states of logical volumes in the storage control unit, in accordance with certain described implementations of the invention; and 
         FIG. 7  illustrates a block diagram of a computer architecture in which certain described aspects of the invention are implemented. 
     
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     In the following description, reference is made to the accompanying drawings which form a part hereof and which illustrate several implementations. It is understood that other implementations may be utilized and structural and operational changes may be made without departing from the scope of the present implementations. 
     Inconsistent Data in Volumes After Flashcopy Operations 
     A flashcopy consistency group is a group of storage volumes that need to be kept in a consistent state with each other. To provide a non-limiting example, a first flashcopy command copies volume A 1  to B 1  and a second flashcopy command copies volume A 2  to B 2 . It is required that volumes B 1  and B 2  should represent a consistent state of the dataset in volumes A 1  and A 2  at a certain point in time. In a certain sequence of operations on the volumes the following set of dependent write operations may occur (where the second operation occurs after the first operation):
     1. Write to dataset on volume A 1  (data updated)   2. Write to dataset on volume A 2  (data updated)   

     When volumes A 1  and A 2  are flashcopied to volumes B 1  and B 2  respectively, then the following non-limiting example of a sequence of operations may create an inconsistent state in volumes B 1 , B 2  with respect to volumes A 1 , A 2 .
     1. Flashcopy volume A 1  to volume B 1     2. Write to dataset on volume A 1  (data updated)   3. Write to dataset on volume A 2  (data updated)   4. Flashcopy volume A 2  to volume B 2 
 
At the conclusion of all the flashcopy operations, i.e., the conclusion of the fourth operation, volume B 2  contains the data update of volume A 2  whereas volume B 1  does not contain the data update of volume A 1 . The set of volumes B 1 , B 2  are in an inconsistent state with respect to the set of volumes A 1 , A 2 . An application that uses the volumes B 1 , B 2  could not recover from a back-up copy stored in the volumes B 1 , B 2 .
   

     Maintaining Consistent Data During and After Flashcopy Operations 
       FIG. 1  illustrates a computing environment utilizing a host  100  coupled to a storage control unit  102 . While only a single host  100  is shown coupled to a single storage control unit  102 , in certain alternative implementations of the invention a plurality of hosts may be coupled to a plurality of storage control units. The host  100  may connect to the storage control unit  102  through a host data interface  104  channel, such as the Enterprise System Connection (ESCON)* channel or any other switching mechanism known in the art (e.g., fibre channel, Storage Area Network (SAN) interconnections, etc.). The host  100  maybe any computational device known in the art, such as a personal computer, a workstation, a server, a mainframe, a hand held computer, a palm top computer, a telephony device, network appliance, etc. The host  100  may include any operating system  106  known in the art, such as the IBM OS/390** operating system. 
     The storage control unit  102  includes a plurality of logical subsystems  106   a  . . .  106   n , where a logical subsystem  106   a  . . .  106   n  may include a plurality of logical volumes. For example, logical subsystem  106   a  includes logical volumes  108   a  . . .  108   m , logical subsystem  106   b  includes logical volumes  110   a  . . .  110   r , and logical subsystem  106   n  includes logical volumes  112   a  . . .  112   p.    
     The storage control unit  102  controls a plurality of physical storage devices (not shown), each of which may include one or more physical volumes (not shown). The physical storage devices may include any physical storage devices known in the art, such as, Direct Access Storage Devices (DASD), Just a Bunch of Disks (JBOD), Redundant Array of Inexpensive Disks (RAID), etc. 
     The storage control unit  102  maps the physical volumes into the plurality of logical volumes, such as, logical volumes  108   a  . . .  108   m ,  110   a  . . .  110   r ,  112   a  . . .  112   p  that are distributed among the logical subsystems  106   a  . . .  106   n . The host  100  may address the logical subsystems  106   a  . . .  106   n  and perform operations, such as, read, write, copy, etc., with respect to a logical volume. 
     In addition to the operating system  106 , the host  100  many include a consistent flashcopy application  114  and a write application  116 . The consistent flashcopy application  114  copies a first set of logical volumes distributed among the logical subsystems  106   a  . . .  106   n  to a second set of logical volumes distributed among the logical subsystems  106   a  . . .  106   n . For example, the consistent flashcopy application  114  may copy an exemplary first set of logical volumes  108   a ,  108   b ,  110   a  to an exemplary second set of logical volumes  112   a ,  112   b ,  112   p . The consistent flashcopy application  114  copies a logical volume via a flashcopy operation. The consistent flashcopy application  114  may be referred to as a copy application when a storage volume is copied using any point-in-time copying technique known in the art. The write application  116  may generate write requests on logical volumes via the logical subsystems  106   a  . . .  106   n  of the storage control unit  102 . 
     Therefore,  FIG. 1 , illustrates a computing environment for copying a first set of logical volumes to a second set of logical volumes. In alternative implementations of the invention, the first set of logical volumes and the second set of logical volumes may be distributed among a plurality storage control units. 
       FIG. 2  illustrates a block diagram of source and target logical volumes in the storage control unit  102 , in accordance with certain implementations of the invention. The consistent flashcopy application  114  copies a set of source logical volumes  200   a  . . .  200   q  to a set of target logical volumes  202   a  . . .  202   q , where the source and target logical volumes are resident in the storage control unit  102 . For example, the consistent flashcopy application  114  may copy the source logical volume  200   a  to the target logical volume  202   a , the source logical volume  200   b  to the target logical volume  202   b , and the source logical volume  200   q  to the target logical volume  202   q . The source logical volumes  200   a  . . .  200   q  may be distributed among the logical subsystems  106   a  . . .  106   n . Similarly, the target logical volumes  202   a  . . .  202   q  may be distributed among the logical subsystems  106   a  . . .  106   n . In alternative implementations of the invention the source logical volumes  200   a  . . .  200   q  and the target logical volumes  202   a  . . .  202   q  may span multiple storage control units. 
     Therefore,  FIG. 2  illustrates how the consistent flashcopy application  114  copies a first set of logical volumes  200   a  . . .  200   q  to a second set of logical volumes  202   a  . . .  202   q  in the storage control unit  102 . 
       FIG. 3  illustrates a block diagram of the consistent flashcopy application  114 , in accordance with certain implementations of the invention. The consistent flashcopy application  114  may generate an “Establish flashcopy” command  300  and a “Flashcopy consistency group” command. The “Establish flashcopy” command  300  may be referred to as an “Establish copy” command  300  and the “Flashcopy consistency group” command  302  may be referred to as a “Copy consistency group” command because the implementations of the invention may apply any point-in-time copying techniques known in the art, including flashcopy techniques. 
     The “Establish flashcopy” command  300  includes a source volume parameter  304 , a target volume parameter  306 , and a freeze parameter  308 . The source volume parameter  304  may include a source logical volume, such as, source logical volume  200   a  . . .  200   q . The target volume parameter  206  may include a target logical volume, such as, target logical volume  202   a  . . .  202   q . The “Establish flashcopy” command  300  flashcopies the source volume indicated in the source volume parameter  304  to the target volume indicated in the target volume parameter  306 . 
     The freeze parameter  308  maybe either true or false. If the freeze parameter  308  is true then the “Establish flashcopy” command  300  causes the source volume indicated in the source volume parameter  304  to stay in an extended long busy state after the “Establish flashcopy” command completes, until the appropriate “Flashcopy consistency group” command  302  has been executed. When a volume, such as, the source volume indicated in the source volume parameter  304 , is in a long busy state, the source volume may not be written to by any application, such as the write application  116 . 
     The “Flashcopy consistency group” command  302  may include group indicator parameters  310 , where the group indicator parameters  310  indicate a set of volumes whose long busy state should be reset when the “Flashcopy consistency group” command  302  is executed. In certain implementations, the group indicator parameters  310  may indicate the volumes whose long busy state should be reset (i.e., the volume that may be written to) by addressing the appropriate logical subsystems  106   a  . . .  106   n  that include the volumes whose busy state should be reset. In alternative implementations, the group indicator parameters  310  may indicate a set of sessions whose long busy state should be reset. 
     For example, the “Establish flashcopy” command  300  may have placed source logical volumes  200   a ,  200   b  in a long busy state. When a “Flashcopy consistency group” command  302  is executed then the group indicator parameters  310  may indicate that logical volumes  200   a ,  200   b  should be reset from the long busy state. If logical subsystem  106   a  includes the logical volume  200   a , and if logical subsystem  106   b  includes the logical volume  200   b , then the “Flashcopy consistency group” command may request the logical subsystems  106   a  and  106   b  to reset the logical volumes  200   a ,  200   b  from the long busy state. 
     Therefore,  FIG. 3  illustrates how the consistent flashcopy application  114  sets certain source volumes to a long busy state for an extended period of time after performing the “Establish flashcopy” command  300 . The “Flashcopy consistency group” command  302  resets the long busy state of the volumes indicated in the group indicator parameters  310  of the “Flashcopy consistency group” command  302 . 
       FIG. 4  illustrates logic for writing on logical volumes in the storage control unit  102 , in accordance with certain implementations of the invention. The logic of  FIG. 4  may be executed in the storage control unit  102  after the storage control unit  102  has received a write operation generated by the write application  116  on the host  100 . 
     Control starts at block  400 , where an application, such as, the write application  116 , in the host  100  generates a command to perform a write operation on a logical volume in the storage control unit  102 . The storage control unit  102  receives the write operation and before writing, the storage control unit  102  determines (at block  402 ) if the logical volume is in the long busy state. If so, the storage control unit  102  or the write application  116  queues (at block  404 ) the write operation for writing later on, because the logical volume cannot be written to while the logical volume is in the long busy state. The storage control unit  102  returns control to the decision block  402  and the process may keep on repeating the loop formed by decision block  402  and block  404 . 
     If the storage control unit  102  determines (at block  402 ) that the logical volume is not in the long busy state, then the storage control unit  102  performs (at block  406 ) the write operation on the logical volume and control returns to block  400 . 
     Therefore, the logic of  FIG. 4  illustrates how the write application  116  writes data on a logical volume when the logical volume is in not in a long busy state. In certain alternative implementations, the write operation may be queued (at block  404 ) without performing the logic of block  402 , i.e., without determining if the logical volume is in the long busy state. In such alternative implementations, the storage control unit  102  or the write application  116  may queue all write operations but only perform the write operations on the logical volumes that are not in the long busy state. 
       FIG. 5  illustrates logic implemented in the consistent flashcopy application  114 , in accordance with certain implementations of the invention. The logic of  FIG. 5  is for flashcopying source logical volumes to target logical volumes while maintaining consistency of logical volumes. 
     Control starts at block  500 , where the consistent flashcopy application  114  sends an “Establish flashcopy” command  300  to the storage control unit  102  indicating the source logical volume via the source volume parameter  304 , the target logical volume via the target volume parameter, and assigns the freeze parameter  308  to true if the source logical volume is to be included in a consistency group of logical volumes, i.e., the data in the logical volumes are consistent at a point in time within the consistency group. If the freeze parameter  308  is true then the source logical volume may be set to a long busy state and an application cannot write to the logical volume until the logical volume is reset from the long busy state. 
     The consistent flashcopy application  114  determines (at block  502 ) if there are any more “Establish flashcopy” commands to send to the storage control unit  102 . If so, another “Establish flashcopy” command is sent (at block  500 ). In alternative implementations, a plurality of “Established flashcopy” commands may be processed in parallel in a plurality of storage control units. 
     If the consistent flashcopy application  114  determines (at block  502 ) that there are no further “Establish flashcopy” commands to send, then the consistent flashcopy application  114  determines (at block  504 ) if all the “Establish Flashcopy” commands that have been sent have returned with a completion status. If not, the consistent flashcopy application  114  waits (at block  506 ) and then determines (at block  502 ) again if all the “Establish flashcopy” commands have returned with a completion status. 
     If the consistent flashcopy application  114  determines (at block  504 ) that all “Establish flashcopy” commands have returned with a completion status, then the consistent flashcopy application  114  sends the “Flashcopy consistency group” command  302  to the storage control unit  102 , where the “Group indicator” parameters  310  provide an indication of the volumes whose long busy state should be reset. The indication is addressed to the one or more logical subsystems  106   a  . . .  106   n  that include the volumes whose long busy state should be reset. 
     Therefore, the logic of  FIG. 5  illustrates how the consistent flashcopy application  114  first performs flashcopies of a plurality of logical volumes that are to be maintained in a consistent state and while performing flashcopies the consistent flashcopy application  114  sets the plurality of logical volumes to a long busy state. Subsequently, the consistent flashcopy application  114  resets the long busy state of the logical volumes when all flashcopy establish operations on the logical volumes are completed. Therefore, the consistent flashcopy application  114  performs flashcopy operations on a group of logical volumes while maintaining the group of logical volumes in a consistent state. 
       FIG. 6  illustrates logic for setting and resetting of long busy states of logical volumes in the storage control unit  102 , in accordance with certain implementations of the invention. The consistent flashcopy application  114  causes the logic to be performed in the storage control unit  102 . 
     The logic starts at block  600  where the storage control unit  102  waits for a command from the host  100  that is coupled to the storage control unit  102 . The storage control unit receives (at block  602 ) a command from the consistent flashcopy application  114  on the host, and determines (at block  604 ) what command has been received from the host  100 . If the received command is the “Establish flashcopy” command  300 , then the storage control unit  102  determines (at block  606 ) whether the freeze parameter  308  is true. If so, the storage control unit  102  under the control of the consistent flashcopy application  114  sets (at block  608 ) the source logical volume indicated in the source volume parameter  304  of the “Establish flashcopy” command  300  to a long busy state and the storage control unit  102  performs (at block  609 ) copy operations, where the source logical volumes that are in a long busy state cannot be written to, and then the storage control unit  102  waits (at block  600 ) for the next command. If the storage control unit  102  determines (at block  606 ) that the freeze parameter  308  is not true, then the storage control unit  102  performs (at block  609 ) copy operations, and then the storage control unit  102  waits (at block  600 ) for the next command. 
     If the storage control unit determines (at block  604 ) that a “Flashcopy consistency group” command  302  has been received from the host  100 , then the storage control unit  102  under the control of the consistent flashcopy application  114  resets (at block  610 ) the long busy state of logical volumes indicated by the group indicator parameters  310  of the “Flashcopy consistency group” command  302 . The storage control unit  102  waits (at block  600 ) for the next command from the host  100 . 
     The logic of  FIG. 6  sets logical volumes in the storage control unit  102  to a long busy state, i.e., no writes can be performed on the logical volumes for an extended period of time, under the control of the consistent flashcopy application  114 . The long busy state on the logical volumes is released via a “Flashcopy consistency group” command  302 . Therefore, the storage control unit  102  under the control of the consistent flashcopy application  114  maintains a group of logical volumes in a consistent state while performing flashcopy operations on the group of logical volumes. 
     While quiescing, i.e., suspending the operation, of the write application  116  before performing flashcopy operations may ensure consistency of logical volumes being flashcopied, the implementations of the invention remove the requirement of requiring the write application  116  to be quiesced before performing flashcopy operations. In the implementations, when a volume receives a flashcopy command, the volume enters a long busy state at the beginning of the “Establish flashcopy” command  300  and does not release the long busy state until the volume receives an additional host command that releases the long busy state on the volume. 
     To provide a non-limiting example, a first flashcopy command copies volume A 1  to B 1  and a second flashcopy command copies volume A 2  to B 2 . It is required that volumes B 1  and B 2  should represent a consistent state of the dataset in volumes A 1  and A 2 . In a certain sequence of operations on the volumes the following set of dependent write operations may occur (the second operation is performed after the first operation):
     1. Write to dataset on volume A 1  (data updated)   2. Write to dataset on volume A 2  (data updated)   

     When volumes A 1 , A 2  are flashcopied to volumes B 1 , B 2  respectively then the following non-limiting example of a sequence of operations in implementations of the invention create a consistent state in volumes B 1 , B 2 .
     1. Flashcopy volume A 1  to volume B 1  (Volume A 1  is set to the long busy state)   2. Write to dataset on volume A 1  cannot occur because volume A 1  is in the long busy state   3. Write to dataset on volume A 2  cannot occur because the write is dependent upon the update to volume A 1  completing   4. Flashcopy volume A 2  to volume B 2     5. Release long busy states on A 1 , A 2     6. Write to dataset on volume A 1  proceeds   7. Write to dataset on volume A 2  proceeds
 
Now, neither volume B 1  nor volume B 2  have the updated data, so the set of volumes B 1  and B 2  are consistent. In the example provided in the section “Inconsistent data in volumes after flashcopy operations,” volume B 2  had contained the data update of volume A 2  whereas volume B 1  did not contain the data update of volume A 1  and the set of volumes B 1 , B 2  were in an inconsistent state.
   

     The implementations copy a set of source volumes to a set of target volumes, while maintaining the data on the set of source volumes and target volumes in a consistent state with respect to each other. Maintaining source and target volumes in a consistent state ensures that no out of order dependent writes are copied to any target volumes in a consistency group. 
     Additional Implementation Details 
     The described techniques may be implemented as a method, apparatus or article of manufacture using standard programming and/or engineering techniques to produce software, firmware, hardware, or any combination thereof. The term “article of manufacture” as used herein refers to code or logic implemented in hardware logic (e.g., an integrated circuit chip, Programmable Gate Array (PGA), Application Specific Integrated Circuit (ASIC), etc.) or a computer readable medium (e.g., magnetic storage medium, such as hard disk drives, floppy disks, tape), optical storage (e.g., CD-ROMs, optical disks, etc.), volatile and non-volatile memory devices (e.g., EEPROMs, ROMs, PROMs, RAMs, DRAMs, SRAMs, firmware, programmable logic, etc.). Code in the computer readable medium is accessed and executed by a processor. The code in which implementations are made may further be accessible through a transmission media or from a file server over a network. In such cases, the article of manufacture in which the code is implemented may comprise a transmission media, such as a network transmission line, wireless transmission media, signals propagating through space, radio waves, infrared signals, etc. Of course, those skilled in the art will recognize that many modifications may be made to this configuration without departing from the scope of the implementations, and that the article of manufacture may comprise any information bearing medium known in the art. 
       FIG. 7  illustrates a block diagram of a computer architecture in which certain aspects of the invention are implemented.  FIG. 7  illustrates one implementation of the host  100 . The host  100  may implement a computer architecture  700  having a processor  702 , a memory  704  (e.g., a volatile memory device), and storage  706  (e.g., a non-volatile storage, magnetic disk drives, optical disk drives, tape drives, etc.). The storage  706  may comprise an internal storage device, an attached storage device or a network accessible storage device. Programs in the storage  706  may be loaded into the memory  704  and executed by the processor  702  in a manner known in the art. The architecture may further include a network card  708  to enable communication with a network. The architecture may also include at least one input  710 , such as a keyboard, a touchscreen, a pen, voice-activated input, etc., and at least one output  712 , such as a display device, a speaker, a printer, etc. 
     The logic of  FIGS. 4 ,  5 , and  6  describe specific operations occurring in a particular order. Further, the operations may be performed in parallel as well as sequentially. In alternative implementations, certain of the logic operations may be performed in a different order, modified or removed and still implement implementations of the present invention. Moreover, steps may be added to the above described logic and still conform to the implementations. Yet further steps may be performed by a single process or distributed processes. Furthermore, while the implementations have been described with storage volumes, alternative implementations may use any storage unit known in the art. 
     Many of the software and hardware components have been described in separate modules for purposes of illustration. Such components may be integrated into a fewer number of components or divided into a larger number of components. Additionally, certain operations described as performed by a specific component may be performed by other components. 
     Certain groups of elements shown in the figures have been labeled with reference numerals having an identical numeric prefix followed by the suffix “a”, the suffix “b”, or the suffix “n”, etc. For example, the logical subsystems are labeled  106   a ,  106   b , . . .  106   n  and certain logical volumes are labeled  108   a ,  108   b , . . .  108   m . Labeling groups of elements in such a manner does not imply that different groups of elements contain an identical number of elements in each group. For example, the number of logical volumes in each logical subsystem  106   a  . . .  106   n  may be different. 
     Although the implementations have been described with respect to flashcopy methods, alternative implementations of the inventions may use any other point-in-time copying techniques known in the art. 
     Therefore, the foregoing description of the implementations has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. It is intended that the scope of the invention be limited not by this detailed description, but rather by the claims appended hereto. The above specification, examples and data provide a complete description of the manufacture and use of the composition of the invention. Since many implementations of the invention can be made without departing from the spirit and scope of the invention, the invention resides in the claims hereinafter appended.