IP Library › Granted Patent US 7,702,953
Granted Patent B2
US 7,702,953 · App. 11/620,012 · Granted Apr 20, 2010

Storage management in cascaded replication of data

Assignee: International Business Machines Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,702,953
App. No.
11/620,012
Granted
Apr 20, 2010
Kind
B2
Abstract

Provided are a method, system, and article of manufacture, wherein synchronous replication of data is initiated from a first site to a second site. At least one part of the data is sent asynchronously from the second site to a third site, wherein the asynchronously sent at least one part of the data is stored at the second site while the at least one part of data is in flight from the second site to the third site. The at least one part of the data stored at the second site is deleted, in response to the at least one part of the data being securely stored at the third site.

Claims (89)

1. A method, comprising:

initiating synchronous replication of data, from a first site, to a second site;

asynchronously sending at least one part of the data from the second site to a third site, wherein the asynchronously sent at least one part of the data is stored at the second site while the at least one part of data is in flight from the second site to the third site; and

deleting the at least one part of the data stored at the second site, in response to the at least one part of the data being securely stored at the third site, and wherein in response to excess data accumulating at the first site in response to a suspension of the synchronous replication of data from the first site to the second site, resynchronizing the first site to the third site.

2. The method of claim 1 , wherein the at least one part of the data is stored in a space efficient storage volume at the second site, wherein space efficient storage volumes are created as empty storage volumes, wherein a predefined amount of physical storage space is incrementally allocated for the space efficient storage volumes from a storage repository in response to writing to the space efficient storage volumes, and wherein the allocated physical storage space is returned to the storage repository in response to the physical storage space being no longer needed.

3. The method of claim 2 , wherein the data is write Input/Output (I/O) data received from a host coupled to the first site, the method further comprising:

discarding data in cache and non-volatile storage at the second site, in response to determining that the write I/O data has been transferred successfully from the second site to the third site before the write I/O data has been destaged to the storage repository at the second site; and

releasing the physical storage space associated with the space efficient storage volumes at the second site, in response to determining that the write I/O data has not been transferred successfully from the second site to the third site before the write I/O data has been destaged to the storage repository at the second site.

4. The method of claim 1 , wherein the first site, the second site, and the third site comprise storage controllers, and wherein the synchronous replication of data from the first site to the second site is performed in parallel with the asynchronous sending of the at least one part of the data from the second site to the third site, the method further comprising:

allocating a predetermined amount of storage to a storage repository at the second site, and in response to an exhaustion of storage space at the second site suspending the synchronous replication of data from the first site to the second site.

5. The method of claim 1 , the method further comprising:

in response to a failure of the first site, transferring remaining data at the second site to the third site, wherein the remaining data is data that has yet to be transferred from the second site to the third site at the time of the failure of the first site, and using the third site for data recovery; and

in response to a failure of the second site, or the failure of a link between the first site and the second site, or a failure of a link between the second and third site, connecting the first site to the third site and resynchronizing between the first site and the third site the data in flight between the second site and third site.

6. A system, comprising:

a first site;

a second site coupled to the first site;

a third site coupled to the second site;

at least one processor; and

memory coupled to the at least one processor, wherein the at least one processor performs operations, the operations comprising:

(i) initiating synchronous replication of data, from the first site, to the second site;

(ii) asynchronously sending at least one part of the data from the second site to the third site, wherein the asynchronously sent at least one part of the data is stored at the second site while the at least one part of data is in flight from the second site to the third site; and

(iii) deleting the at least one part of the data stored at the second site, in response to the at least one part of the data being securely stored at the third site, and wherein in response to excess data accumulating at the first site in response to a suspension of the synchronous replication of data from the first site to the second site, resynchronizing the first site to the third site.

7. The system of claim 6 , wherein the at least one part of the data is stored in a space efficient storage volume at the second site, wherein space efficient storage volumes are created as empty storage volumes, wherein a predefined amount of physical storage space is incrementally allocated for the space efficient storage volumes from a storage repository in response to writing to the space efficient storage volumes, and wherein the allocated physical storage space is returned to the storage repository in response to the physical storage space being no longer needed.

