240 发简信
IP属地:贵州
  • 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...

  • 120
    RGW如何处理一个HTTP请求

    rgw入口程序对应src/rgw/rgw_main.cc文件,此文件的main函数除了常规的信号、参数处理外,首先设置resource_manager,这些manager将H...

  • RGW域名访问bucket

    背景 RGW处理的报文本质上是一个HTTP报文,通常情况下使用http://<rgw-ip>:<rgw-port>/ 的方式来访问一个bucket。实际应用尤其是公有云环境中...

  • RGW静态网站托管功能

    背景 静态网站托管(s3website)相比普通s3请求,多了几个核心功能: 默认请求页面。当用户url以"/"结尾时返回的页面。 错误页面。当用户请求的url发生错误时返回...