Method for exchanging data between volumes of storage system

A method of data exchange between volumes without using any unnecessary resource in a storage system includes allocating cache areas for data exchange on a memory, determining the location of data to be exchanged, reading out data from the determined location in source and destination volumes and storing data in their respective caches, and writing data stored in the cache to thus determined location of the volume different from the one that the data was read out.

CLAIM OF PRIORITY

The present application claims priority from Japanese application P2005-298584 filed on Oct. 13, 2005, the content of which is hereby incorporated by reference into this application.

BACKGROUND

This invention relates to an improved method for managing volumes in a storage system.

The amount of data that is handled by a firm of the present day is increasing, together with the increase of storage capacity of the storage system. While the capacity of the storage system increases, rather than the volumes in a storage system won't have a homogenous performance but each of them will have a variety of performance levels, respectively. The optimum strategy of layout design of volumes to be used to store data based on the importance is required. In addition, since the importance of data is not always at a certain level, moving data between volumes having different performance is often needed.

Moving data between volumes is done in general by copying data from the source volume to the destination volume. In this case the data that exists in the destination volume is overwritten. The destination volume should be selected which must be an unused volume (the volume that stores only unnecessary data). Because of this, the storage management strategy with the assumption of moving data being anticipated requires for the system to have always an empty, blank volume to be served as a new destination of data. Always having a bunch of blank storage volumes to be served as the new destination volumes may be wasting the resource, and a high performance spare set of disk drives among other things not used for the routine work is not desirable in view of cost saving.

In contrast to this, JP 2002-32197 A suggests a method for exchanging data between the source volume and the destination volume for the purpose of moving data between volumes. According to this method the data can be moved without overwriting existing data on the destination volume. In this prior embodiment, two extra volumes are provided for temporary data backup in addition to two principal volumes from and to which the data is exchanging, to copy data from two principal volumes exchanging data to the temporary backup volumes, then to copy the data backed up in the temporary volumes to their respective destination volumes. According to this method, moving data is available even when the destination volume is not empty, if only two temporary backup volumes are provided.

SUMMARY

According to the related art as described above, however, the temporary backup volumes are required to be always available, which implicit the development of waste storage space that is not available for the normal operation. In particular there arises a problem that, if a number of volumes are to be moved at the same time, then the same number of empty volumes needs to be ready, or if there is only a few number of volumes available then overall data exchange takes times. There is also another problem that moving data takes twice the time than the conventional data movement because of data backup to the temporary backup volume.

When using the temporary backup volumes the storage space of the temporary volume must be larger than that of the volumes to be exchanged so that the size of backup volumes should be determined based on the size of the largest volume in the storage system, which imposes difficulty to the flexible operation. More specifically, when the data copy between volumes is executed in hardware, there may be cases where some requirements are present among volumes served for data copy such that a number of temporary backup volumes may be needed. For example, if the requirement present is such that the size of storage space between two volumes to be copied each other must be equal, the temporary volumes should be provided as much as the number of volumes of different capacity in the storage system.

This invention has been made in view of the above circumstances and has the object to provide a method of data exchange between volumes in a higher speed without requiring inefficient resources in the storage system.

According to this invention, a temporary storage area on a memory for the data exchange is provided, then the position of the data to be exchange is located, data is read out from the located position in first or second volume to store in the temporary storage area on the memory, and the data in the temporary memory area is written to the located position of the volume different from the volume from which the data is read out.

Next, at the time of migration (data exchange process or data moving process), if there is stored active data on the second (destination) volume, then the data is exchanged between volumes using the temporary storage area on the memory. If on the other hand there is not stored active data on the destination volume then the normal migration operation to copy from the first volume to the second volume is performed.

According to this invention, data will be exchanged between volumes using a temporary storage area such as disk cache and RAID cache to allow data to be moved without requiring any extra volume. This eliminates the need to prepare any extra volumes in the storage system, allowing much higher efficiency of the operation.

Furthermore, data exchange by reading data from the first (source) volume to the cache (temporary storage area) then by writing data to the destination volume enables the performance similar to that of volume-to-volume data copy, improving the processing speed of migration.

DETAILED DESCRIPTION OF THE EMBODIMENTS

First Embodiment

First embodiment of this invention will be described in greater details herein below with reference to the accompanying drawings.

FIG. 1is a schematic block diagram of a storage system according to this invention. A storage system100includes, as described in connection withFIG. 2, a CPU11, a memory (cache)12, I/O interface14to16and plural disk drives3to5. The storage system100incorporates therewithin a migration controller unit101, a data access controller unit104, a cache management unit106, plural cache areas111to116, and plural volumes121to124. The cache areas111to116are allocated on a predetermined area on the memory12; the volumes121to124are each allocated to a predetermined disk drive3to5by the data access controller unit104.

