摘要:
System and method for implementing a file system across different storage classes in a storage system. Embodiments may define multiple classes of storage and automatically and transparently migrate data in the storage classes within the same file system to meet the usage needs of the business. Embodiments may transparently adapt the cost of storage to the usage patterns of data on the storage, thereby reducing the amount that customers need to spend for their storage. In embodiments, storage devices may be classified into different classes of storage to implement a multi-class file system. Embodiments may provide a multi-class storage mechanism for managing and implementing user-defined policies for assigning and migrating data within the multi-class file system. The multi-class storage mechanism may determine where to initially place data, and may transparently migrate data to other storage classes according to the policies. Migrated data remains online within the file system.
摘要:
System and method for performing optimized restores of a multi-class file system. More actively accessed data may be assigned to higher storage classes and less actively accessed data may be assigned to lower storage classes in the multi-class file system. In a restore, the higher storage class(es) including more actively accessed data may be restored first. The multi-class file system may then be brought online for access by application(s). The lower storage class(es) may then be restored. In one embodiment, if a request for data that have not been restored is received, the file system may obtain an estimated time until restore of the requested data from the restore mechanism. The file system may then notify the application of the estimated time until restore. The application may notify a user of the estimated time, and may generate another request for the data after the estimated time has elapsed.
摘要:
System and method for performing operations in a multi-class file system without requiring split mirrors. For one or more storage classes in the multi-class file system, operations that require stable copies of the storage classes may be performed without using split mirrors. In one embodiment, read-only data may be assigned and/or migrated to lower storage classes, and operations may be performed on the read-only storage classes without using split mirrors. In one embodiment, to perform an operation without using a split mirror, a write lock of a storage class may be examined to determine if the write-locked storage class has been written to during the operation on the storage class and, if so, the operation may be retried for the storage class. In one embodiment, the file system software may be blocked from enabling a storage class for writing for the duration of the operation on the storage class.
摘要:
System and method for performing backups of a multi-class file system are described. In one embodiment, more recently modified data may be assigned and/or migrated to higher storage classes and less recently modified data may be migrated at time intervals to lower storage classes in the multi-class file system. Backups of each of the storage classes may be performed at time intervals. In one embodiment, the backups may be image-based backups of the storage devices in the storage classes. In one embodiment, the lower storage classes may include one or more read-only storage classes including less-recently modified data that are backed up less frequently than higher storage classes including more-recently modified data. In one embodiment, files migrated to lower storage class(es) may be compressed.
摘要:
A method for performing file lookups based on tags indicative of file characteristics may involve: a file system storing an association between a tag and a file, where the tag is indicative of a characteristic of the file; the file system storing an additional association between the tag and an additional file that also has the characteristic; the file system searching for files having the tag; and in response to searching, the file system returning identifiers of both files associated with the tag. The returned identifiers may include the files' pathnames or inode identifiers of the files' inodes.
摘要:
A data object management scheme for storing a large plurality of small data objects (e.g., image files) in small number of large object stack file for storage in secondary storage (e.g., hard disks). By storing many individual data objects in a single object stack file, the number of files stored in the secondary storage is reduced by several orders of magnitude, from the billions or millions to the hundreds or so. Index data for each object stack file is generated and stored in primary storage to allow efficient and prompt access to the data objects. Requests to store or retrieve the data objects are made using HTTP messages including file identifiers that identify the files storing the data objects and keys identifying the data objects. A file server stores or retrieves the data object from secondary storage of a file server without converting the requests to NSF or POSIX commands.
摘要:
A data object management scheme for storing a large plurality of small data objects (e.g., image files) in small number of large object stack file for storage in secondary storage (e.g., hard disks). By storing many individual data objects in a single object stack file, the number of files stored in the secondary storage is reduced by several orders of magnitude, from the billions or millions to the hundreds or so. Index data for each object stack file is generated and stored in primary storage to allow efficient and prompt access to the data objects. Requests to store or retrieve the data objects are made using HTTP messages including file identifiers that identify the files storing the data objects and keys identifying the data objects. A file server stores or retrieves the data object from secondary storage of a file server without converting the requests to NSF or POSIX commands.
摘要:
A data object management scheme for storing a large plurality of small data objects (e.g., image files) in small number of large object stack file for storage in secondary storage (e.g., hard disks). By storing many individual data objects in a single object stack file, the number of files stored in the secondary storage is reduced by several orders of magnitude, from the billions or millions to the hundreds or so. Index data for each object stack file is generated and stored in primary storage to allow efficient and prompt access to the data objects. Requests to store or retrieve the data objects are made using HTTP messages including file identifiers that identify the files storing the data objects and keys identifying the data objects. A file server stores or retrieves the data object from secondary storage of a file server without converting the requests to NSF or POSIX commands.
摘要:
A method and mechanism for managing a time-indexed block map in a file system configured to store multiple versions of file data. A file system includes inodes or other structures corresponding to files in the system. Responsive to creating a file, one or more blocks are allocated for use in storing the file data. A block map is maintained for the file and is updated to include an identification of the blocks storing the file data and a timestamp corresponding to the stored data. In response to creating a file, data corresponding block map is maintained. In addition, a new entry is created in the block map which identifies the newly allocated blocks. Further, an entry of the block map is updated to (i) identify the particular blocks to which the write was directed and (ii) include a timestamp corresponding to the time of the write.
摘要:
A method for reading data in a block-level single-instance storage system may involve receiving a first address of a data block, retrieving a signature corresponding to the first address, and reading data from a second address corresponding to the signature. A storage system may include a storage manager and first and second lookup tables. The storage manager may interface with an application (such as a database system or a file system) that uses a first set of identifiers for data blocks. The storage manager may use a second set of identifiers for the data blocks, and translates between the first and second identifiers using the lookup tables. The first lookup table indexes data block signatures according to the first set of identifiers. The second lookup table indexes the second set of identifiers according to the data block signatures. The second lookup table may be pruned to provide single instance storage.