本文内容主要是对“Memory Barriers: a Hardware View for Software Hackers” 这篇论文的总结。 背景 在 Linux 内核和...
本文内容主要是对“Memory Barriers: a Hardware View for Software Hackers” 这篇论文的总结。 背景 在 Linux 内核和...
背景 Bluestore 在 NVMe 上最明显的瓶颈是 kv-sync-thread,即顺序提交元数据到 RocksDB 的线程。Seastore 作为下一代的 OSD 存...
RGW 的 Multisite 使用了boost asio 中的 coroutine 实现。coroutine 的特点是减少线程数量、线程切换和锁开销。 RGW用到的coro...
MDS启动时要经历一系列状态装换,但mds的各个状态是如何产生、确定的?这些状态究竟在处理什么?本篇尝试以正常启动mds为背景解释这两个问题。 MDS和Monitor的交互 ...
最近项目里面要求写使用o_direct,但是测试时cephfs性能并不好。通过iostat查看底层磁盘利用率,实际上并不高。通过日志查看ceph-fuse的行为,发现其只进行...
CephFS快照几个特点: 写时复制 client端操作时只能针对目录,不能针对单独文件 从任意文件夹下开始打快照 快照实现 快照通过SnapRealm组织成树形结构,每个有...
之前面试时被问到描述下一个请求的完整流程,当时的结果很不理想,今天尝试重新组织下,记录在这里。 这里有篇文章通俗易懂地描述了VFS层页缓存在cephfs中会有哪些“坑”以及相...
基础 CephFS致力于提供POSIX兼容的文件系统接口,为了实现这一目标,CephFS选择了以目录树的形式在内存管理和使用元数据信息。和S3的“伪目录”做对比,这种目录树的...
锁的作用 MDS中的锁是为了保护log的正常写入。每次对目录树进行操作前,需要先将目标path中涉及的节点加锁,在内存中修改完目录树(修改方式类似于RCU,即生成一个新节点,...
在配置多个zongroup或者使用非默认zone名称时,需要手动创建Realm、Zonegroup、Zone信息,一般流程如下: 当没有配置多个zongroup可以省略end...
multisite代码中大量使用了Boost的协程,在了解协程的使用方法后,整体代码结构还是比较清晰的。 协程实现 rgw中的协程库使用的是boost库,boost库中cor...