The migration controller unit101, data access controller unit104, and cache management unit106are shown achieved by the software loaded on the memory in this embodiment. The entirety of these controller and management units is termed herein as a disk controller unit1100.

FIG. 2is a schematic block diagram of hardware of the storage system100.

On the IP network6are interconnected a management server131, which manages the storage system100, and a host computer132. The host computer132is also connected to the storage system100via a SAN (Storage Area Network)7, and the host computer132may have I/O access to the storage system100through SAN7.

The storage system100has a CPU11, a memory12including the cache storage area, a data transfer controller unit13, an IP network interface14, an interface15to the storage, and an interface16to the SAN7. To the interface16are connected plural disk drives3to5, and a volume is created on each of drives, as described above.

The storage system100is connected to the IP network6through the IP network interface14to receive from the management server131the data exchange request and data movement request.

The storage system100also has access to the disk drives3to5to which the CPU11stores data, through the interface15. A cache (disk cache) area (as shown by111to116inFIG. 1) for temporary storage of data by the volume access is allocated on the memory12.

The data transfer controller unit13transfers data between the CPU11, the IP network interface14, the storage interface15, the SAN interface16and the memory12.

A controlling program for executing the disk controller unit1100is loaded on the memory12, and the CPU11calls the controlling program to the memory12to execute it to achieve the functionality of the above-mentioned various controller and management units. The cache area may be allocated only on a memory not shown, which is physically separated memory, different from the main memory that the CPU11accesses, other than on the memory12on which the CPU11stores the controller programs and the like.

Next, inFIG. 1, the migration controller unit101has therein a data exchange locator unit102and data exchange location information103, and is connected to the management server131through the IP network6. The management server131issues a migration request (i.e., data exchange request and data movement request) between volumes to the migration controller unit101to commence such data exchange or data movement operation. The management server131incorporates a CPU, a memory and an I/O interface not shown in the figure, and is operated by an operator. In the present embodiment, if there is active data stored in the destination volume, then the data exchange operation as will be described later will be selected, while on the other hand if the destination volume is writable or in other words there is no active data then the data movement operation as will be described later will be selected instead.

The migration controller unit101uses the data exchange locator unit102to determine the data exchange position (or data movement position) on the target volume and store thus located data exchange position in the data exchange location information103. The data exchange position can be for example indicated by the logical block address (LBA) number.

The migration controller unit101is also connected to the cache management unit106to perform reservation of the cache area111to116used in the data exchange operation and data movement operation as well as to control data copy between the caches111to116and the volumes121to124.

The data access controller unit104is connected to the host computer132through the SAN7to receive the data read request and the data write request from the host computer132. The host computer132is a computer used by any user, which also incorporates a CPU, a memory and an I/O interface not shown in the figure.

The data access controller unit104has a data access unit105therein, which is connected to the data exchange location information103. A data access controller unit104directs the data access unit105to process the request at the time of performing operation of data read request and data write request from the host computer132.

The data access unit105is connected to the data exchange location information103and the cache management unit106to refer the data exchange location information103based on the data position of data read request and data write request from the host computer132to issue data read and write requests to the cache controller.

The cache management unit106is connected to the cache areas111to116and the volumes121to124to use a cache area reservation unit107according to the request from the migration controller unit101to perform the reservation process of the cache areas111to116. The reservation is the process of reserving an area to be used as data buffer for the exchanging data in the data exchange process on the cache area that operates as disk cache or RAID cache. It also uses the data copy unit108according to the request from the migration controller unit101and the data access controller unit104to copy data between the cache areas111to116and the volumes121to124. The data copy within the cache areas111to116is also possible.

As will be described later, the storage system100, in response to the data exchange request and the data movement request from the management server131, uses the migration controller unit101and the data access unit105to perform the data exchange or movement between volumes. The data exchange request involves the administrator of the storage system100designating the source and destination volumes to direct the storage system100. The data exchange request may be consisted of for example movement of frequently updated data or important data to a higher performance volume and movement of less frequently updated data or less important data to a lower performance volume. The performance of a volume is termed as the transfer rate and the response time of each volume, seen from the host computer132, which is dependent on the disk drive having the volume set thereon. In general, a high performance disk drive may have less storage capacity but faster transfer rate and response time, and costs more. A low performance disk drive, on the other hand, may tend to have more storage capacity and lower transfer rate and response time, and cost less. Therefore the administrator should execute the data exchange (or data movement) for reallocation of data in order to match the operation cost of the computer system.

Now the operation will be described in greater details herein below when performing data exchange between two volumes with reference toFIGS. 3 to 5.

FIG. 3is a schematic block diagram showing data exchange between volumes in response to the request issued from the management server131.

