增強型唯讀檔案系統(EROFS)是為高效能唯讀情境量身打造的Linux核心檔案系統。Alibaba Cloud Linux作業系統將EROFS應用於雲端運算情境,從而更好地滿足容器鏡像、作業系統鏡像、軟體包及AI模型資料集的分發和儲存需求。本文將介紹EROFS的常見特性及使用方法。
特性對比
以下對比了EROFS、EXT4和SquashFS檔案系統的常見特性:
特性 | EROFS | EXT4 | SquashFS |
最小塊大小 | 512位元組 | 1 KiB | 不對齊 |
Inode大小 | 32位元組或64位元組 | 128位元組或256位元組 | 不固定,取決檔案類型 |
UID/GID總數限制 | 無限制 | 無限制 | 最多65536個 |
納秒時間戳記 | 有 | 有 | 無 |
UUID和卷標 | 支援 | 支援 | 不支援 |
資料壓縮 | 支援 | 不支援 | 支援 |
資料去重 | 支援 | 不支援 | 不支援 |
通過檔案掛載 | 支援 | 不支援 | 不支援 |
外部資料引用 | 支援 | 不支援 | 不支援 |
POSIX.1e ACL支援 | 支援 | 支援 | 不支援 |
Direct 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): 0mkfs.erofs常用參數說明:參數
說明
-zX[,level]
指定壓縮演算法(X,全小寫)及可選的壓縮層級(level)。支援LZ4、LZ4HC、LZMA、DEFLATE和Zstd演算法。例如
-zlz4hc,12表示使用LZ4HC演算法,並將壓縮層級設定為12。若未指定壓縮演算法,則產生非壓縮鏡像。-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