開発状況

サポート機能

  • POSIX ファイルシステムとしての基本機能
  • スナップショット
    • 自動的かつ連続的に生成、過去のファイルシステム状態が取得可能。
    • スナップショット数は無制限(ボリューム容量が一杯になるまで)
    • リードオンリーファイルシステムとしてマウント可能
    • 現在のファイルシステムツリーと同時にマウント可能(一貫性のとれたバックアップをとるのに便利)
    • 高速な一覧表示
    • 簡単なスナップショット管理
  • バックグラウンドで動作可能なガベージコレクション機能(GC)
    • 複数のスナップショットを保持したまま不要な世代を消去
    • GC のポリシーはユーザランドプログラムにより置換/変更可能
  • 電源断/システムクラッシュ後の高速かつ自動的なリカバリ
  • ユーザデータおよびメタデータの先読み
  • ページサイズ以下のブロックサイズのサポート(1KB、2KB ブロックのサポート)
  • スーパブロックの冗長化
  • オンラインリサイズ (Linux-3.x と nilfs-utils 2.1 以降)
  • FITRIM
  • 関連ユーティリティのサポート (Jiro SEKIBA さんに感謝)
    • grub2
    • util-linux (blkid, libblkid, uuid マウント)
    • udisks, palimpsest
    • ファイルシステムラベル (nilfs-tune)

TODO リスト

  • orphan inode の削除
  • O_TMPFILE
  • Hole-Punching
  • clone_file_range
  • カーネル内GC
  • より賢く、効率的なガベージコレクタ(GC)
  • fsck
  • 拡張属性
  • POSIX ACL
  • 指定されたファイルの改訂履歴をリストするツール
  • 適度なチェックポイント作成: ファイルが上書きや削除された場合のみチェックポイントを作成する
  • nilfs-debug: ボリューム解析用のオフラインのデバッグツール
  • 同期操作の改良 (fsync その他).
  • 性能改善
  • チェックポイントロールバック
  • チェックポイントベースのリモートリプリケーション機能
  • スーパブロックの更新頻度抑制(フラッシュデバイス向け)
  • (SSD などの)半導体ディスク向けの最適化
  • オンラインデフラグ
  • inode 割り当て処理の改良
  • atime
  • 古いデータの圧縮
  • 過去のバージョンを含むファイルの消去
  • mmap と direct I/O の改良
  • システム/パッケージの UNDO ツール対応: snapper、その他
  • ユーティリティコマンドの統合 (nilfs コマンド)
  • オフラインリサイズ
  • 書き込み可能スナップショット
  • クォータ対応
  • B-tree ベースのディレクトリ管理
  • エクステント対応
  • follow NILFS in RSS
  • follow NILFS in feedly
  • follow NILFS in inoReader