8. The system of claim 7 , wherein the data is write Input/Output (I/O) data received from a host coupled to the first site, the system further comprising:

cache included in the second site; and

non-volatile storage included in the second site, wherein the operations further comprise:

(i) discarding data in the cache and the non-volatile storage at the second site, in response to determining that the write I/O data has been transferred successfully from the second site to the third site before the write I/O data has been destaged to the storage repository at the second site; and

(ii) releasing the physical storage space associated with the space efficient storage volumes at the second site, in response to determining that the write I/O data has not been transferred successfully from the second site to the third site before the write I/O data has been destaged to the storage repository at the second site.

9. The system of claim 6 , wherein the first site, the second site, and the third site comprise storage controllers, and wherein the synchronous replication of data from the first site to the second site is performed in parallel with the asynchronous sending of the at least one part of the data from the second site to the third site, the operations further comprising:

allocating a predetermined amount of storage to a storage repository at the second site, and in response to an exhaustion of storage space at the second site suspending the synchronous replication of data from the first site to the second site.

10. The system of claim 6 , the operations further comprising:

in response to a failure of the first site, transferring remaining data at the second site to the third site, wherein the remaining data is data that has yet to be transferred from the second site to the third site at the time of the failure of the first site, and using the third site for data recovery; and

in response to a failure of the second site, or the failure of a link between the first site and the second site, or a failure of a link between the second and third site, connecting the first site to the third site and resynchronizing between the first site and the third site the data in flight between the second site and third site.

11. A method, comprising:

deploying computing infrastructure, comprising integrating computer-readable code into a first site, a second site, and a third site;

initiating, via execution of the code by a processor, synchronous replication of data, from the first site, to the second site;

asynchronously sending, via execution of the code, at least one part of the data from the second site to the third site, wherein the asynchronously sent at least one part of the data is stored at the second site while the at least one part of data is in flight from the second site to the third site; and

deleting, via execution of the code, the at least one part of the data stored at the second site, in response to the at least one part of the data being securely stored at the third site, and wherein in response to excess data accumulating at the first site in response to a suspension of the synchronous replication of data from the first site to the second site, resynchronizing the first site to the third site.

12. The method of claim 11 , wherein the at least one part of the data is stored in a space efficient storage volume at the second site, wherein space efficient storage volumes are created as empty storage volumes, wherein a predefined amount of physical storage space is incrementally allocated for the space efficient storage volumes from a storage repository in response to writing to the space efficient storage volumes, and wherein the allocated physical storage space is returned to the storage repository in response to the physical storage space being no longer needed.

13. The method of claim 12 , wherein the data is write Input/Output (I/O) data received from a host coupled to the first site, wherein the code in combination with the first site, the second site, and the third site is further capable of performing:

discarding data in cache and non-volatile storage at the second site, in response to determining that the write I/O data has been transferred successfully from the second site to the third site before the write I/O data has been destaged to the storage repository at the second site; and

releasing the physical storage space associated with the space efficient storage volumes at the second site, in response to determining that the write I/O data has not been transferred successfully from the second site to the third site before the write I/O data has been destaged to the storage repository at the second site.

14. The method of claim 11 , wherein the first site, the second site, and the third site comprise storage controllers, and wherein the synchronous replication of data from the first site to the second site is performed in parallel with the asynchronous sending of the at least one part of the data from the second site to the third site, wherein the code in combination with the first site, the second site, and the third site is further capable of performing:

allocating a predetermined amount of storage to a storage repository at the second site, and in response to an exhaustion of storage space at the second site suspending the synchronous replication of data from the first site to the second site.

15. The method of claim 11 , wherein the code in combination with the first site, the second site, and the third site is further capable of performing:

in response to a failure of the first site, transferring remaining data at the second site to the third site, wherein the remaining data is data that has yet to be transferred from the second site to the third site at the time of the failure of the first site, and using the third site for data recovery; and

