Abstract: Data objects are stored on storage devices, taking into account service level agreements or other quality of service parameters. In one aspect, data objects grouped into storage volumes. In addition, the storage devices are classified into different level storage tiers, where higher level storage tiers have higher performance and lower level storage tiers have lower performance. Ranks for the data objects are calculated, based on both a data usage pattern for the data object (e.g., recency and frequency) and on quality of service (QOS) parameters for the storage volume containing the data object. Examples of QOS parameters include service level agreements, priority, minimum and maximum input/output operations per second. The data objects are then stored on storage devices, based on the data objects' ranks and the storage devices' storage tiers.
Type:
Grant
Filed:
February 5, 2015
Date of Patent:
November 8, 2016
Assignee:
Formation Data Systems, Inc.
Inventors:
Mark S. Lewis, Vinay P. Rao, Anna Povzner
Abstract: An input/output (I/O) request is dispatched. A determination is made regarding a storage volume to service. A determination is made regarding whether an actual disk throughput exceeds a first threshold rate. The first threshold rate exceeds a reserved disk throughput. Responsive to determining that the actual disk throughput exceeds the first threshold rate, a first storage volume is selected based on credits or based on priority. Responsive to determining that the actual disk throughput does not exceed the first threshold rate, a second storage volume is selected based on guaranteed minimum I/O rate. An I/O request queue associated with the determined storage volume is determined. An I/O request is retrieved from the determined I/O request queue. The retrieved I/O request is sent to a persistence layer that includes the selected storage volume.
Type:
Grant
Filed:
March 28, 2014
Date of Patent:
September 6, 2016
Assignee:
Formation Data Systems, Inc.
Inventors:
Mark S. Lewis, Vinay P. Rao, Anna Povzner, Subramanian Lakshmanan
Abstract: A method of providing secure storage and access by authorized users of a multi-tenant data storage system that contains deduplicated data; wherein a unique identifier is assigned to a given data object within a data volume catalog; further wherein the unique identifier includes “ownership” of the data object within the object store itself. Each time a data object is stored by a user, the method of the present invention creates an entry within a data association table of the data storage system, which entry denotes the data volume catalog that has executed the data object write. Using the method of the present invention, only a user of a data volume catalog that has actually “written” the data object will be able to access and read the data object. Thereby the method of the present invention affords data security for a multi-tenant, deduplicated data storage system.
Abstract: A write request that includes a data object is processed. A hash function is executed on the data object, thereby generating a hash value that includes a first portion and a second portion. A hypervisor table is queried with the first portion, thereby obtaining a master storage node identifier. The data object and the hash value are sent to a master storage node associated with the master storage node identifier. At the master storage node, a master table is queried with the second portion, thereby obtaining a storage node identifier. The data object and the hash value are sent from the master storage node to a storage node associated with the storage node identifier.
Abstract: A write request that includes a data object is processed. A hash function is executed on the data object, thereby generating a hash value that includes a first portion and a second portion. A data location table is queried with the first portion, thereby obtaining a storage node identifier. The data object is sent to a storage node associated with the storage node identifier. A write request that includes a data object and a pending data object identification (DOID) is processed, wherein the pending DOID comprises a hash value of the data object. The pending DOID is finalized, thereby generating a finalized data object identification (DOID). The data object is stored at a storage location. A storage manager catalog is updated by adding an entry mapping the finalized DOID to the storage location. The finalized DOID is output.