为什么只读文件系统_xfs 只读共享盘的数据不一致问题
記錄一個線上遇到的坑。
問題還原
有一個只讀共享盤,它的文件系統是 xfs。它會被并發掛載到不同的容器上,數量規模是上百個吧。有一天運維人員發現這個盤無法掛載了,而且很奇怪的是:有一部分容器能掛載上,另外一部分容器掛載不上。報錯信息提示文件系統有損壞。
問題原因
這很奇怪,文件系統損壞怎么會出現一部分容器能掛載呢?不應該是全部都有問題嗎?
這個只讀共享盤是一個克隆盤,它是由另外一個快照創建出來的。根據對比發現這個盤的數據與快照有幾十 M 的數據差異。這就很詭異了,只讀的盤為什么會有數據差異?!
嘗試利用快照再創建一個新的盤,此時的盤與快照沒有數據差異。然后用這個盤掛載成只讀盤后發現有了一些數據差異。不是吧?!只讀掛載都能往下寫數據?!
是的!
這個掛載動作會往下寫數據。如果在并發的場景下是會將盤里的數據寫花,這個問題太坑了。我們之前完全沒有注意這個點,以為只讀掛載是不會下數據的。
接著測試 ext4 格式的盤,只讀掛載不會寫數據。可以斷定這是文件系統本身所為,與底層存儲系統應該沒有關系。再去查看 xfs 系統的 mount 源碼,發現它在 mount 過程中會初始化 log 并下刷數據。雖然它不會寫元數據區和數據區,但它由于是一個日志文件系統,每一步都會記錄到日志里面。
知道問題原因就好辦了:要么換文件系統格式,要么修改 xfs 這個 mount 部分源碼。僅供各位踩坑小伙伴參考。
總結
以上是生活随笔為你收集整理的为什么只读文件系统_xfs 只读共享盘的数据不一致问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vba 定义类_VBA中类的介绍及应用简
- 下一篇: 信息系统管理工程师_关于备考信息系统项目