Opportunistic performance allocations in data storage systems
First Claim
1. A system, comprising:
- at least one processor; and
a memory storing file system software that when executed by the at least one processor performs;
managing access of a file system implemented on a plurality of storage resources;
storing data to a storage resource of the plurality of storage resources, wherein the storage resource is in one class of storage resource of a plurality of classes of storage resources;
determining whether to make a copy of the data available based at least in part on determining whether storage space is available in another class of storage resource having a lower performance characteristic than the one class of storage resource;
in response to determining to make the copy of the data available, opportunistically allocating the copy of the data to another storage resource of a plurality of storage resources in the other class of storage resource, wherein opportunistically allocating comprises storing the copy of the data on the other storage resource such that the data and the copy of the data are both online in the file system and available for retrieval;
redirecting an access request for the data to a less active one of the storage resources storing the data and the copy of the data, even if said redirecting results in the access request being redirected to the other storage resource; and
in response to determining that storage space is needed in the other class of storage resource or in response to determining that the data stored in the storage resource is modified, deleting, overwriting or marking for reuse the copy of the data from the other storage resource, wherein the data remains online in the file system for retrieval from the storage resource.
9 Assignments
0 Petitions
Accused Products
Abstract
System and method for the opportunistic allocation of copies of data across data storage resources in file systems. Embodiments may opportunistically and transparently trade storage space in a file system for performance. In embodiments, when data is stored to the file system, copies of the data may be opportunistically stored to two or more data storage resources. The data may then be opportunistically accessed from a less active resource if the resource storing a primary copy of the data is busy. The opportunistically stored copies of data remain online in the file system. In hierarchical file systems or tiered storage hierarchies, embodiments may allow higher-level storage tiers to “borrow” performance from lower-level tiers by opportunistically allocating copies of data from a higher-level tier within a lower-level tier. Copies of data stored on a data storage resource may be deleted if storage space is needed on that data storage resource.
-
Citations
19 Claims
-
1. A system, comprising:
-
at least one processor; and a memory storing file system software that when executed by the at least one processor performs; managing access of a file system implemented on a plurality of storage resources; storing data to a storage resource of the plurality of storage resources, wherein the storage resource is in one class of storage resource of a plurality of classes of storage resources; determining whether to make a copy of the data available based at least in part on determining whether storage space is available in another class of storage resource having a lower performance characteristic than the one class of storage resource; in response to determining to make the copy of the data available, opportunistically allocating the copy of the data to another storage resource of a plurality of storage resources in the other class of storage resource, wherein opportunistically allocating comprises storing the copy of the data on the other storage resource such that the data and the copy of the data are both online in the file system and available for retrieval; redirecting an access request for the data to a less active one of the storage resources storing the data and the copy of the data, even if said redirecting results in the access request being redirected to the other storage resource; and in response to determining that storage space is needed in the other class of storage resource or in response to determining that the data stored in the storage resource is modified, deleting, overwriting or marking for reuse the copy of the data from the other storage resource, wherein the data remains online in the file system for retrieval from the storage resource. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A system, comprising:
-
a plurality of storage devices storing a file system implemented as a tiered storage hierarchy comprising a plurality of storage tiers; and a host system configured to couple to the file system, wherein the host system comprises a computer-accessible storage medium storing file system software comprising; a data allocation component that, when executed on the host system, is configured to; store data to a storage tier of the plurality of storage tiers, wherein the storage tier is one class of storage tier of a plurality of classes of storage tiers; determine whether to make a copy of the data available based at least in part on a determination whether storage space is available in another class of storage tier having a lower performance characteristic than the one class of storage tier; and in response to a determination to make the copy of the data available, opportunistically allocate the copy of the data to another storage tier of a plurality of storage tiers in the other class of storage tiers such that the data and the copy of the data are both online in the file system and available for retrieval, wherein the opportunistic allocation comprises storage of the copy of the data on the other storage tier; and a file system functionality component that, when executed on the host system, is configured to; redirect an access request for the data to a less active one of the storage tiers storing the data and the copy of the data even if said redirection results in the access request being redirected to the other storage tier; and in response to a determination that storage space is needed in the other storage tier or in response to a determination that the data stored in the storage tier is modified, delete, overwrite or mark for reuse the copy of the data from the other storage tier, wherein the data remains online in the file system for retrieval from the storage tier. - View Dependent Claims (8)
-
-
9. A method comprising:
-
storing, by file system software on one or more devices, data to a storage resource of a plurality of storage resources in a file system implemented on the plurality of storage resources, wherein the data stored remains online within the file system, and wherein the storage resource is in one class of storage resource of a plurality of classes of storage resources; determining whether to make a copy of the data available based at least in part on determining whether storage space is available in another class of storage resource having a lower performance characteristics than the one class of storage resource; in response to determining to make the copy of the data available, opportunistically allocating the copy of the data to another storage resource of a plurality of storage resources in the other class of storage resource, wherein opportunistically allocating comprises storing, by the file system software, the copy of the data on the other storage resource such that the data and the copy of the data are both online in the file system and available for retrieval; receiving, by the file system software, one or more access requests for the data; redirecting, by the file system software, the access requests for the data to a less active one of the storage resource and the other storage resource even if said redirecting results in the access requests being redirected to the data storage resource; and in response to determining that storage space is needed in the other class of storage resource or in response to determining that the data stored in the storage resource is modified, deleting, overwriting or marking for reuse the copy of the data from the other class of storage resource, wherein the data remains online in the file system for retrieval from the storage resource. - View Dependent Claims (10, 11, 12, 13)
-
-
14. A non-transitory computer-accessible storage medium storing file system software that, when executed on one or more devices, performs:
-
storing data to a storage resource of a plurality of storage resources in a file system implemented on the plurality of storage resources, wherein the data stored remains online within the file system, and wherein the storage resource is in one class of storage resource of a plurality of classes of storage resources; determining whether to make a copy of the data available based at least in part on determining whether storage space is available in another class of storage resource having a lower performance characteristics than the one class of storage resource; in response to determining to make the copy of the data available, opportunistically allocating the copy of the data to another storage resource of a plurality of storage resources in the other class of storage resource, wherein opportunistically allocating comprises storing, by the file system software, the copy of the data on the other storage resource such that the data and the copy of the data are both online in the file system and available for retrieval; receiving one or more access requests for the data; redirecting the one or more access requests for the data to a less active one of the storage resource storing the data and the other storage resource storing the copy of the data even if said redirecting results in the access requests being redirected to the other storage resource; and in response to determining that storage space is needed in the other class of storage resource or in response to determining that the data stored in the storage resource is modified, deleting, overwriting or marking for reuse the copy of the data from the other class of storage resource, wherein the data remains online in the file system for retrieval from the storage resource. - View Dependent Claims (15, 16, 17, 18, 19)
-
Specification