System and method for resource sharing across multi-cloud arrays
Abstract
A system for resource sharing across multi-cloud storage arrays includes a plurality of storage arrays and a cloud array storage (CAS) application. The plurality of storage resources are distributed in one or more cloud storage arrays, and each storage resource comprises a unique object identifier that identifies location and structure of the corresponding storage resource at a given point-in-time. The cloud array storage (CAS) application manages the resource sharing process by first taking an instantaneous copy of initial data stored in a first location of a first storage resource at a given point-in-time and then distributing copies of the instantaneous copy to other storage resources in the one or more cloud storage arrays. The instantaneous copy comprises a first unique object identifier pointing to the first storage location of the initial data in the first storage resource and when the instantaneous copy is distributed to a second storage resource, the first unique object identifier is copied into a second storage location within the second storage resource and the second storage location of the second storage resource is assigned a second unique object identifier.
Claims
exact text as granted — not AI-modified1 . A system for resource sharing across multi-cloud storage arrays comprising:
a plurality of storage resources distributed in one or more cloud storage arrays, wherein each storage resource comprises a unique object identifier that identifies location and structure of the corresponding storage resource at a given point-in-time; a cloud array storage (CAS) application managing the resource sharing process, wherein said CAS application manages the resource sharing process by first taking an instantaneous copy of initial data stored in a first location of a first storage resource at a given point-in-time and then distributing copies of the instantaneous copy to other storage resources in the one or more cloud storage arrays; and wherein said instantaneous copy comprises a first unique object identifier pointing to the first storage location of the initial data in the first storage resource and when said instantaneous copy is distributed to a second storage resource, the first unique object identifier is copied into a second storage location within the second storage resource and wherein said second storage location of the second storage resource comprises a second unique object identifier.
2 . The system of claim 1 , wherein when a user tries to “write” new data into the first storage location of the first storage resource, the new data are written into a second storage location of the first storage resource and then the second storage location of the first storage resource is assigned to the first unique object identifier.
3 . The system of claim 2 wherein the second storage location of the first storage resource is backfilled with unchanged data from the first storage location of the first storage resource.
4 . The system of claim 3 wherein subsequently data in the first storage location of the first storage resource are removed.
5 . The system of claim 1 wherein said first unique object identifier is encrypted prior to the instantaneous copy being distributed.
6 . The system of claim 1 wherein said data in said first location of said first storage resource are compressed and encrypted after said instantaneous copy is taken and prior to said instantaneous copy being distributed.
7 . The system of claim 1 , wherein each unique object identifier comprises one or more metadata identifying specific storage location within a specific storage resource, specific storage resource location, structure of the specific resource, type of the contained data, access control data, security data, encryption data, object descriptor, cloud storage provider, cloud storage access node, cloud storage user, cloud storage secret/token, indicator whether data are encrypted or not, indicator whether data are compressed or not, structural encryption key, data encryption key, epoch/generation number, cloud array volume identifier, user-provided description, sender identifier, recipient identifier, algorithm identifier, signature or timestamp.
8 . The system of claim 1 further comprising a local computing system comprising at least one computing host device, said CAS application, at least one local storage resource and at least one local cache, and wherein the local computing system connects to the one or more cloud storage arrays via the Internet.
9 . The system of claim 1 wherein said storage resources comprise one of storage volumes or snapshots.
10 . A method for resource sharing across multi-cloud storage arrays comprising:
providing a plurality of storage resources distributed in one or more cloud storage arrays, wherein each storage resource comprises a unique object identifier that identifies location and structure of the corresponding storage resource at a given point-in-time; providing a cloud array storage (CAS) application managing the resource sharing process, wherein said CAS application manages the resource sharing process by first taking an instantaneous copy of initial data stored in a first location of a first storage resource at a given point-in-time and then distributing copies of the instantaneous copy to other storage resources in the one or more cloud storage arrays; and wherein said instantaneous copy comprises a first unique object identifier pointing to the first storage location of the initial data in the first storage resource and when said instantaneous copy is distributed to a second storage resource, the first unique object identifier is copied into a second storage location within the second storage resource and wherein said second storage location of the second storage resource comprises a second unique object identifier.
11 . The method of claim 10 , wherein when a user tries to “write” new data into the first storage location of the first storage resource, the new data are written into a second storage location of the first storage resource and then the second storage location of the first storage resource is assigned to the first unique object identifier.
12 . The method of claim 11 wherein the second storage location of the first storage resource is backfilled with unchanged data from the first storage location of the first storage resource.
13 . The method of claim 12 wherein subsequently data in the first storage location of the first storage resource are removed.
14 . The method of claim 10 wherein said first unique object identifier is encrypted prior to the instantaneous copy being distributed.
15 . The method of claim 10 wherein said data in said first location of said first storage resource are compressed and encrypted after said instantaneous copy is taken and prior to said instantaneous copy being distributed.
16 . The method of claim 10 , wherein each unique object identifier comprises one or more metadata identifying specific storage location within a specific storage resource, specific storage resource location, structure of the specific resource, type of the contained data, access control data, security data, encryption data, object descriptor, cloud storage provider, cloud storage access node, cloud storage user, cloud storage secret/token, indicator whether data are encrypted or not, indicator whether data are compressed or not, structural encryption key, data encryption key, epoch/generation number, cloud array volume identifier, user-provided description, sender identifier, recipient identifier, algorithm identifier, signature or timestamp.
17 . The method of claim 10 further comprising providing a local computing system comprising at least one computing host device, said CAS application, at least one local storage resource and at least one local cache, and wherein the local computing system connects to the one or more cloud storage arrays via the Internet.
18 . The method of claim 10 wherein said storage resources comprise one of storage volumes or snapshots.
19 . The method of claim 10 further comprising:
receiving a write command from a computing host device for writing new data into a first storage resource, wherein said first storage resource comprises a first unique object identifier and wherein said first unique object identifier comprises metadata identifying a first storage location within the first storage resource, structure of the first storage resource, type of contained data, access control data and security data;
identifying structure of the first storage resource based on said structure metadata;
verifying authorization of said computing host device to write said new data into said first storage resource based on said access control metadata;
verifying authorization of said computing host device to write said new data into said first storage location of said first storage resource based on said access control metadata;
determining if a precise block for writing the new data already exists in a local cache of the first storage resource;
storing the new data in the precise block of the local cache, if a precise block already exists;
allocating a new block and storing the new data in the new block of the local cache, if a precise block does not already exists; and
acknowledging processing of the write command to said computing host device.
20 . The method of claim 19 further comprising:
analyzing the local cache block where the new data were written to determine if the local cache block has been written before or not;
if the local cache block has been written before, backfilling the local cache block with unchanged data from the first storage location and then flushing the local cache block data to a second storage location in the first storage resource;
if the local cache block has not been written before, flushing the local cache block data to the second storage location in the first storage resource.
21 . The method of claim 20 further comprising:
requesting authorization to perform cache flush of the data in the local cache block to one or more cloud storage arrays;
upon receiving authorization to perform cache flush, creating a copy of the local cache block data and compressing the data in the local cache block;
encrypting the data in the local cache block;
assigning a unique object identifier and a logical time stamp to the local cache block;
encrypting the unique object identifier of the local cache block; and
transmitting the encrypted cache block to one or more cloud storage arrays.Join the waitlist — get patent alerts
Track US2011258461A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.