美文网首页
ceph 之 RGW 元数据组织二

ceph 之 RGW 元数据组织二

作者: wayyyy | 来源:发表于2024-02-24 22:35 被阅读0次
bucket index

RGW为每个bucket维护一份索引,里边存放了bucket中全部对象的元数据。这个索引就是bucket index。

定位 bucket index
  • 找到bucket的id

    radosgw-admin bucket stats --bucket test    # test 为bucket
    
  • 检查对应BUCKET在index中是否存在

    rados -p .rgw.buckets.index ls - | grep "default.784974.1"
    
  • 查看对应index中omap记录的key

    rados -p .rgw.buckets.index listomapkeys .dir.default.784974.1
    

    可以使用如下命令来统计这个bucket的对象个数

    rados -p .rgw.buckets.index listomapkeys .dir.default.104766.19 | wc -l
    
  • 查到bucket index 分布在哪个osd

    ceph osd map default.rgw.buckets.index .dir.
    
关于Bucket Index Sharding

默认情况下单个bucket的index全部存储在一个rados对象中(主要以OMAP-keys方式存储在leveldb中),随着单个bucket内的Object数量增加,整个bucket index 对象体积也在不断增长,当单个bucket index 对象体积过大就会引发各种问题。比如:

Hammer版本以后,新增bucket shared功能用以解决单桶存储海量对象的问题,bucket的index数据可以分布到多个RADOS对象上,bucket存储对象数量随着index数据的分片数量增加而增加。

  • 配置Bucket Index Sharding
    • rgw_override_bucket_index_max_shards
      [global]
      rgw_override_bucket_index_max_shards = 10
      
      需要重启rgw之后生效,并且对之前的bucket没有作用。

相关文章

网友评论

      本文标题:ceph 之 RGW 元数据组织二

      本文链接:https://www.haomeiwen.com/subject/rwvoadtx.html