拡張読み取り専用ファイルシステム(EROFS)は、高パフォーマンスの読み取り専用シナリオ向けに設計された Linux カーネルファイルシステムの一種です。Alibaba Cloud Linux オペレーティングシステムは、クラウドコンピューティングシナリオで EROFS を使用して、コンテナイメージ、オペレーティングシステムイメージ、ソフトウェアパッケージ、および AI モデルデータセットの配布とストレージの要件をより適切に満たします。このトピックでは、EROFS の一般的な機能と EROFS の使用方法について説明します。
機能比較
次の表は、EROFS、Ext4、および SquashFS ファイルシステムの一般的な機能を比較したものです。
機能 | EROFS | Ext4 | SquashFS |
最小ブロックサイズ | 512 バイト | 1 KiB | 非アライン |
inode サイズ | 32 または 64 バイト | 128 または 256 バイト | ファイルタイプに基づいて可変 |
UID/GID の最大数 | 無制限 | 無制限 | 65,536 |
ナノ秒タイムスタンプ | はい | はい | いいえ |
UUID とボリュームラベル | サポートされています | サポートされています | サポートされていません |
データ圧縮 | サポートされています | サポートされていません | サポートされています |
データ重複排除 | サポートされています | サポートされていません | サポートされていません |
ファイル経由のマウント | サポートされています | サポートされていません | サポートされていません |
外部データ参照 | サポートされています | サポートされていません | サポートされていません |
POSIX.1e ACL | サポートされています | サポートされています | サポートされていません |
ダイレクト I/O | サポートされています | サポートされています | サポートされていません |
FSDAX | サポートされています | サポートされています | サポートされていません |
FIEMAP | サポートされています | サポートされています | サポートされていません |
SEEK_{DATA,HOLE} サポート | サポートされています | サポートされています | サポートされていません |
ファイルシステムイメージの作成と使用
erofs-utilsパッケージがインストールされているかどうかを確認します。mkfs.erofs -Vパッケージのバージョン番号が表示された場合は、パッケージがインストールされています。
パッケージのバージョン番号が表示されない場合は、次のコマンドを実行して
erofs-utilsパッケージをインストールします。sudo yum install -y erofs-utils
mkfs.erofsコマンドを実行して、ファイルシステムイメージを作成します。たとえば、次のコマンドを実行して、
fooディレクトリからfoo.erofsという名前のファイルシステムイメージを作成します。mkfs.erofs foo.erofs foo次のコマンド出力が表示されます。
mkfs.erofs 1.8.4 Build completed. ------ Filesystem UUID: c11813b0-b657-439c-8484-2196703035b7 Filesystem total blocks: 1 (of 4096-byte blocks) Filesystem total inodes: 1 Filesystem total metadata blocks: 1 Filesystem total deduplicated bytes (of source files): 0次の表は、
mkfs.erofsコマンドのパラメーターについて説明しています。パラメーター
説明
-zX[,level]
圧縮アルゴリズム(X、小文字のみサポート)とオプションの圧縮レベル(level)。LZ4、LZ4HC、LZMA、DEFLATE、および Zstd アルゴリズムがサポートされています。たとえば、
-zlz4hc,12は、圧縮レベルが 12 に設定された LZ4HC アルゴリズムを指定します。圧縮アルゴリズムが指定されていない場合は、非圧縮イメージが作成されます。-C <size>
物理クラスタサイズ。単位:バイト。たとえば、
-C 65536は 64 KiB のクラスタサイズを指定します。物理クラスタサイズを適切に増やすと、イメージサイズを小さくし、シーケンシャル読み取りパフォーマンスを向上させることができますが、ランダム読み取りパフォーマンスに影響を与える可能性があります。-T <time>
すべてのファイルの UNIX タイムスタンプ。
-U <UUID>
ファイルシステム UUID。
-L <label>
ファイルシステムボリュームラベル。
作成したファイルシステムイメージをマウントします。
たとえば、次のコマンドを実行して、
foo.erofsファイルシステムイメージを/mnt/erofsディレクトリにマウントします。sudo mkdir -p /mnt/erofs sudo mount -t erofs -o loop foo.erofs /mnt/erofsファイルシステムを使用しなくなった場合は、ファイルシステムをアンマウントします。
たとえば、次のコマンドを実行して、
/mnt/erofsディレクトリにマウントされているファイルシステムをアンマウントします。sudo umount /mnt/erofs