RGW分片管理

5 篇文章 0 订阅

Ceph S3分片计算方法

1. S3分片说明

index pool一定要上SSD,这个是优化的前提。

合理设置bucket 的shard 数量
shard的数量并不是越多越好,过多的shard会导致部分类似list bucket的操作消耗大量底层存储IO,导致部分请求耗时过长。
shard的数量还要考虑到你OSD的故障隔离域和副本数设置。比如你设置index pool的size为2,并且有2个机柜,共24个OSD节点,理想情况下每个shard的2个副本都应该分布在2个机柜里面,比如当你shard设置为8的时候,总共有8*2=16个shard文件需要存储,那么这16个shard要做到均分到2个机柜。同时如果你shard超过24个,这很明显也是不合适的。

控制好单个bucket index shard的平均体积,目前推荐单个shard存储的Object信息条目在10-15W左右,过多则需要对相应的bucket做单独reshard操作(注意这个是高危操作,谨慎使用)。比如你预计单个bucket最多存储100W个Object,那么100W/8=12.5W,设置shard数为8是比较合理的。shard文件中每条omapkey记录大概占用200 byte的容量,那么150000*200/1024/1024 ≈ 28.61 MB,也就是说要控制单个shard文件的体积在28MB以内。

业务层面控制好每个bucket的Object上限,按每个shard文件平均10-15W Object为宜。

2. 分片配置项

the rgw_override_bucket_index_max_shards setting for simple configurations,
the bucket_index_max_shards setting for federated configurations

1) 修改配置文件设置相应的参数。 Note that maximum number of shards is 7877.
[global]
rgw_override_bucket_index_max_shards = 10
2) 重启rgw服务,让其生效
systemctl restart ceph-radosgw.target
3) 查看bucket shard数
radosgw-admin bucket limit check --bucket=[bucket名]
[
    {
        "user_id": "admin",
        "buckets": []
    },
    {
        "user_id": "xufeng",
        "buckets": [
            {
                "bucket": "bucket1",
                "tenant": "",
                "num_objects": 201000,
                "num_shards": 16, # 当前生效的sharding数量
                "objects_per_shard": 12562,
                "fill_status": "OK"
            },
            {
                "bucket": "testbucket",
                "tenant": "",
                "num_objects": 2,
                "num_shards": 0,
                "objects_per_shard": 2,
                "fill_status": "OK"
            }
        ]
    }
]
3. CTSI Storage分布式存储分片计算方法

计算分片需要以下几个参数

1) 单个shard预设数量

单个shard对象数量设定在12万

2) 根据业务评估平均文件大小

例如某些视频业务场景,业务侧评估文件大小大约在11M左右,类似这种能够确定的业务,可以按照评估的最小文件大小来计算。

如果那种无法评估的业务,例如云网盘这种业务类型,暂时按照2M文件大小来计算(暂定)。

3) 根据业务评估单个bucket可能的容量大小

注意: 评估容量大小时,评估的容量为实际可用容量,不是裸容量,同时需要考虑85%冗余上限的事情
例如:
1. 假如集群总可用容量为300TiB,则实际可用容量为300*0.85=255TiB
2. 评估集群中可能存在的最大bucket容量
> 现在我们计划使用这个集群作为测试集群,那么我希望将这个集群所有容量都放置到一个bucket中,也就意味着我这个bucket最大的容量就是225TiB.

4) 测算集群需要配置的shard数量
  1. 根据平均文件大小和bucket最大容量计算对象数量

    bucket最大容量 / 平均文件大小 »>>>>> 255TiB * 1024 * 1024 / 11M = 24307898

  2. 根据对象数量和预设大小计算应该配置的shard数量

    对象数量 / 单个shard预设数量 »>>>>> 24307898 / 120000 = 202.56 ≈ 203 个shard

#### 计算公式: 存储实际可用容量(非裸容量) * 0.85 * 1024 * 1024 / 11 / 120000

PS:如果存储需要划分多个bucket,则按照最大bucket容量计算
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ceph RGW(Rados Gateway)是Ceph存储系统中提供对象存储服务的组件。它允许用户通过HTTP协议以对象的形式存储和检索数据。 Ceph RGW是一个分布式的、高可用的存储解决方案,它将数据分散保存在多个物理节点上,提供了可靠的数据冗余和容错能力。通过数据的分散,RGW能够实现高并发的访问和高吞吐量的数据传输,从而满足大规模的存储需求。 在Ceph RGW中,数据以对象的形式存储,每个对象都有一个唯一的标识符和元数据信息,可以通过它们进行快速的检索和访问。对象可以以任意格式存储,如文本、图片、视频等。通过提供RESTful风格的API,RGW使得开发者能够方便地访问和操作存储在其中的对象。 RGW支持多租户的机制,可以为不同的用户或应用程序提供独立的存储空间和访问权限。它还提供了访问控制机制,可以通过身份验证、访问策略等方式,限制对象的访问权限,并保证数据的安全性。 另外,Ceph RGW还具有自动化的数据迁移和负载均衡功能,可以根据数据的访问模式和负载情况,自动调整数据的存储位置和副本数量,以实现最佳的性能和可用性。 综上所述,Ceph RGW是一款功能强大、可靠性高的对象存储服务,适用于大规模存储和分发数据的场景。它提供了高并发、高吞吐量的数据访问和传输能力,以及安全性、可扩展性等方面的优势,成为当今对象存储领域的一种重要解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值