Ceph-读写流程:客户端写流程分析(二)
本文接上文对 Filer::write_trunc 及之后的流程做了梳理和总结.
本文接上文对 Filer::write_trunc 及之后的流程做了梳理和总结.
Ceph-fuse 带 Address-Sanitizer 跑发现只要 MDS 切换就会导致客户端 heap-buffer-overflow (ASAN 信息附在最后)
本文对 Ceph 中 inode 分配流程进行了总结,并解释了 MDS 重启过程中可能遇到的一个故障
CephFS 中会把多种事件记录在不同类型的 LogEvent 中,其中最常见的也是最重要的就是读写流程中处理客户端请求时记录的 EUpdate 事件,而在 EUpdate 中又会把元数据的状态保存在 MetaBlob 结构中,本文就主要对 MetaBlob 结构以及其中保存的内容做一个总结。
本文包含 Paxos、Multi-Paxos 算法的原理以及 Ceph 中对 Paxos 算法的实现。
本文对 Ceph 客户端写流程进行了梳理和总结,包括 ll_open 和 ll_write 的处理流程。
本文介绍 Ceph 中条带化的相关概念并对 Striper::file_to_extents 的流程进行了分析和总结。
使用 CephFS 的同学可能会发现如果在 CephFS 挂载点下去压缩文件的时候有时候会提示 File changed as we read it,有时候还会导致CRC 失败,本文对 File changed as we read it 问题出现的原因进行了分析并给出了解决办法,希望能对大家有所帮助。
最近一直在做 MDS 高可用方面的工作,发现 MDS (带 IO)重启时可能会长时间卡在 Client Replay 状态。这里对问题的原因做了一下分析,并给出了现有的以及未来的解决办法,希望能对大家有所帮助。
在 Ceph 中 Client 和 MDS 部分的 lru 实现和淘汰策略稍有不同,但作用都是用来管理 dentry 等结构,方便及时将不使用的文件和目录清出内存,这里主要关注 lru 的实现而不关注 dentry 的淘汰时机。