标签:exist tin val tst root cti block sdc 环境
与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/11496650.html一致
OSD的部署采用bluestore的方式
配置:
[osd.0]
host = ceph0
devs = /dev/sdb1
enable experimental unrecoverable data corrupting features = bluestore rocksdb
osd objectstore = bluestore
bluestore = true
[osd.1]
host = ceph0
devs = /dev/sdc1
enable experimental unrecoverable data corrupting features = bluestore rocksdb
osd objectstore = bluestore
bluestore = true
[osd.2]
host = ceph1
devs = /dev/sdb1
enable experimental unrecoverable data corrupting features = bluestore rocksdb
osd objectstore = bluestore
bluestore = true
[osd.3]
host = ceph1
devs = /dev/sdc1
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
标签:exist tin val tst root cti block sdc 环境
原文地址:https://www.cnblogs.com/wshenjin/p/11831047.html