Improving Ext2 Integrity with Checksums

Brian Pellin and Chloe Schulze

Abstract: We have modified the ext2 file system to include checksumming on a per block basis. Our goal is to follow a realistic failure model, which accepts that disks can partially fail and do so silently. The addition of checksumming to ext2 detects silent data corruption and notifies the user if data has been changed on disk without his/her knowledge. This solution may also solve some other errors, such as malicious changes to data. We make no attempt to recover lost data, only to notify the user of the occurrence. Our implementation is comparable to the performance of ext2, with the addition of overhead incurred from reading, writing and computing checksums. We broke down the components of the overhead and found that for warm cache reads the computation of the checksum dominates CPU costs. Additionally, for cold cache operations, we found that the time is severely dominated by the disk positioning to read the checksums.

Available as: PDF or Postscript

Click here to download the kernel files we modified.
Click here to download our benchmarks.