Allocating cloud storage based on storage attributes
A method of allocating cloud storage based on storage profiles includes receiving a storage request from a virtual machine associated with a tenant at a computing apparatus having connectivity to a network. The storage request is analyzed to determine one or more storage attributes of the storage request. An infrastructure is configured in a configuration based on the one or more storage attributes and data associated with the storage request is stored in the infrastructure in accordance with the configuration.
1. A method comprising:
at a computing apparatus having connectivity to a network, receiving a generic storage request from a virtual machine associated with a tenant;
analyzing parameters of the generic storage request to determine one or more storage attributes to add to any specific storage attributes explicitly included in the generic storage request;
configuring an infrastructure in a configuration based on the one or more storage attributes and the specific storage attributes; and
storing data associated with the generic storage request in the infrastructure in accordance with the configuration.
2. The method of claim 1 , further comprising:
monitoring a workload associated with the generic storage request; and
adjusting the configuration based on one or more storage attributes of the workload.
3. The method of claim 2 , wherein monitoring the workload associated with the generic storage request further comprises:
comparing the one or more storage attributes of the workload to the one or more storage attributes and the specific storage attributes on which the configuration is based; and
detecting a difference in the comparing.
4. The method of claim 1 , further comprising:
monitoring the infrastructure for changes associated with data storage in the infrastructure; and
adjusting the configuration based on the changes.
5. The method of claim 1 , further comprising:
selecting a predetermined storage profile based on the one or more storage attributes and the specific storage attributes; and
refining the predetermined storage profile based on the one or more storage attributes.
6. The method of claim 5 , further comprising:
monitoring a workload associated with the generic storage request; and
further refining the predetermined storage profile based on one or more storage attributes of the workload.
7. The method of claim 6 , wherein monitoring is performed over a number of time windows and the predetermined storage profile is further refined after each time window.
8. The method of claim 1 , wherein the one or more storage attributes include at least one of: a volume size, an Input/Output (IO) size, a read/write ratio, a number of Input/Output Operations per Second (IOPS), or a durability.
9. A system comprising:
a storage infrastructure subsystem including at least one storage array and non-volatile cache memory; and
a computer subsystem running one or more applications associated with at least a first tenant, wherein the computer subsystem interfaces with the storage infrastructure subsystem and includes program instructions that cause the computer subsystem to:
receive a generic storage request from a virtual machine associated with the first tenant;
analyze parameters of the generic storage request to determine one or more storage attributes to add to any specific storage attributes explicitly included in the generic storage request;
configure an infrastructure in a configuration based on the one or more storage attributes and the specific storage attributes; and
store data associated with the generic storage request in the infrastructure in accordance with the configuration.
10. The system of claim 9 , wherein the computer subsystem further includes program instructions that cause the computer subsystem to:
monitor a workload associated with the generic storage request; and
adjust the configuration based on one or more storage attributes of the workload.
11. The system of claim 10 , wherein, in monitoring the workload associated with the generic storage request, the computer subsystem further includes program instructions that cause the computer subsystem to:
compare the one or more storage attributes of the workload to the one or more storage attributes and the specific storage attributes on which the configuration is based; and
detect a difference in the comparing.
12. The system of claim 9 , wherein the computer subsystem further includes program instructions that cause the computer subsystem to:
monitor the infrastructure for changes associated with data storage in the infrastructure; and
adjust the configuration based on the changes.
13. The system of claim 9 , wherein, the computer subsystem further includes program instructions that cause the computer subsystem to:
select a predetermined storage profile based on the one or more storage attributes and the specific storage attributes; and
refine the predetermined storage profile based on the one or more storage attributes.
14. The system of claim 13 , wherein the computer subsystem further includes program instructions that cause the computer subsystem to:
monitor a workload associated with the generic storage request; and
further refine the predetermined storage profile based on one or more storage attributes of the workload.
15. A non-transitory computer-readable storage media encoded with software comprising computer executable instructions and when the software is executed operable to:
receive a generic storage request from a virtual machine associated with a tenant;
analyze parameters of the generic storage request to determine one or more storage attributes to add to any specific storage attributes explicitly included in the generic storage request;
configure an infrastructure in a configuration based on the one or more storage attributes and the specific storage attributes; and
store data associated with the generic storage request in the infrastructure in accordance with the configuration.
16. The non-transitory computer-readable storage media of claim 15 , further comprising instructions operable to:
monitor a workload associated with the generic storage request; and
adjust the configuration based on one or more storage attributes of the workload.
17. The non-transitory computer-readable storage media of claim 16 , wherein the instructions operable to monitor the workload associated with the generic storage request include instructions operable to:
compare the one or more storage attributes of the workload to the one or more storage attributes and the specific storage attributes on which the configuration is based; and
detect a difference in the comparing.
18. The non-transitory computer-readable storage media of claim 15 , further comprising instructions operable to:
monitor the infrastructure for changes associated with data storage in the infrastructure; and
adjust the configuration based on the changes.
19. The non-transitory computer-readable storage media of claim 15 , further comprising instructions operable to:
select a predetermined storage profile based on the one or more storage attributes and the specific storage attributes; and
refine the predetermined storage profile based on the one or more storage attributes.
20. The non-transitory computer-readable storage media of claim 19 , further comprising instructions operable to:
monitor a workload associated with the generic storage request; and
further refine the predetermined storage profile based on one or more storage attributes of the workload.