The management server131specifies the volume121and the volume122to request a data exchange request to the migration controller unit101(S201). The capacity of volumes121and122to which data will be exchanged is the same.

The migration controller unit101, upon reception- of a data exchange request, instructs the cache area reservation unit107to reserve the cache area111and the cache area112as the working space for data exchange (S202). The cache area reservation unit107prepares the cache areas of a predetermined capacity for the cache area111and the cache area112. The capacity of the cache area111and that of the cache area112that the cache area reservation unit107provides are set to the same amount.

The migration controller unit101instructs the data exchange locator unit102to start data exchange, the data exchange locator unit102in turn determines the data exchange position (S203), and stores the data exchange position into the data exchange location information103(S204). The data exchange locator unit102sets an initial value predetermined as default value of the data exchange position. The initial value may be such that LB=0, for example. In the present embodiment, only one single data exchange location information103indicates the same position in two volumes121and122because the data exchange on two volumes121and122will be performed at the same time.

Next, the migration controller unit101instructs the data copy unit108to copy to the cache area111the data421of the predetermined data length, present at the data exchange position of the volume121(S205). In a similar manner, the data copy unit108will copy the data422located at the data exchange position of the volume122to the cache area112(S206). The data length (capacity) of the data421and the data422to be copied by the data copy unit108from the volumes121and122to the cache areas111and112respectively will be set to the same amount.

Next, the migration controller unit101instructs the data copy unit108to copy the data residing in the cache area111to the data exchange position422of the volume122(S207). In the same manner, the data copy unit108will copy the data residing in the cache area112to the data exchange position421of the volume121(S208). Once the copy operation is complete, the migration controller unit101updates the data exchange location information103by adding a predefined value (the length of copied data421and422).

By iteratively repeating the above-mentioned steps S203to S208the data stored in the volume121and the data stored in the volume122are sequentially exchanged, with the data exchange location information103indicating the current data exchange position.

In the course of migration with the destination volume containing active data stored thereon, according to the above operation, the data on the source can be migrated to its new destination while the data on the destination volume is backed up to the source volume, without providing a temporary storage volume.

FIG. 4is a flow chart of the data exchange operation performed by the controller units in the storage system100.

The migration controller unit101receives a data exchange request from the management server131to start the data exchange process as described as follows.

In step301, a cache area is reserved as the working space for the data exchange. The cache area reservation unit107selects two available among cache areas111to116, for example such as the cache111and the cache112, to reserve them for the data exchange. The remaining caches113to116will be used for I/O access.

In step302, a data exchange position will be located. The data exchange locator unit102will preset an initial value predetermined on the data exchange location information103on the memory as the initial value for the data exchange position.

In step303, the migration controller unit101decides whether or not the management server131requests a suspend of data exchange, if a suspending request is issued then it will suspend the data exchange to terminate the process, otherwise if not then the process proceeds to step304.

In step304, the data copy unit108copies the data of a predetermined length at the data exchange position from the volume121to the cache area111.

In step305, the data copy unit108copies the data of a predetermined length at the data exchange position from the volume122to the cache area112. At this point, data421and422of the same length (capacity) are stored in the cache area111and the cache area112, respectively.

In step306, the data in the cache area111is copied to the data exchange position on the volume122.

In step307, the data in the cache area112is copied to the data exchange position on the volume121. This means that the data421of the volume121will be stored at the data exchange position on the volume122while the data422of the volume122will be stored at the data exchange position on the volume121to complete one data exchange chunk of the data exchange process.

In step308, the migration controller unit101decides whether or not the swap copy of all data on the volume121and on the volume122is complete, and if any data not yet copied is still present then the process proceeds to step302. If otherwise any data not yet copied is NOT present then the process terminates. In other words, the migration controller unit101decides whether or not the data exchange location information103has reached to the designated end of the volume121(122). The designated end is set to the maximum value of LBA in the volume121(122) (the dead end).

During the data exchange as described above, when data exchange is suspended due to the suspending request issued in step303and a resume request of the suspended data exchange is issued then the process resumes from the step304.

The suspending request is a request directed by the administrator to the storage system100through the management server131. More specifically the administrator monitors the operation status of the storage system100from the management server131, and may direct the storage system100to suspend data exchange if the load of the storage system100during the data exchange increases considerably.

According to the above-mentioned process, the contents of two volumes121and122can be exchanged without providing a volume for data exchange as is required in the prior art.

More specifically, to exchange the contents of the volume121, the data exchange source and the contents of the volume122, the data exchange destination, by copying the same amount of data at the position pointed by the data exchange location information103to two cache areas111and112, then by writing data from the cache areas111and112to the volumes121and122, the need to use another volume is eliminated when the destination volume contains data in use, allowing data to be exchanged faster.

