摘要:
A file system has files constructed of an inode for each file, indirect blocks, and allocation units of file system data blocks. Each of the allocation units has one of the file system data blocks or a plurality of the file system data blocks having contiguous file system block numbers. Each file in the file system has a respective allocation unit size attribute specifying an allocation unit size of each and every allocation unit in the file, and the files in the file system have allocation units of different allocation unit sizes. By using larger allocation units for larger files, there is a reduction in the number of indirect blocks in the files without a corresponding loss in performance, and a reduction in the time needed for the UNIX FSCK utility to check file system consistency.
摘要:
A method is used in managing global metadata caches in data storage systems. Space is allocated in a memory of a data storage system to a global metadata cache which is configured to store metadata objects for a plurality of different file systems responsive to file system access requests from the plurality of different file systems. A metadata object associated with a file of a file system of the plurality of different file systems is stored in the global metadata cache. The metadata object is accessed by a plurality of different versions of the file.
摘要:
A method is used in managing global data caches for file systems. Space is allocated in a volatile memory of a data storage system to a global data cache that is configured to store a set of data objects for a plurality of different file systems. The set of data objects is accessed by the plurality of different file systems. Contents of a file of a file system are stored in a data object in the global data cache upon receiving a write I/O request for the file. A copy of the data object and information for the data object are stored in a persistent journal that is stored in a non-volatile memory of the data storage system. Contents of the file are updated on a storage device based on the data object stored in the global data cache and information stored in the persistent journal.
摘要:
A method is used in managing snapshot in cache-based storage systems. A request to create a snapshot of a data object is received. A portion of the data object is cached in a global cache. The data object is associated with a mapping object. The mapping object manages access to the portion of the data object. A snapshot of the data object is created. A snapshot mapping object is associated with the snapshot of the data object. The snapshot mapping object includes a link to the mapping object. The snapshot mapping object is a version of the mapping object and shares the portion of the data object cached in the global cache.
摘要:
A snapshot copy facility maintains information indicating block ownership and sharing between successive versions by delegating block reference counts to parent-child relationships between the file system blocks, as indicated by block pointers in inodes and indirect blocks. When a child block becomes shared between a parent block of the production file and a parent block of a snapshot copy, the delegated reference count is split among the parent blocks. This method is compatible with a conventional data de-duplication facility, and avoids a need to update block reference counts in block metadata of child blocks of a shared indirect block upon splitting the shared indirect block when writing to a production file.
摘要:
A method is used in managing updating of metadata of file systems. A reference to a change to metadata of a file of a file system is stored in a global sync list configured to store changes to metadata of a plurality of files of a plurality of file systems. The change to the metadata of the file is stored in a journal upon receiving an I/O request for the file of the file system. The journal includes metadata transactions upon the plurality of files of the plurality of the file system. The change to the metadata of the file of the file system is applied to metadata of the file system organized on a storage device using the reference to the change stored in the global sync list.
摘要:
A snapshot copy facility maintains information indicating ownership and sharing of child nodes in the hierarchy of a file between successive versions by delegating reference counts to the parent-child relationships between the nodes, as indicated by pointers in the parent nodes. When a child node becomes shared between a parent node of the production file and a parent node of a snapshot copy, the delegated reference count is split among the parent nodes. This method is compatible with a conventional data de-duplication facility, and avoids a need to update reference counts in metadata of child nodes of a shared intermediate node upon splitting the shared intermediate node when writing to a production file.
摘要:
A file server has an extent cache of pointers to leaf-level indirect blocks containing file mapping metadata. The extent cache improves file access read and write performance by returning a mapping for the data blocks to be read or written without having to iterate through intermediate level indirect blocks of the file. In addition, the extent cache contains pointers to the leaf-level indirect blocks in the file system cache. Therefore, in most cases, the time spent looking up pointers in the extent cache is offset by a reduction in the time that would otherwise be spent in locating the leaf-level indirect blocks in the file system cache. In a preferred implementation, the extent cache has a first least recently used (LRU) list and cache entry allocation for production files, and a second LRU list and cache entry allocation for snapshot copies of the production files.
摘要:
File systems possibly impacted by a bad sector in a disk drive are unmounted. Then the disk drive is scanned in order to identify additional bad sectors, and for each identified bad sector, a logical address of the bad sector is re-vectored to a good sector. An attempt is made to restore the data of each bad sector, and then the file system is checked for consistency. If a bad sector cannot be restored, any application relying on the bad sector is aborted. Once the file system is found to be consistent, the file system is remounted. Re-vectored blocks are reverse mapped to identify damaged or repaired directories and files. Damaged or repaired directories and files are reported to a system administrator, and damaged directories or files of a client are reported to the client.
摘要:
A global cylinder group (CG) cache is stored in file server memory and shared by a plurality of file systems supported by the file server. The global CG cache comprises a number CG entries which are pre-allocated in memory. As different file systems are accessed, global CG entries in the CG cache are used to store CG block information for the accesses. With such an arrangement, a file server may support multiple file systems using a single global CG cache without starvation and other the adverse performance impacts of the prior art. According to one aspect of the invention, the global CG cache is periodically scanned to reclaim memory. In contrast to the prior art, where multiple scans were periodically performed of multiple CG caches for memory reclamation, the use of a single CG cache minimizes the impact of CG cache maintenance on file server performance.