Linux
日誌文件系統和電源故障
我聽說即使是諸如 EXT3/EXT4 之類的日誌文件系統也可能在電源故障期間損壞,例如來自維基百科
$$ 1 $$:
In the event of a system crash or power failure, such file systems are quicker to bring back online and less likely to become corrupted.
任何人都可以通過舉例來提供更多細節,例如當
- 腐敗可能發生
- 日誌文件系統避免了損壞
由於磁碟內重新排序,大多數現代磁碟也可能發生損壞。
現代磁碟通常對用於提高性能的請求進行重新排序(通過重新排序寫入以減少整個請求列表的搜尋量),這稱為標記命令隊列。
寫入磁碟上的日誌可能會被延遲,因為它從目前的頭部位置以與作業系統請求的實際順序不同的順序寫入更有效,這意味著可以在日誌之前送出塊。
解決此問題的方法是讓作業系統在送出任何更多寫入之前顯式等待日誌已送出。這被稱為屏障。大多數文件系統預設情況下不使用它,並且明確需要使用掛載選項啟用。
mount -o barrier=1 /dev/sda /mntpnt
屏障的最大缺點是它們傾向於減慢 I/O 速度,有時會顯著降低(大約 30%),這就是預設情況下不啟用它們的原因。除此之外,當您開始在標準磁碟(如 LVM 或 Raid)上添加邏輯分層時,事情變得更加糟糕。LVM(相對最近)為大多數 LV 配置添加了屏障支持,而 mdadm 似乎已經有一段時間了。