High performance cloud storage
First Claim
1. A method of providing storage within a cloud-computing environment to meet storage performance criteria of a customer, the method comprising:
- providing, with a provisioning computer, an application programming interface (“
API”
) for provisioning cloud storage for a host computer;
receiving, with the provisioning computer and via the API, a set of information defining storage needs of the host computer;
determining, with the provisioning computer, a storage type based on the storage needs of the host computer, the storage type including a performance dimension, a capacity dimension, and a cost dimension;
accessing the host computer with the provisioning computer using the API;
provisioning storage, with the API, from a cloud storage array to allocate a portion of the cloud storage array to the host computer, the portion of the cloud storage array having the determined storage type, wherein the cloud storage array comprises multiple tiers of storage, each tier of storage having a different performance capability, wherein the allocated portion of the cloud storage array comprises at least a first sub-portion from a first tier of the cloud storage array and a second sub-portion from a second tier of the cloud storage array, wherein provisioning storage comprises reserving the portion of the cloud storage array for use by the host computer, instead of providing the host computer with shared usage of a storage pool;
provisioning, via the provisioning computer, a first connection between the host computer and the first sub-portion, the first connection configured to support a performance capability associated with the first tier of the cloud storage array;
provisioning, via the provisioning computer, a second connection between the host computer and the second sub-portion, the second connection configured to support a performance capability associated with the second tier of the cloud storage array, the second connection having a bandwidth that is lower than a bandwidth of the first connection; and
storing, with the provisioning computer, a provisioning record indicating the portion of the cloud storage array allocated to the host computer;
wherein at least one of the first sub-portion from the first tier of the cloud storage array or the second sub-portion from the second tier of the cloud storage array had not previously been provisioned to the host computer, and the at least one of the first sub-portion or the second sub-portion is newly provisioned to the host computer without rebooting the host computer, wherein the host computer is a discrete physical computer.
1 Assignment
0 Petitions
Accused Products
Abstract
This document discloses high performance data storage solutions. In an aspect, some solutions can be employed in a cloud-computing environment that provides shared storage for a plurality of customers. In other aspects, the solutions provided by some embodiments can provide multiple tiers of storage, each having a different performance level. This feature can provide a customer with the ability (e.g., through a web portal) to design its own custom storage solution that blends multiple tiers of storage at different capacity and performance levels to attain an optimal level of capacity, performance, and cost. Some disclosed solutions provide a novel arrangement of different types of storage devices that are provisioned through a common API, which can access each storage device'"'"'s native management interface, as well as the host computer for which the storage will be provisioned, to allocate multiple tiers of storage to the host computer in an automated manner.
12 Citations
21 Claims
-
1. A method of providing storage within a cloud-computing environment to meet storage performance criteria of a customer, the method comprising:
-
providing, with a provisioning computer, an application programming interface (“
API”
) for provisioning cloud storage for a host computer;receiving, with the provisioning computer and via the API, a set of information defining storage needs of the host computer; determining, with the provisioning computer, a storage type based on the storage needs of the host computer, the storage type including a performance dimension, a capacity dimension, and a cost dimension; accessing the host computer with the provisioning computer using the API; provisioning storage, with the API, from a cloud storage array to allocate a portion of the cloud storage array to the host computer, the portion of the cloud storage array having the determined storage type, wherein the cloud storage array comprises multiple tiers of storage, each tier of storage having a different performance capability, wherein the allocated portion of the cloud storage array comprises at least a first sub-portion from a first tier of the cloud storage array and a second sub-portion from a second tier of the cloud storage array, wherein provisioning storage comprises reserving the portion of the cloud storage array for use by the host computer, instead of providing the host computer with shared usage of a storage pool; provisioning, via the provisioning computer, a first connection between the host computer and the first sub-portion, the first connection configured to support a performance capability associated with the first tier of the cloud storage array; provisioning, via the provisioning computer, a second connection between the host computer and the second sub-portion, the second connection configured to support a performance capability associated with the second tier of the cloud storage array, the second connection having a bandwidth that is lower than a bandwidth of the first connection; and storing, with the provisioning computer, a provisioning record indicating the portion of the cloud storage array allocated to the host computer; wherein at least one of the first sub-portion from the first tier of the cloud storage array or the second sub-portion from the second tier of the cloud storage array had not previously been provisioned to the host computer, and the at least one of the first sub-portion or the second sub-portion is newly provisioned to the host computer without rebooting the host computer, wherein the host computer is a discrete physical computer. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. An apparatus for providing storage within a cloud-computing environment to meet storage performance criteria of a customer, the apparatus comprising:
a non-transitory computer readable medium having encoded thereon a set of instructions executable by a storage provisioning computer to perform one or more operations, the set of instructions comprising; instructions for providing an application programming interface (“
API”
) for provisioning cloud storage for a host computer;instructions for receiving, via the API, a set of information defining storage needs of the host computer; instructions for determining a storage type based on the storage needs of the host computer, the storage type including a performance dimension, a capacity dimension, and a cost dimension; instructions for accessing the host computer with the API; instructions for provisioning storage, with the API, from a cloud storage array to allocate a portion of the cloud storage array to the host computer, the portion of the cloud storage array having the determined storage type, wherein the cloud storage array comprises multiple tiers of storage, each tier of storage having a different performance capability, wherein the allocated portion of the cloud storage array comprises at least a first sub-portion from a first tier of the cloud storage array and a second sub-portion from a second tier of the cloud storage array, wherein provisioning storage comprises reserving the portion of the cloud storage array for use by the host computer, instead of providing the host computer with shared usage of a storage pool; instructions for provisioning, via the provisioning computer, a first connection between the host computer and the first sub-portion, the first connection configured to support a performance capability associated with the first tier of the cloud storage array; instructions for provisioning, via the provisioning computer, a second connection between the host computer and the second sub-portion, the second connection configured to support a performance capability associated with the second tier of the cloud storage array, the second connection having a bandwidth that is lower than a bandwidth of the first connection; and instructions for storing a provisioning record indicating the portion of the cloud storage array allocated to the host computer; wherein at least one of the first sub-portion from the first tier of the cloud storage array or the second sub-portion from the second tier of the cloud storage array had not previously been provisioned to the host computer, and the at least one of the first sub-portion or the second sub-portion is newly provisioned to the host computer without rebooting the host computer, wherein the host computer is a discrete physical computer.
-
21. A storage provisioning system for providing storage within a cloud-computing environment to meet storage performance criteria of a customer, the storage provisioning system comprising:
-
one or more processors; and a non-transitory computer readable medium in communication with the one or more processors, the computer readable medium having encoded thereon a set of instructions executable by the computer system to perform one or more operations, the set of instructions comprising; instructions for providing an application programming interface (“
API”
) for provisioning cloud storage for a host computer;instructions for receiving, via the API, a set of information defining storage needs of the host computer; instructions for determining a storage type based on the storage needs of the host computer, the storage type including a performance dimension, a capacity dimension, and a cost dimension; instructions for accessing the host computer with the API; instructions for provisioning storage, with the API, from a cloud storage array to allocate a portion of the cloud storage array to the host computer, the portion of the cloud storage array having the determined storage type, wherein the cloud storage array comprises multiple tiers of storage, each tier of storage having a different performance capability, wherein the allocated portion of the cloud storage array comprises at least a first sub-portion from a first tier of the cloud storage array and a second sub-portion from a second tier of the cloud storage array, wherein provisioning storage comprises reserving the portion of the cloud storage array for use by the host computer, instead of providing the host computer with shared usage of a storage pool; instructions for provisioning, via the provisioning computer, a first connection between the host computer and the first sub-portion, the first connection configured to support a performance capability associated with the first tier of the cloud storage array; instructions for provisioning, via the provisioning computer, a second connection between the host computer and the second sub-portion, the second connection configured to support a performance capability associated with the second tier of the cloud storage array, the second connection having a bandwidth that is lower than a bandwidth of the first connection; and instructions for storing a provisioning record indicating the portion of the cloud storage array allocated to the host computer; wherein at least one of the first sub-portion from the first tier of the cloud storage array or the second sub-portion from the second tier of the cloud storage array had not previously been provisioned to the host computer, and the at least one of the first sub-portion or the second sub-portion is newly provisioned to the host computer without rebooting the host computer, wherein the host computer is a discrete physical computer.
-
Specification