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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM