Talk by Shailendra Tripathi at OpenZFS Developer Summit 2018:
ZFS is a feature-rich, transactional copy-on-write filesystem which provides integrated functionalities of a traditional filesystem and a logical volume manager with RAID implemented in the software. It deploys a dynamic stripe model for RAID which eliminates the read-modify-write induced I/O scaling bottleneck inherent to fixed-stripe RAID models. However, it has a poor space efficiency and / or causes I/O inflation especially for small sized I/Os. The integrated model provides infrastructure to minimize the net data to re-silver. Nevertheless, the logical time ordered tree walk for re-silvering may generate highly random I/O, hence, the time to finish the re-silvering may be disproportionately high. Additionally, the copy-on-write mechanism itself may cause inherent space fragmentation which creates very high variance in the latency. An intelligent dynamic stripe RAID (iRAID) scheme is presented which addresses the space & I/O inflation issue in small block size I/Os, scales the re-silvering process to utilize device bandwidth limits, and, reasonably alleviates the fragmentation problem. Not only it addresses some of the fundamental long term issues of ZFS, it also prepares the architecture to be able to exploit performance from newer higher performance storage media like NVMe.