为什么只读文件系统_xfs 只读共享盘的数据不一致问题

f1af17e4b3a0684ed5064718e1982c7c.png

记录一个线上遇到的坑。

问题还原

有一个只读共享盘,它的文件系统是 xfs。它会被并发挂载到不同的容器上,数量规模是上百个吧。有一天运维人员发现这个盘无法挂载了,而且很奇怪的是:有一部分容器能挂载上,另外一部分容器挂载不上。报错信息提示文件系统有损坏。

问题原因

这很奇怪,文件系统损坏怎么会出现一部分容器能挂载呢?不应该是全部都有问题吗?

这个只读共享盘是一个克隆盘,它是由另外一个快照创建出来的。根据对比发现这个盘的数据与快照有几十 M 的数据差异。这就很诡异了,只读的盘为什么会有数据差异?!

尝试利用快照再创建一个新的盘,此时的盘与快照没有数据差异。然后用这个盘挂载成只读盘后发现有了一些数据差异。不是吧?!只读挂载都能往下写数据?!

是的!

这个挂载动作会往下写数据。如果在并发的场景下是会将盘里的数据写花,这个问题太坑了。我们之前完全没有注意这个点,以为只读挂载是不会下数据的。

接着测试 ext4 格式的盘,只读挂载不会写数据。可以断定这是文件系统本身所为,与底层存储系统应该没有关系。再去查看 xfs 系统的 mount 源码,发现它在 mount 过程中会初始化 log 并下刷数据。虽然它不会写元数据区和数据区,但它由于是一个日志文件系统,每一步都会记录到日志里面。

知道问题原因就好办了:要么换文件系统格式,要么修改 xfs 这个 mount 部分源码。仅供各位踩坑小伙伴参考。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值