FIG. 5is a flow chart of the subroutine of locating the data exchange position as shown in S302ofFIG. 4above.

The data exchange locator unit102ofFIG. 1calculates data position in the volume subject to data exchange in response to the request from the migration controller unit101.

In step401, the data exchange position is checked whether to be already present in the data exchange location information103. If present, then the process proceeds to step402, otherwise if not then the process proceeds to step403. The data exchange location information103may be embodied as a resister or a pointer configured on the memory12.

In step402, the position is incremented by the size of the cache area111with respect to the current data exchange location information103. In other words, the immediately previous data exchange position is added with a value equal to the amount of data copied in the immediately previous copy (the capacity of a cache area), then the sum is determined as the next data exchange position to be used. This operation moves the data exchange position by a step of the cache area capacity from the head of a volume when the data exchange is started, and data exchange can be continued to the end of that volume.

In step403the head position of the volume121(or122) is set for the initial value of the data exchange position. Since the volume121and the volume122are configured to have the same storage capacity, once either of these two data exchange positions has been determined, two volumes121and122can be copied and written at the exact same location. Then the data exchange locator unit102allows sequential exchange of data between volumes by the incremental unit of the size of the cache area111and cache area112.

Once the data exchange is complete between volume121and the volume122, the data access controller unit104switches the path configuration of the volume121and the volume122in the host computer132. The host computer132thereby will be able to access the target data without any concern on the volume swap by the data exchange operation and data movement operation.

In addition, the migration controller unit101maintains the data exchange location information103when receiving a suspending request of the data exchange. Then migration controller unit101then uses the data exchange position retained in the data exchange location information103to resume the data exchange when receiving a resume request of data exchange.

FIG. 6is a flow chart of data exchange position determination for the cancel operation in order to recover the volume status to the status immediately prior to the beginning of the volume exchange, when a suspending request has terminated the data exchange to the suspend status due to the suspending request issued in step303ofFIG. 4. This process is executed according to a data exchange cancel request from the management server131.

In step501the data exchange locator unit102decreases the data exchange position by the storage size of the cache area111with respect to the current data exchange location information103.

The operation to restore the volume to the status prior to starting the data exchange operation can be achieved by executing the data exchange position determination ofFIG. 6instead ofFIG. 5, in the data exchange position determination (step302) in the flow chart of data exchange shown inFIG. 4.

More specifically, the migration controller unit101, upon receiving a suspending request of data exchange, maintains the data exchange location information103. The migration controller unit101may perform data exchange in the reversal direction by decreasing the data exchange position retained in the data exchange location information103by the storage size of the cache area111upon cancel request of the data exchange. The contents of the volume121and the volume122thereby can be restored to the status prior to the start of data exchange operation.

When suspending data exchange, the data exchange position (suspended position) may also be stored in a predetermined address in the memory12.

Thereafter, upon reception of the cancel request of the data exchange, and if data exchange position is present in the data exchange location information103, the positional information with the size of the above-mentioned cache area being decremented from the data exchange position will be determined for the position of the data to be exchanged in the reverse direction. Otherwise, if the data exchange position is not present in the data exchange location information103, the current position as the position of data to exchange in the reverse direction can be determined by decrementing the size of cache area from the suspending position stored in the memory12.

In the data exchange in the reverse direction based on a cancel request, the operation will be executed in the reverse direction to the arrows of the data421and data422to be exchanged inFIG. 3. The data moved to the volume122will be restored to the volume121, while the data moved to the volume121will be restored to the volume122.

Now the operation when the host computer132executes an I/O access (read request or write request) during the data exchange between volumes will be described in greater details, with reference toFIGS. 7 and 8.

FIG. 7is a schematic diagram of the operation performed by the data access controller unit104when the host computer132issues a read access request to the volume121.

The host computer132specifies the target volume121and the read access request location to request a read access to the data access controller unit104(S701). The data access controller unit104instructs the data access unit105to request a read access from the host computer132.

The data access unit105queries the data exchange position of currently performed data exchange to the data exchange location information103(S702), if the read access request position is equal to data exchange position then it reads data out from the cache area111through the cache management unit106to transfer the data to the host computer132(S703). The data of the read access request position is already in the cache area111so that the volume121will not be needed to be accessed and the response time can be shortened.

When the read access request position is larger than the data exchange position (i.e., in a posterior position), the requested data is not yet exchanged, thus the data access unit105instructs the cache management unit106to read data out from the read access request position of the volume121to transfer the data to the host computer132(S704).

When read access request position is less than (i.e., in an anterior to) the data exchange position, the requested data is already exchanged, so that the data access unit105instructs the cache management unit106to read data from the read access request position on the volume122to transfer to the host computer132(S705).

