专栏首页运维一切研究rbd挂载之后ext4文件损坏的问题 原

研究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信号,如果容器内的进程能正确的接收和处理这个信号,自然就能避免上述不合理的情况导致的文件内容损坏。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • ceph 10.3版的安装

    domain0
  • kubernetes 下实现socket.io 的集群模式

    socket.io 单节点模式是很容易部署的,但是往往在生产环境一个节点不能满足业务需求,况且还要保证节点挂掉的情况仍能正常提供服务,所以多节点模式就成为了生成...

    domain0
  • ceph基础运维操作 原

    保存退出 开始安装ceph Yum install ceph –y 完毕之后初始化目录

    domain0
  • 设计模式(十二)享元模式

    享元模式定义 享元模式是结构型设计模式的一种,是池技术的重要实现方式,它可以减少应用程序创建的对象,降低程序内存的占用,提高程序的性能。 定义:使用共享对象有效...

    用户1269200
  • 浅说深度学习:核心概念

    用户1737318
  • 浅说深度学习

    在机器学习中,我们(1)读取数据,(2)训练模型,(3)使用模型对新数据做预测。训练可以看作是当模型拿到新数据的时候、逐步学习一个的过程。在每一步,模型做出预测...

    华章科技
  • [剑指offer] 不用加减乘除做加法

    尾尾部落
  • 博客园LaTex的测试,附带开启方法

    单位矩阵是个方阵,从左上角到右下角的对角线(称为主对角线)上的元素均为1。其他全都为0,eg:

    逸鹏
  • 机器学习第3天:多元线性回归

    简单线性回归:影响Y的因素唯一,只有一个。 多元线性回归:影响Y的因数不唯一,有多个。

    明天依旧可好
  • 不用加减乘除做加法

    题目:写一个函数,求两个整数之和,要求在函数体内不得使用+、-、×、÷四则运算符号。 分析: 第一步:不考虑进位对每一位相加。0加0、1加1的结果都是0,0加1...

    猿人谷

扫码关注云+社区

领取腾讯云代金券