240 发简信
IP属地:北京
  • 120
    关于 memory barrier 的一些记录

    本文内容主要是对“Memory Barriers: a Hardware View for Software Hackers” 这篇论文的总结。 背景 在 Linux 内核和...

  • 120
    Ceph Crimson-Seastore 介绍

    背景 Bluestore 在 NVMe 上最明显的瓶颈是 kv-sync-thread,即顺序提交元数据到 RocksDB 的线程。Seastore 作为下一代的 OSD 存...

  • boost coroutine 实现原理记录

    RGW 的 Multisite 使用了boost asio 中的 coroutine 实现。coroutine 的特点是减少线程数量、线程切换和锁开销。 RGW用到的coro...

  • 120
    CephFS 内部实现(四):MDS是如何启动的?

    MDS启动时要经历一系列状态装换,但mds的各个状态是如何产生、确定的?这些状态究竟在处理什么?本篇尝试以正常启动mds为背景解释这两个问题。 MDS和Monitor的交互 ...

  • 120
    如何让ceph-fuse单次下发更大IO请求

    最近项目里面要求写使用o_direct,但是测试时cephfs性能并不好。通过iostat查看底层磁盘利用率,实际上并不高。通过日志查看ceph-fuse的行为,发现其只进行...

  • CephFS 内部实现(三):快照

    CephFS快照几个特点: 写时复制 client端操作时只能针对目录,不能针对单独文件 从任意文件夹下开始打快照 快照实现 快照通过SnapRealm组织成树形结构,每个有...

  • 120
    CephFS 内部实现(二):示例

    之前面试时被问到描述下一个请求的完整流程,当时的结果很不理想,今天尝试重新组织下,记录在这里。 这里有篇文章通俗易懂地描述了VFS层页缓存在cephfs中会有哪些“坑”以及相...

  • 120
    CEPHFS 内部实现(一):概念篇

    基础 CephFS致力于提供POSIX兼容的文件系统接口,为了实现这一目标,CephFS选择了以目录树的形式在内存管理和使用元数据信息。和S3的“伪目录”做对比,这种目录树的...

  • 120
    CEPH MDS锁实现介绍

    锁的作用 MDS中的锁是为了保护log的正常写入。每次对目录树进行操作前,需要先将目标path中涉及的节点加锁,在内存中修改完目录树(修改方式类似于RCU,即生成一个新节点,...

  • 120
    Realm和Period

    在配置多个zongroup或者使用非默认zone名称时,需要手动创建Realm、Zonegroup、Zone信息,一般流程如下: 当没有配置多个zongroup可以省略end...

  • 120
    Ceph RGW multisite代码实现

    multisite代码中大量使用了Boost的协程,在了解协程的使用方法后,整体代码结构还是比较清晰的。 协程实现 rgw中的协程库使用的是boost库,boost库中cor...

个人介绍
毕业 10 年, 工作一直围绕 Ceph,每次要找工作了就会在这里更新下文章。