As the access from the host computer132is to the data, if it accesses data on the previous volume after data exchange it will see wrong data. Because of this, the identification numbers of volumes seen from the host computer once the data exchange is complete between volumes is to be swapped between them to enable data access using the same identification number from the host, such that the host computer does not need to take care of data exchange between volumes.

In the operation shown inFIG. 7, the location of appropriate data is determined to be either of volumes, even when data exchange is being performing, so as to return the correct data that corresponds to the access request to the host computer132. The data exchange between volumes can be implemented without preventing access from the host computer132.

FIG. 8is a flow chart when the host computer132issues a read or write access request to the volume121during the data exchange in progress.

In step701, the data access controller unit104decides whether the data position requested by the access from the host computer132is equal to the data exchange position. If it is equal then the process proceeds to step702, otherwise it proceeds to step703.

In step702the data access controller unit104performs the access requested by the host computer132to the data in the cache area111to return the result to the host computer132.

In step703the data position of the access requested by the host computer132is determined whether to be larger than (or in the posterior of) the data exchange position. If the position is larger then the process proceeds to step704, otherwise if not (in the anterior position) then the process proceeds to step705.

In step704, since the requested data is still not exchanged, the data access controller unit104proxies the access requested by the host computer132to the data in the access request position in the volume121and transfers the result thereof to the host computer132.

In step705, since the requested data is already exchanged, the data at the access request position in the volume122is accessed as was requested by the host computer132to transfer the result thereof to the host computer132.

When an access request is issued while the data exchange is suspended, the operation is the same as described above. During suspending the data exchange, the data exchange location information103maintains the data exchange position in the suspended status, the access to the volume121or to the volume122may be granted in response to the determination in steps701and703above, based on the comparison of data exchange position in the data exchange location information103with the data position of requested access.

Second Embodiment

FIG. 9is a second embodiment of this invention, in the form of a flow chart illustrating the switching from the data exchange between volumes to the data movement between volumes and vice versa, upon data exchange request (migration request) between volumes, depending on the volume status of the data copy destination. This operation is executed in the migration controller unit101at the time when the management server131issues a data exchange request.

The management server131issues a migration request to the migration controller unit101, with the volume121specified as the source of migration of volume and the volume122as the destination of migration of volume.

In step801the volume122is determined whether to be in operation or not by seeing the status of the volume122specified as the destination of migration. If the volume122is in use, then the process proceeds to step802. Otherwise if it is not in use, then the process proceeds to step803.

The determination of whether the volume122is in use may be by determining whether or not the volume122is in an accessible status from the host computer132(for example, the presence or absence of the configured access path and the like).

In step802, data exchange between volumes will be performed between the volume121and the volume122according to the method stated above.

In step803, data movement will be performed by simple data copy from the volume121to the volume122.

In the steps801to803above, data on the destination volume is not read out and write down to the source volume, assuming that the contents of the destination volume can be discarded if the destination is not in use, in order to decrease the number of volume accesses so as to save the time consumed by the migration operation.

According to the method stated above, if the data exchange is not necessary when the management server131issues a data exchange request, the system performs data movement. More specifically, the data on the destination volume of the data exchange is not available from the host computer132, then the data on the destination volume of data exchange is determined not to be needed, and the data on the source is simply written to the destination volume of data exchange in order to enable a high-speed operation.

Third Embodiment

FIG. 10shows a third embodiment of this invention, in which the migration controller unit101according to the first embodiment is added with the exchanged location management table950, which indicates the status (progress) of the data exchange. Other components are identical to those in the first embodiment.

The exchanged location management table950is a table configured on the memory12of the storage system100, in which a row contains a location number from 0 to n for each of volumes to be data exchanged, a location number has a variable data column (“done or not yet” in the figure), indicative of whether data exchange is complete (“done” in the figure) or not complete (“not yet” in the figure).

The exchanged location management table950manages the data exchange status (progress) by first segmenting the data area of the target volume subject to data exchange into a number of fragments, and adding a location number to each of fragments. The size of a fragment to which a volume is segmented is preferably the data exchange unit for example, and in the present embodiment the fragment size is set to the size of cache area to be used in the data exchange. More specifically, the volume subject to data exchange is segmented to plural fragments at the size of cache area used, from the head of the volume subject to data exchange, and then the number of segments may be served as the location number.

The data exchange locator unit102segments the data area of the volume subject to data exchange into a number of data exchange units (for example equal to the size of cache area), then numbers each of segmented fragments with a continuous location number, and writes as the location number of the exchanged location management table950in response to the status of data exchange. The data exchange locator unit102upon completion of data exchange in one data exchange location, writes “done” in the status column of the location number corresponding to the current data exchange position. The data exchange locator unit102seeks the next location number with the status of “not yet” in the exchanged location management table950to determine the next data exchange location.

