Jewel 版ceph安装和BlueStore配置

版权声明:本博客系博主原创或转载,允许转载,但请保留原文出处。 https://blog.csdn.net/heivy/article/details/51133495

BlueStore

对象可以直接存放在裸盘上,不需要任何文件系统接口。

原理

BlueStore 直接使用一个原始分区,ceph对象将直接写在块设备上,不再需要任何的文件系统;和osd一起进来的元数据将存储在 一个 名为 RocksDB 的键值对 数据库;

各层意义:

RocksDB :存储 WAL 日志和元数据(omap)
BlueRocksEnv: 与RocksDB 交互的接口
BlueFS  : 一个类似文件系统的 mini C++,使 rocksdb 生效,ENv 接口(存储 RocksDB 日志和 sst 文件);
因为rocksdb 一般跑在一个文件系统的上层,所以创建了 BlueFS。
这是一个后端层,RocksDB的数据存储在 BlueStore用于存放自己数据的块设备上。

RocksDB 存放的数据类型:

对象的元数据
write-ahead 日志
ceph omap  数据
allocator metadata(元数据分配器):决定数据存放位置;此功能可插拔

默认BlueStore模型:

第一个小分区(XFS或者ext4),包括ceph files 
(init system descriptor,status,id,fsid,keyring 等)
和RocksDB 文件
第二个分区是一个原始分区

优点:

每一部分都可以存放在不同的磁盘中,RocksDB WAL 和 DB 可以存放在不同的磁盘或者小分区中

Jewel版ceph安装

在 /etc/apt/sources.list.d/ceph.list 里面添加 ceph jewel 版的ceph源,

apt-get update ## 更新

手动安装jewel 版ceph:
apt-get install -y librbd1 librados2 ceph ceph-common ceph-mds python-ceph libcephfs1

安装ceph最新版配置工具:ceph-deploy

下载ceph-deploy源码: git clone https://github.com/ceph/ceph-deploy.git

进入 ceph-deploy 文件夹,更改setup.py 权限:

 chmod +x setup.py 

安装ceph-deploy:

`cd  ceph-deploy`   
`python setup.py install`

确认 已安装的ceph-deploy 是否可以配置 BlueStore 类型的osd:

1、查看 /usr/local/lib/python2.7/dist-packages/ceph_deploy-1.5.31-py2.7.egg/ceph_deploy/osd.py

文件的第192行是否为: storetype):   

2、第318-320行是否分别为:

storetype = None 
if args.bluestore:
    storetype = 'bluestore'

ceph.conf 配置模板(BlueStore类型):

[global]

fsid = 879d6590-2c71-4b31-a54c-8d9752559f13

mon_initial_members = node1

mon_host = 10.1.35.230

auth_cluster_required = cephx

auth_service_required = cephx

auth_client_required = cephx

filestore_xattr_use_omap = true

enable experimental unrecoverable data corrupting features = bluestore rocksdb

bluestore fsck on mount = true

bluestore block db size = 67108864

bluestore block wal size = 134217728

bluestore block size = 5368709120

osd objectstore = bluestore

[osd]

bluestore = true


N:推送到其他节点的/etc/ceph 文件夹里面

前面新建配置mon 和 mds过程和命令不变,
配置 BlueStore 类型osd 的ceph-deploy 命令:

ceph-deploy --overwrite-conf osd prepare --bluestore node1:/dev/sdb

目前,BlueStore类型的osd,直接用rbd新建的块设备是不能挂载的(挂载出错,内核不支持;如有不当之处请告知。)

本人采用的是rbd-nbd 来新建块设备:

$ sudo apt-get install -y rbd-nbd
$ sudo rbd create leseb -s 10G
$ sudo rbd-nbd map rbd/leseb
/dev/nbd0

$ sudo rbd-nbd list-mapped
/dev/nbd0

本文出自“he ivy”的博客,转载请务必保留此出处:http://blog.csdn.net/heivy/article/details/51133495

猜你喜欢

转载自blog.csdn.net/heivy/article/details/51133495