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)
  • FITRIM
  • Related utilities (by contribution of Jiro SEKIBA)
    • grub2
    • util-linux (blkid, libblkid, uuid mount)
    • udisks, palimpsest
    • Filesystem label (nilfs-tune)

TODO List

  • Deletion of orphan inodes
  • O_TMPFILE
  • Hole-Punching
  • clone_file_range
  • in-kernel GC
  • Smarter and more efficient Garbage Collector
  • fsck
  • Extended attribute
  • POSIX ACLs
  • Tool listing versioning history of a specified file
  • Modelated checkpointing: make a checkpoint only when file overwriting/deletion occurs
  • 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
  • Less frequently updated superblock for flash devices.
  • Optimization for silicon disks (e.g. SSD)
  • Online defrag
  • Faster inode allocation
  • atime
  • Compression of old data
  • Shred file along with its past versions
  • 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).
  • Offline resizing
  • Writable snapshots
  • Quota support
  • B-tree based directory management
  • Extent support
  • follow NILFS in RSS
  • follow NILFS in feedly
  • follow NILFS in inoReader