研究rbd挂载之后ext4文件损坏的问题

ceph rbd的存储有两个层面的缓存

  • rbd cache 在ceph.conf中可以定制这个缓存,有测试是否开启的方法,但是我自己的测试结果出来,感觉开了缓存和没开一个样。 送上关于这个缓存的一些资料

http://docs.ceph.com/docs/master/rbd/rbd-config-ref/

还有二次改造的 http://blog.csdn.net/lzw06061139/article/details/51203461

别人的结论 https://www.xsky.com/tec/ceph-weekly-vol-29/

检验rbd cache是否开启的 http://ceph.com/geen-categorie/ceph-validate-that-the-rbd-cache-is-active/

  • etx4 cache rbd要让业务使用必然要先格式化一个文件系统,当然不一定是ext4,文件系统挂载的时候大多数默认是使用缓存的,有的也叫异步挂载。毕竟在内存中读写速度要比磁盘快的多,这样的问题就是,遇到断电,或者某种不合理的释放资源情况,内存的脏页来不及flush到disk,进而造成文件内容丢失或者丢失更新。 当然 你完全可以跳转挂载的参数避免这个问题,比如:
mount -t ext4 -o sync  /dev/sdb1 /sdb1

这样不使用缓存,文件io会出奇的慢,简直难以忍受,不过这的确是最委托的办法 还有一个比较折中的办法 就在是umount之前,或者在即将回收资源之前运行一次sync命令,强制将内存脏页flush到硬盘,这样就妥了。不过你可得保证能调用到sync命令

docker容器启动有入口,但是stop的时候,会给进程发送SIGTERM信号,如果容器内的进程能正确的接收和处理这个信号,自然就能避免上述不合理的情况导致的文件内容损坏。

转载于:https://my.oschina.net/xueyi28/blog/1555269

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值