This paper describes the design and implementation of the NILFS logstructured file system. NILFS provides file system snapshots at any point in time and protects data from software failures and user errors. The logstructured disk layout maintains on-disk data structures consistently and achieves fast recovery from system failures. Unlike other log-structured file systems, the cleaner can reclaim obsolete disk space efficiently under the existence of multiple snapshots using disk address translation mechanisms. The results of evaluation experiments show that the performance of NILFS is comparable to that of Ext3.