Ext4

對於 Ext4,data=journal 是否比 data=ordered 更安全?

  • July 16, 2018

Ext4 的預設日誌模式是data=ordered,根據文件,這意味著

“在將元數據送出給日誌之前,所有數據都被強制直接輸出到主文件系統。”

但是,還有一個data=journal選項,這意味著

“所有數據在寫入主文件系統之前都已送出到日誌中。啟用此模式將禁用延遲分配和 O_DIRECT 支持。”

我對此的理解是,該data=journal模式將記錄所有數據以及元數據,從表面上看,這似乎意味著在數據完整性和可靠性方面這是最安全的選擇,儘管對於性能而言可能不是那麼多。

如果可靠性是最重要的問題,我應該選擇這個選項,但性能要低得多嗎?使用此選項有什麼注意事項嗎?

作為背景,有問題的系統位於 UPS 上,並且驅動器上的寫入記憶體已禁用。

是的,data=journal這是將數據寫入磁碟的最安全方式。由於所有數據和元數據在寫入磁碟之前都已寫入日誌,因此您始終可以在崩潰的情況下重播中斷的 I/O 作業。它還會禁用延遲分配功能,這可能會導致數據失去

這 3 種模式在手冊中按安全順序排列:

  1. 數據=期刊
  2. 數據=有序
  3. 數據=回寫

還有另一個您可能感興趣的選項:

commit=nrsec    (*) Ext4 can be told to sync all its data and metadata
                   every 'nrsec' seconds. The default value is 5 seconds.

唯一已知的警告是它可能會變得非常緩慢。noatime您可以通過使用該選項禁用訪問時間更新來降低性能影響。

引用自:https://unix.stackexchange.com/questions/127235