Method and system for managing data migration for a storage system
First Claim
1. An intermediate device for a storage network, comprising:
- a plurality of communication interfaces, the plurality of communication interfaces including at least a first interface adapted for communication with a first storage device which stores a data set, a second interface adapted for communication with a second storage device, and a third interface adapted for communication with a client processor;
data transfer for resources coupled to the plurality of interfaces which transfer data access requests identifying the data set from the third interface to the first interface;
a logic engine, coupled to the first and second interfaces, which in response to a control signal, manages transfer of the data set through the first interface from the first storage device and through the second interface to the second storage device;
logic to assign a priority to the transfer in relation to data access requests from the client processor, and to manage the transfer in response to the priority; and
, data structures which store status information concerning progress of the transfer, including a parameter indicating an extent of the data set which already copied to the second storage device.
14 Assignments
0 Petitions
Accused Products
Abstract
A storage network that facilitates the transfer of a data set from a first storage device to a second storage device, without blocking access to the data set during the transfer is provided. An intermediate device for the storage network is provided. The intermediate device comprises a plurality of communication interfaces. Data transfer resources are coupled to the plurality of interfaces, and are used for transferring data access requests identifying the data set from a third interface at least one of a first and second interfaces. A logic engine within the intermediate device is coupled to the interfaces, and is responsive to a control signal to manage the transfer of the data set through the interfaces.
-
Citations
24 Claims
-
1. An intermediate device for a storage network, comprising:
-
a plurality of communication interfaces, the plurality of communication interfaces including at least a first interface adapted for communication with a first storage device which stores a data set, a second interface adapted for communication with a second storage device, and a third interface adapted for communication with a client processor;
data transfer for resources coupled to the plurality of interfaces which transfer data access requests identifying the data set from the third interface to the first interface;
a logic engine, coupled to the first and second interfaces, which in response to a control signal, manages transfer of the data set through the first interface from the first storage device and through the second interface to the second storage device;
logic to assign a priority to the transfer in relation to data access requests from the client processor, and to manage the transfer in response to the priority; and
,data structures which store status information concerning progress of the transfer, including a parameter indicating an extent of the data set which already copied to the second storage device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
a plurality of driver modules, and configurable logic linking driver modules in the plurality of driver modules into data paths, the data paths including respective sets of driver modules.
-
-
3. The intermediate device of claim 2, wherein the configurable logic includes memory storing lists of the respective sets of driver modules, and a user interface accepting data for the lists.
-
4. The intermediate device of claim 2, wherein the plurality of driver modules includes one or more hardware driver modules to manage respective communication interfaces, and one or more internal driver modules to perform data path tasks independently of the plurality of communication interfaces.
-
5. The intermediate device of claim 2, including logic to update the configurable logic after the transfer completes.
-
6. The intermediate device of claim 1, wherein the logic engine comprises data structures which store status information concerning the transfer.
-
7. The intermediate device of claim 1, wherein the data transfer resources include logic operable during the transfer of the data set which directs data access requests to the first and second storage devices in response to a type of data access request and a status of the transfer.
-
8. The intermediate device of claim 1, including logic to notify the client processor after the transfer completes.
-
9. The intermediate device of claim 1, wherein the data set has a logical address, and the data transfer resources are responsive to the logical address to direct data access requests to the data set.
-
10. The intermediate device of claim 1, wherein the data access request comprises a request to write data in the data set, and the data transfer resources include logic operable during the transfer of the data set which directs the data access request both the first and second storage devices if the request identifies data already copied to the second device.
-
11. The intermediate device of claim 1, wherein the data access request comprises a request to read data in the data set, and the data transfer resources include logic operable during the transfer of the data set which directs the data access request to the second storage device if the request identifies data already copied to the second device.
-
12. The intermediate device of claim 1, wherein the data access request comprises a request to read data in the data set, and the data transfer resources include logic operable during the transfer of the data set which directs the data access request to the first storage device.
-
13. The intermediate device of claim 1, wherein the data transfer resources comprise redundant data paths.
-
14. The intermediate device of claim 1, including a user interface by which the control signal is supplied.
-
15. A method for copying a data set in use by a client, and stored in a first device to a second device, comprising:
-
placing an intermediate device in a path between the client and the first and second storage devices;
transferring copies of blocks of data in the data set from the first device to the second device through the intermediate device until a copy of the data set is stored in the second device;
transferring data access requests having one of a plurality of types, during the transferring from the client through the intermediate device to at least one of the first and second devices in response to progress of the transfer and the type of data access request;
assigning a priority to the transferring of data access requests relative to the transferring copies of blocks; and
,maintaining a data structure in the intermediate device storing a parameter indicating an extent of the data set already transferred to the second device. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24)
(i) setting a parameter indicating a size and location of the data set;
(ii) generating a request to copy a block from the data set to a buffer in the intermediate device;
(iii) generating a request to transfer the block from the buffer to the second device;
(iv) setting a parameter indicating blocks from the data set stored in the second device; and
(v) repeating the steps (ii) through (iv), until a copy of the data set is stored in the second device.
-
-
21. The method of claim 20, including assigning a priority to the transferring of data access requests from the client relative to the requests to copy blocks and the requests to transfer the blocks.
-
22. The method of claim 15, including fulfilling the data access requests through the intermediate device.
-
23. The method of claim 15, including fulfilling the data access requests through the intermediate device, and assigning a priority to the fulfilling higher than the transferring.
-
24. The method of claim 15, wherein the transferring of copies of blocks comprises a background process without blocking data access requests from the client.
Specification