FIG. 10shows an example of data exchange between volumes in which data of locations in a volume is exchanged in an arbitrary order by managing with the exchanged location management table950the area that data exchange has completed and the area that data exchange is not yet completed.

When the management server131issues a data exchange request (migration request) (S901), the migration controller unit101instructs the cache management unit109to allocate a cache area to be served in the data exchange (S902).

The migration controller unit101uses the exchanged location management table950to manage the volumes whether data exchange of the data in a location in a volume has completed or not. The migration controller unit101selects one of not yet data exchanged locations (S903) to determine thus selected location to be the position of data exchange (S904), and stores the location information into the data exchange location information103(S905).

Thereafter, the cache areas111and112, which are allocated for the data exchange, are used to exchange data at the data exchange position (S906to S909).

Finally, for the location having data exchange executed, the corresponding row of the exchanged location management table950is updated to “data exchange done” status.

As can be seen from the foregoing description, data example can be performed from an arbitrary location in a volume by using the exchanged location management table950, allowing flexible data exchange to be achieved such as data exchange with the priority to the area most frequently accessed by the host computer132. When data exchange is performed between volumes of different performance, it can be conceivable that the area of higher access frequency in the lower performance volume may have a higher priority to the data exchange. In such a case the data the most frequently accessed will be moved first to a volume of higher performance, resulting in a higher rate of I/O access from the host computer132to the higher performance volume, allowing earlier improvement of I/O access performance.

When data exchange starts from an arbitrary location on a volume, one possible approach to determine the data exchange position is to give priority to the area to which the host computer132has accessed, as will be described below. This approach uses the data read out to the cache due to the access from the host computer132as is for data exchange, so that the improvement of data exchange processing speed will be expected.

Next, how to give priority to the area to which the host computer132has accessed, will be described in greater details with reference toFIG. 11.

FIG. 11is a schematic diagram describing how to perform data exchange when the host computer132initiates a read access to the volume122during the data exchange between the volume121and the volume122.

When the host computer132requests a read access to the data access controller unit104(S1001), the data access controller unit104in turn instructs the data access unit105to process the read access request.

The data access unit105queries the data exchange location information103on the data exchange position of the data exchange currently in progress (S1002).

If the read access request location is different from the data exchange position, then the exchanged location management table950is used to determine the data exchange at the read access request location has been complete or not (S1003).

The data exchange at the read access request location is not yet executed, then the data access unit105instructs the data copy unit108to transfer the data422at the read access request location on the volume122to the cache area113(S1004), then successively to transfer the data in the cache area113to the host computer132as the result of read access (S1005). The cache area reservation unit107at the time of access request can allocate the cache area113from the host computer132.

The data access controller unit104notifies the migration controller unit101of the access position (S1006).

The data exchange locator unit102determines the position of read access request as the data exchange position (S1007), and stores it in the data exchange location information103(S1008).

The migration controller unit101then instructs the data copy unit108to copy to the cache area111the data421present at the data exchange position on the volume121(S1009).

Next, the migration controller unit101instructs the data copy unit108to copy to the data exchange position422on the volume122the data present in the cache area111(S1010). In a similar manner the data copy unit108copies to the data exchange position421on the volume121the data present in the cache area113(S1012).

Finally, for the location of completed data exchange, the corresponding row in the exchanged location management table950is updated to “data exchange done” status.

Fourth Embodiment

FIG. 12AtoFIG. 16show a fourth embodiment of this invention, in which data exchange operation between three volumes is performed in parallel.

Now the operation of performing two migrations in parallel will be described in greater details herein below, where one is the migration from the volume121to the volume122, the other is the migration from the volume122to a volume123, with reference toFIG. 12A,FIG. 12B,FIG. 13,FIG. 14, andFIG. 15.

FIG. 12Ais a schematic diagram of the operation of two migrations in parallel, where one is the migration from the volume121to the volume122, the other is the migration from the volume122to the volume123.

The management server131issues a data movement request (migration request) to the migration controller unit101, specifying the volume121, the volume122and the volume123(S101).

The migration controller unit101, upon reception of the migration request, instructs the cache management unit106to reserve the available cache area111and cache area112to be served as the working space of data exchange (S1102).

The migration controller unit101uses the data exchange locator unit102(S1103) to determine a data movement request with respect to the data movement from the volume122to the volume123, and then stores it to the data exchange location information103(S1104). The data exchange location information103stores plural data exchange positions in response to the number of data movement, as shown inFIG. 12B. As shown inFIG. 12a, the data movement position from the volume121to the volume122(421and422inFIG. 12A) will be stored in first data movement position1031of the data exchange location information103, while the data movement position (423and424inFIG. 12A) from the volume122to the volume123will be stored in second data movement position1032of the data exchange location information103.

