在Kraken release版本上测试Ceph BlueStore
前面写了一篇文章《ceph升级到kraken版本》(我的个人博客,更多ceph相关文章也在该博客),在升级后的集群上重新部署OSD遇到一些问题。这里在干净的kraken环境下部署bluestore,用来测试一下性能。本文记录部署过程及遇到的问题和解决方法。
前言
Ceph版本Kraken(11.2.0)已经发布,发行说明告诉我们,用于OSD的新的BlueStore后端现在可用。
bluestore
OSD的当前后端是FileStore,它主要使用XFS文件系统来存储它的数据。 为了克服XFS和POSIX的一些限制,所以开发了BlueStore后端。
由于校验和压缩它将提供更多的性能(主要是写)和数据安全。
鼓励用户从Kraken发行版本开始,使用非生产和非关键数据集来测试BlueStore,并向社区报告。
部署BlueStore
要使用BlueStore部署OSD,您可以使用-bluestore
标志来使用ceph-deploy。
我创建了一个简单的测试集群,有三个机器:alpha,bravo和charlie。
每个机器将运行一个ceph-mon和ceph-osd进程。
这是我用来部署集群的ceph-deploy命令:
ceph-deploy new alpha bravo charlie
ceph-deploy mon create alpha bravo charlie
现在,编辑当前目录中的ceph.conf文件,并添加:
[osd]
enable_experimental_unrecoverable_data_corrupting_features = bluestore
有了这个设置我们允许使用BlueStore,我们现在可以部署我们的OSD:
ceph-deploy --overwrite-conf osd create --bluestore alpha:sdb bravo:sdb charlie:sdb
运行Bluestore
这个微小的集群如何使用BlueStore运行三个OSD:
root@alpha:~# ceph -s
cluster c824e460-2f09-4994-8b2f-108aedc52d19
health HEALTH_OK
monmap e2: 3 mons at {alpha=[2001:db8::100]:6789/0,bravo=[2001:db8::101]:6789/0,charlie=[2001:db8::102]:6789/0}
election epoch 14, quorum 0,1,2 alpha,bravo,charlie
mgr active: charlie standbys: alpha, bravo
osdmap e14: 3 osds: 3 up, 3 in
flags sortbitwise,require_jewel_osds,require_kraken_osds
pgmap v24: 64 pgs, 1 pools, 0 bytes data, 0 objects
43356 kB used, 30374 MB / 30416 MB avail
64 active+clean
root@alpha:~#
root@alpha:~# ceph osd tree
ID WEIGHT TYPE NAME UP/DOWN REWEIGHT PRIMARY-AFFINITY
-1 0.02907 root default
-2 0.00969 host alpha
0 0.00969 osd.0 up 1.00000 1.00000
-3 0.00969 host bravo
1 0.00969 osd.1 up 1.00000 1.00000
-4 0.00969 host charlie
2 0.00969 osd.2 up 1.00000 1.00000
root@alpha:~#
在alpha我看到osd.0只有一个小分区的一点配置,其余的由BlueStore使用。
root@alpha:~# df -h /var/lib/ceph/osd/ceph-0
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 97M 5.4M 92M 6% /var/lib/ceph/osd/ceph-0
root@alpha:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 8G 0 disk
├─sda1 8:1 0 7.5G 0 part /
├─sda2 8:2 0 1K 0 part
└─sda5 8:5 0 510M 0 part [SWAP]
sdb 8:16 0 10G 0 disk
├─sdb1 8:17 0 100M 0 part /var/lib/ceph/osd/ceph-0
└─sdb2 8:18 0 9.9G 0 part
sdc 8:32 0 10G 0 disk
root@alpha:~# cat /var/lib/ceph/osd/ceph-0/type
bluestore
OSD应该像运行FileStore的OSD一样工作,但它们应该运行得更好。
以上内容翻译自:Testing Ceph BlueStore with the Kraken release。亲测可以成功,觉得很好就不放自己的配置,直接翻译过来了。
问题
问题1、ceph -s
的时候出现告警:WARNING: the following dangerous and experimental features are enabled: bluestore
如下
# ceph -s
2017-02-07 10:10:34.266900 7f06a82e0700 -1 WARNING: the following dangerous and experimental features are enabled: bluestore
2017-02-07 10:10:34.271112 7f06a82e0700 -1 WARNING: the following dangerous and experimental features are enabled: bluestore
cluster 7e9423ea-95f8-42d1-ae2d-7a384d68dea7
health HEALTH_OK
monmap e2: 3 mons at {blue0=172.20.1.151:6789/0,blue1=172.20.1.152:6789/0,blue2=172.20.1.153:6789/0}
election epoch 6, quorum 0,1,2 blue0,blue1,blue2
mgr no daemons active
osdmap e15: 3 osds: 3 up, 3 in
flags sortbitwise,require_jewel_osds,require_kraken_osds
pgmap v34: 64 pgs, 1 pools, 0 bytes data, 0 objects
49092 kB used, 599 GB / 599 GB avail
64 active+clean
查了资料,无果,有些认为是内核版本的问题,然而并不对。
真正原因是在添加
enable_experimental_unrecoverable_data_corrupting_features = bluestore
的时候忘记在前面加上:[osd]
问题2、从jewel版本上升级到kraken版本,然后再通过上述方法创建OSD并不成功
问题3、创建mon的时候出现error
[ceph_deploy.mon][ERROR ] RuntimeError: config file /etc/ceph/ceph.conf exists with different content; use --overwrite-conf to overwrite
解决方法
ceph-deploy --overwrite-conf mon create-initial