其他难点 很多公有云和私有云依赖像 Ceph 这样的分布式存储来提供存储服务,但如果没有对 IO 栈的完整控制,很难定义存储的延迟 SLO。其中一个原因是文件系统为基础的存储会使用系统的 page cache。为了提升用户体验,大部分系统都会设计基于 write-back 的 page cache,这样数据可以 buffer 在内存,当系统的 IO 很少,或者达到了预定的周期时间,就将 page cache 回写到磁盘。对于一个复杂系统,write-back 行为会受一些列复杂策略影响,导致不可预测。
对 Ceph FileStore 来说,尽管有自己周期性的 fsync,但它无法避免 inode 元数据的 write-back,导致性能不稳定。
再一个难点是基于文件系统的存储后端实现像 COW 这样的操作。如果后端文件系统是 COW 的,那么这些操作的实现会很高效。但是,他也有一些其他缺点,例如在 Btrfs 上会产生碎片。反过来如果文件系统不支持 COW,那么这些操作就需要成本很高的对对象完整复制,导致快照、EC 的覆盖写代价非常高昂。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。