| 開発者 | ノキア、セゲド大学の協力を得て |
|---|---|
| フルネーム | 未ソートブロックイメージファイルシステム |
| 紹介された | 2008年Linuxカーネル2.6.27 |
| 構造 | |
| ディレクトリの内容 | B+ ツリー |
| 制限 | |
| ファイル名に使用できる 文字 | NUL とスラッシュ「/」を除く任意のバイト[引用が必要] |
| 特徴 | |
| フォーク | はい |
| 属性 | はい |
| ファイルシステムの 権限 | Unix パーミッション |
| 透過的な 圧縮 | はい |
| 他の | |
| サポートされている オペレーティングシステム | リナックス |
UBIFS ( UBI File System、より正確にはUnsorted Block Image File System ) は、管理されていないフラッシュメモリデバイス用のフラッシュファイルシステムです。[1] UBIFSはUBI (unsorted block image) レイヤーの上で動作し、[2] UBIはメモリテクノロジーデバイス(MTD) レイヤーの上で動作します。 [3]このファイルシステムは、ハンガリーのセゲド大学 の協力を得て、ノキアのエンジニアによって開発されました。開発は2007年に本格的に始まり、2008年10月に Linuxカーネル2.6.27の最初の安定版がリリースされました。 [4]
UBIFSとJFFS2の2つの大きな違いは、UBIFSが書き込みキャッシュをサポートしていることと、[5] UBIFSが空き容量の計算で悲観的な傾向があることです。[6]大容量のNANDフラッシュメモリデバイス の場合、UBIFSはJFFS2よりもパフォーマンスが優れています。 [7]これは、UBIFSの設計目標の結果です。[8]マウントの高速化、大容量ファイルへの迅速なアクセス、書き込み速度の向上。UBIFSはまた、JFFS2のオンザフライ圧縮、回復性、電源障害耐性を維持または改善しています。 [ 8] UBIFSのオンザフライデータ圧縮では、zlib(deflateアルゴリズム)、LZO、またはZstandardを使用できます。
UBIFSはインデックスをフラッシュに保存しますが、JFFS2はファイルシステムのインデックスをメモリに保存します。[9]これは、ボリュームがマウントされるたびにテーブルを再構築する必要があるため、 JFFS2のスケーラビリティに直接影響します。また、JFFS2テーブルはシステムRAMを大量に消費し、一部のイメージが使用できなくなる可能性があります。
ユービーアイ
UBI ( Unsorted Block Images ) [10]は、フラッシュメモリデバイスの消去ブロック管理層です。UBI は、 NAND フラッシュメモリの不良ブロックを追跡し、ウェアレベリングを提供するという 2 つの目的を果たします。ウェアレベリングは、消去と書き込みをフラッシュデバイス全体に広げます。UBI は、論理消去ブロックを上位層に提示し、これを物理消去ブロックにマップします。UBI は、UBIFS がウェアレベリングや不良ブロックを処理する必要がないように、特に UBIFS 用に作成されました。ただし、UBI はsquashfsおよび NAND フラッシュでも役立つ場合があります。squashfsはNAND フラッシュの不良ブロックを認識しません。
UBI のドキュメントでは、これは完全なフラッシュ変換レイヤー(FTL)ではないと説明されています。FTL は不良ブロックやウェア レベリングも処理しますが、FTL が提供するインターフェイスは、完全に独立して書き込むことができる小さな (通常 512 バイト) セクターを持つブロック デバイスです。対照的に、UBI のインターフェイスは、消去ブロックとプログラム可能なページ (サイズが異なり、通常のブロック デバイス セクターよりもはるかに大きい) を直接公開するため、UBI を使用するファイル システムは、書き込み前にブロックを消去する必要があるサイズと制限を認識している必要があります。
UBI は、ある意味では論理ボリューム マネージャーに似ています。通常の使用法では、フラッシュを固定領域に分割するのではなく、単一の UBI デバイスがフラッシュ全体 (ブートローダー用に予約された固定位置の数ページを除く) にまたがり、UBI デバイス内に複数のボリュームが作成されます。これにより、一部のボリュームが他のボリュームよりも頻繁に書き込まれる場合でも、ウェア レベリングをフラッシュ全体に広げることができます。UBI ボリュームは、静的(UBI によって 1 回書き込まれ、CRC-32 で保護されたファイルまたはイメージ全体を含む) または動的(独自のデータ整合性を担当する読み取り/書き込みファイルシステムを含む) にすることができます。UBI を直接サポートする唯一のファイルシステムは UBIFS ですが、gluebiこれを使用して MTD デバイスをエミュレートし、JFFS2 や YAFFS などの他のフラッシュ ファイルシステムを実行したり、ubiblkブロック デバイスをエミュレートして Ext4 などの一般的なファイルシステムを実行したりすることができます。
ファストマップ
UBIはLinux 3.7でfastmapのサポートにより拡張されました。[11] [12] fastmapはフラッシュデバイス全体をスキャンすることで、以前にメモリ内に作成された情報のディスク上のバージョンを維持します。コードは障害時に以前のフルスキャンのメカニズムにフォールバックし、古いUBIシステムはfastmap情報を単に無視します。
参照
参考文献
- ^ Jonathan Corbet (2008年4月2日). 「UBIFS」. LWN.net . 2016年12月18日閲覧。
- ^ 「UBIFS – UBI File-System: Big red note」。2015年1月22日。 2016年12月18日閲覧。
ブロックデバイス上では動作しません。UBIFSはrawフラッシュ上で動作するように設計されました。
- ^ 「UBIFS – UBI ファイルシステム: 概要」。2015 年 1 月 22 日。2016 年12 月 18 日閲覧。
- ^ Artem Bityutskiy (2008年3月27日). 「UBIFS – 新しいフラッシュファイルシステム」 . 2016年12月18日閲覧。
- ^ 「UBIFS – UBI ファイルシステム: ライトバックサポート」。2015 年 1 月 22 日。2016年12 月 18 日に閲覧。
- ^ 「UBIFS FAQ と HOWTO: df が空き領域が少なすぎると報告するのはなぜですか?」 2015 年 12 月 18 日。 2016 年12 月 18 日閲覧。
- ^ 「UBIFS – UBI ファイルシステム: スケーラビリティ」。2015 年 1 月 22 日。2016 年12 月 18 日に閲覧。
- ^ ab Bityutskiy, Artem; Hunter, Adrian (2008 年 9 月 24 日)。「UBIFS ファイル システム」(PDF)。p. 9。
- ^ Adrian Hunter (2008 年 3 月 27 日). 「UBIFS の設計に関する簡単な紹介」(PDF)。
- ^ 「UBI – 未分類ブロック画像」。2015年1月22日。 2016年12月18日閲覧。
- ^ Thomas Petazzoni (2012年10月3日). 「UBI fastmap making its way to mainline」。2012年11月15日時点のオリジナルよりアーカイブ。 2016年12月18日閲覧。
- ^ Richard Weinberger (2012年9月24日). 「UBI: Fastmap request for including (v18)」. 2016年12月18日閲覧。
外部リンク
- ホームページ
- セゲド大学: UBIFS 2013年9月28日アーカイブ、Wayback Machine
- XO ラップトップ(子供 1 人につき 1 台のラップトップ)での UBIFS 実験
- UBIFS ファイルシステム
