Modern storage software is designed to guarantee data integrity and consistency based on decades of experience with the foibles of hard disk drives. However, recent research shows that flash-based SSDs may fail in different and surprising ways, breaking their contract with the software above them. This raises the question of whether the software stack's guarantees to users still hold when SSDs are substituted. In this position paper, we propose a framework to emulate the erroneous behaviors of SSDs for understanding the failure resilience of the storage software stack. We first model the device behaviors reported in previous work and create a database of realistic patterns of device errors. Based on the patterns, the framework manipulates the I/O commands at the driver level and emulates the device errors with minimal disturbance to the target software. Preliminary results show that the framework is able to emulate the device errors with high fidelity, which provides a solid foundation for further studying the failure handling of the storage software stack.
['Simeng Wang', 'Jinrui Cao', 'Danny V. Murillo', 'Yiliang Shi', 'Mai Zheng']
Emulating Realistic Flash Device Errors with High Fidelity