NILFS is a new implementation of a log-structured file system (LFS) supporting continuous snapshotting. In addition to versioning capability of the entire file system, users can even restore files mistakenly overwritten or destroyed just a few seconds ago. Since NILFS can keep consistency like conventional LFS, it achieves quick recovery after system crashes.
NILFS creates a number of checkpoints every few seconds or per synchronous write basis (unless there is no change). Users can select significant versions among continuously created checkpoints, and can change them into snapshots which will be preserved until they are changed back to checkpoints.
There is no limit on the number of snapshots until the volume gets full. Each snapshot is mountable as a read-only file system. It is mountable concurrently with a writable mount and other snapshots, and this feature is convenient to make consistent backups during use.
Features
- Basic POSIX file system features
- Snapshots: Automatically and continuously taken, you can retrieve past state of NILFS file system, No limit on the number of snapshots until the volume gets full, Mountable concurrently with the writable mount, Quick listing
- Background Garbage Collection: Can maintain multiple snapshots, Selectable GC Policy, which is given by a userland daemon
- Quick crash recovery on-mount
- Redundant super block
- Online resizing
- FITRIM
- grub2 support
- util-linux support (blkid, libblkid, uuid mount)
- Filesystem label (nilfs-tune)