ABSTRACT
Reliability Mechanisms for File Systems Using Non-Volatile Memory as a Metadata Store
Kevin Greenan, Ethan L. Miller
Proceedings of the 6th ACM & IEEE Conference on Embedded Software (EMSOFT '06), October 2006,
pages 178-187.
Portable systems such as cell phones and portable media
players commonly use non-volatile RAM (NVRAM) to hold
all of their data and metadata, and larger systems can store
metadata in NVRAM to increase file system performance
by reducing synchronization and transfer overhead between
disk and memory data structures. Unfortunately, wayward
writes from buggy software and random bit flips may result
in an unreliable persistent store. We introduce two orthogonal
and complementary approaches to reliably storing file
system structures in NVRAM. First, we reinforce hardware
and operating system memory consistency by employing
page-level write protection and error correcting codes. Second,
we perform on-line consistency checking of the filesystem
structures by replaying logged file system transactions
on copied data structures; a structure is consistent if the replayed
copy matches its live counterpart. Our experiments
show that the protection mechanisms can increase fault tolerance
by six orders of magnitude while incurring an acceptable
amount of overhead on writes to NVRAM. Since
NVRAM is much faster and consumes far less power than
disk-based storage, the added overhead of error checking
leaves an NVRAM-based system both faster and more reliable
than a disk-based system. Additionally, our techniques
can be implemented on systems lacking hardware support
for memory management, allowing them to be used on lowend
and embedded systems without an MMU.








