Copying a cloud-based storage system
Cloning storage systems in a cloud computing environment, including: receiving a request to create a cloud-based storage system; retrieving, from cloud-based object storage, one or more objects to include in the cloud-based storage system; and creating the cloud-based storage system, including storing, in block storage of the cloud-based storage system, data contained in the one or more objects retrieved from the cloud-based object storage.
1. A method comprising:
receiving a request to create a cloud-based storage system, wherein the request comprises an identification of a storage system to be cloned;
creating a cloud-based storage system based on the request, the cloud-based storage system comprising at least one cloud computing resource implementing a storage controller application and one or more cloud-based storage devices;
retrieving, from a cloud-based storage, data elements to include in the cloud-based storage system using information that associates each data element written to the cloud-based storage to the identified storage system to be cloned, and wherein the data elements were previously written to the cloud-based storage as part of servicing modifying operations directed to the identified storage system to be cloned; and
storing, in the one or more cloud-based storage devices, data contained in the data elements retrieved from the cloud-based storage.
2. The method of claim 1 wherein:
the cloud-based storage comprises cloud-based object storage and wherein retrieving data elements to include in the cloud-based storage system further comprises retrieving, from cloud-based object storage, one or more objects that contain valid data for the storage system.
3. The method of claim 1 wherein:
the request to create the cloud-based storage system includes information describing a previous point-in-time; and
retrieving data elements to include in the cloud-based storage system further comprises retrieving, from the cloud-based storage, data elements that contain data that was valid for the storage system that is to be cloned at the previous point-in-time.
4. The method of claim 1 wherein:
invalid data elements associated with the storage system that is to be cloned are retained in dependence upon a predetermined retention policy.
5. The method of claim 1 wherein creating the cloud-based storage system includes replicating configuration related information associated with the storage system that is to be cloned to the cloud-based storage system.
6. The method of claim 1 wherein retrieving, from the cloud-based storage, data elements to include in the cloud-based storage system includes verifying that each write to the data elements has been acknowledged.
7. The method of claim 1 further comprising:
determining that at least some portion of a dataset stored by the storage system that is to be cloned has not been committed to the cloud-based storage; and
delaying retrieval, from the cloud-based storage, of at least one data element to include in the cloud-based storage system.
8. An apparatus comprising a computer processor, a computer memory operatively coupled to the computer processor, the computer memory having disposed within it computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of:
receiving a request to create a cloud-based storage system, wherein the request comprises an identification of a storage system to be cloned;
creating a cloud-based storage system based on the request, the cloud-based storage system comprising at least one cloud computing resource implementing a storage controller application and one or more cloud-based storage devices;
retrieving, from a cloud-based storage, data elements to include in the cloud-based storage system using information that associates each data element written to the cloud-based storage to the identified storage system to be cloned, and wherein the data elements were previously written to the cloud-based storage as part of servicing modifying operations directed to the identified storage system to be cloned; and
storing, in the one or more cloud-based storage devices, data contained in the data elements retrieved from the cloud-based storage.
9. The apparatus of claim 8 wherein:
the cloud-based storage comprises cloud-based object storage and wherein retrieving data elements to include in the cloud-based storage system further comprises retrieving, from cloud-based object storage, one or more objects that contain valid data for the storage system that is to be cloned.
10. The apparatus of claim 8 wherein:
the request to create the cloud-based storage system includes information describing a previous point-in-time; and
retrieving data elements to include in the cloud-based storage system further comprises retrieving, from the cloud-based storage, data elements that contain data that was valid for the storage system that is to be cloned at the previous point-in-time.
11. The apparatus of claim 8 wherein:
invalid data elements associated with the storage system that is to be cloned are retained in dependence upon a predetermined retention policy.
12. The apparatus of claim 8 wherein creating the cloud-based storage system includes replicating configuration related information associated with the storage system that is to be cloned to the cloud-based storage system.
13. The apparatus of claim 8 wherein retrieving, from the cloud-based storage, data elements to include in the cloud-based storage system includes verifying that each write to the data elements has been acknowledged.
14. The apparatus of claim 8 further comprising computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of:
determining that at least some portion of a dataset stored by the storage system that is to be cloned has not been committed to the first cloud-based storage; and
delaying retrieval, from the cloud-based storage, of at least one data element to include in the cloud-based storage system.
15. A computer program product disposed upon a non-transitory computer readable storage medium, the computer program product comprising computer program instructions that, when executed, cause a computer to carry out the steps of:
receiving a request to create a cloud-based storage system, wherein the request comprises an identification of a storage system to be cloned;
creating a cloud-based storage system based on the request, the cloud-based storage system comprising at least one cloud computing resource implementing a storage controller application and one or more cloud-based storage devices;
retrieving, from a cloud-based storage, data elements to include in the cloud-based storage system using information that associates each data element written to the cloud-based storage to the identified storage system to be cloned, and wherein the data elements were previously written to the cloud-based storage as part of servicing modifying operations directed to the identified storage system to be cloned; and
storing, in the one or more cloud-based storage devices, data contained in the data elements retrieved from the cloud-based storage.
16. The computer program product of claim 15 wherein:
the cloud-based storage comprises cloud-based object storage and wherein retrieving data elements to include in the cloud-based storage system further comprises retrieving, from cloud-based object storage, one or more objects that contain valid data for the storage system that is to be cloned.
17. The computer program product of claim 15 wherein:
the request to create the cloud-based storage system includes information describing a previous point-in-time; and
retrieving data elements to include in the cloud-based storage system further comprises retrieving, from the cloud-based storage, data elements that contain data that was valid for the storage system that is to be cloned at the previous point-in-time.
18. The computer program product of claim 15 wherein:
invalid data elements associated with the storage system that is to be cloned are retained in dependence upon a predetermined retention policy.
19. The computer program product of claim 15 wherein creating the cloud-based storage system includes replicating configuration related information associated with the storage system that is to be cloned to the cloud-based storage system.
20. The computer program product of claim 15 wherein retrieving, from the cloud-based storage, data elements to include in the cloud-based storage system includes verifying that each write to the data elements has been acknowledged.