ceph luminous版部署bluestore

简介

与filestore最大的不同是,bluestore可以直接读写磁盘,即对象数据是直接存放在裸设备上的,这样解决了一直被抱怨的数据双份写的问题

Bluestore直接使用一个原始分区来存放ceph对象数据,不再需要任何文件系统,也就是说一个OSD对应一个裸分区;而OSD的元数据存放在一个名为RocksDB的键值对数据库中

默认的Bluestore数据存放模型:

一个OSD对应一个磁盘

磁盘的第一个分区:默认只有100MB,XFS文件系统,用于存放osd相关的 ceph_fsid、fsid、keyring等,并且其中包含一个名为block的软连接用于指向第二个分区。该分区默认挂载到/var/lib/ceph/osd/ceph-X位置。

第二个分区:原始分区,第一个分区中的block软连接指向的就是这个分区,这个分区是真正存放对象数据的分区。

部署

两个节点:ceph0、ceph1

ceph0: mon.a、mds、mgr、osd.0、osd.1
ceph1: mon.b、osd.2、osd.3

操作系统:ubuntu14.04
网络配置:

ceph1: 管理网络,eth0, 192.168.31.100
       存储网络,eth1, 172.16.31.100
ceph2: 管理网络,eth0, 192.168.31.101
       存储网络,eth1, 172.16.31.101

环境配置和https://www.cnblogs.com/wshenjin/p/11806761.html一致
OSD的部署采用bluestore的方式

配置:

[osd.0]
host = ceph0
devs = /dev/sdb1
public addr = 192.168.31.100
cluster addr = 172.16.31.100
enable experimental unrecoverable data corrupting features = bluestore rocksdb
osd objectstore = bluestore
bluestore = true
[osd.1]
host = ceph0
devs = /dev/sdc1
public addr = 192.168.31.100
cluster addr = 172.16.31.100
enable experimental unrecoverable data corrupting features = bluestore rocksdb
osd objectstore = bluestore
bluestore = true
[osd.2]
host = ceph1
devs = /dev/sdb1
public addr = 192.168.31.101
cluster addr = 172.16.31.101
enable experimental unrecoverable data corrupting features = bluestore rocksdb
osd objectstore = bluestore
bluestore = true
[osd.3]
host = ceph1
devs = /dev/sdc1
public addr = 192.168.31.101
cluster addr = 172.16.31.101
enable experimental unrecoverable data corrupting features = bluestore rocksdb
osd objectstore = bluestore
bluestore = true

ceph-disk prepare磁盘,一般执行完这条命令,新建的OSD已经up和in:

root@ceph0:~# ceph-disk prepare --bluestore  /dev/sdb

如果osd没有up,可以通过ceph-disk activate激活磁盘:

root@ceph0:~# ceph-disk activate /dev/sdb1

其他节点用同样的方式部署osd
查看:

root@ceph0:~# ceph osd stat  
4 osds: 4 up, 4 in

root@ceph0:~# ceph osd tree 
ID CLASS WEIGHT  TYPE NAME      STATUS REWEIGHT PRI-AFF 
-1       0.19476 root default                           
-3       0.09738     host ceph0                         
 0   hdd 0.04869         osd.0      up  1.00000 1.00000 
 1   hdd 0.04869         osd.1      up  1.00000 1.00000 
-5       0.09738     host ceph1                         
 2   hdd 0.04869         osd.2      up  1.00000 1.00000 
 3   hdd 0.04869         osd.3      up  1.00000 1.00000 

一些报错

报错1:

ERROR: error creating empty object store in /var/lib/ceph/tmp/mnt.cq2OM8: (5) Input/output error

原因:扇区中仍然存在上一个版本osd相关元数据信息
解决:

#使用0重写前一个G内容
root@ceph0:~# dd if=/dev/zero of=/dev/sdb bs=1M count=1024  
#先破坏磁盘所有分区,再将分区由mgr转为gpt格式分区 
root@ceph0:~# sgdisk -Z -g /dev/sdb 

参考:https://blog.csdn.net/Z_Stand/article/details/90383762
报错2:

ERROR: error creating empty object store in /var/lib/ceph/tmp/mnt.Ubow06: (17) File exists

解决:
配置文件里去掉osd data字段即可,不知道为啥

报错3:

Invalid partition data!
'/sbin/sgdisk -xxxx' failed with status code 2

解决:

root@ceph0:~# ceph-disk zap /dev/sdc
posted @ 2019-11-10 17:37  wshenJin  阅读(879)  评论(0编辑  收藏  举报