Ceph Bluestore首测

Bluestore 作为 Ceph Jewel 版本推出的一个重大的更新,提供了一种之前没有的存储形式,一直以来ceph的存储方式一直是以filestore的方式存储的,也就是对象是以文件方式存储在osd的磁盘上的,pg是以目录的方式存在于osd的磁盘上的
在发展过程中,中间出现了kvstore,这个还是存储在文件系统之上,以leveldb或者rocksdb的方式存储对象数据,这个也没有推广开来,性能上没有太大的改观,在某些情况下性能还低于filestore
最终在sage的大力支持下,ceph社区准备撸一个新的文件系统,这个系统类似于rocksdb,但是数据是可以直接存储到裸设备上去的,也就是存储对象数据的地方是没有传统意义上的文件系统的,并且解决了一种被抱怨的写双份数据的问题,在filestore中,数据需要先写入journal再入磁盘,对于磁盘来说实际就是双份写了

在这里不做过多的探讨技术上的细节,bluestore处于开发阶段,在最新的版本的ceph中,发现已经集成了这个,虽然还是实验阶段,但是还是体现出其未来巨大的价值

环境准备

由于没有测试大量的设备,就在一个小环境下进行性能的验证,基准的性能不需要大量的机器,至于数据可靠性,就靠自己去判断了

硬件环境:

软件环境:

一、先测试Filestore

ceph-disk有个update_partition的bug,部署过程需要处理一下,后期发版本应该会解决

1、4K随机写200G的rbd测试时间300s

filestorefio过程.png-132.1kB
测试的io的抖动的情况

filestoreresul.png-89.4kB
测试的FIO结果的页面

2、4M顺序写200G的rbd测试时间300s

filestorefio过程4M.png-166.9kB
测试的io的抖动的情况
filestoreresul4M.png-88kB

二、测试bluestore

1、4K随机写200G的rbd测试时间300s

blueresult4K.png-99.6kB
bluefinal4K.png-87.9kB

2、4M顺序写200G的rbd测试时间300s

blueresult4M.png-133.6kB
blueiostatfinal4M.png-90.9kB

以上为测试过程的数据记录,下面为对比的

整个测试来看改进非常的大,数据的曲线比之前要平滑很多,延时也变得更小,但是还是开发阶段,估计bug还是很多,不可控因素太多,并且暂时还没有修复工具,作为对未来ceph发展的一种期待吧,肯定会越来越好