Supported 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 as read-only file systems
- Simultaneously mountable
- Mountable concurrently with the writable mount (convenient for online backup)
- Quick listing
- Easy administration
- Online disk space reclamation
- Can maintain multiple snapshots
- Selectable GC Policy, which is given by a userland daemon.
- Quick crash recovery on-mount
- Less use of barrier with keeping reliability; barrier is enabled by default.
- Read-ahead for meta data files as well as data files
- Block sizes smaller than page size (e.g. 1KB or 2KB)
- Redundant super block
- Related utilities (by contribution of Jiro SEKIBA)
- grub2
- util-linux-ng (blkid, libblkid, uuid mount)
- udisks, palimpsest
TODO List
- Filesystem label (work in progress)
- parted (work in progress)
- Checkpoint rollback
- Checkpoint based remote replication
- Performance improvement (Better Block I/O submission)
- Extended attribute
- POSIX ACLs
- Quota
- atime
- Optimization for silicon disks (e.g. SSD)
- fsck
- Faster inode allocation
- Online resizing
- Online defrag
- Shred file along with its past versions
- filesystem freeze
- Variety of Garbage Collection policies
- Design document and better developer support
- Better support of fsync, mmap, and direct I/O.
- Unified user command ``nilfs'' (rather than separate commands like lscp, rmcp, mkcp, etc).
- "Time-based" tools (e.g. tls, tdiff, tgrep, tfind, ttar and so on. They come from the Elephant file system)
- Time-machine like browser.
- Time slider
Long term TODO list:
- Writable snapshots
- Snapshot tagging
- Quota support
- B-tree based directory management
- Extent support
