内容简介:Ceph OSD从filestore 转换到 bluestore的方法
前言
前段时间看到 豪迈的公众号 上提到了这个离线转换工具,最近看到群里有人问,找了下没什么相关文档,就自己写了一个,供参考
实践步骤
获取代码并安装
git clone https://github.com/ceph/ceph.git cd ceph git submodule update --init --recursive ./make-dist rpm -bb ceph.spec
生成rpm安装包后进行安装,这个过程就不讲太多,根据各种文档安装上最新的版本即可,这个代码合进去时间并不久,大概是上个月才合进去的
配置集群
首先配置一个filestore的集群,这个也是很简单的,我的环境配置一个单主机三个OSD的集群
[root@lab8106 ceph]# ceph -s cluster 3daaf51a-eeba-43a6-9f58-c26c5796f928 health HEALTH_WARN mon.lab8106 low disk space monmap e2: 1 mons at {lab8106=192.168.8.106:6789/0} election epoch 4, quorum 0 lab8106 mgr active: lab8106 osdmap e16: 3 osds: 3 up, 3 in pgmap v34: 64 pgs, 1 pools, 0 bytes data, 0 objects 323 MB used, 822 GB / 822 GB avail 64 active+clean [root@lab8106 ceph]# ceph osd tree ID WEIGHT TYPE NAME UP/DOWN REWEIGHT PRIMARY-AFFINITY -1 0.80338 root default -2 0.80338 host lab8106 0 0.26779 osd.0 up 1.00000 1.00000 1 0.26779 osd.1 up 1.00000 1.00000 2 0.26779 osd.2 up 1.00000 1.00000
写入少量数据
[root@lab8106 ~]# rados -p rbd bench 10 write --no-cleanup
设置noout
[root@lab8106 ~]# ceph osd set noout noout is set
停止OSD.0
[root@lab8106 ~]# systemctl stop ceph-osd@0 [root@lab8106 ~]# ceph osd down 0 osd.0 is already down.
将数据换个目录挂载,换个新盘挂载到原路径
[root@lab8106 ~]# mkdir /var/lib/ceph/osd/ceph-0.old/ [root@lab8106 ~]# umount /var/lib/ceph/osd/ceph-0 [root@lab8106 ~]# mount /dev/sdb1 /var/lib/ceph/osd/ceph-0.old/ [root@lab8106 ~]# mount /dev/sde1 /var/lib/ceph/osd/ceph-0/ [root@lab8106 ~]# df -h|grep osd /dev/sdc1 275G 833M 274G 1% /var/lib/ceph/osd/ceph-1 /dev/sdd1 275G 833M 274G 1% /var/lib/ceph/osd/ceph-2 /dev/sdb1 275G 759M 274G 1% /var/lib/ceph/osd/ceph-0.old /dev/sde1 280G 33M 280G 1% /var/lib/ceph/osd/ceph-0
在配置文件/etc/ceph/ceph.conf中添加
enable_experimental_unrecoverable_data_corrupting_features = bluestore
如果需要指定osd的block的路径需要写配置文件
在做 ceph-objectstore-tool --type bluestore --data-path --op mkfs
这个操作之前,在配置文件的全局里面添加上
bluestore_block_path = /dev/sde2
然后再创建的时候就可以是链接到设备了,这个地方写全局变量,然后创建完了后就删除掉这项配置文件,写单独的配置文件的时候发现没读取成功,生成后应该是这样的
[root@lab8106 ceph]# ll /var/lib/ceph/osd/ceph-0 total 20 lrwxrwxrwx 1 root root 9 May 3 17:40 block -> /dev/sde2 -rw-r--r-- 1 root root 2 May 3 17:40 bluefs -rw-r--r-- 1 root root 37 May 3 17:40 fsid -rw-r--r-- 1 root root 8 May 3 17:40 kv_backend -rw-r--r-- 1 root root 4 May 3 17:40 mkfs_done -rw-r--r-- 1 root root 10 May 3 17:40 type
如果不增加这个就是以文件形式的存在
获取osd.0的fsid
[root@lab8106 ~]# cat /var/lib/ceph/osd/ceph-0.old/fsid b2f73450-5c4a-45fb-9c24-8218a5803434
创建一个bluestore的osd.0
[root@lab8106 ~]# ceph-objectstore-tool --type bluestore --data-path /var/lib/ceph/osd/ceph-0 --fsid b2f73450-5c4a-45fb-9c24-8218a5803434 --op mkfs
转移数据
[root@lab8106 ~]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0.old --target-data-path /var/lib/ceph/osd/ceph-0 --op dup [root@lab8106 ~]# chown -R ceph:ceph /var/lib/ceph/osd/ceph-0
这个操作是将之前的filestore的数据转移到新的bluestore上了
启动OSD.0
[root@lab8106 osd]# systemctl restart ceph-osd@0
检查状态
[root@lab8106 osd]# ceph -s 2017-05-03 17:05:13.119492 7f20a501b700 -1 WARNING: the following dangerous and experimental features are enabled: bluestore 2017-05-03 17:05:13.150181 7f20a501b700 -1 WARNING: the following dangerous and experimental features are enabled: bluestore cluster 3daaf51a-eeba-43a6-9f58-c26c5796f928 health HEALTH_WARN noout flag(s) set mon.lab8106 low disk space monmap e2: 1 mons at {lab8106=192.168.8.106:6789/0} election epoch 4, quorum 0 lab8106 mgr active: lab8106 osdmap e25: 3 osds: 3 up, 3 in flags noout pgmap v80: 64 pgs, 1 pools, 724 MB data, 182 objects 3431 MB used, 555 GB / 558 GB avail 64 active+clean
成功转移
不同的block方式
[root@lab8106 ceph]# ll /var/lib/ceph/osd/ceph-0/ -al|grep block -rw-r--r-- 1 ceph ceph 10737418240 May 3 17:32 block [root@lab8106 ceph]# ll /var/lib/ceph/osd/ceph-4/ -al|grep block lrwxrwxrwx 1 ceph ceph 58 May 3 17:16 block -> /dev/disk/by-partuuid/846e93a2-0f6d-47d4-8a90-85ab3cf4ec4e -rw-r--r-- 1 ceph ceph 37 May 3 17:16 block_uuid
可以看到直接创建的时候的block是以链接的方式链接到一个分区的,而不改配置文件的转移的方式里面是一个文件的形式,根据需要进行选择
总结
转移 工具 的出现方便了以后从filestore到bluestore的转移,可以采取一个个osd的转移方式将整个集群进行转移,而免去了剔除osd,再添加的方式,减少了迁移量,可以一个个的离线进行操作
ceph的工具集越来越完整了
变更记录
Why | Who | When |
---|---|---|
创建 | 武汉-运维-磨渣 | 2017-05-03 |
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- JavaScript 转换数字为整数的方法
- 标准库time中的常用时间转换方法
- 简单实体类和xml文件的相互转换方法
- Mongodb 利用mongoshell进行数据类型转换的实现方法
- Ceph OSD从filestore 转换到 bluestore的方法
- ESXi虚拟机磁盘格式转换与减小硬盘容量的方法 荐
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Python科学计算(第2版)
张若愚 / 清华大学出版社 / 2016-4-29 / 118
本书介绍如何用 Python 开发科学计算的应用程序,除了介绍数值计算之外,还着重介绍了如何制作交互式二维、三维图像,如何设计精巧的程序界面,如何与 C 语言编写的高速计算程序结合,如何编写声音、图像处理算法等内容。本书采用 IPython notebook 编写,所有的程序均能在本书提供的运行环境中正常运行,书中所印刷的图表以及程序输出为均为自动运行的结果,保证了书中所有程序的正确性以及可读性。......一起来看看 《Python科学计算(第2版)》 这本书的介绍吧!