ADAPTIVE DATA STRIPING AND REPLICATION ACROSS MULTIPLE STORAGE CLOUDS FOR HIGH AVAILABILITY AND PERFORMANCE
First Claim
1. A cloud resource allocation server for adaptively striping data across a plurality of storage clouds, the cloud resource allocation server comprising:
- a communication module to receive (i) user constraints corresponding one or more cloud storage providers and (ii) a file to be striped across the one or more cloud storage providers; and
a block allocation module to (i) split the received file into a plurality of file blocks and (ii) allocate each of the plurality of file blocks to a cloud storage provider of the one or more cloud storage providers as a function of the user constraints and operating conditions of each of the one or more cloud storage providers, each of the plurality of file blocks being allocated to a different cloud storage provider,wherein the communication module further to send each of the plurality of file blocks to the cloud storage provider to which each file block is allocated.
1 Assignment
0 Petitions
Accused Products
Abstract
Technologies for adaptively striping data across multiple storage clouds include receiving user constraints corresponding one or more cloud storage providers, receiving a file to be striped across the cloud storage providers, splitting the received file into file blocks, allocating each of the file blocks to a different one of the cloud storage providers as a function of the user constraints and operating conditions of each of the cloud storage providers, and sending each of the file blocks to the cloud storage provider to which each file block is allocated. In some embodiments, file blocks may be re-allocated from one cloud storage provider to another cloud storage provider as a function of changing user constraints or operating conditions. In addition, each of the file blocks may be retrieved from the cloud storage providers to re-assemble the file.
239 Citations
28 Claims
-
1. A cloud resource allocation server for adaptively striping data across a plurality of storage clouds, the cloud resource allocation server comprising:
-
a communication module to receive (i) user constraints corresponding one or more cloud storage providers and (ii) a file to be striped across the one or more cloud storage providers; and a block allocation module to (i) split the received file into a plurality of file blocks and (ii) allocate each of the plurality of file blocks to a cloud storage provider of the one or more cloud storage providers as a function of the user constraints and operating conditions of each of the one or more cloud storage providers, each of the plurality of file blocks being allocated to a different cloud storage provider, wherein the communication module further to send each of the plurality of file blocks to the cloud storage provider to which each file block is allocated. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for adaptively striping data across a plurality of storage clouds, the method comprising:
-
receiving, on a cloud resource allocation server, user constraints corresponding one or more cloud storage providers; receiving, on the cloud resource allocation server, a file to be striped across the one or more cloud storage providers; splitting, on the cloud resource allocation server, the received file into a plurality of file blocks; allocating, on the cloud resource allocation server, each of the plurality of file blocks to a cloud storage provider of the one or more cloud storage providers as a function of the user constraints and operating conditions of each of the one or more cloud storage providers, each of the plurality of file blocks being allocated to a different cloud storage provider; and sending, on the cloud resource allocation server, each of the plurality of file blocks to the cloud storage provider to which each file block is allocated. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. One or more machine readable media comprising a plurality of instructions stored thereon that in response to being executed result in a cloud resource allocation server:
-
receiving user constraints corresponding one or more cloud storage providers; receiving a file to be striped across the one or more cloud storage providers; splitting the received file into a plurality of file blocks; allocating each of the plurality of file blocks to a cloud storage provider of the one or more cloud storage providers as a function of the user constraints and operating conditions of each of the one or more cloud storage providers, each of the plurality of file blocks being allocated to a different cloud storage provider; and sending each of the plurality of file blocks to the cloud storage provider to which each file block is allocated. - View Dependent Claims (17, 18, 19, 20)
-
-
21. A computing device for re-assembling a file from a plurality of file blocks striped across a plurality of storage clouds, the computing device comprising:
-
a block location determination module to (i) determine that a first cloud storage provider of a plurality of cloud storage providers is storing a first file block of a particular file to be re-assembled, and (ii) determine that a second cloud storage provider of a plurality of cloud storage providers is storing a second file block of the particular file to be re-assembled; a file re-assembly module to (i) request the first file block from the first cloud storage provider, and (ii) request the second file block from the second cloud storage provider; a communication module to (i) receive the first file block from the first cloud storage provider, and (ii) receive the second file block from the second cloud storage provider; and the file re-assembly module further to re-assemble the particular file to be re-assembled from the received first and second file blocks. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28)
-
Specification