Current Status
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
- Mountable concurrently with the writable mount (convenient to make consistent backups during use)
- Quick listing
- Easy administration
- Background Garbage Collection
- Can maintain multiple snapshots
- Selectable GC Policy, which is given by a userland daemon.
- Quick crash recovery on-mount
- 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
- Online resizing (since Linux-3.x and nilfs-utils 2.1)
- Related utilities (by contribution of Jiro SEKIBA)
- grub2
- util-linux (blkid, libblkid, uuid mount)
- udisks, palimpsest
- Filesystem label (nilfs-tune)
TODO List
- Smarter and more efficient Garbage Collector
- fsck
- Extended attribute
- POSIX ACLs
- nilfs-debug: offline debug tool to analyze broken volume
- Better support of synch operations (fsync, etc).
- Performance improvement (Better Block I/O submission)
- Checkpoint rollback
- Checkpoint based remote replication
- FITRIM
- Less frequently updated superblock for flash devices.
- Optimization for silicon disks (e.g. SSD)
- Offline resizing
- Online defrag
- Faster inode allocation
- atime
- Shred file along with its past versions
- Design document and better developer support
- Better support of mmap and direct I/O.
- System/package undo tool support: snapper, etc.
- 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
