再次测试一下cephfs
写在前面
松鼠哥的ceph专业课程上线啦!
面向新手同学,从0实战,全面入门ceph安装部署与运维,有需要的同学赶紧扫码订购吧:
许久没更了,最近抽空测试了一下cephfs相关的东西,来更一波
开始
此前,博客有更新一篇关于cephfs的文章 - 小试牛刀,主要是cephfs的一些基本的使用,版本也是比较早期的12版本
此后不少读者和我探讨过cephfs的情况,我给出的建议一律是:cephfs不建议上生产,不稳定
时至今日,cephfs经过了多个版本的迭代开发,据说可以上生产了,这里我们对其进行一些列的测试
测试是这样,先使用了13.2.10版本进行测试,然后使用14.2.20进行相同的测试,测试环境:
- data pool 使用ec 4+2
- 写入大文件(64GiB)
- 写入大量较小小文件(4MiB+1MiB)
- 写满pool后进行纯粹的读取
- 写入时重启某个rank
13版本的情况
写入大文件(64GiB)写满pool,这个没有问题,写满pool也不用多少个文件,读取也顺利
写入大量较小的文件就不行了,读取也不能正常进行
默认配置下,cephfs的根目录下创建10个目录,写入大量的文件
1 | [twj@R03-MTEST-DN-017.xx.cn ~]$ sudo ceph fs status |
此时,mds的内存占用达到了55g
1 | PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND |
尝试重启这个mds,直接导致fs瘫痪,mds状态一直都是replay,接着mon好几天都起不来,集群也直接没法用了。。。
1 | 2021-06-17 10:10:36.352 7f9039544700 1 heartbeat_map is_healthy 'Monitor::cpu_tp thread 0x7f9034ccc700' had timed out after 0 |
第二次测试,写入一段时间后,集群报错,mds处于rejoin状态
1 | cluster: |
此时mds的内存消耗非常大
1 | PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND |
使用命令ceph daemon /run/ceph/ceph-mds.R03-MTEST-MN-001.xx.cn.asok flush journal
后,降低了一些,但很快又上到了223G
从结果上看,该版本的mds主要是没有解决内存的问题,没写多少文件,内存就直线飙升,而且居高不下,妄想重启mds,那就直接玩完
这里直接给出13.2.10的建议:不行!事实上,14.2.x之前的版本都不建议使用cephfs上生产环境
14版本的表现
在这个版本的测试用,我加入了额外的data pool,并使用了多活mds,直接测试的小文件写入
1 | [twj@R03-MTEST-MN-001.xx.cn test-cephfs]$ sudo ceph fs status |
其中每个data pool都创建了20个目录,并pin到不同的mds上,性能看还算均衡,连续快速写入,会有告警2 MDSs behind on trimming
但没有什么影响,就没管
随着数据的大量写入,集群开始出现slow
1 | [twj@R03-MTEST-MN-001.xx.cn ~]$ sudo ceph df |
查看mds的op处理流程
1 | [twj@R03-MTEST-MN-002.xx.cn ~]$ sudo ceph daemon mds.`hostname` dump_historic_ops_by_duration|grep duration |
时间都非常久,继续排查,发现大量的op都是卡在failed to rdlock, waiting
这个步骤,关于这种情况的调查和优化,还在努力。。。
看了一眼内存,没有明显的飙升
1 | [twj@R03-MTEST-MN-003.xx.cn ~]$ top |
大量数据写入后,先测试一下mds的重启,直接reboot节点,观察集群的情况
1 | [twj@R03-MTEST-MN-002.xx.cn ~]$ sudo ceph fs status |
看是备是直接顶上了,mds重启后自动做备,业务侧暂时没有发现有问题,不过,发现写入的流量都打到了同一个mds,不知道是不是因为rank序号变化导致的
测试发现,当单个目录对象数达到千万级时,cephfs的目录出现明显的卡顿,测试读,读取偶尔会有问题,流量不稳定,最大可到1GiB/s,最小只有几百M
1 | io: |
结论
cephfs 14.2.20测试结果来看,稳定性可靠性还是可以的,至少内存的问题看来是解决了,没有出现持续大量数据写入时产生的高内存占用问题,同时,重启其中一个rank,备用的mds会自动顶上,业务没有太大影响,而且,目录内的文件数只要不是太大,小于百万级的话,性能也没有太大的问题,因此,14.2.20及后续版本的cephfs应该是可以上生产的了
反观此前的版本,12、13都比较拉垮,mds不太靠谱,如果client有故障,读写卡住,mds分分钟给你瘫痪,极具危险性,还是不建议上,如果已经有在线的fs,还是强烈建议迁移到14.2.20+的版本
- 本文作者: 奋斗的松鼠
- 本文链接: http://www.strugglesquirrel.com/2022/07/06/再探cephfs/
- 版权声明: 本博客所有文章除特别声明外,创作版权均为作者个人所有,未经允许禁止转载!