Methods and Apparatus for Distributed Data Storage
First Claim
1. A dynamically scalable redundant distributed storage system, the storage system having a plurality of components, the components comprising:
- a plurality of file managers, each file manager having responsibility for providing access to a group of stored files or data blocks and being configured to store metadata associated with each of the files and data blocks for which it is responsible, the metadata including a unique file identifier for each file or data block;
a file manager control component adapted for allocating individual responsibilities among each of the plurality of file managers, the file manager control component being configured to assign file management responsibilities for individual files and data blocks to individual file managers and to maintain a record of which files and data blocks are assigned to each file manager;
a plurality of storage managers, each storage manager having responsibility for managing the storage of files and data blocks on one or more data storage devices for which it is responsible and being configured to maintain a record of the location of each stored file and data block on the data storage devices;
a storage manager control component adapted for allocating individual responsibilities among each of the plurality of storage managers, the storage manager control component being configured to assign file storage responsibilities for individual files among individual storage managers and to maintain a record of which files and data storage devices are assigned to each storage manager; and
at least one client adapted to provide user access to the storage system, the client being configured to initiate actions within the storage system by means of the file manager control component and the storage manager control component, the client further comprising a processor configured to implement a redundant data recovery and reconstruction scheme.
1 Assignment
0 Petitions
Accused Products
Abstract
A distributed heterogeneous or homogeneous file storage system divides logical responsibility for data from actual control of the data by using separate file and storage managers. Each file manager provides access to stored files and stores metadata associated with each of the files for which it is responsible. A file manager control component allocates responsibilities among file managers, assigns management responsibilities for individual files, and maintains a record of which files are assigned to each manager. Each storage manager is responsible for managing storage of files on data storage devices and maintains a record of the location of each stored file. A storage manager control component allocates responsibilities among storage managers, assigns responsibilities for individual files, and maintains a record of which files and storage devices are assigned to each manager. A client provides user access, initiates actions within the system, and implements a redundant data recovery and reconstruction scheme.
231 Citations
49 Claims
-
1. A dynamically scalable redundant distributed storage system, the storage system having a plurality of components, the components comprising:
-
a plurality of file managers, each file manager having responsibility for providing access to a group of stored files or data blocks and being configured to store metadata associated with each of the files and data blocks for which it is responsible, the metadata including a unique file identifier for each file or data block; a file manager control component adapted for allocating individual responsibilities among each of the plurality of file managers, the file manager control component being configured to assign file management responsibilities for individual files and data blocks to individual file managers and to maintain a record of which files and data blocks are assigned to each file manager; a plurality of storage managers, each storage manager having responsibility for managing the storage of files and data blocks on one or more data storage devices for which it is responsible and being configured to maintain a record of the location of each stored file and data block on the data storage devices; a storage manager control component adapted for allocating individual responsibilities among each of the plurality of storage managers, the storage manager control component being configured to assign file storage responsibilities for individual files among individual storage managers and to maintain a record of which files and data storage devices are assigned to each storage manager; and at least one client adapted to provide user access to the storage system, the client being configured to initiate actions within the storage system by means of the file manager control component and the storage manager control component, the client further comprising a processor configured to implement a redundant data recovery and reconstruction scheme. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A dynamically scalable redundant distributed storage system, the storage system having a plurality of components, the components comprising:
-
a plurality of file managers, each file manager having responsibility for providing access to a group of stored files or data blocks and being configured to store metadata associated with each of the files and data blocks for which it is responsible, the metadata including discovery metadata comprising a unique key for each file or data block; a file manager distributed hash table adapted for allocating individual responsibilities among each of the plurality of file managers, the file manager distributed hash table being configured to assign file management responsibilities for individual files and data blocks to individual file managers and to maintain a record of which files and data blocks are assigned to each file manager; a plurality of storage managers, each storage manager having responsibility for managing the storage of files and data blocks on one or more data storage elements for which it is responsible and being configured to maintain a record of the location of each stored file and data block on the data storage elements; a storage manager distributed hash table adapted for allocating individual responsibilities among each of the plurality of storage managers, the storage manager distributed hash table being configured to assign file storage responsibilities for individual files among individual storage managers and to maintain a record of which files and data storage elements are assigned to each storage manager; and at least one client adapted to provide user access to the storage system, the client being configured to initiate actions within the storage system by accessing the file manager distributed hash table and the storage manager distributed hash table, the client further comprising a processor configured to implement a redundant data recovery and reconstruction scheme. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36)
-
-
37. A method for ensuring restoration and integrity of data in computer-related applications using a dynamically scalable redundant distributed storage system, comprising the steps of:
-
dividing logical responsibility for files and data blocks from actual control of the files and data blocks by the steps of; providing a plurality of file managers, each file manager having responsibility for providing access to a group of stored files or data blocks and being configured to store metadata associated with each of the files and data blocks for which it is responsible, the metadata including a unique file identifier for each file or data block; allocating individual responsibilities among each of the plurality of file managers by assigning file management responsibilities for individual files and data blocks to individual file managers; maintaining a record of which files and data blocks are assigned to each file manager; providing a plurality of storage managers, each storage manager having responsibility for managing the storage of files and data blocks on one or more data storage devices for which it is responsible and being configured to maintain a record of the location of each stored file and data block on the data storage devices; allocating individual responsibilities among each of the plurality of storage managers by assigning file storage responsibilities for individual files among individual storage managers; and maintaining a record of which files and data storage devices are assigned to each storage manager; implementing a redundant data recovery and reconstruction scheme; assigning a unique file identifier to each file or data block; storing, according to the redundant data recovery and reconstruction scheme, the metadata associated with each of the files and data blocks, including the unique file identifier for each file or data block; storing, according to the redundant data recovery and reconstruction scheme, the files and data blocks on one or more data storage devices; and recording the location on the data storage devices of each stored file and data block. - View Dependent Claims (38, 39, 40, 41, 42, 43, 44, 45, 46, 47)
-
-
48. A method for ensuring restoration and integrity of data in computer-related applications using a dynamically scalable redundant distributed storage system, comprising the steps of:
-
distributing data file storage across a plurality of data storage devices by the steps of; breaking each data file into to shreds; and distributing the shreds across multiple data storage devices; reconstructing failed data storage devices by using redundancy or duplication to recover the stored data files on the failed data storage devices; and restoring the recovered data files by distributing them across, and storing them on, free space on the remaining data storage devices.
-
-
49. A distributed storage system, comprising a storage system configured to rapidly reconstruct a failed storage element by distributing data storage across a number of storage elements and reconstructing data stored on the failed storage element by breaking each data file into shreds, distributing the shreds across multiple storage elements, using redundancy or duplication to recover the data from errors, and distributing the recovered data onto free space on the remaining system storage elements.
Specification