ceph性能估算

文章详细探讨了Ceph存储系统在不同配置下的IOPS估算方法,包括FileStore和BlueStore两种存储后端,以及多副本和纠删码两种冗余策略。在考虑写放大系数、硬件配置(如SSD和NVME)以及性能损耗等因素后,给出了计算存储池读写IOPS的公式。同时,对比了使用SATA磁盘和NVME磁盘对性能的影响,以及纠删码如何影响写入性能和磁盘空间利用率。
摘要由CSDN通过智能技术生成

计算公式
FileStore + 多副本
条件假设一:
(1)假设每块磁盘作为一个OSD,这个OSD的journal和data都放在这块磁盘上。所有数据都是先写到journal上,然后再写到data上,也就是单OSD的写放大系数是2;
(2)假设OSD个数为N;
(3)假设副本数是M,数据直到写入M个OSD之后才响应,因此对于多副本存储池,写放大系数是M;
(4)因为Ceph软件会损耗CPU资源,也会损耗一些性能,损耗系数定为0.7;
(5)假设单块SSD的4K随机读IOPS是R,4K随机写IOPS是W。
在不考虑网络瓶颈和CPU瓶颈的情况下,Ceph存储池的IOPS估算公式是:
1、4K随机读IOPS = RN0.7
2、4K随机写IOPS = WN0.7/(2*M)

条件假设二:
(1)假设每块SATA磁盘作为一个OSD,有一块NVME磁盘专门作为journal。所有数据都是先写到journal上,然后再同步到data上,也就是单OSD的写放大系数就变成1(假设NVME性能大于所有本机SATA盘之和);
(2)假设OSD个数为N;
(3)假设副本数是M,数据直到写入M个OSD之后才响应,因此对于多副本存储池,写放大系数是M;
(4)因为ceph软件会损耗CPU资源,也会损耗一些性能,损耗系数定为0.7;
(5)假设单块SSD的4K随机读IOPS是R,4K随机写IOPS是W。
在不考虑网络瓶颈和CPU瓶颈的情况下,Ceph存储池的IOPS估算公式是:
1、4K随机读IOPS = RN0.7
2、4K随机写IOPS = WN0.7/(M)

BlueStore + 多副本
条件假设一:
(1)假设每块磁盘作为一个OSD,该磁盘划为2块分区:一个分区作为裸盘来写入数据,另一块做BlueFS用来跑RocksDB。因此我们一次写入的流程可以简化成下图:数据会被直接写入到data分区(裸盘)中,而对象元数据会被写到RocksDB和RocksDB的WAL中,随后RocksDB将数据压缩后存放到磁盘中。我们不再需要在文件系统层做journal,而WAL只在覆写操作时才会用到,因此在副本数量为N的条件下,我们可以推测WAF将收敛于N,也就是单OSD的写放大系数是1。
(2)假设OSD个数为N;
(3)假设副本数是M,数据直到写入M个OSD之后才响应,因此对于多副本存储池,写放大系数是M;
(4)由于ceph软件会损耗CPU资源,也会损耗一些性能,损耗系数定为0.7;
(5)假设单块SSD的4K随机读IOPS是R,4K随机写IOPS是W。
在不考虑网络瓶颈和CPU瓶颈的情况下,ceph存储池的IOPS估算公式是:
1、4K随机读IOPS = RN0.7
2、4K随机写IOPS = WN0.7/(M)
注意:在BlueStore中,磁盘分区会以‘bluestore_min_alloc_size’的大小分配管理,这个数值默认为64KiB。也就是说,如果我们写入<64KiB的数据,剩余的空间会被0填充,也即是‘Zero-filled data’,然后写入磁盘。也正是这样,BlueStore的小文件随机写性能并不好,因此在小文件计算式可以适量减少损耗系数。

条件假设二:
(1)假设每块SATA磁盘作为一个OSD,有一块NVME磁盘专门作跑RocksDB。数据会被直接写入到data分区(裸盘)中,而对象元数据会被写到RocksDB和RocksDB的WAL中,也就是单OSD的写放大系数就变成1;
(2)假设OSD个数为N;
(3)假设副本数是M,数据直到写入M个OSD之后才响应,因此对于多副本存储池,写放大系数是M;
(4)因为ceph软件会损耗CPU资源,也会损耗一些性能,损耗系数定为0.7;
(5)假设单块SSD的4K随机读IOPS是R,4K随机写IOPS是W。
在不考虑网络瓶颈和CPU瓶颈的情况下,ceph存储池的IOPS估算公式是:
1、4K随机读IOPS = RN0.7
2、4K随机写IOPS = WN0.7/(M)

FileStore + 纠删码
相比较多副本冗余策略,纠删码的出现大大节省了磁盘空间,如果我们有N个OSD,并且按照K=3, M=2配置纠删码冗余策略。一次写入操作,实际上会产生(K+M)/K倍的实际写入量。而由于这里使用的存储后端是FileStore,journaling of journal问题会让写放大两倍,因此结合纠删码本身特性,WAF最终会收敛于(K+M)/K2。
在不考虑网络瓶颈和CPU瓶颈的情况下,Ceph存储池的IOPS估算公式是:
1、4K随机读IOPS = R
N0.7
2、4K随机写IOPS = W
N0.72*K/(K+M)

BlueStore + 纠删码
有了前文的铺垫后,相信到这一步大家能够自己推演出BlueStore在纠删码策略下的写入性能推导公式。由于解决了journaling of journal问题,每次写入不再需要通过文件系统,因此WAF最终将会收敛于(K+M)/M。
在不考虑网络瓶颈和CPU瓶颈的情况下,Ceph存储池的IOPS估算公式是:
1、4K随机读IOPS = RN0.7
2、4K随机写IOPS = WN0.7K/(K+M)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值