ceph 的 luminous版本里bluestore已经稳定了,这里尝试部署一下使用bluestore
Bluestore原理说明
对象可以直接存放在裸盘上,不需要任何文件系统接口。
BlueStore 直接使用一个原始分区,ceph对象将直接写在块设备上,不再需要任何的文件系统;
和osd一起进来的元数据将存储在 一个 名为 RocksDB 的键值对 数据库;
各层意义
RocksDB :存储 WAL 日志和元数据(omap)
BlueRocksEnv: 与RocksDB 交互的接口
BlueFS : 一个类似文件系统的 mini C++,使 rocksdb 生效,ENv 接口(存储 RocksDB 日志和 sst 文件);
因为rocksdb 一般跑在一个文件系统的上层,所以创建了 BlueFS。
RocksDB 存放的数据类型
对象的元数据
write-ahead 日志
ceph omap 数据
allocator metadata(元数据分配器):决定数据存放位置;此功能可插拔
默认BlueStore模型
第一个小分区(XFS或者ext4),包括ceph files
(init system descriptor,status,id,fsid,keyring 等)和RocksDB 文件
第二个分区是一个原始分区
优点
每一部分都可以存放在不同的磁盘中,RocksDB WAL 和 DB 可以存放在不同的磁盘或者小分区中
查看
|
|
环境说明
在node1、node2、node3上分别有两块磁盘:vdb 和vdc
其中vdb不分区,用于存储osd数据
vdc有一个分区:vdc1,(类似于之前filestore下的日志分区,可以用ssd磁盘), 用于存放block.db
安装流程
系统环境
主机名 | IP | 部署 | 系统 | 磁盘 |
---|---|---|---|---|
node1 | 172.28.7.239 | 管理、存储、监控 | Centos7最小安装 | 2块(osd、block.db) |
node2 | 172.28.7.240 | 存储、监控 | Centos7最小安装 | 2块(osd、block.db) |
node3 | 172.28.7.241 | 存储、监控 | Centos7最小安装 | 2块(osd、block.db) |
Centos7系统安装完成执行:
yum update
所有添加Ceph源
vim /etc/yum.repos.d/ceph.repo
所有节点安装epel源
|
|
所有节点初始化配置
|
|
管理节点执行
生成密钥
|
|
安装配置 ceph-deploy
|
|
创建集群
创建目录
|
|
生成ceph.conf和kering
|
|
配置ceph.conf
|
|
注意:只要新创建了pool, 所有osd 设置:osd_crush_update_on_start = true 才会进行调整
安装ceph
|
|
集群初始化
|
|
拷贝管理文件
根据实际情况,拷贝管理文件到设定的管理节点
统一节点上ceph.conf文件命令:
添加osd
由于Luminous里默认使用Bluestore,可以直接操作裸盘,data和block-db会使用lv。综合成本及性能,我们把block.db使用ssd的分区,osd仍然使用sas,block.wal不指定. 这里vdb作为osd盘,vdc作为block-db盘
配置dashboard
使用node1(172.28.7.239) 作为dashboard, 登陆到172.28.7.239执行:
创建mgr
|
|
netstat -tunlp|grep 7000
systemctl restart ceph-mgr@node1
访问dashboard
清除安装
有时候我们安装错误,可以执行清理操作:
简单性能测试
|
|