File system having a hybrid file system format
First Claim
Patent Images
1. A system comprising:
- a storage subsystem having a plurality of mass storage devices, each of the plurality of mass storage devices having a first contiguous region and a second contiguous region, the storage subsystem including a single hybrid file system to store data in a log-structured file system format, in which a data block is written to a new physical location when it is modified, in the first contiguous region of a mass storage device of the storage subsystem and to store a replica of the data in an extent-based file system format, in which a data block is written to a physical location on which it was previously stored when it is modified, in the second contiguous region of the mass storage device, wherein the hybrid file system assigns a single file block number to the data, the file block number having a mapping to a first volume block number dictated by the log-structured file system format and a mapping to a second volume block number dictated by the extent-based file system format, and wherein the hybrid file system uses the mappings to determine whether to access the first volume block number or the second volume block number to fulfill a read request;
a memory including instructions for a hybrid file system manager; and
a processor, connected with the memory, to execute the instructions for the hybrid file system manager, wherein the instructions cause the processor to store the replica subsequent to changes in the data stored in the log-structured file system format in response to detecting that the data stored in the log-structured file system format exceeds a threshold of potential fragmentation, the instructions further to cause the processor to receive a read request for the data, to make a determination to read the data in the log-structured file system format if the replica is not stored in the extent-based file system format, and to make a determination to read the replica of the data in the extent-based file system format if the replica of the data is stored in the extent-based file system format.
1 Assignment
0 Petitions
Accused Products
Abstract
Embodiments of this invention disclose a file system having a hybrid file system format. The file system maintains certain data in two formats, thereby defining a hybrid file system format. In one exemplary application, the first format has properties favorable to write operations, e.g. a log-structured file system format, while the second format has properties favorable to read operations, e.g. an extent-based file system format. The data is stored in the first file system format and then asynchronously stored in the second file system format. The data stored in the second file system format are also updated asynchronously.
39 Citations
23 Claims
-
1. A system comprising:
-
a storage subsystem having a plurality of mass storage devices, each of the plurality of mass storage devices having a first contiguous region and a second contiguous region, the storage subsystem including a single hybrid file system to store data in a log-structured file system format, in which a data block is written to a new physical location when it is modified, in the first contiguous region of a mass storage device of the storage subsystem and to store a replica of the data in an extent-based file system format, in which a data block is written to a physical location on which it was previously stored when it is modified, in the second contiguous region of the mass storage device, wherein the hybrid file system assigns a single file block number to the data, the file block number having a mapping to a first volume block number dictated by the log-structured file system format and a mapping to a second volume block number dictated by the extent-based file system format, and wherein the hybrid file system uses the mappings to determine whether to access the first volume block number or the second volume block number to fulfill a read request; a memory including instructions for a hybrid file system manager; and a processor, connected with the memory, to execute the instructions for the hybrid file system manager, wherein the instructions cause the processor to store the replica subsequent to changes in the data stored in the log-structured file system format in response to detecting that the data stored in the log-structured file system format exceeds a threshold of potential fragmentation, the instructions further to cause the processor to receive a read request for the data, to make a determination to read the data in the log-structured file system format if the replica is not stored in the extent-based file system format, and to make a determination to read the replica of the data in the extent-based file system format if the replica of the data is stored in the extent-based file system format. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method of storing data comprising:
-
receiving data by a storage server that executes a hybrid file system, the hybrid file system having a log-structured file system format, in which a data block is written to a new physical location when it is modified, and an extent-based file system format, in which a data block is written to a physical location on which it was previously stored when it is modified; assigning, by the storage server, a single file block number to the data, the file block number having a mapping to a first volume block number dictated by the first log-structured file system format and a mapping to a second volume block number dictated by the extent-based file system format; storing data in the log-structured file system format in a first location associated with the first volume block number, the first location being in a first contiguous region of a mass storage device, and a replica of the data in the extent-based file system format in a second location associated with the second volume block number, the second location being in a second contiguous region of the mass storage device, wherein the extent-based file system format enables faster reads of the replica than the log-structured file system format enables reads of the data, and wherein the replica of the data is stored in the extent-based file system format upon detecting that the data in the log-structured file system format exceeds a threshold potential fragmentation; asynchronously updating the replica following changes to the data stored in the first log-structured file system format; receiving a request to read the data; reading the data in the log-structured file system format if the replica is not stored in the extent-based file system format; and reading the replica of the data in the extent-based file system format if the replica of the data is stored in the extent-based file system format. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A method of reading data comprising:
-
receiving a request to read data by a storage server that executes a hybrid file system, wherein the hybrid file system maintains first information in an extent-based file system format, in which a data block is written to a physical location on which it was previously stored when it is modified, in a first virtual block number space in a first contiguous region of a mass storage device and maintains second information in a log-structured file system format, in which a data block is written to a new physical location when it is modified, in a second virtual block number space in a second contiguous region of the mass storage device, wherein the first virtual block number space and the second virtual block number space are both mapped to a single file block number space, and wherein the first information is stored in the extent-based file system format upon detecting that the second information stored in the log-structured file system format exceeds a threshold potential fragmentation; checking a volatile memory for the data by the storage server; if the data is in the volatile memory, reading the data from the volatile memory; if the data is not in the volatile memory, determining if an extent-based file system format version of the data is available in a storage subsystem; if the extent-based version of the data is available, reading the extent-based version of the data; and if the extent-based version of the data is not available, reading a log-structured version of the data stored in the storage subsystem. - View Dependent Claims (18, 19)
-
-
20. A method of updating data comprising:
-
receiving, by a storage server that executes a hybrid file system that maintains data in a log-structured file system format, in which a data block is written to a new physical location when it is modified, in a first contiguous region of a mass storage device on a storage subsystem and maintains a replica of at least a portion of the data in an extent-based file system format, in which a data block is written to a physical location on which it was previously stored when it is modified, in a second contiguous region of the mass storage device on the storage subsystem, an update of data stored in a first storage space of the first contiguous region associated with a first volume block number space in the log-structured file system format; updating the data in the first storage space; determining, by the storage server, if a replica of the data is stored in a second storage space of the second contiguous region associated with a second volume block number space in the extent-based file system format, wherein the first volume block number space and the second volume block number space are both mapped to a single file block number space; when a replica of the data is stored in the second storage space, writing to a data structure to indicate blocks in the second storage space that are to be modified to propagate the update; and in response to detecting a system condition which is independent of operations on the data stored in the log-structured file system format, modifying at least a subset of the blocks indicated in the data structure. - View Dependent Claims (21, 22)
-
-
23. A storage server comprising:
-
a network interface through which to communicate with one or more clients over a network; a storage interface through which to communicate with a mass storage device; a processor to implement a hybrid file system to store data in the mass storage device, the hybrid file system including a log-structured file system format, in which a data block is written to a new physical location when it is modified, and an extent-based file system format, in which a data block is written to a physical location on which it was previously stored when it is modified; and a memory storing instructions which, when executed by the processor, cause the server to perform a set of operations comprising; storing data in the log-structured file system format in a first location in a first contiguous region of the mass storage device, the first location being associated with a first volume block number, wherein the first volume block number is mapped to a file block number; storing a replica of the data in the extent-based file system format in a second location in a second contiguous region of the mass storage device, the second location being associated with a second volume block number, wherein the second volume block number is also mapped to the file block number, wherein the replica of the data is stored in the extent-based file system format upon determining that the data stored in the log-structured file system format exceeds a threshold potential fragmentation; and asynchronously updating the replica following changes to the data stored in the first file system.
-
Specification