Abstract:
A storage system comprises a remote side storage device comprising a cache memory, and a master side storage device comprising an asynchronous copy controller constructed and arranged so as to issue requests for storage of asynchronous copies to the remote side storage device. The master side storage device further comprises a remote side status monitoring section constructed and arranged to monitor an activity rate of the cache memory and to adjust an asynchronous copy load based on the activity rate of the cache memory.

Description:
BACKGROUND OF THE INVENTION  
       [0001]     1. Field of the Invention  
         [0002]     The present invention relates to a storage system for copying data between a plurality of storage devices, a storage device in this system, a method of copying data between a plurality of storage devices, and a medium recording a program for copying data between a plurality of storage devices. In particular, the present invention relates to a case where a synchronous copy process and an asynchronous copy process coexist. The synchronous copy process is to copy in synchronization with I/O (hereinafter, referred to as host I/O) carried out by a host computer (hereinafter, referred to as a host) and, the asynchronous copy process is to copy in asynchronization with the host I/O.  
         [0003]     2. Description of the Related Art  
         [0004]     There are storage devices with the function to copy data between storage devices to make a backup copy for recovery in case physical disk failures or any other accidents should occur. This function is to copy data of a storage device (hereinafter, referred to as a master side device), to which a host is directly connected, to another storage device (hereinafter, referred to as a remote side device) which is connected indirectly to the host via the master side device and an interface cable. When data has been copied to the remote side device in advance for a backup and recovery, the system can be restored to continue the services even when the data of the master side device cannot be read due to a failure or the like of a physical disk, or the entire master side device fails due to an accident or the like.  
         [0005]     The method of copying data between storage devices include a synchronous copy method of copying to a remote side device in synchronization with host I/O, and an asynchronous copy method of copying to a remote side device in asynchronization with the host I/O. In the synchronous copy method, at the time of a write request from the host, data is written to a volume of the master side device (hereinafter, referred to as a master volume) and concurrently, the same data is written to a volume of the remote side device (hereinafter, referred to as a copy volume). Then, after completing the writing at the remote side device, the master side device returns a completion response of the host I/O to the host. In this method, the contents of the master volume are always identical to those of the copy volume. This is the method used in a case where the latest data is at all times required when a failure occurs.  
         [0006]     On the other hand, in the asynchronous copy method, a completion response of host I/O is returned to the host when data has been written to the master volume. Subsequently, the data is sent to the remote side device, and is written to the copy volume. Although this method causes a delay in making the data of the copy volume identical to that of the master volume, this is the method used in a system in which the above delay is allowed.  
         [0007]     Japanese Patent Application No. 2003-6016 (hereinafter referred to as Patent Document 1) discloses that, in a state where asynchronous copy cannot be performed, copy to a logical volume with a high priority is continued, but copy to a logical volume with a low priority is halted.  
         [0008]     In either case of the synchronous copy method or of the asynchronous copy method, when there is a space available in a cache memory of the remote side device, the completion response of copying is returned to the master side device when the data is written to the cache memory. Thereafter, the copy process is terminated.  
         [0009]     However, when there is no space available in the cache memory of the remote side device, the remote side device firstly writes the data on the cache memory and has not been written to a physical disk, to the physical disk to make space available in the cache memory. Thereafter, the remote side device writes the data to this space in the cache memory, returns a completion response of copying to the master side device, and terminates the copy process.  
         [0010]     Hereinafter, descriptions of the above process are provided with reference to  FIG. 6 . After a copy process is started in the remote side device, when there is a space available in the cache memory (YES at S 601 ), the data is written to the cache memory (S 603 ). Then a completion notification on the copying is sent to the master side device (S 604 ).  
         [0011]     When there is no space in the cache memory (NO at  601 ), the data, which has not been written to the physical disk among the data in the cache memory, is written to the physical disk (S 602 ) to make space in the cache memory. Subsequently, the data is written to the cache memory (S 663 ) and the completion notification on the writing is sent to the master side device (S 604 ). In this case the completion notification on the copying is delayed because the data is written to the physical disk (S 602 ). For this reason, the completion response of the host I/O, which is carrying out the synchronous copy process, to the host is also delayed.  
         [0012]     Accordingly, in the case where the synchronous copy process and the asynchronous copy process coexist, there is a problem. The response of the synchronous copy process is delayed under the influence of the write load due to the asynchronous copy process. So the completion response of the host I/O, when carrying out the synchronous copy process, is also delayed. This problem has not been solved even by means of the technique disclosed in Patent Document 1 described above.  
       SUMMARY OF THE INVENTION  
       [0013]     The present invention is advantageous especially when a synchronous copy method and an asynchronous copy method coexist. Especially when there is a large amount of write load at the remote side device and there is little space available in the cache memory. Specifically, the present invention minimizes the completion delay of the synchronous copy process caused by the asynchronous copy. This minimizes the completion delay of the host I/O which is executing the synchronous copy.  
         [0014]     This can be achieved because the activity rate of the cache memory of the remote side device is monitored, and the asynchronous copy load, which is the amount of I/O process cased by asynchronous copies, is adjusted based on the activity rate of the cache memory.  
         [0015]     According to the present invention, there is provided a storage system comprising a remote side storage device comprising a cache memory, and a master side storage device comprising an asynchronous copy controller constructed and arranged so as to issue requests for storage of asynchronous copies to the remote side storage device, wherein the master side storage device further comprises a remote side status monitoring section constructed and arranged to monitor an activity rate of the cache memory and to adjust an asynchronous copy load based on the activity rate of the cache memory.  
         [0016]     According to the present invention, there is provided a master side storage device comprising an asynchronous copy controller constructed and arranged to issue requests for asynchronous copies to be created on a remote side storage device, the remote side storage device being separate from the master side storage device and comprising a cache memory, and a remote side status monitoring section constructed and arranged to monitor an activity rate of the cache memory and to adjust an asynchronous copy load based on the activity rate of the cache memory.  
         [0017]     According to the present invention, there is provided a remote side storage device comprising a cache memory, and a cache memory status monitoring section which is constructed and arranged to check an activity rate of the cache memory, wherein the remote side storage device is constructed and arranged to issue data describing the activity rate of the cache memory upon request, so that when the activity rate is requested by a master side storage device having an asynchronous copy controller designed to request asynchronous copies to be made on the remote side storage device, a remote side status monitoring section further provided in the master side storage device can monitor the activity rate of the cache memory and adjust an asynchronous copy load based on the activity rate of the cache memory.  
         [0018]     According to the present invention, there is provided a computer system comprising above-mentioned storage system, a first host computer connected to the master side storage device, and a second host computer connected to the remote side storage device.  
         [0019]     According to the present invention, there is provided a data copy method comprising requesting asynchronous copies to be made on a remote side storage device, monitoring an activity rate of a cache memory of the remote side storage device and adjusting an asynchronous copy load based on the activity rate of the cache memory.  
         [0020]     According to the present invention, there is provided a computer readable medium storing thereon a control program enabling a computer to execute a data copy method descried above. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0021]      FIG. 1  is a block diagram showing an example of the entire configuration of a storage system of the present invention.  
         [0022]      FIG. 2  is a block diagram showing an example of the configuration of an inter-device data copy controlling section of a master side device of the storage system of the present invention.  
         [0023]      FIG. 3  is a flowchart showing an example of the procedure of determining the request frequency of a copy command of the master side device of the present invention.  
         [0024]      FIG. 4  is a table showing an example of the table to which a remote side device status monitoring section of the present invention refers.  
         [0025]      FIG. 5  is a flowchart showing an example of the procedure of an asynchronous copy process of the remote side device of the present invention.  
         [0026]      FIG. 6  is a flowchart showing an example of the procedure of a remote side copy process of a conventional technique.  
         [0027]      FIG. 7  is a flowchart showing an example of an asynchronous copy process of the master side device of the present invention.  
         [0028]      FIG. 8  is a block diagram showing an example of the configuration of a cache memory status monitoring section of the present invention.  
         [0029]      FIG. 9  is a table showing another example of the table to which the remote side device status monitoring section of the present invention refers.  
         [0030]      FIG. 10  is a block diagram showing an example of the configuration of the inter-device data copy controlling section of the remote side device of the storage system of the present invention. 
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0031]     Next, the best mode for implementing the present invention will be described in detail with reference to the accompanying drawings.  
         [0032]     First, detailed descriptions will be provided for a configuration of an embodiment of the present invention with reference to the accompanying drawings. Referring to  FIG. 1 , a storage device  200  as a master side device of the embodiment of the present invention includes a host interface controlling section  210 , an inter-device data copy controlling section  220 , a cache memory  230 , a disk controlling section  240 , and a disk enclosure section  250 .  
         [0033]     A plurality of physical disks  251  are mounted in the disk enclosure section  250 . The host interface controlling section  210  is connected to a host  100  via an interface cable  300 . In the storage device  200  at the master side (hereinafter, simply referred to also as a master side device) and a storage device  200   a  at a remote side (hereinafter, simply referred to also as a remote side device), the inter-device data copy controlling section  220  of the storage device  200  is connected to an inter-device data copy controlling section  220   a  of the storage device  200   a  via an interface cable  400 .  
         [0034]     Moreover, the remote storage device  200   a  includes a host interface controlling section  210   a , the inter-device data copy controlling section  220   a , a cache memory  230   a , a disk controlling section  240   a , and a disk enclosure section  250   a.    
         [0035]     A plurality of physical disks  251   a  is mounted in the disk enclosure section  250   a . The host interface controlling section  210   a  is connected to a host  100   a  via an interface cable  300   a.    
         [0036]     The host interface controlling sections  210  and  210   a  transmit and receive commands or responses thereof, as well as the data, to/from the hosts  100  and  100   a , respectively.  
         [0037]     The disk controlling section  240  issues a write instruction of the data sent from the host  100 , to the physical disks  251  in response to a write request command from the host  100 . Moreover, the disk controlling section  240  issues an instruction to write the un-written data on the cache memory  230  to the physical disks  251 .  
         [0038]     The disk enclosure sections  250  and  250   a  respectively include the physical disks  251  and  251   a , and read, write and store the data.  
         [0039]      FIG. 2  shows in detail the inside of the inter-device data copy controlling section  220 . Referring to  FIG. 2 , the inter-device data copy controlling section  220  includes a remote side device status monitoring section  221 , an asynchronous copy controller  222 , a synchronous copy controller  223 , a write controller  224 , a cache memory status monitoring section  225 , an inter-device copy transmission controller  226 , and an inter-device copy reception controller  227 . The inter-device copy transmission controller  226  and the inter-device copy reception controller  227  are connected to the remote side device via the interface cables  400 .  
         [0040]      FIG. 10  shows in detail the inside of the inter-device data copy controlling section  220   a . Referring to  FIG. 10 , the inter-device data copy controlling section  220   a  includes a remote side device status monitoring section  221   a , an asynchronous copy controller  222   a , a synchronous copy controller  223   a , a write controller  224   a , a cache memory status monitoring section  225   a , an inter-device copy transmission controller  226   a , and an inter-device copy reception controller  227   a . The inter-device copy transmission controller  226   a  and the inter-device copy reception controller  227   a  are connected to the master side device via the interface cables  400 .  
         [0041]     Subsequently, the operation of the embodiment of the present invention is described with reference to the accompanying drawings. First, referring to  FIG. 1 , descriptions will be provided for the operation and function of the storage device  200  at the master side. The host interface controlling section  210  checks the availability in the cache memory  230  when a command of write request is received from the host  100 .  
         [0042]     When there is a space available, the data, which is received from the host  100 , is written to the cache memory  230 . Thereafter, a response of normal termination of writing is returned to the host  100 . Accordingly, the data, which is written to the cache memory  230 , is written to the physical disks  251  in asynchronization with the write request command from the above-described host  100 . For example, the disk controller  240  checks the cache memory  230  in asynchronization with the write request command from the above-described host  100  and, when the data is yet to be written, the disk controlling section  240  writes this data to the physical disks  251 , and deletes the data from the cache memory  230 .  
         [0043]     On the other hand, in a case where there is no space in the cache memory  230  when a command of write request is received from the host  100 , the host interface controlling section  210  issues, to the disk controller  240 , an instruction to write the un-written data on the cache memory  230  to the physical disk  251 . After having written the un-written data on the cache memory  230  to the physical disks  251 , the disk controller  240  deletes the data from on the cache memory  230 , and notifies the host interface controller  210  of the completion of writing.  
         [0044]     The host interface controlling section  210 , which has received this notice, writes, to the cache memory  230 , the data received from the host  100 , and returns, to the host  100 , a response of completion of writing. In this manner, time for responding to the host  100  is shortened when there is a space available in the cache memory  230 .  
         [0045]     The operation and function of the storage device  200   a  at the remote side are identical to those of the storage device  200 .  
         [0046]     Next, the operation of the inter-device data copy of the present invention is described with reference to  FIG. 1  and  FIG. 2 . First, descriptions will be provided for the synchronous copy method of copying to the remote side device in synchronization with the host I/O. In this case, when there is a space available in the cache memory  230 , the host interface controlling section  210 , which has received a write request command from the host  100 , writes the received data to the cache memory  230 , and concurrently, notifies the synchronous copy controller  223  of the completion of writing. The synchronous copy controller  223 , which has received this notice, reads the relevant data from the cache memory  230 , and sends this data to the storage device  200   a  at the remote side via the inter-device copy transmission controller  226 .  
         [0047]     In a case where there is no space in the cache memory  230  when a write request command is received from the host  100 , the host interface controlling section  210  issues, to the disk controller  240 , an instruction to write the data, which is on the cache memory  230  and has not been written to the physical disks, to the physical disks  251 . The disk controlling section  240  writes the relevant data to the physical disks. Upon completion of this writing, the disk controlling section  240  deletes the relevant data from the cache memory  230  to make space available, and notifies the host interface controlling section  210  of the completion of writing.  
         [0048]     The host interface controlling section  210 , which has received this notice, writes, to the cache memory  230 , the data received from the host  100 , and concurrently, notifies the synchronous copy controller  223  of the writing. The operation thereafter is similar to that of the case where there is a space in the memory. Specifically, the synchronous copy controller  223 , which has received the notice, reads the relevant data from the cache memory  230 , and sends this data to the storage device  200   a  at the remote side via the inter-device copy transmission controller  226 .  
         [0049]     When the completion response of writing of the relevant data is received from the remote side device  200   a , the inter-device copy reception controller  227  notifies the synchronous copy controller  223  of the completion of writing. The synchronous copy controller  223 , which has received this notice, notifies the host interface controlling section  210  of the completion of writing. Upon receipt of this notice, the host interface controlling section  210  returns, to the host  100 , a response of completion of writing.  
         [0050]     Next, descriptions will be provided for an asynchronous copy method of copying to the remote side device in asynchronization with the host I/O. Upon receipt of the write request command from the host  100 , the host interface controlling section  210  writes the received data to the cache memory  230 . Concurrently, the host interface controlling section  210  holds information indicating the existence of a different information (in this case, the data received under the write request command from the host  100 ) between the data of the master side storage device  200  and the data of the remote side storage device  200   a , e.g., an address in the cache, to which the relevant data has been written. Thereafter, the host interface controlling section  210  returns a response of completion of writing to the host  100 .  
         [0051]     The asynchronous copy controller  222  checks the different information periodically. When the different information exists, the asynchronous copy controller  222  issues a copy command to the remote side device to request an asynchronous copy thereto. In the process, asynchronous copy controller  222  reads the different information from the cache memory  230  and sends this data to the remote side device  200   a  via the inter-device copy transmission controller  226 . Upon receipt of a response (response of normal termination) to the data transmission of the relevant different information from the remote side device  200   a , the inter-device copy reception controller  227  notifies the asynchronous copy controller  222  of this fact. The asynchronous copy controller  222  receives the notice, and completes the copy process.  
         [0052]     As shown in  FIG. 8 , a cache memory status monitoring section  225   a  at the remote side includes a memory activity rate measuring section  801   a  for measuring the activity rate of the cache, and a memory activity rate determination section  802   a  for determining the degree of the activity rate, e.g., the memory activity rate determination section  802   a  for determination whether the memory activity rate is low, or medium, or high. The degree of the activity rate may be divided not only into three levels of low, medium and high as described above, but also may be divided into five levels of low, relatively low, medium, relatively high, and high as shown  FIG. 9 . The degree of the activity rate may be divided into more detailed levels.  
         [0053]     In the cache memory status monitoring section  225   a , a counter provided therein counts up the numbers every time the data is written on a new page of cache memory  230   a , and counts down the numbers every time the data on cache memory  230  is written down to the physical disks  251   a . Accordingly, the value of the counter expresses the number of the pages used in the cache. It can also be said that the value of the counter expresses the activity rate of the cache memory  230   a . The memory activity rate determination section  802   a  compares the activity rate, which is obtained this manner, with the respective threshold level values to determine: whether the memory activity rate is a first threshold level value or less; or whether the memory activity rate exceeds the first threshold level value and is a second threshold level value or less, or it exceeds the second threshold level value. Accordingly it is possible to determine to which level among the low, medium, and high levels the cache memory activity rate corresponds. The memory activity rate determination section  802   a  determines the degree of the activity rate accordingly. The inter-device copy transmission controller  226   a  sends a result of determining the activity rate to the master side device  200 .  
         [0054]     The remote side device status monitoring section  221  of the master side device  200  determines the execution interval of the asynchronous copy and the maximum execution number N by referring to the table of  FIG. 4  on the basis of the obtained information on the degree of the activity rate of the cache memory  230   a  of the remote side device  200   a.    
         [0055]     The execution interval of the asynchronous copy can be adjusted by changing the setting of an unillustrated timer which determines the execution interval, or the like. The execution number of the asynchronous copy can be controlled so as to be at the maximum number N or less as shown in  FIG. 7 .  
         [0056]     Next, the operation of the embodiment of the present invention is described in detail with reference to the accompanying drawings. The synchronous copy method and the asynchronous copy method may coexist.  
         [0057]     First, descriptions will be provided for the operation which determines the asynchronous copy execution interval of the master side device  200  with reference to  FIG. 2  and  FIG. 3 . The remote device side status monitoring section  221  of the master side device  200  periodically issues, to the remote side device  200   a  via the inter-device copy transmission controller  226   a , a command to inquire about the activity rate of the cache memory  230   a  (S 101 ). The cache memory status monitoring section  225   a  of the remote side device  200   a , when receiving this command, checks the activity rate of the cache memory  230   a , and reports to the master side device  200  (S 102 ).  
         [0058]     The remote side device status monitoring section  221  of the master side device  200  monitors the obtained information on the activity rate of the cache memory  230   a  of the remote side device, and determines the execution interval of the asynchronous copy and the maximum execution number N on the basis of the above information  200   a  by referring to the table of  FIG. 4  (S 103 ).  
         [0059]     The execution number means the number of copy commands which have been issued but not yet terminated at one point in time. And the maximum execution number means the allowed maximum execution number. For example, when the maximum execution number is set at 3, the storage device  200  at the master side issues a copy command repeatedly until the number of issued but not yet terminated commands is 3. However, after the number of un-terminated commands reaches 3, the copy command is not issued until the response of normal termination is received, and the next copy command is issued only after the response of normal termination is received.  
         [0060]     The execution number is grasped as follows, for example. In the asynchronous copy controller  222  of the master side storage device  200 , an unillustrated number counter is prepared. The number counter counts up the numbers when the copy command is issued to the storage device  200   a  at the remote side, and counts down the numbers when a response is returned from the storage device  200   a  at the remote side. In this manner, the value of the number counter expresses the execution number.  
         [0061]      FIG. 4  is an example of the table to which the remote side device status monitoring section  221  refers. For example, when the activity rate of the cache memory  230   a  of the remote side device is low, the interval of issuing the asynchronous copy is shortened, and the maximum execution number is increased. When the activity rate of the cache memory  230   a  of the remote side device is high, the interval of issuing the asynchronous copy is prolonged, and the maximum execution number is decreased. Thereby, the load of the asynchronous copy process is adjusted.  
         [0062]     Next, the operation of the asynchronous copy process of the master side device is described in detail with reference to  FIG. 7 .  
         [0063]     The asynchronous copy controller  222  determines whether the value M of the number counter at a given time is smaller than the maximum execution number N of the copy command (S 104 ). When the value M of the number counter at the time is not smaller than the maximum execution number N of the copy command (NO at S 104 ), the copy command is not issued, and the asynchronous copy process of the master side storage device  200  is complete. When the value M of the number counter is smaller than the maximum execution number N of the copy command (YES at S 104 ), the asynchronous copy controller  222  issues a command of copy request to the remote side device on the bases of the interval of issuing and the maximum execution number N, which are determined by the remote device side status monitoring section  221 , as described above (S 105 ).  
         [0064]     The asynchronous copy controller  222  adds one to the number counter value M after issuing the command (S 106 ).  
         [0065]     Subsequently, the asynchronous copy controller  222  waits for a response from the remote side device (S 107 ). When the response from the remote side device  200   a  is of a normal termination (NO at S 108 ), the asynchronous copy controller  222  subtracts one from the number counter value M (S 109 ) because the number of un-terminated commands decreases. Then the copy process is terminated. This terminates the asynchronous copy process of the master side device  200 . When the response from the remote side device  200   a  is a cancellation response due to the fact that there is no space in the cache memory  230   a  (YES at S 108 ), the asynchronous copy controller  222  subtracts one from the number counter value M (S 110 ). Thereafter, the asynchronous copy controller  222  determines whether the value M of the number counter at the time is smaller than the maximum execution number N of the copy command (S 104 ). In a case where the value M is smaller than the maximum execution number N (YES at S 104 ), the asynchronous copy controller  222  again issues the relevant copy command (S 105 ), and the above described steps is repeated thereafter.  
         [0066]     Next, the operation of the asynchronous copy process of the remote side device  200   a  is described with reference to  FIG. 2  and  FIG. 10 . When an asynchronous copy command is received from the master side device  200  (S 201 ), the cache memory status monitoring section  225   a  of the remote side device  200   a  checks the activity rate of the cache memory  230   a , and reports the result thereof to the master side device  200  and the write controller  224   a  (S 202 ). When there is a space in the cache memory  230   a  (YES at S 203 ), the write controller  224   a  immediately writes to the cache memory  230   a  thus, executes the asynchronous copy command (S 204 ). When the write is complete, the write controller  224   a  returns, to the master side device, a response of normal termination of the asynchronous copy process (S 205 ). When there is no space in the cache memory  230   a  (NO at S 203 ), the write controller  224   a  stands by, and waits for a predetermined period of time (NO at S 206 ). When there is no space in the cache memory  230   a  after having waited for a predetermined period of time (YES at S 206 ), the write controller  224   a  returns, to the master side device, a cancellation response due to the fact that there is no space in the cache memory  230   a , without carrying out the write process (S 207 ).  
         [0067]     Note that a program stored in a record medium, such as unillustrated ROM (read only memory), which exists in each storage device, may cause an unillustrated computer to execute the operation of each of storage devices  200  and  200   a  described above.  
         [0068]     In the above-described embodiment, the load in the asynchronous copy process is adjusted in accordance with the activity rate of the entire cache memory  230   a  of the remote side device  200   a . However, the present invention is not limited to such embodiment, and the activity rate of the cache memory may be managed, for example, in units of volume of the physical disks of the remote side device  200   a , or in units of group of the physical disks constituting RAID so that the load of the asynchronous copy process may be adjusted in units of volume or in units of group of the physical disks. Moreover, although in the embodiment, the master side device  200  periodically issues, to the remote side device  200   a , a command to inquire about the activity rate of the cache memory, the remote side device  200   a  may periodically report the activity rate of the cache memory thereof to the master side device  200 . Although in the embodiment, the master side device  200  is connected to the remote side device  200   a  on one-to-one basis, one-to-multiple, multiple-to-one, multiple-to-multiple connection basis configurations may also be employed.