A method for dynamic striping, involving receiving a request to write a
data block into a storage pool, determining a physical disk location in
the storage pool to store the data block using a dynamic striping policy,
storing the data block at the physical disk location, and storing a first
indirect block in the storage pool, wherein the first indirect block
comprises the data block location and the data block checksum.