Storage pool scrubbing with concurrent snapshots
First Claim
1. A non-transitory computer readable storage medium having a computer readable program code embodied therein, the computer readable program code adapted to be executed by a processor to perform a method, the method comprising:
- loading a scrub queue with a plurality of identifiers corresponding to a plurality of datasets in a storage pool;
selecting a first identifier from the scrub queue, wherein the first identifier corresponds to a first dataset, wherein the first dataset is a dataset of the plurality of datasets;
initiating a scrubbing of the first dataset, wherein the first dataset is a hierarchical block tree (HBT) comprises;
a plurality of data blocks and at least one indirect block, wherein the indirect block comprises a first block pointer that references at least one of the plurality of data blocks, and wherein the first block pointer comprises a birth time associated with the at least one of the plurality of data blocks, anda root block comprising a second block pointer referencing the at least one indirect block, wherein the second block pointer comprises a birth time associated with the at least one indirect block; and
upon receiving an indication of a requirement to pause the scrubbing;
pausing the scrubbing of the first dataset;
creating a bookmark recording of a last location within the first dataset that was scrubbed before pausing the scrubbing of the first dataset;
detecting at least one change among the plurality of datasets in the storage pool; and
performing a modification to one of the plurality of identifiers in the scrub queue in response to detecting the at least one change.
2 Assignments
0 Petitions
Accused Products
Abstract
A method for scrubbing a storage pool is disclosed. The method includes loading a scrub queue with a number of identifiers corresponding to a number of datasets, selecting a first identifier from the scrub queue, where the first identifier corresponds to a first dataset, initiating a scrubbing of the first dataset. The method further includes, upon receiving an indication of a requirement to pause the scrubbing, pausing the scrubbing of the first dataset, creating a bookmark recording a last location within the first dataset that was scrubbed before pausing the scrubbing of the first dataset, detecting at least one change to a storage pool, and performing a modification in response to detecting the at least one change to the storage pool.
73 Citations
17 Claims
-
1. A non-transitory computer readable storage medium having a computer readable program code embodied therein, the computer readable program code adapted to be executed by a processor to perform a method, the method comprising:
-
loading a scrub queue with a plurality of identifiers corresponding to a plurality of datasets in a storage pool; selecting a first identifier from the scrub queue, wherein the first identifier corresponds to a first dataset, wherein the first dataset is a dataset of the plurality of datasets; initiating a scrubbing of the first dataset, wherein the first dataset is a hierarchical block tree (HBT) comprises; a plurality of data blocks and at least one indirect block, wherein the indirect block comprises a first block pointer that references at least one of the plurality of data blocks, and wherein the first block pointer comprises a birth time associated with the at least one of the plurality of data blocks, and a root block comprising a second block pointer referencing the at least one indirect block, wherein the second block pointer comprises a birth time associated with the at least one indirect block; and upon receiving an indication of a requirement to pause the scrubbing; pausing the scrubbing of the first dataset; creating a bookmark recording of a last location within the first dataset that was scrubbed before pausing the scrubbing of the first dataset; detecting at least one change among the plurality of datasets in the storage pool; and performing a modification to one of the plurality of identifiers in the scrub queue in response to detecting the at least one change. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A system, comprising:
-
a processor; a computer readable storage medium having computer readable program code embodied therein, the computer readable program code adapted to, when executed by the processor, implement a method, the method comprising; loading a scrub queue with a plurality of identifiers corresponding to a plurality of datasets to be scrubbed, wherein the plurality of datasets are stored in a storage pool; selecting a first identifier from the scrub queue, wherein the first identifier corresponds to a first dataset, wherein the first dataset is an oldest dataset of the plurality of datasets; initiating a scrubbing of the first dataset, wherein the first dataset is a hierarchical block tree (HBT) comprises; a plurality of data blocks and at least one indirect block, wherein the indirect block comprises a first block pointer that references at least one of the plurality of data blocks, and wherein the first block pointer comprises a birth time associated with the at least one of the plurality of data blocks, and a root block comprising a second block pointer referencing the at least one indirect block, wherein the second block pointer comprises a birth time associated with the at least one indirect block; and upon receiving an indication of a requirement to pause the scrubbing; pausing the scrubbing of the first dataset; creating a bookmark recording of a last location within the first dataset that was scrubbed before pausing the scrubbing of the first dataset; detecting at least one change among the plurality of datasets in the storage pool; and performing a modification to one of the plurality of identifiers in the scrub queue in response to detecting the at least one change. - View Dependent Claims (16, 17)
-
Specification