A method for writing a logical data block to a storage pool that includes a RAID log and a RAID slab, each of which spans multiple physical disks (308A-E; 312A-312E), wherein the multiple physical disks are segmented into physical blocks, the RAID slab providing storage for logical blocks that are copied from the RAID log, the RAID log comprising physical log blocks, each physical log block being provided on one of the multiple physical disks, and the RAID slab comprising physical slab blocks, each physical slab block being provided on one of the multiple physical disks and being large enough to store one or more logical blocks, the method comprising: receiving a first request to write a logical data block to the storage pool; allocating, in the RAID log, a number of a first plurality of the physical log blocks (310A-310T) required to store the logical data block and a parity block for the logical data block; writing the logical data block and the at least one parity block to the first plurality of physical log blocks in the RAID log; allocating space in one of the physical slab blocks in the RAID slab for the logical data block; copying data comprising the logical data block to the allocated space in the physical slab block; updating, in the RAID slab, a first checksum corresponding to the physical slab block based on the data copied to the physical slab block; updating, in the RAID slab, a parity block corresponding to a data stripe comprising the physical slab block based on the data copied to the physical slab block; associating, with the space in the physical slab block, a reference to the first plurality of physical log blocks; identifying an address of the space in the physical slab block comprising the logical data block; calculating a second checksum corresponding to the logical data block; receiving a second request to write a logical indirect block to the storage pool, wherein the logical indirect block comprises the second checksum of the logical data block and the address of the space in the physical slab block; and writing the logical indirect block to a second plurality of physical log blocks. receiving a first request to write a logical data block to the storage pool; allocating, in the RAID log, a number of a first plurality of the physical log blocks (310A-310T) required to store the logical data block and a parity block for the logical data block; writing the logical data block and the at least one parity block to the first plurality of physical log blocks in the RAID log; allocating space in one of the physical slab blocks in the RAID slab for the logical data block; copying data comprising the logical data block to the allocated space in the physical slab block; updating, in the RAID slab, a first checksum corresponding to the physical slab block based on the data copied to the physical slab block; updating, in the RAID slab, a parity block corresponding to a data stripe comprising the physical slab block based on the data copied to the physical slab block; associating, with the space in the physical slab block, a reference to the first plurality of physical log blocks; identifying an address of the space in the physical slab block comprising the logical data block; calculating a second checksum corresponding to the logical data block; receiving a second request to write a logical indirect block to the storage pool, wherein the logical indirect block comprises the second checksum of the logical data block and the address of the space in the physical slab block; and writing the logical indirect block to a second plurality of physical log blocks.