Ceph社区跟踪(2020-08-27 ~ 2020-09-09)




本文作者:本人

youtube channel

  • Ceph Crimson/SeaStor OSD 08-26
    • 在osd层屏蔽不支持的特性,补充测试用例
    • 每个主要开发人员开发进度同步:extent/onode tree、omap、dirty extent/segment管理方案pr讨论
    • 解决EC相关bug及messenger层导致的心跳相关bug
    • 讨论美光新开源的存储引擎(https://www.micron.com/about/blog/2020/june/what-is-a-heterogeneous-storage-engine ),tiger、rocksdb等LSM存储引擎的性能问题,吐槽rocksdb非常slow,用它是因为它流行 【这块可以关注下新开源的存储引擎】
    • 讨论使用io_uring实现异步IO
    • 讨论的相关pr:https://github.com/ceph/ceph/pull/36779、https://github.com/ceph/ceph/pull/35865
  • Ceph Performance Meeting 08-27
    • 跟踪rocksdb社区进展,每2周的论文阅读情况(连摘要都没时间看。。。),有些论文作者还不想把最新进展同步给他们(因为论文还没发表。。。)
    • onode、rocksdb等相关的议题讨论:rbd使用更简单的内存数据结构,其他的如cephfs可以复杂点,以及精简其他内存数据结构(如blob、extent等)以减少内存占用?把一个key拆分成多个,以减少提交到rocksdb的数据量?
      • 另外一个人评论:这个改动要先做好POC,改动会比较大,想法是好的,不知道收益如何
      • 另外讨论了这些优化是否会影响crimson/seastor架构
    • 64k的blob size是否合适,是否要调小到16k或者调大到512k?还需要继续调研,不同场景下的性能表现(单client、多client、db场景等),只靠benchmark场景来测试得到合适的blob size是不合理的。
  • Ceph tech talk 08-27
    • 主题:Secure Token Service(STS) in Ceph Rados Gateway
      • 主要参考了AWS STS APIs以及AWS IAM APIs,N版本已经实现了一部分
  • Ceph Orchestrator Meeting 08-31
    • nfs兼容性问题:N版本实现的dashboard的nfs管理功能与O版本不兼容,要想办法解决(也不是完全不兼容,只是两个不能同时用)
    • 想办法支持从N版本迁移用户到O版本
    • rook问题
      • ceph daemon僵尸进程没有处理好
      • ceph daemon进程的core dump文件没办法生成
    • 配置文件模板问题:grafana、告警服务,使用jinja管理模板文件,比较灵活但用户体验较差(相比UI方式)
    • 不需要编译ceph或者部署一个ceph集群就可以体验cephadm,跑测试用例
    • cephadm的安装方式(包管理?集群升级问题?要尽快确定一个cephadm本身的最小命令行集合,以便保持兼容性)
  • Ceph Crimson/SeaStor OSD 09-02
    • 测试用例失败问题讨论及分工;interruption问题修复方案讨论(应该是指osd正常退出过程中的停止pg服务和snapshot终止问题)
    • rgw omap offload代码开发及review
    • seastor onode tree功能联调完毕,准备提PR
    • lambda函数使用问题(主要是讨论其性能问题)
  • Ceph Performance Meeting 09-02
    • 讨论新PR
      • https://github.com/ceph/ceph/pull/36961(mon/AuthMonitor: speed up caps updates)
      • https://github.com/ceph/ceph/pull/36914 (change the default value of option osd_async_recovery_min_cost from 100 to 10,经过测试rgw+EC pool场景下10比较合适)
    • onode等数据结构重构问题
      • 讨论怎么减少内存占用以及提升rocksdb性能
      • 基于column family来分离onode、omap、extent等BlueStore的metadata到不同的block cache?
    • 降低osd的cpu占用方案讨论:目标是占用1~2cores,现实是nvme场景下BlueStore引擎osd占用10~14cores,节省下的cores可以给其他进程使用
      • BlueStore+rocksdb在nvme场景下比FileStore性能好,但也遇到了cpu性能瓶颈问题,要想办法降低cpu开销
      • seastor会在一两年内搞定,会解决这个问题?潜在的意思是说我们还要不要花费时间在BlueStore上做优化?
      • 降低cpu利用率需要先确定硬件类型,nvme、optane。。。
    • rocksdb性能问题:
      • Intel的人提出了一个原型,把pg log写入bluefs,绕过rocksdb,还讨论了一坨优化pg log在rocksdb的性能问题的方案
      • 有人提出ceph的rocksdb里的key string用的太多(前缀、后缀、比较等等)影响性能,考虑用binary方式替换?
      • 参考zfs的元数据管理方式改进ceph这边使用rocksdb的姿势?
      • nvme和Intel ssd对比benchmark性能,没有提升多少,需要继续研究
    • pg lock/log(pg lock还是pg log,没听太清。。。根据上下文应该是log)性能问题,禁用pg lock可以提升20~30%的性能(fio测试BlueStore engine)
  • Ceph Developer Monthly 09-02
    • 讨论teuthology等CI问题(出现一批失败用例,以及job排队问题,需要机器?),有些问题比较难复现,出现了要尽快上去看,比较难解决的问题可以先尝试用bisect找到问题
    • teuthology每天晚上可以跑300个用例,这样才可以快速发现新引入的问题(意思是近期teuthology不太稳定,要尽快修复)
    • debug level可以配置高点,方便定位问题?

邮件列表

  • https://lists.ceph.io/hyperkitty/list/ceph-users@ceph.io/thread/TPIFMPQ6YHEK4GYH5LA6NWGRFXVW44MB/ (13.2.8版本有用户反馈osd可能有内存泄露,还在讨论)
  • https://lists.ceph.io/hyperkitty/list/ceph-users@ceph.io/thread/OLFOSYULOTC4HFVF37YSASSAFYFE372A/ (ceph tell osd.0 bench之后怎么删除测试数据?)
  • https://lists.ceph.io/hyperkitty/list/ceph-users@ceph.io/thread/XJICICKXGMGUSH2KDP4TSVRYR2SELHYH/ (cephfs怎么跨集群同步数据,提到了2个工具,我们有空可以研究下)
    • https://docs.ceph.com/docs/master/dev/cephfs-mirroring/【推荐】
    • https://github.com/oliveiradan/cephfs-sync
  • https://lists.ceph.io/hyperkitty/list/ceph-users@ceph.io/thread/6TW27ZYQ3PRW6QEWGT5EZXADOVRYYT77/ (怎么解决”inconsistent+failed_repair”这个pg状态,cephfs的pool,暂无人回复)
    https://lists.ceph.io/hyperkitty/list/ceph-users@ceph.io/thread/ZOPBOY6XQOYOV6CQMY27XM37OC6DKWZ7/ (14.2.8升级到14.2.10之后db/wal性能下降明显,貌似还没有结论,没仔细看)
  • https://lists.ceph.io/hyperkitty/list/dev@ceph.io/thread/QWZHT4MQBVSHVYXUEFJMBDO2MA65PZLF/ (ceph-deploy还可以继续用吗?答复是ceph-ansible和cephadm不一定能满足所有用户需求,deploy还会继续支持,比如python3支持还会发版本)

社区博客

  • https://ceph.io/community/blog/

没有新增文章

master近期合入代码(08-27~09-09)

大部分都是crimson/seastor相关的,也有少量rpm打包、文档、dashboard相关的。

bug修复相关:
– https://tracker.ceph.com/issues/47302 的修复代码,minor级别bug,影响N/O版本(include/encoding: Fix encode/decode of float types on big-endian systems)
– https://tracker.ceph.com/issues/47290 的修复代码,major级别bug,影响N/O版本(osdmaps aren’t being cleaned up automatically on healthy cluster)
– https://tracker.ceph.com/issues/47293 的修复代码,minor级别,影响master版本(client: osdmap wait not protected by mounted mutex)
– https://tracker.ceph.com/issues/47201 的修复代码,minor级别bug,影响N/O版本(mds: CDir::_omap_commit(int): Assertion `committed_version == 0′ failed.)
– https://tracker.ceph.com/issues/46842 的修复代码,影响N/O版本(librados: add LIBRBD_SUPPORTS_GETADDRS support)

其他:
– https://github.com/ceph/ceph/pull/36955 (os/bluestore: Switch from libzbc library to libzbd library,libzbd是libzbc的升级版。。。)
– https://github.com/ceph/ceph/pull/36850 (mds: add performance counter for cap messages)