in response to a failure of the second site, or the failure of a link between the first site and the second site, or a failure of a link between the second and third site, connecting the first site to the third site and resynchronizing between the first site and the third site the data in flight between the second site and third site.

16. A system, comprising:

a first site;

a second site coupled to the first site;

a third site coupled to the second site;

means for initiating synchronous replication of data, from the first site, to the second site;

means for asynchronously sending at least one part of the data from the second site to the third site, wherein the asynchronously sent at least one part of the data is stored at the second site while the at least one part of data is in flight from the second site to the third site; and

means for deleting the at least one part of the data stored at the second site, in response to the at least one part of the data being securely stored at the third site; and

means for resynchronizing the first site to the third site, in response to excess data accumulating at the first site in response to a suspension of the synchronous replication of data from the first site to the second site.

17. The system of claim 16 , wherein the at least one part of the data is stored in a space efficient storage volume at the second site, wherein space efficient storage volumes are created as empty storage volumes, wherein a predefined amount of physical storage space is incrementally allocated for the space efficient storage volumes from a storage repository in response to writing to the space efficient storage volumes, and wherein the allocated physical storage space is returned to the storage repository in response to the physical storage space being no longer needed.

18. The system of claim 17 , wherein the data is write Input/Output (I/O) data received from a host coupled to the first site, the system further comprising:

means for discarding data in cache and non-volatile storage at the second site, in response to determining that the write I/O data has been transferred successfully from the second site to the third site before the write I/O data has been destaged to the storage repository at the second site; and

means for releasing the physical storage space associated with the space efficient storage volumes at the second site, in response to determining that the write I/O data has not been transferred successfully from the second site to the third site before the write I/O data has been destaged to the storage repository at the second site.

19. The system of claim 16 , wherein the first site, the second site, and the third site comprise storage controllers, and wherein the synchronous replication of data from the first site to the second site is performed in parallel with the asynchronous sending of the at least one part of the data from the second site to the third site, the system further comprising:

means for allocating a predetermined amount of storage to a storage repository at the second site, and in response to an exhaustion of storage space at the second site suspending the synchronous replication of data from the first site to the second site.

20. The system of claim 16 , further comprising:

means for in response to a failure of the first site, transferring remaining data at the second site to the third site, wherein the remaining data is data that has yet to be transferred from the second site to the third site at the time of the failure of the first site, and using the third site for data recovery; and

means for connecting the first site to the third site and resynchronizing between the first site and the third site the data in flight between the second site and third site, in response to a failure of the second site, or the failure of a link between the first site and the second site, or a failure of a link between the second and third site.

21. A computer readable storage medium, wherein the computer readable storage medium includes machine readable instructions stored thereon, wherein the machine readable instructions cause operations on one or more storage sites comprising a first site, a second site, and a third site, the operations comprising:

initiating synchronous replication of data, from the first site, to the second site;

asynchronously sending at least one part of the data from the second site to the third site, wherein the asynchronously sent at least one part of the data is stored at the second site while the at least one part of data is in flight from the second site to the third site; and

deleting the at least one part of the data stored at the second site, in response to the at least one part of the data being securely stored at the third site, and wherein in response to excess data accumulating at the first site in response to a suspension of the synchronous replication of data from the first site to the second site, resynchronizing the first site to the third site.

22. The computer readable storage medium of claim 21 , wherein the at least one part of the data is stored in a space efficient storage volume at the second site, wherein space efficient storage volumes are created as empty storage volumes, wherein a predefined amount of physical storage space is incrementally allocated for the space efficient storage volumes from a storage repository in response to writing to the space efficient storage volumes, and wherein the allocated physical storage space is returned to the storage repository in response to the physical storage space being no longer needed.

23. The computer readable storage medium of claim 22 , wherein the data is write Input/Output (I/O) data received from a host coupled to the first site, the operations further comprising:

