UBIFS

Unsorted Block Image File System (UBIFS)は、生のフラッシュメモリメディアに用いられるファイルシステムであるUBIFS does not work on top of block devices, only raw flash, 。JFFS2の後継であり、LogFSと競合関係にある。2007年の初頭に開発が始められ、2008年10月に最初の安定版がLinuxカーネル 2.6.27向けにリリースされたUBIFS patch submission。UBIFSは、ハンガリーのの協力により、ノキアの技術者によって開発された。

 概要 
UBIFSはUnsorted Block Image (UBI) デバイスの上で動作し、UBIデバイスはMemory Technology Device(MTD)の上で動作する。MTDを直接には使用しないThree layers are involved, MTD, UBI, UBIFS。UBIFSとJFFS2の大きな違いは、UBIFSがライトキャッシュ (write caching) に対応していることhttp://www.linux-mtd.infradead.org/doc/ubifs.html#L_writebackと、UBIFSが未使用エリアの計算で悲観的な方に誤ることであるWhy df reports too little free space。大容量NAND型フラッシュメモリで、UBIFSはJFFS2よりもより良く動作する傾向があるhttp://www.linux-mtd.infradead.org/doc/ubifs.html#L_scalability Scalability of UBIFS vs. JFFS2。これは、UBIFSの設計の「速いマウント、大きなファイルへの速いアクセス、書き込み速度の向上」という目標の結果である。UBIFSは、伝送時データ圧縮(on-the-fly compression)や回復性、電源断への耐性についても、JFFS2の性能を維持しているか向上している。UBIFSの伝送時データ圧縮には、zlib（deflateアルゴリズム）やLZOが使用できる。

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

 Unsorted Block Image 
Unsorted Block Image(UBI)は、フラッシュメモリデバイスの消去ブロック(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に対応した。fastmapは、それ以前に全てのフラッシュ装置をスキャンしてメモリ上に作られる情報のディスク上のバージョンを維持する。情報の取得に失敗した場合には完全スキャンを行う。古いUBIシステムは単にfastmapの情報を無視する。

 関連項目 
 フラッシュファイルシステム



 外部リンク 
 Home page
 UBIFS experiments on the XO Laptop (OLPC)
 University of Szeged page

 出典 

Category:Linuxのファイルシステム
Category:フラッシュファイルシステム
Category:2008年のソフトウェア