Ceph配置桶存储分片
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ceph配置桶存储分片相关的知识,希望对你有一定的参考价值。
开始之前,先参考我之前的文章,Ceph对象存储介绍与安装,https://blog.51cto.com/11093860/2456570
Ceph对象网关将存储区索引数据存储在index_pool这个池中,默认值为default.rgw.buckets.index,有时,用户喜欢将多个对象(数十万到数百万个对象)放在一个存储桶中,如果不使用网关管理界面为每个存储桶中的最大对象设置配额,则当用户将大量对象放入存储桶中时,存储桶索引可能会遭受严重的性能下降。
查看这个pool
[root@ceph-node1 ~]# ceph osd lspools | grep buckets.index
31 default.rgw.buckets.index
在Ceph 0.94中,当每个存储桶中允许大量对象时,可以对存储区索引进行分片以防止性能瓶颈。 rgw_override_bucket_index_max_shards设置允许您设置每个存储区的最大分片数,默认值为0,这意味着默认情况下桶索引分片处于关闭状态。
以下命令可以查看这个参数的值,这里查看的是id为0的osd的此项参数的值
[root@ceph-node1 ~]# ceph-osd -i 0 --show-config | grep "rgw_override_bucket"
rgw_override_bucket_index_max_shards = 0
要打开存储桶索引分片,请将rgw_override_bucket_index_max_shards设置为大于0的值,对于简单的配置,可以将rgw_override_bucket_index_max_shards添加到的Ceph配置文件中,将其添加到[global]下,还可以在Ceph配置文件中根据不同的osd实例设置它,如下
[root@ceph-node1 ~]#vim /etc/ceph/ceph.conf
[global]
fsid = 6355eb2f-2b5c-4280-9747-2d77a307b3d9
mon_initial_members = ceph-node1,ceph-node2,ceph-node3
mon_host = 172.16.4.78
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
public network = 172.16.4.0/21
rgw_override_bucket_index_max_shards = 2 ## 全局配置此参数,但是也需要push此配置文件到其他节点[client.rgw.ceph-node1]
rgw_frontends = "civetweb port=7481"
rgw_override_bucket_index_max_shards = 2 ##为节点1的osd配置此参数
[root@ceph-node1 ~]#systemctl restart ceph-radosgw@rgw.ceph-node1.service
对于联合配置,每个区域可能具有用于故障转移的不同的index_pool设置,为了使该值与区域组的区域一致,可以在网关的区域组配置中设置rgw_override_bucket_index_max_shards,如下
[root@ceph-node1 ~]#radosgw-admin zonegroup get > zonegroup.json
打开zonegroup.json文件,然后为每个命名区域编辑bucket_index_max_shards设置,保存zonegroup.json文件并重置zonegroup,如下
[root@ceph-node1 ~]#radosgw-admin zonegroup set < zonegroup.json
更新区域组后,请更新提交期限,如下
[root@ceph-node1 ~]#radosgw-admin period update --commit
以上是关于Ceph配置桶存储分片的主要内容,如果未能解决你的问题,请参考以下文章