Methods and apparatus for increasing data storage capacity

US9229646B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9229646-B2
Application numberUS-78733704-A
CountryUS
Kind codeB2
Filing dateFeb 26, 2004
Priority dateFeb 26, 2004
Publication dateJan 5, 2016
Grant dateJan 5, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A environment and method are provided for increasing the storage capacity of a data storage environment. Additional storage clusters may be added to the storage environment without affecting the performance of each individual storage cluster. When data is written to the storage environment, a selection may be made as to which storage cluster is to store the data. When data is read from the storage environment, it may be determined which storage cluster stores the data and the data may be retrieved from that storage cluster.

First claim

Opening claim text (preview).

What is claimed is: 1. A method of accessing a first unit of data stored in a content addressable storage environment that includes a plurality of storage clusters, wherein the content addressable storage environment identifies each unit of data stored thereon using a content address that is based, at least in part, upon at least a portion of the content of the respective unit of data, wherein the content address comprises an identifier used to determine on which of the plurality of storage clusters the respective unit of data is stored, the method comprising acts of: receiving a request from a host computer to locate the first unit of data previously stored in the storage environment, wherein the request identifies the first unit of data via a first content address that is based, at least in part, upon at least a portion of the content of the first unit of data, wherein the identifier of the first content address comprises a common identifier that is the same as the identifier of a second content address of a second unit of data that is related to the first unit of data, wherein each of the plurality of storage clusters comprises a plurality of nodes, wherein the plurality of nodes in each storage cluster share a software utility that is separate from a software utility used by nodes in other storage clusters of the plurality of storage clusters; and in response to receipt of the request, determining on which one of the plurality of storage clusters the unit of data is stored based, at least in part, on the common identifier of the first content address of the first unit of data. 2. The method of claim 1 , wherein the host computer executes an application program that stores data to and retrieves data from the storage environment, wherein the host further executes an application programming interface that interfaces the application program to the storage environment, and wherein the act of receiving is performed by the application programming interface. 3. The method of claim 1 , wherein the storage environment is coupled to the host computer by at least one communication link, wherein the host computer, the storage environment, and the at least one communication link form a computer system, wherein the computer system includes an appliance that monitors access requests from the host computer, and wherein the act of receiving the request further comprises an act of receiving, at the appliance, the request from the application. 4. The method of claim 3 , wherein the act of determining is performed by the appliance. 5. The method of claim 1 , wherein the host computer executes an application program that stores data on the storage environment, and wherein the act of receiving the request further comprises an act of receiving the request directly from the application program. 6. The method of claim 4 , wherein the act of receiving the request further comprises an act of receiving the request by at least one of the plurality of storage clusters. 7. The method of claim 6 , wherein the at least one of the plurality of storage clusters includes at least one access node that receives and processes access requests, and wherein the act of receiving the request from the application program at the at least one of the plurality of storage clusters further comprises an act of receiving the request at the at least one access node. 8. The method of claim 1 , wherein the act of determining comprises an act of performing a search for the first unit of data on the plurality of storage clusters. 9. The method of claim 8 , wherein the act of performing a search for the first unit of data further comprises an act of performing the search serially through the plurality of storage clusters until the first unit of data is found. 10. The method of claim 8 , wherein the act of performing a search for the first unit of data further comprises an act of performing the search on each of the plurality of storage clusters in parallel. 11. The method of claim 1 , wherein the act of determining is performed by at least one of the plurality of storage clusters. 12. The method of claim 1 , wherein the act of determining comprises locating the first unit of data on at least one of the plurality of storage clusters without performing a search. 13. The method of claim 1 , wherein the first content address includes time information, based on when the first unit of data was stored in the storage environment, and the act of determining comprises an act of determining on which of the plurality of storage clusters the first unit of data is stored based, at least in part, on the time information of the first content address of the first unit of data. 14. The method of claim 13 , wherein the act of determining further comprises an act of determining on which of the plurality of storage clusters the first unit of data is stored based, at least in part, on a hash value of the time information of the first content address of the first unit of data. 15. The method of claim 1 , wherein the identifier is a guaranteed unique identifier (GUID), and wherein the act of determining further comprises an act of determining on which of the plurality of storage clusters the first unit of data is stored based, at least in part, on the GUID. 16. The method of claim 15 , wherein the act of determining further comprises an act of determining on which of the plurality of storage clusters the first unit of data is stored based, at least in part, on a hash of the GUID. 17. The method of claim 1 , wherein the act of determining further comprises acts of: accessing information that specifies an algorithm that was used to select on which of the plurality of storage clusters the first unit of data was stored, based on the first content address of the unit of data; and applying the algorithm to the first content address of the first unit of data to determine on which of the plurality of storage clusters the first unit of data is stored. 18. The method of claim 17 , wherein the information specifies a plurality of algorithms used by the storage environment and during which period of time each of the plurality of algorithms was used to store units of data. 19. The method of claim 18 , wherein the information further specifies, for each one of the plurality of algorithms, at least one storage cluster that was in the storage environment during the period of time when the one of the plurality of algorithms was in effect. 20. At least one non-transitory computer readable medium encoded with instructions that, when executed on a computer system, perform a method of accessing a first unit of data stored in a content addressable storage environment that includes a plurality of storage clusters, wherein the content addressable storage environment identifies each unit of data stored thereon using a content address that is based, at least in part, upon at least a portion of the content of the respective unit of data, wherein the content address comprises an identifier used to determine on which of the plurality of storage clusters the respective unit of data is stored, and wherein the computer system comprises the storage environment and a host computer that stores data on the storage environment, and wherein the method comprises acts of: receiving a request from the host computer to locate the first unit of data previously stored in the storage environment, wherein the request identifies the first unit of data via a first content address that is based, at least in part, upon at least a portion of the content of the

Assignees

Inventors

Classifications

  • Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS] · CPC title

  • by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device · CPC title

  • G06F3/0635Primary

    by changing the path, e.g. traffic rerouting, path reconfiguration · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9229646B2 cover?
A environment and method are provided for increasing the storage capacity of a data storage environment. Additional storage clusters may be added to the storage environment without affecting the performance of each individual storage cluster. When data is written to the storage environment, a selection may be made as to which storage cluster is to store the data. When data is read from the stor…
Who is the assignee on this patent?
Todd Stephen, Kilian Michael, Teugels Tom, and 4 more
What technology area does this patent fall under?
Primary CPC classification G06F3/0635. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jan 05 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).