Method and system for metadata-based resilvering
First Claim
Patent Images
1. A method for resilvering a storage pool, comprising:
- determining whether any of a first plurality of blocks in the storage pool, comprising metadata, require resilvering, wherein resilvering comprises synchronizing unsynchronized data on mirrored disks in the storage pool;
determining whether any of a second plurality of blocks in the storage pool, comprising data, require resilvering;
resilvering all of the first plurality of blocks that require resilvering; and
resilvering all of the second plurality of blocks that require resilvering, wherein all of the first plurality of blocks that require resilvering are resilvered prior to resilvering any of the second plurality of blocks,wherein the first plurality of blocks comprises;
a root block;
a third plurality of blocks comprising global file system metadata, wherein the root block references a block in the third plurality of blocks and wherein the global file system metadata comprises metadata for a plurality of file systems; and
a fourth plurality of blocks comprising file system metadata, wherein a block in the third plurality of blocks references a block in the fourth plurality of blocks, wherein the file system metadata is associated with one of the plurality of file systems, and wherein unsynchronized global file system metadata in the third plurality of blocks is resilvered prior to unsynchronized file system metadata in the fourth plurality of blocks, andwherein the second plurality of blocks comprises;
a plurality of file root blocks, each file root block of the plurality of file root blocks being for a single file in the one of the plurality of file systems, wherein each file root block is referenced by a block in the fourth plurality of blocks,a fifth plurality of blocks comprising file metadata for the corresponding single file, wherein each of the fifth plurality of blocks is referenced by one of the plurality of file root blocks, anda sixth plurality of blocks comprising data for the corresponding single file, wherein a block in the fifth plurality of blocks references a block in the sixth plurality of blocks, and wherein unsynchronized file metadata in the fifth plurality of blocks is resilvered prior to unsynchronized file system data in the sixth plurality of blocks.
1 Assignment
0 Petitions
Accused Products
Abstract
A method for resilvering a storage pool includes determining whether any of a first plurality of blocks in the storage pool, comprising metadata, require resilvering, determining whether any of a second plurality of blocks in the storage pool, comprising data, require resilvering, resilvering all of the first plurality of blocks that require resilvering, and resilvering all of the second plurality of blocks that require resilvering, wherein all of the first plurality of blocks that require resilvering are resilvered prior to resilvering any of the second plurality of blocks.
-
Citations
15 Claims
-
1. A method for resilvering a storage pool, comprising:
-
determining whether any of a first plurality of blocks in the storage pool, comprising metadata, require resilvering, wherein resilvering comprises synchronizing unsynchronized data on mirrored disks in the storage pool; determining whether any of a second plurality of blocks in the storage pool, comprising data, require resilvering; resilvering all of the first plurality of blocks that require resilvering; and resilvering all of the second plurality of blocks that require resilvering, wherein all of the first plurality of blocks that require resilvering are resilvered prior to resilvering any of the second plurality of blocks, wherein the first plurality of blocks comprises; a root block; a third plurality of blocks comprising global file system metadata, wherein the root block references a block in the third plurality of blocks and wherein the global file system metadata comprises metadata for a plurality of file systems; and a fourth plurality of blocks comprising file system metadata, wherein a block in the third plurality of blocks references a block in the fourth plurality of blocks, wherein the file system metadata is associated with one of the plurality of file systems, and wherein unsynchronized global file system metadata in the third plurality of blocks is resilvered prior to unsynchronized file system metadata in the fourth plurality of blocks, and wherein the second plurality of blocks comprises; a plurality of file root blocks, each file root block of the plurality of file root blocks being for a single file in the one of the plurality of file systems, wherein each file root block is referenced by a block in the fourth plurality of blocks, a fifth plurality of blocks comprising file metadata for the corresponding single file, wherein each of the fifth plurality of blocks is referenced by one of the plurality of file root blocks, and a sixth plurality of blocks comprising data for the corresponding single file, wherein a block in the fifth plurality of blocks references a block in the sixth plurality of blocks, and wherein unsynchronized file metadata in the fifth plurality of blocks is resilvered prior to unsynchronized file system data in the sixth plurality of blocks. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A system, comprising:
-
a storage pool; a first plurality of blocks in the storage pool, comprising metadata; a second plurality of blocks in the storage pool, comprising data; and a file system configured to; determine whether any of the first plurality of blocks require resilvering, wherein resilvering comprises synchronizing unsynchronized data on mirrored disks in the storage pool; determine whether any of the second plurality of blocks require resilvering; resilver all of the first plurality of blocks that require resilvering; and resilver all of the second plurality of blocks that require resilvering, wherein all of the first plurality of blocks that require resilvering are resilvered prior to resilvering any of the second plurality of blocks, wherein the first plurality of blocks comprises; a root block; a third plurality of blocks comprising global file system metadata, wherein the root block references a block in the third plurality of blocks and wherein the global file system metadata comprises metadata for a plurality of file systems; and a fourth plurality of blocks comprising file system metadata, wherein a block in the third plurality of blocks references a block in the fourth plurality of blocks, wherein the file system metadata is associated with one of the plurality of file systems, and wherein unsynchronized global file system metadata in the third plurality of blocks is resilvered prior to unsynchronized file system metadata in the fourth plurality of blocks, and wherein the second plurality of blocks comprises; a plurality of file root blocks, each file root block of the plurality of file root blocks being for a single file in the one of the plurality of file systems, wherein each file root block is referenced by a block in the fourth plurality of blocks, a fifth plurality of blocks comprising file metadata for the corresponding single file, wherein each of the fifth plurality of blocks is referenced by one of the plurality of file root blocks, and a sixth plurality of blocks comprising data for the corresponding single file, wherein a block in the fifth plurality of blocks references a block in the sixth plurality of blocks, and wherein unsynchronized file metadata in the fifth plurality of blocks is resilvered prior to unsynchronized file system data in the sixth plurality of blocks. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A non-transitory computer readable medium comprising executable instructions for resilvering a storage pool by:
-
determining whether any of a first plurality of blocks in the storage pool, comprising metadata, require resilvering, wherein resilvering comprises synchronizing unsynchronized data on mirrored disks in the storage pool; determining whether any of a second plurality of blocks in the storage pool, comprising data, require resilvering; resilvering all of the first plurality of blocks that require resilvering; and resilvering all of the second plurality of blocks that require resilvering, wherein all of the first plurality of blocks that require resilvering are resilvered prior to resilvering any of the second plurality of blocks; wherein the first plurality of blocks comprises;
a root block;a third plurality of blocks comprising global file system metadata, wherein the root block references a block in the third plurality of blocks and wherein the global file system metadata comprises metadata for a plurality of file systems; and a fourth plurality of blocks comprising file system metadata, wherein a block in the third plurality of blocks references a block in the fourth plurality of blocks, wherein the file system metadata is associated with one of the plurality of file systems, and wherein unsynchronized global file system metadata in the third plurality of blocks is resilvered prior to unsynchronized file system metadata in the fourth plurality of blocks, and wherein the second plurality of blocks comprises; a plurality of file root blocks, each file root block of the plurality of file root blocks being for a single file in the one of the plurality of file systems, wherein each file root block is referenced by a block in the fourth plurality of blocks, a fifth plurality of blocks comprising file metadata for the corresponding single file, wherein each of the fifth plurality of blocks is referenced by one of the plurality of file root blocks, and a sixth plurality of blocks comprising data for the corresponding single file, wherein a block in the fifth plurality of blocks references a block in the sixth plurality of blocks, and wherein unsynchronized file metadata in the fifth plurality of blocks is resilvered prior to unsynchronized file system data in the sixth plurality of blocks. - View Dependent Claims (12, 13, 14, 15)
-
Specification