UBIFS

UBIFS
開発者 ノキアセゲド大学英語版の協力による)
正式名 Unsorted Block Image File System
導入 2008年 (Linuxカーネル 2.6.27)
構造
ディレクトリ B+木
限度
ファイル名の文字 スラッシュ("/")に続けてNULL以外の全ての文字
特徴
フォーク Yes
属性 Yes
パーミッション POSIX
対応OS Linux
テンプレートを表示

Unsorted Block Image File System (UBIFS)は、生のフラッシュメモリメディアに用いられるファイルシステムである[1]JFFS2の後継であり、LogFSと競合関係にある[2]。2007年の初頭に開発が始められ、2008年10月に最初の安定版がLinuxカーネル 2.6.27向けにリリースされた[3]。UBIFSは、ハンガリーのセゲド大学英語版の協力により、ノキアの技術者によって開発された。

概要

UBIFSはUnsorted Block Image (UBI) デバイスの上で動作し、UBIデバイスはMemory Technology Device(MTD)の上で動作する。MTDを直接には使用しない[4]。UBIFSとJFFS2の大きな違いは、UBIFSがライトキャッシュ (write caching) に対応していること[5]と、UBIFSが未使用エリアの計算で悲観的な方に誤ることである[6]。大容量NAND型フラッシュメモリで、UBIFSはJFFS2よりもより良く動作する傾向がある[7]。これは、UBIFSの設計の「速いマウント、大きなファイルへの速いアクセス、書き込み速度の向上」という目標の結果である[8]。UBIFSは、伝送時データ圧縮(on-the-fly compression)や回復性、電源断への耐性についても、JFFS2の性能を維持しているか向上している[8]。UBIFSの伝送時データ圧縮には、zlibdeflateアルゴリズム)やLZOが使用できる。

JFFS2はファイルシステムのインデックスをメモリに保持するが、UBIFSはフラッシュに格納する[9]。JFFS2ではボリュームをマウントするたびにテーブルを作り直す必要があり、これがJFFS2のスケーラビリティに直接影響を与えている。また、JFFS2のテーブルは、いくつかのイメージが使えない場合のために十分なシステムRAMを消費する。

Unsorted Block Image

Unsorted Block Image(UBI)[10]は、フラッシュメモリデバイスの消去ブロック(erase block)の管理レイヤである。UBIは、NANDフラッシュの不良ブロック(bad block)を追跡し、ウェアレベリングを提供する。ウェアレベリングは、フラッシュデバイスの全体にわたって消去や書き込みが行えるようにする。UBIは物理的なフラッシュの消去ブロックにマッピングする、高レイヤの論理消去ブロック(LEB: logical erase block)を提供する。UBIは、UBIFSにおいてウェアレベリングや不良ブロックを気にする必要がないように、UBIFSのために設計された。しかし、UBIはNANDフラッシュでsquashfsを使う場合にも有用である。squashfsはNANDフラッシュの不良ブロックを意識しない。

fastmap

UBIはLinux 3.7でfastmapに対応した[11]fastmapは、それ以前に全てのフラッシュ装置をスキャンしてメモリ上に作られる情報のディスク上のバージョンを維持する。情報の取得に失敗した場合には完全スキャンを行う。古いUBIシステムは単にfastmapの情報を無視する。

関連項目

外部リンク

出典

  1. ^ UBIFS does not work on top of block devices, only raw flash, [1]
  2. ^ Jonathan Corbet (2 April 2008). “UBIFS”. 2016年3月2日閲覧。
  3. ^ UBIFS patch submission
  4. ^ Three layers are involved, MTD, UBI, UBIFS
  5. ^ http://www.linux-mtd.infradead.org/doc/ubifs.html#L_writeback
  6. ^ Why df reports too little free space
  7. ^ http://www.linux-mtd.infradead.org/doc/ubifs.html#L_scalability Scalability of UBIFS vs. JFFS2
  8. ^ a b UBIFS File System”. p. 9 (24 September 2008). 2016年3月2日閲覧。
  9. ^ Adrian Hunter (27 March 2008). “A Brief Introduction to the Design of UBIFS”. 2016年3月2日閲覧。
  10. ^ UBI Documentation”. 2016年3月2日閲覧。
  11. ^ UBI: Fastmap request for inclusion”. 2016年3月2日閲覧。