The first data movement positions1031and the second data movement positions1032are set such that they do not coincide, such as for example second data movement position>first data movement position.

The migration controller unit101then instructs the data copy unit108to copy data423present at the data exchange position in the volume122to the cache area112(S1105).

Next the migration controller unit101instructs the data copy unit108to copy data present in the cache area112to the data exchange position424of the volume123(S1106).

By iteratively repeating the foregoing steps S1103to S1106, data stored in the volume122will be copied to the volume123.

At the same time as the above steps S1103to S1106are executed, the following steps S1107to S1110will be executed in parallel.

The migration controller unit101uses the data exchange locator unit102to determine the data movement position with respect to the data movement from the volume121to the volume122(S1107), and stores it to the data exchange location information103(S1108).

In the data exchange location information103, the data movement position information to be stored in step S1104and the data exchange position information to be stored in step S1108are mutually independently stored.

Next, the data422of the data movement position stored in Si108of the volume122is checked to see if it is written to the volume123, and wait for a predetermined period of time if it is not yet written thereto.

This step prevents the data of the volume122from being overwritten prior to being moved to the volume123.

Next, the migration controller unit101instructs the data copy unit108to copy the data421present at the data movement position of the volume121to the cache area111(S1109).

Then, the migration controller unit101instructs the data copy unit108to copy data present in the cache area111to the data movement position422of the volume122(S1110).

By iteratively repeating the steps S1107to S1110above, data stored in the volume121will be copied to the volume122.

When the repetition of steps S1103to S1106and the repetition of steps S1107to1110have been complete, data stored in the volume121will have been moved to the volume122, and data stored in the volume122will have been moved to the volume123.

FIG. 13is a flow chart of the operation of two migrations in parallel by various control units in the storage system100.

In step1201, the migration controller unit101instructs the cache area reservation unit107to reserve a cache area for the temporary workspace for the data movement.

In step1202, as will be described later, the migration controller unit101performs a migration from the volume121to the volume122.

In step1203, as will be described later, the migration controller unit101performs another migration from the volume122to the volume123.

The steps1202and1203are simultaneously initiated, and as have been described with reference toFIG. 12Aabove, these two migrations will have been completed when the steps1202and1203will be both completed.

As can be seen from the foregoing description, much faster data movement is enabled by parallelizing two sessions of data movement shown inFIG. 12Ato move data between three volumes in parallel.

FIG. 14is a flow chart of migration from the volume121to the volume122, according to the step1202above.

In step1301, the data exchange locator unit102determines the position to start the data movement.

In step1302, the data copy unit108decides whether or not the data at the data movement position in the volume122, as determined in step1301above, has already been written in the volume123. Reading the data exchange location information103to compare it with the current data movement position, as have been shown in the preceding first embodiment of this invention, may do this determination. If the data at the data movement position in the volume122has been already written, then the process proceeds to step1303. Otherwise if not, then the process proceeds to step1306.

In step1303, the data copy unit108copies data at the data movement position from the volume121to the cache area111.

In step1304, the data copy unit108copies data from the cache area111to the data movement position422of the volume122.

In step1305, the migration controller unit101decides if all data copy from the volume121has been completed, and if there remains data not copied yet, then the process proceeds back to step1301. On the other hand, if there is not such data, then the migration operation from the volume121to the volume122will be terminated.

In step1306, the migration controller unit101, after waiting for a predetermined period of time, causes the process to go back to step1302

By iteratively repeating the steps1301to1306stated above, the data movement from the volume121to the volume122will be initiated after the data movement from the volume122to the volume123will have been completed.

FIG. 15is a flow chart of the migration from the volume122to the volume123, according to the step1203stated above.

In step1401, the data exchange locator unit102determines the position to start the data movement.

In step1402, the data copy unit108copies data at the data movement position from the volume122to the cache area112.

In step1403, the data copy unit108copies data from the cache area112to the data movement position of the volume123.

In step1404, the migration controller unit101decides whether or not all data copy from the volume122has been completed, and if there still remains data not yet copied, then the process proceeds back to step1401. If otherwise there is not such data the migration operation from the volume122to the volume123will be terminated.

Now the operation of two parallel migration sessions during which the host computer132initiates I/O access to the volume121will be described in greater details below, with reference toFIG. 16andFIG. 17.

FIG. 16outlines the operation in which two migration sessions, i.e., a migration session from the volume121to the volume122and another from the volume122to the volume123, are running in parallel, during which sessions the host computer132initiates a read access request to the volume121.

