以副本环境的数据均衡为例,以下需要注意:
1、写入数据时,用脚本监控写入数据量(ceph df)到达预定值,开始、停止cosbench
cosbench支持命令行。进入cosbench目录,用./cli.sh <action: submit|cancel|info>来开始、结束任务
[root@node-105-84 ~]# cd 0.4.2.c4/
[root@node-105-84 0.4.2.c4]# ./cli.sh
Usage: ./cli.sh <action: submit|cancel|info> <parameter> <web username:password@ip:port>
- action:
- <submit> <configuration file>: submit configuration and start workload
- <cancel> <workload id>: cancel workload
- <info>: check status
- <web username:password@ip:port> anonymous:cosbench@127.0.0.1:19088 by default |
2、排除gc的影响
在上传大对象的测试中,有观测到到达预定数据量,之后数据减少的情况。可查看到gc list中有等待gc的对象。
怀疑因上传对象有5g以上大小,multipart上传导致。测试中应排除该部分gc对象的影响,等待或加快gc完成。
相关指令:
radosgw-admin gc list -n client.radosgw.node-105-80
radosgw-admin gc list --include-all -n client.radosgw.node-105-80
radosgw-admin gc process -n client.radosgw.node-105-80
ceph daemon /var/run/ceph/ceph-client.radosgw.node-105-80.1477.94595294014400.asok config show | grep _gc_
注:根据查到的gc参数来理解gc过程
3、排除scrub的影响
[root@node-105-84 0.4.2.c4]# cat /etc/ceph/ceph.conf |grep scrub
osd scrub begin hour = 0
osd scrub end hour = 5
osd_scrub_chunk_max = 2
osd_scrub_chunk_min = 1
关闭晚上的scrub或者避免在0-5点间测试
ceph osd pool set <pool_name> noscrub true
ceph osd pool set <pool_name> nodeep-scrub true
4、小对象对象个数统计
(1)radosgw-admin bucket stats --bucket=bucket1 --name client.radosgw.node-*
(2)写入大对象个数还可用s3cmd ls s3://bucket1 |wc -l得到。写入小对象个数由于到达了百万级别,ls可能超时。
由于写入小对象小于512k,可直接等于rados对象数。其实可通过ceph df查看数据池中的对象得到。比如:
site.rgw.buckets.data.rep2 6 1116G 50.14 1024G 9577008
5、迁移量的计算方法
(1)粗略统计(注:本方法只针对于2副本;gc会影响统计结果;对于一个pg,可能多个副本发生迁移,一个pg上的数据量没有乘以迁移的副本数,导致结果不准确)
步骤:
①统计数据迁移前pg的分布
ceph pg dump pgs|awk '{print $1,$2,$7,$15}' |sort >>/root/oldpg #这里记录的分别是,pg名,object数,pg上的数据量,以及pg的acting osd。
②统计数据迁移后pg的分布
ceph pg dump pgs|awk '{print $1,$2,$7,$15}' |sort >>/root/newpg
③对比前后pg变化
vimdiff /root/oldpg /root/newpg #查看是否有pg上的数据量发生变化或者一个pg是否只有一个副本发生位置变化
③计算迁移量
diff -y /root/oldpg /root/newpg --suppress-common-lines|awk 'BEGIN{sum=0}{sum+=$3}END{print sum}' 来进行统计,这里的单位是字节
(2)相对精确的统计
理论①:对于一个pg,可能多个副本发生迁移,一个pg上的数据量乘以迁移的副本数可得到准确结果。
参见:http://www.zphj1987.com/2017/02/08/%E9%A2%84%E4%BC%B0ceph%E7%9A%84%E8%BF%81%E7%A7%BB%E6%95%B0%E6%8D%AE%E9%87%8F/
理论② :删除osd.1,对比前后pg分布,可能不止分布在osd.1上的pg发生了迁移。已验证。
综合①②可通过记录pg前后变化来计算迁移量。可编写脚本计算。
理论③:参见 https://blog.csdn.net/xiongwenwu/article/details/53120415 ,对于不同的删除osd的方式,数据迁移量不同。当前我们的方式为第一种,stop osd 、out osd(发生数据迁移)、crush remove osd(发生数据迁移) 、add osd(发生数据迁移)。未验证。
推论:对于不同操作场景,比如:磁盘坏了(stop osd、out osd)、磁盘坏了数据已经修复完成后删除(remove osd)、磁盘坏了数据已经修复完成后重建(remove osd+add osd)、当前osd为in+up进行删除(stop、out、crush remove)、当前osd为in+up进行重建(stop、out、crush remove、add),迁移的数据量是不同的。
6、善用Excel公式计算时间和速度
=ROUND((H5-G5) * 1440,1)
=ROUND((F2/1024/1024/I2/60),1)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)