discarding data in cache and non-volatile storage at the second site, in response to determining that the write I/O data has been transferred successfully from the second site to the third site before the write I/O data has been destaged to the storage repository at the second site; and

releasing the physical storage space associated with the space efficient storage volumes at the second site, in response to determining that the write I/O data has not been transferred successfully from the second site to the third site before the write I/O data has been destaged to the storage repository at the second site.

24. The computer readable storage medium of claim 21 , wherein the first site, the second site, and the third site comprise storage controllers, and wherein the synchronous replication of data from the first site to the second site is performed in parallel with the asynchronous sending of the at least one part of the data from the second site to the third site, the operations further comprising:

allocating a predetermined amount of storage to a storage repository at the second site, and in response to an exhaustion of storage space at the second site suspending the synchronous replication of data from the first site to the second site.

25. The computer readable storage medium of claim 21 , the operations further comprising:

in response to a failure of the first site, transferring remaining data at the second site to the third site, wherein the remaining data is data that has yet to be transferred from the second site to the third site at the time of the failure of the first site, and using the third site for data recovery; and

in response to a failure of the second site, or the failure of a link between the first site and the second site, or a failure of a link between the second and third site, connecting the first site to the third site and resynchronizing between the first site and the third site the data in flight between the second site and third site.

26. A computer readable storage medium, wherein the computer readable storage medium includes machine readable instructions stored thereon, wherein the machine readable instructions cause operations on one or more storage sites comprising a first site, a second site, and a third site, the operations comprising:

initiating synchronous replication of data, from the first site, to the second site;

asynchronously sending at least one part of the data from the second site to the third site, wherein the asynchronously sent at least one part of the data is stored at the second site while the at least one part of data is in flight from the second site to the third site; and

deleting the at least one part of the data stored at the second site, in response to the at least one part of the data being securely stored at the third site, wherein the at least one part of the data is stored in a space efficient storage volume at the second site, wherein space efficient storage volumes are created as empty storage volumes, wherein a predefined amount of physical storage space is incrementally allocated for the space efficient storage volumes from a storage repository in response to writing to the space efficient storage volumes, wherein the allocated physical storage space is returned to the storage repository in response to the physical storage space being no longer needed, and wherein the data is write Input/Output (I/O) data received from a host coupled to the first site, the operations further comprising:

discarding data in cache and non-volatile storage at the second site, in response to determining that the write I/O data has been transferred successfully from the second site to the third site before the write I/O data has been destaged to the storage repository at the second site; and

releasing the physical storage space associated with the space efficient storage volumes at the second site, in response to determining that the write I/O data has not been transferred successfully from the second site to the third site before the write I/O data has been destaged to the storage repository at the second site.

27. The computer readable storage medium of claim 26 , wherein the first site, the second site, and the third site comprise storage controllers, and wherein the synchronous replication of data from the first site to the second site is performed in parallel with the asynchronous sending of the at least one part of the data from the second site to the third site, the operations further comprising:

allocating a predetermined amount of storage to a storage repository at the second site, and in response to an exhaustion of storage space at the second site suspending the synchronous replication of data from the first site to the second site; and

in response to excess data accumulating at the first site in response to a suspension of the synchronous replication of data from the first site to the second site, resynchronizing the first site to the third site.

28. The computer readable storage medium of claim 26 , the operations further comprising:

in response to a failure of the first site, transferring remaining data at the second site to the third site, wherein the remaining data is data that has yet to be transferred from the second site to the third site at the time of the failure of the first site, and using the third site for data recovery; and

in response to a failure of the second site, or the failure of a link between the first site and the second site, or a failure of a link between the second and third site, connecting the first site to the third site and resynchronizing between the first site and the third site the data in flight between the second site and third site.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 15, 2007
From: SPEAR, GAIL ANDREA; FACTOR, MICHAEL E.; FIENBLIT, SHACHAR
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 018894/0904 →
Continuity (1)
Related Publication 20080168303A1 · Jul 10, 2008