Efficient file system metadata scanning using scoped snapshots
AssigneeMicrosoft Corporation
InventorsSarosh C. Havewala, Neal R. Christiansen, Lane Haury
Life of this patent
Estimating the term…
Abstract
Volumes of a file system remain online, and thus available for use, while being proactively error scanned for corruptions thereon. A snapshot of each volume being proactively error scanned is maintained for the volume during the proactive error scanner processing of the volume. Proactive error scanner processing only requires access to file system metadata to correctly process a volume for an identification of the corruptions thereon, and thus, a snapshot of the entire volume nerd not be generated nor maintained. The clusters of a volume that store file system metadata are identified and only these clusters are maintained in a scoped snapshot for the volume during proactive error scanning of the volume.
Claims17
A method for scoping a volume snapshot for use during corruption detection processing on the volume, wherein the volume is maintained online during corruption detection processing, and wherein the volume has at least one object comprising data of a first data type comprising file system metadata stored thereon and at least one object comprising data of a second data type comprising non-file system data stored thereon, and wherein the volume is comprised of at least two clusters, the method comprising:
- reviewing a first data structure comprising information on the objects stored on the volume for an identification of the objects stored on the volume that comprise the first data type, wherein each object stored on the volume is stored in at least one cluster of the volume;
- identifying from the first data structure all the clusters of the volume that comprise objects comprising data of the first data type;
- generating a second data structure that identifies the locations on the volume where objects stored on the volume comprise the first data type, wherein the second data structure comprises a set of snapshot flags, and wherein each flag corresponds to a respective cluster of the volume, and initializing each flag in the snapshot bitmap to a first value upon the initial generation of the set of snapshot flags, wherein the first value is an indication that the object stored in the corresponding cluster for the flag is not to be included in the snapshot generated for the volume during corruption detection processing;
- utilizing the flags of the second data structure to scope a snapshot of the volume during corruption detection processing to generate a scoped snapshot wherein the scoped snapshot comprises objects of only the first data type and wherein the scoped snapshot does not include free space on the volume and does not include objects stored on the volume comprising the second data type;
- and
- upon review of the first data structure for an identification of the objects stored on the volume that comprise the first data type, setting each flag in the second data structure, that corresponds to a cluster where an object comprising the first data type is stored, to a second value.
A method for scoping a snapshot of a volume for use during proactive error scanner processing on the volume, wherein the volume is maintained online during error scanner processing, wherein the volume has at least one object comprising a first data type comprising file system metadata stored thereon, wherein the volume has at least one object comprising a second data type comprising non file-system metadata stored thereon, wherein the volume is comprised of at least two clusters for storing objects thereon, the method comprising:
- identifying the data type for each object stored on the volume;
- identifying all the clusters of the volume that comprise objects comprising data of the first data type;
- generating a data structure that identifies the locations on the volume where objects stored on the volume comprise the first data type;
- generating a snapshot of the volume during a first phase of proactive error scanner processing;
- and
- utilizing the data structure to scope the generated snapshot of the volume during a second phase of error scanner processing to generate a scoped snapshot of the volume wherein the scoped snapshot of the volume comprises copies of objects stored on the volume comprising the first data type and wherein the scoped snapshot of the volume does not include copies of objects stored on the volume comprising the second data type.
A computing device system supporting scoped volume snapshots during corruption detection processing on a volume of the computing device system, wherein each volume of the computing device system comprises at least one cluster for storing objects on the volume, wherein the volume has objects comprising file system metadata stored thereon, wherein the volume has objects comprising non file-system data stored thereon, wherein the volume is comprised of clusters for storing the objects thereon, the computing device system comprising:
- a corruption detection processor component comprising the capability to scan a volume of the computing device system for corruptions thereon while the volume remains online and available for access by applications;
- a snapshot scope determiner component comprising the capability to identify, during a first phase, the clusters of the volume that are storing objects comprising file system metadata at the time of corruption detection processing on the volume, and to generate a data structure that identifies the locations on the volume where identified objects comprising file system metadata are stored on the volume;
- and
- a snapshot processor component comprising the capability to generate a snapshot of the volume during the first phase and to generate, from the snapshot, during a second phase, a scoped snapshot for the volume by using the data structure to copy only those objects stored in clusters of the volume that have been identified by the snapshot scope determiner as comprising file system metadata during corruption detection processing on the volume.
Dependencies are inferred from the claim text.