Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

7.3. 檔案系統

7.3.1. ext4 檔案系統

ext4 檔案系統是 RHEL 5 中,預設的 ext3 檔案系統的可縮放延伸版本。ext4 現在已成為 RHEL 6 的預設檔案系統,並且最大可支援達 16 TB 的檔案系統大小,以及 16 TB 的單一檔案。它同時也移除了 ext3 中,32,000 個子目錄的限制。

注意

若檔案系統大於 16TB,我們建議使用可縮放的大型檔案系統,例如 XFS。欲取得更多相關資訊,請參閱〈節 7.3.2, “XFS 檔案系統”〉。
ext4 檔案系統的預設值,對於大部份工作量來說已足夠,然而若效能分析顯示了該檔案系統的特性會影響效能,您亦可使用以下幾個微調選項:
Inode 表初始化

對於非常大的檔案系統來說,mkfs.ext4 程序會花上大量時間,才能初始化該檔案系統中的所有 inode。使用者能藉由 -E lazy_itable_init=1 選項來遞延這項程序。若使用了此選項,在檔案系統被掛載之後,kernel 程序將會繼續將它初始化。這項初始化發生的頻率可透過 mount 指令的 -o init_itable=n 選項來進行控制,而執行這項背景初始化的所需時間約 1/n。n 的預設值為 10

Auto-fsync 特性

因為並非所有應用程式都能在重新命名、或是截斷和重新寫入一個既有檔案之後,正確進行 fsync(),因此預設上 ext4 會在進行了「replace-via-rename」(透過更名來取代)和「replace-via-truncate」(透過截斷來取代)作業後,自動同步檔案。此特性與較舊的 ext3 檔案系統特性一致。然而,fsync() 作業可能會很耗時,因此若不需要使用此自動特性的話,請搭配 -o noauto_da_alloc 選項執行 mount 指令,以將它停用。這代表應用程式必須明確地使用 fsync(),以確保資料的永續性。

日誌 I/O 優先順序

就預設值,寫入日誌 I/O 的優先順序,會比一般正常 I/O 要來的高。此優先順序能以 mount 指令的 journal_ioprio=n 選項來控制。預設值為 3。有效值的範圍為 0 到 7,0 代表優先順序最高的 I/O。

欲取得有關於其它 mkfs 和掛載選項上的相關資訊,請參閱 mkfs.ext4(8)mount(8) man page,以及位於 kernel-doc 套件中的 Documentation/filesystems/ext4.txt 檔案。