UBIFS

UBIFS (Unsorted Block Image File System)



UBIFSは生のフラッシュメモリを使用するファイルシステムの一つで、特に大容量のNAND型フラッシュメモリにおいて優れた性能を発揮します。このシステムは、JFFS2の後継として2007年初頭に開発が始まり、2008年10月にLinuxカーネル2.6.27向けに初の安定版がリリースされました。UBIFSはハンガリーのセゲド大学とノキアの技術者によって共同開発されました。

UBIFSの基本構成



UBIFSはUnsorted Block Image (UBI) デバイスの上で動作し、さらにその下にはMemory Technology Device (MTD) が存在します。UBIFSはMTDを直接利用することはなく、UBIを通して操作を行います。この関係により、UBIFSはライトキャッシュ機能に対応することができます。従来のJFFS2との大きな差は、内部のデータ管理が画期的に改善されている点にあります。

UBIFSは設計上、迅速なマウントを実現し、大きなファイルへの迅速なアクセスと高い書き込み速度を追求しています。また、データ圧縮機能も充実しており、zlibやLZOといったアルゴリズムを用いることで、データ転送時の圧縮を行うことができます。これは、システムの全体的なパフォーマンスを向上させ、DFFS2に比べて多くの点でメリットを持つことを証明しています。

JFFS2との違い



JFFS2はファイルシステムのインデックスをメモリに保持しますが、UBIFSではそのデータをフラッシュメモリに格納します。このため、UBIFSはボリュームをマウントするたびにテーブルを再構築する必要がなく、スケーラビリティの面でも大きな利点があります。JFFS2は、メモリでのテーブル保持によって、いくつかのイメージが使用できない場合にシステムのRAMを消費してしまうことがありますが、UBIFSはこの問題を回避しています。

Unsorted Block Image (UBI)



UBIはフラッシュメモリデバイスの消去ブロックの管理を行うレイヤです。具体的には、NANDフラッシュの不良ブロックを追跡し、ウェアレベリングの機能を提供します。ウェアレベリングは、フラッシュデバイス全体にわたって均等に消去や書き込みを行うために重要です。UBIは物理的な消去ブロックとマッピングされる論理消去ブロックを提供し、UBIFSがウェアレベリングや不良ブロックを気にすることなく動作できるように設計されています。また、UBIはNANDフラッシュでsquashfsを利用する際にも役立ちます。

fastmap機能



Linux 3.7以降、UBIはfastmap機能に対応しています。この機能は、以前に全てのフラッシュデバイスをスキャンし記録した情報を基に動作します。もし、情報の取得に失敗した場合には、完全スキャンを行う仕組みです。古いUBIシステムは、このfastmap情報を無視して運用されていました。

まとめ



UBIFSは、フラッシュメモリ専用のファイルシステムとして、JFFS2の後継に位置付けられています。UBIやfastmap機能と相まって、その高い性能や耐障害性が実現されているため、今後のフラッシュメモリシステムにおいて重要な役割を果たすことでしょう。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。