NILFS

開発者|  NTTサイバースペース研究所
正式名|  New Implementation of a Log-structured File System
導入|  2009年6月 (Linux)

領域管理|  B木

最大ファイル サイズ|  8 EiB

対応OS|  Linux, NetBSD
テンプレートを表示

NILFS（New Implementation of a Log-structured File System）またはNILFS2は Linux 向けのログ構造ファイルシステムであり、バージョニングファイルシステムの機能も持つ。NILFS は NTTサイバースペース研究所（日本電信電話の一部門）によって開発され、GNU General Public License (GPL) のもとでリリースされている。

Linuxカーネル2.6.30にて、同じく日本発のTOMOYO Linuxと共にメインラインにマージされた。

## 特徴

[編集]

ログ構造化ファイルシステムとして、NILFS は連続的なログのようなフォーマットですべてのデータを書き込み、それらは追記されるのみで、決して上書きされない。このアプローチは従来の Linux ファイルシステムで起こるデータ損失を最小限にするのと同様にシーク時間を減らすように設計されている。例えば、 ext3 ファイルシステム上で書き込み操作中にシステムがクラッシュするとデータ損失が起こる。システムが再起動したとき、書き込みは完了しておらず、どの部分データ書き込みも失われたとジャーナルは書き込む。

Solaris オペレーティングシステムによって使われる UFS ファイルシステムのような、一部のファイルシステムはデータの「スナップショット」機能を提供し、そのようなデータ損失を防ぐが、機能を使うためにファイルシステムの操作を一時的に止めなければならず、パフォーマンスを落とす。それに対して、NTT 研究所によれば、NILFS は「サービスを中断することなくファイルシステムの瞬間的な状態を連続的で自動的に[保存]できる」[1]。

NILFS が連続的に保存する「瞬間的な状態」は実際に読み込み専用でマウントでき、同時に実際のファイルシステムは読み書き可能でマウントされる。これはハードウェア障害や他のシステムのクラッシュ後のデータ回復に役立つ機能である。対話的な NILFS の「検査」ユーティリティの「lscp」（「list checkpoint」）コマンドは最初にチェックポイントのアドレス、以下の場合「2048」を見つけるのに使われる。

# inspect /dev/sda2
...
nilfs> listcp
1     6 Tue Jul 12 14:55:57 2005 MajorCP|LogiBegin|LogiEnd
2048  2352 Tue Jul 12 14:55:58 2005 MajorCP|LogiEnd
...
nilfs> quit

そしてチェックポイントのアドレスはチェックポイントをマウントするのに使われる。

# mount -t nilfs -r -o cp=2048 /dev/sda2 /nilfs-cp
# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             70332412   8044540  62283776  12% /nilfs
/dev/sda2             70332412   8044540  62283776  12% /nilfs-cp

## 主張された付加的な特徴

[編集]

* 速い書き込みと回復時間
* ハードウェア障害におけるファイルデータやシステムの一貫性に対する最小限の破損
* 正しい順番のデータやメタデータの書き込み
* ファイルや inode のブロックは B木構造で管理されている
* 巨大なファイルを作成したり保存したりできる
* 64ビット長のワードサイズで内部データが処理される

## 脚注

[編集]

1. ^ “An article about NILFS”. 2008年7月28日閲覧。

ポータル FLOSS

## 外部リンク

[編集]

* 公式ウェブサイト
* NILFS Development \- GitHub
* Manjaro tutorial NILFS: A filesystem designed to minimize the likelyhood of data loss
* “An Article Describing High-level Features”. 2013年1月3日時点のオリジナルよりアーカイブ。2013年1月3日閲覧。
* “World's Largest TELCO Joins Open Source Development Labs”. 2013年1月27日時点のオリジナルよりアーカイブ。2013年1月27日閲覧。

* 表
* 話
* 編
* 歴

ファイルシステム

ディスク|

* Advanced Disc Filing System（英語版）
* AdvFS（英語版）
* APFS
* Bcachefs
* Be File System（英語版）
* Btrfs
* CrossDOS（英語版）
* Disc Filing System（英語版）
* Episode（英語版）
* EFS
* HPFS
* ext
* ext2
* ext3
* ext3cow
* ext4
* FAT
* FAT12
* FAT16
* FAT32
* exFAT
* Files-11
* HAMMER
* HFS
* HFS Plus
* IBM General Parallel File System
* JFS
* Macintosh File System（英語版）
* MINIX
* NetWare File System（英語版）
* NILFS
* Novell Storage Service
* NTFS
* QFS
* QNX4FS
* ReFS
* ReiserFS
* Reiser4
* SpadFS（英語版）
* UBIFS
* UFS
* VERITAS File System
* Write Anywhere File Layout（英語版）
* XFS
* Xsan
* ZFS

光ディスク / 磁気テープ|

* HSF
* ISO 9660
* ISO 13490
* UDF
* LTFS

Flashメモリ / SSD|

* APFS
* FAT
* exFAT
* CHFS
* TFAT
* EROFS
* FFS2
* F2FS
* JFFS
* JFFS2
* LogFS
* NILFS
* NVFS
* YAFFS
* UBIFS

分散ファイルシステム|

* Coda
* CXFS（英語版）
* GFS2
* GlusterFS
* Google File System
* OCFS2
* QFS
* Xsan

ネットワーク型|

* AFS
* OpenAFS
* AFP
* DFS
* GPFS
* GlusterFS
* Google File System
* Lustre
* NCP
* NFS
* POHMELFS
* Hadoop
* Plan 9 FS
* SMB (CIFS)
* SSHFS

特殊用途|

* cramfs
* Dokan
* EROFS
* FUSE
* SquashFS
* UMSDOS
* UnionFS
* aufs
* initrd

疑似・仮想|

* configfs
* devfs
* procfs
* specfs
* sysfs
* tmpfs
* WinFS

暗号化|

* EncFS
* EFS
* ZFS
* UFS2

その他|

* ファイルシステムの比較（英語版）

カテゴリ