Abstract:
A storage device having a volume for storing data sent from a host computer and transferring the data stored in the volume to a sub storage device via a network, comprises: a retrieval unit for retrieving a snapshot retaining change data generated in the volume during a time period between a given time and another given time, and a maximum transfer size of the network between the storage device and the sub storage device; and a control unit for controlling so as to store data exceeding a maximum transfer size in the area of another snapshot, when the size of a created snapshot exceeds the maximum transfer size.

Description:
CROSS-REFERENCES TO RELATED APPLICATIONS 
       [0001]    This application relates to and claims priority from Japanese Patent Application No. 2008-073984, filed on Mar. 21, 2008, the entire disclosure of which is incorporated herein by reference. 
       BACKGROUND 
       [0002]    The invention relates generally to a storage device and a method of controlling the same, and in particular, relates to a computer system having a function to copy data between more than one computer. 
         [0003]    Recently, storage consolidation, in which data stored in each server is consolidated in one storage device, is widely used. One of the characteristics of a storage device is a snapshot feature. The snapshot feature is a feature for storing snapshots in a storage device, which are images that existed in a storage system at certain points in time, and users can read and write data as usual after the snapshots are stored. Furthermore, even when a user has updated data after creating snapshots, the user can trace back and access to the snapshots at certain points in time. Therefore, the snapshot feature is particularly helpful as a way to restore data when, for example, the user accidentally causes data corruption. 
         [0004]    A technique to transfer a snapshot created in main storage device to a backup storage device is disclosed in JP2007-286860 A. 
         [0005]    Also, in order to continue business even when a main storage device is disabled by a disaster or similar, a type of method in which a backup storage device is established at a remote location and data is transferred and restored by connecting those storage devices via lines is widely used. 
         [0006]    A method of comparing a previously transferred snapshot with a snapshot to be transferred and transferring only the difference between both snapshots is disclosed in U.S. Pat. No. 6,901,414. Generally, the transfer amount can be reduced by transferring only the difference from the previously transferred snapshot, rather than by transferring all data. 
         [0007]    Line loads become heavy during the period in which data is transferred from a storage device to another storage device in preparation for a possible disaster or similar, and as a result, it may have an impact on regular business activity using the lines. In order to prevent such an impact, an administrator usually limits the time of replication to, for example, late at night, in advance; and executes the above-described replication. 
         [0008]    However, since the bandwidth of a line between storage devices is limited, the amount of data that can be transferred within the above-restricted time frame is limited. Meanwhile, the amount of data generated in business activities varies depending on the kind of work, so in some cases, the amount of generated data may exceed the available transfer amount. In those cases, it is impossible to complete the replication within a pre-restricted time frame, and accordingly a problem having an impact on regular business activities will arise. 
         [0009]    Even if only the difference is transferred as described in U.S. Pat. No. 6,901,414, the entire file has to be transferred eventually, because newly generated files haven&#39;t been transferred. If the size of a file exceeds the available transfer amount for data, the method disclosed in JP2007-286860 A cannot solve the above-described problem; in other words, there is a problem in that data cannot be protected if the amount of data to be transferred exceeds the available transfer amount when data is copied between storage devices. 
       SUMMARY 
       [0010]    The current invention has been devised in consideration of the above-described points, and An object of the present invention is to provide a highly reliable storage device and a method of controlling the same. 
         [0011]    In order to solve the above-described problems, according to an aspect of the invention, a storage device having a volume for storing data sent from a host computer and transferring the data stored in the volume to a sub storage device via a network, comprises: a retrieval unit for retrieving a snapshot retaining change data occurred in the volume during a time period between a given time and another given time, and a maximum transfer size of the network between the sub storage device; and a control unit for controlling so as to store data exceeding a maximum transfer size in the area of another snapshot, when the size of a created snapshot exceeds the maximum transfer size. 
         [0012]    According to another aspect of the invention, a method of controlling a storage device including a volume for storing data sent from a host computer and transferring the data stored in the volume to a sub storage device via a network, comprises: a first step wherein a retrieval unit retrieves a snapshot retaining change data generated in the volume during a time period between a given time and another given time, and a maximum transfer size of the network between the storage device and the sub storage device; and a second step wherein a control unit controls the storage device so as to store data exceeding a maximum transfer size in the area of another snapshot, when the size of a created snapshot exceeds the maximum transfer size. 
         [0013]    Accordingly, the present invention can backup data, even if the amount of data to be transferred exceeds the available transfer amount when data is copied between storage devices. 
         [0014]    According to the present invention, a highly reliable storage device and a method of controlling the same can be achieved. 
         [0015]    Other aspects and advantages of the invention will be apparent from the following description and the appended claims. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0016]      FIG. 1  is a schematic diagram showing a computer system according to respective embodiments. 
           [0017]      FIG. 2  is a block diagram showing a management computer according to respective embodiments. 
           [0018]      FIG. 3  is a block diagram showing a copy-on-write (COW) table. 
           [0019]      FIG. 4  is a block diagram showing a remote copy management table. 
           [0020]      FIG. 5  is a block diagram showing a management screen provided to an administrator. 
           [0021]      FIG. 6  is a flowchart illustrating processing steps in the first embodiment. 
           [0022]      FIG. 7  is a flowchart illustrating the first half of processing steps in the second embodiment. 
           [0023]      FIG. 8  is a flowchart illustrating the second half of processing steps in the second embodiment. 
           [0024]      FIG. 9  is a block diagram showing a difference data volume according to the third embodiment. 
           [0025]      FIG. 10  is a block diagram showing an availability table according to the third embodiment. 
           [0026]      FIG. 11  is a flowchart illustrating processing steps in the third embodiment. 
           [0027]      FIG. 12  is a block diagram showing memory according to the fourth embodiment. 
           [0028]      FIG. 13  is a block diagram showing a snapshot schedule table according to the fourth embodiment. 
           [0029]      FIG. 14  a flowchart illustrating processing steps in the fourth embodiment. 
       
    
    
     DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS 
       [0030]    Embodiments of the present invention will be described below with reference to the attached drawings. It should be understood that the present invention is not limited to these embodiments. 
         [0031]      FIG. 1  shows the overview of a computer system  1  in the invention. The computer system  1  is configured by including a client computer (a host computer)  2 , a main computer (a main storage device)  3 , a sub-computer (a sub storage device)  4 , and a management computer  5 . 
         [0032]    The client computer  2  is a computer device provided with a CPU (Central Processing Unit), and an information-processing resource (not shown), such as memory; and it is, for example, a personal computer, a work station, or a mainframe, etc. Also, the client computer  2  is configured by including a host bus adaptor (FC HBA) (not shown) for connecting to a data network  6 . Furthermore, the client computer  2  is configured by including information input devices (not shown), such as a keyboard, a switch, a pointing device, and a microphone, and information output devices (not shown), such as a monitor display, and a speaker. 
         [0033]    The main computer  3  is configured by including a main volume  11 A, a difference data volume  12 A, a management interface  13 A (hereinafter referred to as “management I/F  13 A”), a data interface  14 A (hereinafter referred to as the “data I/F  14 A”), CPU  15 A, and memory  16 A. 
         [0034]    A copy-on-write table  21 A (hereinafter referred to as “COW table  21 A”) and a differential area  22 A are arranged in the difference data volume  12 A. The main volume  11 A is suitable for being used as a file system or database. A snapshot program  23 A, a remote copy program  24 A, and a remote copy management table  25 A are arranged in the memory  16 A, and the main computer  3  executes the snapshot program  17 A and the remote copy program  18 A by using the CPU  15 A. 
         [0035]    The main computer  3  and the sub-computers  4   a - 4   n  (hereinafter referred to as the “sub-computer  4 ”) are interconnected via the data network  6 . The sub-computer  4  is configured the same way as the main computer  3 , except that the sub-computer  4  does not include the management I/F  13 A. In  FIG. 1 , each component in the sub-computer  4  the same as those in the main computer  3  will be numbered with the same reference numerals as those numbered in the main computer  3 , and the reference numerals will be followed by the letter “B” in place of the letter “A.” 
         [0036]    The client computer  2  is also connected to the data network  6 . The main computer  3  can receive requests from the client computer  2  and can send processing results. For example, Ethernet (registered trademark) or Fibre Channel is suitable for a protocol used in the data network  6 . 
         [0037]    The main computer  3  and the management computer  5  are interconnected via a management network  7 . The main computer  3  can receive instructions from the management computer  5  and can send processing results. For example, Ethernet (registered trademark) is suitable for a protocol used in the management network  7 . Network configuration can be simplified by using both the data network  6  and the management network  7 . 
         [0038]      FIG. 2  shows the configuration of the management computer  5 . The management computer  5  is configured by including a CPU  31 , memory  32 , an interface  33  (hereinafter referred to as “I/F  33 ”), and a screen  34 . A management program  35  is arranged in the memory  32 . 
         [0039]    The management computer  5  executes the management program  35  in the memory  32  by using the CPU  31 , and manages via the I/F  33  the main computer  3  connected via the data network  6 . Also, the management computer  5  can provide the screen  34  as an interface for an administrator to access the management program  35 . 
         [0040]      FIG. 3  is an example of the COW table  21 . The COW table  21 A includes, at least, a row  21 AA representing the generation of a snapshot and a column  21 AB representing a block number in the main volume  11 A. Data is retained in a block in the differential area  22 A, and the difference block number  21 AC for that block is retained at the junction of the row and column, so that data varying from generation to generation can be written in each block in the main volume  11 A. 
         [0041]    When retrieving the main volume  11 A of a particular generation, the main computer  3  can retrieve the difference block number  21 AC in the differential area  22 A corresponding to each block number in the main volume  11 A by referring to the COW table  21 A, thereby a purpose for which it was originally intended can be achieved by retrieving data written in the difference block number  21 AC. 
         [0042]      FIG. 4  is an example of a remote copy management table  25 A. The remote copy management table  25 A includes, at least, a main volume name  25 AA for which a snapshot creation is targeted, a sub-computer name  25 AB to which a snapshot is transferred, a transfer bandwidth  25 AC with the sub-computer, a available transfer time  25  AD showing the time frame in which data can be transferred to the sub-computer  4 , and a baseline generation  25 AE representing a reference generation for transferring the snapshot. The sub-computer name  25 AB may be an identifier which can identify the sub-computer  4 , and for example, a host name or IP address of the sub-computer  4  is suitable. 
         [0043]      FIG. 5  is an example of a screen layout  36  (GUI: Graphical User Interface) displayed on the screen  34  by the CPU  31  executing the management program  35  when an administrator intends to create a new snapshot in the main volume  11 A by executing the management program  35 . The screen layout  36  includes, at least, a table  36 A for listing a currently created snapshot and an attribute thereof, an area  36 B for entering the name of a newly created snapshot, and a create button  36 C for directing the snapshot program  23 A to create a snapshot; and further includes a select button  36 C for selecting whether or not to split a snapshot automatically, an area  36 D for entering a transfer bandwidth when transferring data to the sub-computer  4 , an area  36 E for entering a available transfer time frame, an area  36 F for entering a threshold value for a transferable size for data, a transfer button  36 G for selecting whether or not to transfer data to a snapshot automatically after creating the snapshot, and an area  36 H for entering the name of a transfer destination sub-computer when transferring data. Furthermore, the screen layout  36  may have a feature capable of multiplying the values in the area  36 D and area  36 E and automatically displaying the multiplication result in an area  36 F. 
       (1) First Embodiment 
       [0044]    The first embodiment illustrates a method of creating a snapshot so as to prevent the difference amount from the snapshot of the previous-generation from exceeding an available transfer size determined from the transfer bandwidth and available transfer time frame. 
         [0045]      FIG. 6  is a flowchart illustrating processing steps that will be described in the first embodiment. The first embodiment will be described below with reference to this flowchart. Incidentally, in order to clearly describe the content of the processing, the entire processing in the CPU  15 A in the main computer  3 , the CPU  15 B in the sub-computer  4 , or the CPU  31  in the management computer  5  in the first embodiment described below will be respectively described as a program, and obviously, the correspondings CPU  15 A,  15 B, and  31  will actually execute that processing based on that program. 
         [0046]    First, when an administrator specifies the main volume name  25 AA of the main volume  11 A, for which the administrator intends to create a snapshot, the transfer bandwidth  25 AC, and the available transfer time frame  25 AD; and presses the create button  361 , the management program  35  in the management computer starts processing steps in the flowchart according to the first embodiment and directs the main computer  3  to create a new snapshot by specifying the main volume name  25 AA of the main volume  11 A, the transfer bandwidth  25 AC, and the available transfer time frame  25 AD (S 1 ). 
         [0047]    In that case, if the relationship between the transfer bandwidth  25 AC and the available transfer time frame  25 AD with respect to the main volume name  25 AA of the main volume  11 A is stored in the remote copy management table  25 A in advance, and an administrator specifies only the main volume name  25 AA of the main volume  11 A, the snapshot program  23 A, in place of the management program  35 , may retrieve the transfer bandwidth  25 AC and the available transfer time frame  25 AD by referring to the remote copy management table  25 A. Incidentally, processing in step S 1  may be regularly executed by an OS (Operating System) by using, for example, a “cron,” etc. 
         [0048]    A typical method for specifying the values of the transfer bandwidth  25 AC and the available transfer time frame  25 AD is a method where an administrator selects the main volume name  25 AA of the main volume  11 A in a table  36 A, enters the transfer bandwidth  25 AC in the area  36 D, and enters the available transfer time frame  25 AD in the area  36 E by using the screen layout  36  displayed on the screen  34 . Also, a method for specifying the values of the transfer bandwidth  25 AC and the available transfer time frame  25 AD may be automatically implemented based on a predetermined program. 
         [0049]    Next, the snapshot program  23 A in the main computer  3  selects the generation following the generation of the already created snapshot as the generation of a snapshot to be newly created, with reference to the COW table  21 A (S 2 ). 
         [0050]    Then, the snapshot program  23 A resets the transfer amount to “0,” and executes steps S 4 -S 8  on all block numbers in the main volume  11 A (S 3 ). 
         [0051]    The snapshot program  23 A retrieves the difference block number  21 AC located at the junction of the block numbers in step S 3  and a creation-targeted snapshot generation, and the difference block number  21 AC located at the junction of the block numbers in step S 3  and the previous generation; and checks whether or not those difference block numbers are identical (S 4 ). If those difference block numbers are identical (S 4 : Yes), the snapshot program  23 A adds one block number in order to check the following block number and returns to step S 3 , without adding the block having the former difference block number to the transfer amount since the block is the same as that at the previous generation (S 9 ). On the other hand, if those difference block numbers are not identical (S 4 : No), it means that the block needs to be transferred, so the snapshot program  23 A adds the block to the transfer amount (S 5 ). 
         [0052]    Next, the snapshot program  23 A determines an available transfer size by multiplying the transfer bandwidth and the available transfer time frame specified by the administrator in the above; and compares the transfer amount to the available transfer size (S 6 ). If the transfer amount does not exceed the available transfer size (S 6 : No), the snapshot program  23 A adds one block number in order to check the following block number, and returns to step S 3  (S 9 ). On the other hand, if the transfer amount exceeds the available transfer size (S 6 : Yes), the snapshot program  23 A copies the difference block number  21 AC located at the junction of the block number in step S 3  and a creation-targeted snapshot generation to the difference block number  21 AC located at the junction of the block number in step S 3  and a generation following the creation-targeted snapshot generation (S 7 ). 
         [0053]    The snapshot program  23 A changes the difference block number  21 AC located at the junction of the block number in step S 3  and a creation-targeted snapshot generation to the difference block number  21 AC located at the junction of the block number in step S 3  and a generation before the creation-targeted snapshot generation (S 8 ). Here, the difference block number  21 AC located at the junction of the block number in step S 3  and a generation before the creation-targeted snapshot generation is an example of a value showing that the block has no change, so any other value may be applied as long as a similar object can be achieved. 
         [0054]    Following the above, the snapshot program  23 A adds one block number in order to check the following block number, and returns to step S 3  (S 9 ). If all of processing steps in steps S 4 -S 8  are executed on all blocks in the main volume  11 A (S 3 : Yes), the snapshot program  23 A eventually reports the management program  203  that the processing is completed. Then the management program  35  reports the administrator that processing is complete, and terminates the processing in the flowchart according to the first embodiment. If the number of blocks copied in step S 7  and S 8  is too many, it is possible that the processing described in the first embodiment has to be executed again when creating the snapshot of a following generation, so the snapshot program  23 A may alert the administrator when the number of blocks copied in step S 7  and S 8  exceeds a certain threshold value. 
         [0055]    According to the first embodiment, the main computer  3  creates a snapshot so as to prevent the difference amount from the snapshot of the previous-generation from exceeding an available transfer size determined from a transfer bandwidth and available transfer time frame  25 AD. Consequently, when transferring a snapshot created in the first embodiment, the transfer amount will not exceed the available transfer size, so it is possible to effectively prevent a business from being damaged by planned transfer periods being exceeded, or transfer failures. 
       (2) Second Embodiment 
       [0056]    According to the first embodiment, the transfer amount between a creation-targeted snapshot generation and the previous generation will never exceed an available transfer size. However, if there are plural generations between the transferred generation and a generation to be transferred, it is possible that the difference between those generation exceeds an available transfer size. Therefore, the second embodiment illustrates a method of transferring up to the snapshot of the latest generation which does not exceed an available transfer size determined from the transfer bandwidth and the available transfer time frame, when transferring plural snapshots. 
         [0057]      FIGS. 7 and 8  are flowcharts illustrating processing steps that will be described in the second embodiment. Accordingly, the second embodiment will be described below with reference to these flowcharts. 
         [0058]    First, when an administrator specifies the main volume name  25 AA of the main volume  11 A to be transferred, and the generation, the sub-computer name  25 AB, the transfer bandwidth  25 AC and the available transfer time frame  25 AD of a snapshot to be transferred; and the create button  361  is pressed, the management program  35  in the management computer  5  starts processing steps in the flowcharts according to the second embodiment, and directs the main computer  3  to transfer the snapshot by specifying the main volume name  25 M, the sub-computer name  25 AB, the transfer bandwidth  25 AC and the available transfer time frame  25 AD of the main volume  11 A (S 11 ). 
         [0059]    In that case, if the relationship between the sub-computer name  25 AB, the transfer bandwidth  25 AC and the available transfer time frame  25 AD with respect to the main volume name  25 AA of the main volume  11 A is stored in the remote copy management table  25 A in advance, and an administrator specifies only the main volume name  25 AA of the main volume  11 A, the remote copy program  24 A, in place of the management program  35 , may retrieve the sub-computer name  25 AB, the transfer bandwidth  25 AC and the available transfer time frame  25 AD with reference to the remote copy management table  25 A. 
         [0060]    Next, the remote copy program  24 A in the main computer  3  selects the generation of the snapshot selected by the administrator as above as a generation to be transferred (hereinafter referred to as the “transfer generation”) (S 12 ). 
         [0061]    The remote copy program  24 A retrieves the baseline generation  25 AE of a snapshot with reference to the remote copy management table  25 A (S 13 ). Here, the baseline generation  25 AE of a snapshot is initially set as the “generation  1 .” 
         [0062]    The remote copy program  24 A determines a transfer amount by retrieving the difference between the baseline generation and the transfer generation with reference to the COW table  21 A (S 14 ). The transfer amount determination in step S 14  can be implemented by repeating steps S 3 -S 5  in the first embodiment. 
         [0063]    Next, the remote copy program  24 A determines the available transfer size by multiplying the transfer bandwidth  25 AC and the available transfer time frame  25 AD specified by the administrator in the above; and compares the transfer amount to the available transfer size (S 15 ). If the transfer amount exceeds the available transfer size (S 15 : Yes), the snapshot program  23 A sets a generation one generation older than the current transfer generation as a transfer generation (S 16 ). 
         [0064]    If the transfer generation is identical to the baseline generation (S 17 : Yes), it means that the amount to be transferred is too large to transfer with respect to an available transfer size, so the remote copy program  24 A reports to the management program  35  accordingly. Then, the management program  35  alerts the administrator accordingly (S 18 ), and terminates processing in the flowchart according to the second embodiment. On the other hand, if the transfer amount does not exceed the available transfer size (S 15 : No), the remote copy program  24 A starts transfer processing. 
         [0065]      FIG. 8  is a flowchart illustrating transfer processing steps in the second embodiment. First, the remote copy program  24 A specifies the block number “ 1 ” as a block to be transferred (S 19 ). 
         [0066]    Next, the remote copy program  24 A executes steps S 21 -S 26  on all block numbers in the main volume  11 A (S 20 ). 
         [0067]    The remote copy program  24 A retrieves the difference block number  21 AC located at the junction of the block numbers in step S 3  and a transfer generation, and the difference block number  21 AC located at the junction of the block numbers in step S 3  and the baseline generation with reference to the COW table  21 A; and checks whether or not those difference block numbers are identical (S 21 ). If those difference block numbers are identical (S 21 : Yes), the remote copy program  24 A decides that a block having that difference block does not have to be transferred, since it is identical to a block at the baseline generation; adds one block number in order to check the following block number; and returns to step S 20  (S 26 ). On the other hand, if those difference block numbers are identical (S 21 : No), the remote copy program  24 A retrieves the difference block number  21 AC of the transfer generation with reference to the COW table  21 A, and retrieves data stored in the aforementioned block number  21 AC in the differential area  22 AC (S 22 ). 
         [0068]    Next, the remote copy program  24 A sends the aforementioned data to the sub-computer  4  (S 23 ). 
         [0069]    The remote copy program  24 B in the sub-computer  4  receives the aforementioned data, and directs the snapshot program  23 B in the sub-computer  4  to write the data into the block having the aforementioned block number in the main volume  11 B (S 24 ). 
         [0070]    The snapshot program  23 B in the sub-computer  4  copies the block having the aforementioned block number to the differential area  22 B, and enters the difference block number  21 BC in the differential area  22 B copied at the junction of the transfer generation in the COW table  21 B in the sub-computer  4  and the aforementioned block number (S 25 ). 
         [0071]    With the above-described processing steps, the remote copy program  24 A completes transfer processing in the sub-computer  4 , adds one block number in order to check the following block number, and returns to step S 20  (S 26 ). 
         [0072]    If all of the processing steps in steps S 21 -S 26  are executed for all block numbers (S 20 : Yes), the remote copy program  24 A updates the baseline generation  25 AE of the main volume name  25 M of the aforementioned main volume  11 A in the remote copy management table  25 A to a transfer generation (S 27 ); and reports the management program  35  that the processing is completed. Then, the management program  35  reports the administrator that processing is completed; and terminates the processing in the flowchart. 
         [0073]    According to the first embodiment, the main computer  3  transfers up to the snapshot of the latest generation not exceeding an available transfer size determined from the transfer bandwidth  25 AC and the available transfer time frame  25 AD, when transferring plural snapshots. Consequently, when transferring a snapshot created in the second embodiment, the transfer amount will not exceed an available transfer size, so it is possible to effectively prevent a business from being damaged by planned transfer periods being exceeded, or transfer failures. 
       (3) Third Embodiment 
       [0074]    According to the first embodiment, the transfer amount between a creation-targeted snapshot generation and the previous generation will never exceed an available transfer size. However, if the transfer bandwidth is smaller than that in the case when a snapshot is created in accordance with the first embodiment, there is a possibility that a transfer amount exceeds an available transfer size when transferring a snapshot. Therefore, the third embodiment illustrates a method of making a relevant snapshot unavailable when a transfer amount exceeds an an available transfer size. 
         [0075]      FIG. 9  shows the difference data volume  12 A used in the third embodiment. In addition to the COW table  21 A and the differential area  22 A, the availability table  41 A is arranged in the difference data volume  12 A, and a flag indicating whether or not each snapshot is available is stored in the availability table  41 A. Configurations other than the above are the same as those of the main computer  3  in the first embodiment. 
         [0076]    Incidentally, with regard to the sub-computer  4 , as in the case of the main computer  3 , the availability table  41 B is arranged in the difference data volume  12 B. If the availability tables  41 A,  41 B are arranged in both the main computer  3  and the sub-computer  4 , when, for example, a failure occurred in the main computer  3  and data is restored from the sub-computer  4 , the content as well as data in the availability table  41 B held by the sub-computer  4  is restored in the availability table  41 A in the main computer  3 , so that it is possible to effectively prevent the main computer  3  from mistakenly accessing an unavailable snapshot. 
         [0077]      FIG. 10  is an example of the availability table  41 . The availability table  41  includes, at least, a main volume name  41 AA for which a snapshot creation is targeted, and a generation  41 AB of a snapshot whose availability is determined. This example shows, in the availability table  41 , “0” is stored when the generation  41 AB of a relevant main volume name  41 AA is available; and “the most recently transferred block number” is stored when the generation  41 AB of a relevant main volume name  41 AA is unavailable, and each stored value serves as a flag. 
         [0078]      FIG. 11  is a flowchart illustrating processing steps that will be described in the third embodiment. Accordingly, the third embodiment will be described below with reference to this flowchart. 
         [0079]    First, when an administrator specifies the main volume name  25 AA of the main volume  11 A to be transferred, and the generation (hereinafter referred to as the “transfer generation”), the transfer bandwidth  25 AC and the available transfer time frame  25 AD of a snapshot to be transferred; and the create button  361  is clicked, the management program  35  in the management computer  5  starts the processing steps in the flowchart according to the third embodiment, and directs the main computer  3  to transfer the snapshot by specifying the main volume name  25 AA, the sub-computer name  25 AB, the transfer bandwidth  25 AC and the available transfer time frame  25 AD of the main volume  11 A (S 31 ). 
         [0080]    In that case, if the relationship of the sub-computer name  25 AB, the transfer bandwidth  25 AC and the available transfer time frame  25 AD with respect to the main volume name  25 AA of the main volume  11 A is stored in the remote copy management table  25 A in advance, and an administrator specifies only the main volume name  25 AA of the main volume  11 A, the remote copy program  24 A, in place of the management program  35 , and may retrieve the sub-computer name  25 AB, the transfer bandwidth  25 AC and the available transfer time frame  25 AD with reference to the remote copy management table  25 A. 
         [0081]    Next, the remote copy program  24 A in the main computer  3  specifies the block number “ 1 ” as a block to be transferred and resets the total transfer amount to “0” (S 32 ). Then, the remote copy program  24 A executes processings in steps S 34 , S 35 , and S 21 -S 26  on all blocks in the main volume  11  (S 33 ). If the remote copy program  24 A did not execute those processing steps on all of the block numbers (S 33 : No), the remote copy program  24 A checks whether or not the total amount exceeds the available transfer size (S 34 ). If the total amount does not exceed the available transfer size (S 34 : No), the remote copy program  24 A executes steps S 21 -S 26 . The details of steps S 21 -S 26  are the same as those described in the second embodiment. Then, the remote copy program  24 A adds the size of block transferred in step S 23  to the total transfer amount (S 35 ). 
         [0082]    On the other hand, if the total amount exceeds the available transfer size (S 34 : Yes), the remote copy program  24 A sends to the remote copy program  24 B in the sub-computer  4  a flag indicating that the snapshot at the generation in the relevant main volume  11  is unavailable (S 37 ). In the third embodiment, the remote copy program  24 A sends a currently processing block number. 
         [0083]    Next, the remote copy program  24 B in the sub-computer  4  stores the received flag indicating that the snapshot is unavailable in the column for the relevant transfer generation (the generation  41 AB) in the availability table  23  (S 38 ), and repots the management program  35  that the processing is complete. Then the management program  35  reports the administrator that processing is complete, and terminates the processing in the flowchart. 
         [0084]    If all processing steps in steps S 34 , S 35 , and S 21 -S 26  were executed on all blocks in step S 33  (S 33 : Yes), the remote copy program  24 A eventually reports the management program  35  that the processing is completed. Then the management program  35  reports to the administrator that processing is complete, and terminates the processing in the flowchart. 
         [0085]    According to the third embodiment, when a transfer amount exceeds an available transfer size, the main computer  3  makes the relevant snapshot unavailable. Consequently, in the third embodiment, when a snapshot exceeding the available transfer size is remote-copied, it is possible to effectively prevent an administrator from accidentally using a snapshot which has not been transferred. Also, since it is possible to restart processing from a block number following the previously transferred block number when transferring the aforementioned snapshot next time, the transfer time period can be reduced. 
       (4) Fourth Embodiment 
       [0086]    According to the first embodiment, the transfer amount between a creation-targeted snapshot generation and the previous generation will never exceed an available transfer size. However, if an administrator regularly sets the time for creating a snapshot and the time for transferring a snapshot in advance, there is a possibility that the amount of generated snapshots is too large to transfer in an originally assumed transfer cycle. The fourth embodiment illustrates a method of preventing a transfer amount from exceeding an available transfer size, when creating the next snapshot, by modifying the creation time for a next snapshot when a transfer amount exceeds an an available transfer size. 
         [0087]      FIG. 12  shows memory  16 A used in the fourth embodiment. In addition to the snapshot program  23 A, the remote copy program  24 A, and the snapshot table  25 A, the snapshot schedule table  42 A is stored in the memory  16 A. Incidentally, with regard to the sub-computer  4 , as in the case of the main computer  3 , the snapshot schedule table  42 B is arranged in memory  16 B. 
         [0088]      FIG. 13  is an example of the snapshot schedule table  42 A. The snapshot schedule table  42 A includes at least the main volume name  42 AA and the time  42 AB for retrieving a snapshot (hereinafter referred to as the “retrieving time  42 AB”). 
         [0089]      FIG. 14  is a flowchart illustrating processing steps that will be described in the fourth embodiment. Accordingly, the fourth embodiment will be described below with reference to this flowchart. 
         [0090]    First, when the time for retrieval comes, an OS specifies and activates the main volume name  25 AA for which a snapshot is created, then the snapshot program  23 A in the main computer  3  starts the processing steps in the flowchart according to the fourth embodiment and retrieves the transfer bandwidth  25 AC, the available transfer time frame  25 AD, and the baseline generation  25 AE for the main volume name  25 AA of the main volume  11  with reference to the remote copy management table  25 A (S 41 ). 
         [0091]    Incidentally, in place of an OS, a schedule management program, such as “cron,” etc., may activate the snapshot program  23 A. 
         [0092]    Next, the snapshot program  23 A executes processing steps in steps S 2 -S 9  described in the first embodiment. If a transfer amount does not exceed an available transfer size in steps S 2 -S 9  (S 43 : No), the snapshot program  23 A terminates the processing in the flowchart according to the first embodiment. On the other hand, if a transfer amount does not exceed the available transfer size (S 43 : Yes), the snapshot program  23 A determines the amount of time required to transfer a snapshot by dividing the transfer amount by the transfer bandwidth; resets the time for a next snapshot creation to begin after the aforementioned amount of time required is passed (S 44 ), and then terminates the processing in the flowchart according to the first embodiment. 
         [0093]    According to the fourth embodiment, when a transfer amount exceeds an available transfer size, the main computer  3  can create a next snapshot so as to prevent a transfer amount from exceeding an available transfer size by changing a creation time for the next snapshot. Consequently, it is possible to effectively prevent a business from being damaged by planned transfer periods being exceeded, or transfer failures. 
         [0094]    The present invention can be broadly applied to a computer system having a function to copy data between more than one computer. 
         [0095]    While the invention has been described with respect to a limited number of embodiments, those skilled in the art, having benefit of this disclosure, will appreciate that other embodiments can be devised that do not depart from the scope of the invention as disclosed herein. Accordingly, the scope of the invention should be limited only by the attached claims.