The host computer132initiates a read access request to the data access controller unit104with the volume121and the read access request position being specified (S1501). The data access controller unit104instructs the data access unit105to handle the read access request.

The data access unit105queries the data exchange location information103about the data movement position of current data movement in progress, for the migration from the volume121to the volume122(S1502). If the read access request location is equal to the data movement position in the data exchange location information103, then the data access unit105instructs the cache management unit106to read data from the cache area111and to transfer data to the host computer132(S1503).

If the read access request position is larger than the data movement position, then the requested data is not yet subject to data movement, and the data access unit105will direct the cache management unit106to read data from the read access request position on the volume121and to transfer data to the host computer132(S1504).

If the read access request position is less than the current data movement position, then the requested data has been already moved. The data access unit105then will direct the cache management unit106to read data at the read access request position in the volume122and to transfer data to the host computer132(S1505).

FIG. 17is a flow chart showing the operation principally executing in the data access unit105when two migration sessions, i.e., one from the volume121to the volume122and another from the volume122to the volume123, is running in parallel, during which the132initiates a read or write access request to the volume121.

In step1601, the data access unit105decides if the data position of requested access from the host computer132is equal to the data movement position of current migration from the volume121to the volume122. If equal then the process proceeds to step1602, and if not then the process proceeds to step1603.

In step1602, the data copy unit108executes the request access from the host computer132to the data in the cache area111and transfers the result to the host computer132.

In step1603, the data access unit105decides whether the data position of the request access from the host computer132is larger than the current data exchange position. If larger then the process proceeds to step1604, otherwise if not then the process proceeds to step1605.

In step1604, the data copy unit108executes the access requested by the host computer132to the data at the access request position on the volume121and returns the result to the host computer132.

In step1605, the data copy unit108executes the access requested by the host computer132to the data at the access request position on the volume122and returns the result to the host computer132.

The operation described above is also applicable to the case where two migration sessions, i.e., a migration session from the volume121to the volume122and another from the volume122to the volume123, are running in parallel, during which sessions the host computer132initiates a read or write access request to the volume122.

More specifically, if the access request position is equal to the data exchange position then access is to the cache area112; if the access request position is larger than the data exchange position then the access is to the volume122; and if the access request position is less than the data exchange position then the access is to the volume123.

In the fourth embodiment of this invention as described above, when data on the volume123is to move to the volume121, three cache areas111,112,113are used to perform a data exchange in a similar manner as the first embodiment above. More specifically, the data movement from the volume121to the volume122, the data movement from the volume122to the volume123, and the data movement from the volume123to the volume121may be initiated in parallel at the same time on the same data exchange locations, allowing the data exchange operation between three volumes to run faster by using caches.

Fifth Embodiment

FIG. 18shows a fifth embodiment of this invention, which is a variation of the first embodiment, with dynamic modification of cache size.

The cache management unit109shown inFIG. 1obtains from the data access controller unit104the number of I/O accesses by the host computer132at the initiation of the data exchange or data movement. If there are a number of I/O accesses, then it will allocate one cache area111dedicated to the temporary storage for data exchange of the volume121. When there are fewer I/O accesses, the cache management unit109, on the other hand, will allocate the caches111and113for the temporary storage for data exchange of the volume121. The cache management unit106will notify the migration controller unit101of the size of the caches allocated for the data exchange session.

Thereby, when there are a number of I/O accesses, minimal requisite caches are used to perform data exchange to prevent the decrease of I/O access performance in the storage system100during data exchange. While on the other hand there are only fewer I/O accesses, more caches are allocated for data exchange to increase the size of exchange data421that is read or write at once, allowing an improvement of processing rate of the data exchange.

AlthoughFIG. 18shows an example which changes the number of caches to be allocated for the data exchange from within plural cache areas111to116which are set dedicated to cache, the size of the cache area111may also be changed.

CONCLUSION

As described above, the migration according to this invention, if data in use is stored in the destination volume, the data will be copied to a disk cache or RAID cache, and then the data in the source and in the destination will be each written to their respective target volume to eliminate the need of temporary storage as well as to achieve a faster data exchange.

Although in the foregoing description of embodiments, data exchange and data movement between plural volumes use cache areas configured on the memory of the storage system100, the migration as described above may be achieved by using the RAID cache within a server computer. More specifically, in a server computer having a RAID controller and RAID cache, the RAID controller may serve as the disk controller unit1100while the RAID cache may serve as the cache areas111to116.

Although in the first embodiment the cache area and the control program executed by the CPU11are stored in one single memory12, the cache may be configured in a physically different memory. In such a case the memory containing the cache area may be connected to the data transfer controller unit13.

The method according to this invention is applicable to the data migration of a storage system having a disk cache or RAID cache.