摘要:
In a cluster that distributes fileset management, fileset managers will maintain a free block map and an in-flight block map to allocate blocks to clients writing to a relevant fileset. A fileset manager managing free block allocation for cluster clients that write to a fileset managed by the fileset manager. Since a clustered file system manager manages an initial free block map for the cluster (“cluster free block map”), the clustered file system manager provisions free blocks to fileset managers from the cluster free block map. The fileset manager then allocates free blocks from the provisioned free blocks to cluster clients that write to the fileset managed by the fileset manager.
摘要:
In a cluster that distributes fileset management, fileset managers will maintain a free block map and an in-flight block map to allocate blocks to clients writing to a relevant fileset. A fileset manager managing free block allocation for cluster clients that write to a fileset managed by the fileset manager. Since a clustered file system manager manages an initial free block map for the cluster (“cluster free block map”), the clustered file system manager provisions free blocks to fileset managers from the cluster free block map. The fileset manager then allocates free blocks from the provisioned free blocks to cluster clients that write to the fileset managed by the fileset manager.
摘要:
In some embodiments, a file management unit located in the operating system detects a write operation that writes the data blocks within the consistency snapshot (in main memory) to the persistent storage. The file management unit can then determine that all transactions have been completed before the write operation begins. In some instances, the file management unit then attempts to write the data blocks within the consistency snapshot to the persistent storage. The file management unit can then receive a notification that the write operation did not successfully write the data blocks from the consistency snapshot to the persistent storage. In some embodiments, the write operation is not successful because there are fewer free data blocks in the persistent storage than needed for writing the data blocks within the consistency snapshot to persistent storage. The file management can then wait a period of time. After the file management unit has waited for a period of time, it can make another attempt to write the data blocks within the consistency snapshot to the persistent storage.
摘要:
In some embodiments, a file management unit located in the operating system detects a write operation that writes the data blocks within the consistency snapshot (in main memory) to the persistent storage. The file management unit can then determine that all transactions have been completed before the write operation begins. In some instances, the file management unit then attempts to write the data blocks within the consistency snapshot to the persistent storage. The file management unit can then receive a notification that the write operation did not successfully write the data blocks from the consistency snapshot to the persistent storage. In some embodiments, the write operation is not successful because there are fewer free data blocks in the persistent storage than needed for writing the data blocks within the consistency snapshot to persistent storage. The file management can then wait a period of time. After the file management unit has waited for a period of time, it can make another attempt to write the data blocks within the consistency snapshot to the persistent storage.
摘要:
Maintaining a generation value for each fileset that is distinct from a corresponding fileset manager preserves the independence of nodes while also allowing distributed fileset management. A fileset manager can maintain a value that reflects consistency snapshots for that node (“node generation”) separately from a value that reflects consistency snapshots for a particular fileset (“fileset generation”).
摘要:
Maintaining a generation value for each fileset that is distinct from a corresponding fileset manager preserves the independence of nodes while also allowing distributed fileset management. A fileset manager can maintain a value that reflects consistency snapshots for that node (“node generation”) separately from a value that reflects consistency snapshots for a particular fileset (“fileset generation”).
摘要:
A method includes initiating committing to persistent storage of a current consistency snapshot of a plurality of data objects in a redirect-on-write file system. Each of the plurality of data objects has a first copy of at least two copies of the data having a first context of at least two contexts. The method includes receiving, during committing to storage of the current consistency snapshot, an update to a data object of the plurality of data objects. The method also includes responsive to receipt of the update to the data object, creating a second copy of data of the data object from the first copy. The second copy of the data has a second context of the at least two contexts. The method includes responsive to receipt of the update to the data object, updating, based on the update, the second copy of the data of the data object.
摘要:
A method includes initiating committing to persistent storage of a current consistency snapshot of a plurality of data objects in a redirect-on-write file system. Each of the plurality of data objects has a first copy of at least two copies of the data having a first context of at least two contexts. The method includes receiving, during committing to storage of the current consistency snapshot, an update to a data object of the plurality of data objects. The method also includes responsive to receipt of the update to the data object, creating a second copy of data of the data object from the first copy. The second copy of the data has a second context of the at least two contexts. The method includes responsive to receipt of the update to the data object, updating, based on the update, the second copy of the data of the data object.
摘要:
A method including creating a commit-in-progress context from a copy of a data object in a redirect-on-write file system; and begin storing the commit-in-progress context in a persistent storage device. The method further includes, while storing the commit-in-progress context in the persistent storage device: receiving a notification of a pending modification to the first data object, creating an update-in-progress context from a copy of the commit-in-progress context, and begin applying the modification to the update-in-progress context. The method further includes detecting that a connectivity error has occurred between the commit-in-progress context and the storage device, and in response, identifying whether the commit-in-progress context is successfully stored in the storage device. In response to identifying that the commit-in-progress context is not successfully stored: aborting the storing of the commit-in-progress context, assigning a new commit-in-progress context, and begin storing the new commit-in-progress context.
摘要:
A method including creating a commit-in-progress context from a copy of a data object in a redirect-on-write file system; and begin storing the commit-in-progress context in a persistent storage device. The method further includes, while storing the commit-in-progress context in the persistent storage device: receiving a notification of a pending modification to the first data object, creating an update-in-progress context from a copy of the commit-in-progress context, and begin applying the modification to the update-in-progress context. The method further includes detecting that a connectivity error has occurred between the commit-in-progress context and the storage device, and in response, identifying whether the commit-in-progress context is successfully stored in the storage device. In response to identifying that the commit-in-progress context is not successfully stored: aborting the storing of the commit-in-progress context, assigning a new commit-in-progress context, and begin storing the new commit-in-progress context.