[英]Can the data=journal mode of EXT4 avoid user data loss?
- 日記模式
data=journal 模式提供完整的數據和元數據日志。 所有新數據首先寫入日志,然后寫入其最終位置。
如果發生崩潰,可以重播日志,將數據和元數據帶入一致的 state。 這種模式是最慢的,除非需要同時從磁盤讀取數據和將數據寫入磁盤,它的性能優於所有其他模式。 啟用此模式將禁用延遲分配和 O_DIRECT 支持。
在這里我有幾個問題,請看一下:
配置data=journal,然后用戶調用write(),是數據寫入journal成功后write()返回,還是進入pagecache后返回用戶成功? 如果是后者,就說明journal是異步提交的,那么ext4的journal的意義就是保證文件系統本身的一致性,不保證用戶數據不會丟失?
如果ext4異步提交日志,什么時候觸發日志?
是否有任何其他文件系統允許在 write() 成功返回之前同步日志?
根據我本地實驗的結果,推斷該期刊應該是異步提交的。 我使用了一個單獨的 ssd 分區作為 journal_dev。 我用fio測試寫文件的時候發現journal_dev的io是斷斷續續的,不是一直都有IO。
open()
上使用任何額外選項)。commit=
)並且可能在任何待處理的sync
/ fsync
等被允許完成之前。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.