RAFS: A RAID-Aware File System to Reduce the Parity Update Overhead for SSD RAID

Chenlei Tang1,a, Jiguang Wan1,b, Yifeng Zhu2, Zhiyuan Liu1,c, Peng Xu1,d, Fei Wu1,e and Changsheng Xie1,f
1Wuhan National Laboratory for Optoelectronics, Huazhong University of Science and Technology
achenleitang@hust.edu.cn
bjgwan@hust.edu.cn
czhiyuanliu@hust.edu.cn
dxp04193@hust.edu.cn
ewufei@hust.edu.cn
fcs_xie@hust.edu.cn
2Tianjin Chengjian University, University of Maine
Yifeng.Zhu@maine.edu

ABSTRACT


In a parity-based SSD RAID, small write requests not only accelerate the wear-out of SSDs due to extra writes for updating parities but also deteriorate performance due to associated expensive garbage collection. To mitigate the problem of small writes, a buffer is often added at the RAID controller to absorb overwrites and writes performed to the same stripe. However, this approach achieves only suboptimal efficiency because file layout information is invisible at the block level.

This paper proposes RAFS, a RAID-aware file system, which utilizes a RAID-friendly data layout to improve the reliability and performance of SSD-based RAID 5. By leveraging delayed allocation of modern file systems, RAFS employs a stripe-aware buffer policy to coalesce writes to the same file. To reduce parity updates, RAFS compacts buffered updates and flushes back in stripe units to mitigate the parity update overhead. RAFS adopts a stripe-granularity allocation scheme to align writes to stripe boundaries. Experimental results show that RAFS can improve throughput by up to 90%, compared to Ext4.



Full Text (PDF)