Method and system for block reallocation
First Claim
Patent Images
1. A system comprising:
- a storage pool comprising a first disk and a second disk;
a data management unit (DMU); and
a storage pool allocator (SPA) configured to;
receive a first request from the DMU to write a first logical block, wherein the first logical block is a first indirect block comprising a first block pointer and a first checksum, wherein the first block pointer references a second logical block, wherein the first checksum is a checksum of the second logical block;
allocate a first physical block on the first disk;
attempt to write the first logical block to the first physical block;
allocate a second physical block on the second disk, when the attempt to write the first logical block to the first physical block fails;
write the first logical block to the second physical block when the attempt to write the first logical block to the first physical block fails;
receive a second request from the DMU to write a third logical block, wherein the third logical block is a second indirect block comprising a second block pointer and a second checksum, wherein the second block pointer references the first logical block, wherein the second checksum is a checksum of the first logical block;
allocate a third physical block on the first disk; and
attempt to write the third logical block to the third physical block.
2 Assignments
0 Petitions
Accused Products
Abstract
A system includes a storage pool including a first disk and a second disk, a data management unit (DMU), and a storage pool allocator (SPA). The SPA is configured to receive a request from the DMU to write a logical block, allocate a first physical block on the first disk, attempt to write the logical block to the first physical block, and allocate a second physical block on the second disk, if the attempt to write the logical block to the first physical block fails.
-
Citations
14 Claims
-
1. A system comprising:
-
a storage pool comprising a first disk and a second disk; a data management unit (DMU); and a storage pool allocator (SPA) configured to; receive a first request from the DMU to write a first logical block, wherein the first logical block is a first indirect block comprising a first block pointer and a first checksum, wherein the first block pointer references a second logical block, wherein the first checksum is a checksum of the second logical block; allocate a first physical block on the first disk; attempt to write the first logical block to the first physical block; allocate a second physical block on the second disk, when the attempt to write the first logical block to the first physical block fails; write the first logical block to the second physical block when the attempt to write the first logical block to the first physical block fails; receive a second request from the DMU to write a third logical block, wherein the third logical block is a second indirect block comprising a second block pointer and a second checksum, wherein the second block pointer references the first logical block, wherein the second checksum is a checksum of the first logical block; allocate a third physical block on the first disk; and attempt to write the third logical block to the third physical block. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method for writing a logical block in a storage pool, comprising:
-
receiving, by a storage pool allocator (SPA), a first request from a data management unit (DMU) to write a first logical block, wherein the first logical block is a first indirect block comprising a first block pointer and a first checksum, wherein the first block pointer references a second logical block, wherein the first checksum is a checksum of the second logical block; allocating, by the SPA, a first physical block on a first disk in the storage pool; attempting to write the first logical block to the first physical block; allocating, by the SPA, a second physical block on a second disk in the storage pool, when attempting to write the first logical block to the first physical block fails; writing the first logical block to the second physical block when the attempt to write the first logical block to the first physical block fails; receiving a second request from the DMU to write a third logical block, wherein the third logical block is a second indirect block comprising a second block pointer and a second checksum, wherein the second block pointer references the first logical block, wherein the second checksum is a checksum of the first logical block; allocating a third physical block on the first disk; and attempting to write the third logical block to the third physical block. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A non-transitory computer readable medium comprising executable instructions for writing a logical block in a storage pool by:
-
receiving, by a storage pool allocator (SPA), a first request from a data management unit (DMU) to write a first logical block, wherein the first logical block is a first indirect block comprising a first block pointer and a first checksum, wherein the first block pointer references a second logical block, wherein the first checksum is a checksum of the second logical block; allocating, by the SPA, a first physical block on a first disk in the storage pool; attempting to write the first logical block to the first physical block; allocating, by the SPA, a second physical block on a second disk in the storage pool, when attempting to first logical block to the first physical block fails; writing the first logical block to the second physical block when the attempt to write the first logical block to the first physical block fails; receiving a second request from the DMU to write a third logical block, wherein the third logical block is a second indirect block comprising a second block pointer and a second checksum, wherein the second block pointer references the first logical block, wherein the second checksum is a checksum of the first logical block; allocating a third physical block on the first disk; and attempting to write the third logical block to the third physical block. - View Dependent Claims (12, 13, 14)
-
Specification