11.6. 使用 BlueStore 管理工具重新划分 RocksDB 数据库
您可以使用 BlueStore 管理工具重新划分数据库。它将 BlueStore 的 RocksDB 数据库从一形转换为几列的系列,而无需重新部署 OSD。列系列的功能与整个数据库相同,但允许用户在较小的数据集上运行并应用不同的选项。它利用存储的键的不同生命周期。密钥会在转换过程中移动,而不会创建新密钥或删除现有密钥。
重新定义 OSD 的方法有两种:
-
使用
rocksdb-resharding.yml
playbook。 - 手动重新划分 OSD。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 对象存储配置为 BlueStore。
- 部署在主机上的 OSD 节点。
- 对所有主机的 root 级别访问。
-
在所有主机上安装
ceph-common
和cephadm
软件包。
11.6.1. 使用 rocksdb-resharding.yml
playbook
在管理节点上,以 root 用户身份导航到安装 playbook 的
cephadm
文件夹:示例
[root@host01 ~]# cd /usr/share/cephadm-ansible
运行 playbook:
语法
ansible-playbook -i hosts rocksdb-resharding.yml -e osd_id=OSD_ID -e admin_node=HOST_NAME
示例
[root@host01 ~]# ansible-playbook -i hosts rocksdb-resharding.yml -e osd_id=7 -e admin_node=host03 ............... TASK [stop the osd] *********************************************************************************************************************************************************************************************** Wednesday 29 November 2023 11:25:18 +0000 (0:00:00.037) 0:00:03.864 **** changed: [localhost -> host03] TASK [set_fact ceph_cmd] ****************************************************************************************************************************************************************************************** Wednesday 29 November 2023 11:25:32 +0000 (0:00:14.128) 0:00:17.992 **** ok: [localhost -> host03] TASK [check fs consistency with fsck before resharding] *********************************************************************************************************************************************************** Wednesday 29 November 2023 11:25:32 +0000 (0:00:00.041) 0:00:18.034 **** ok: [localhost -> host03] TASK [show current sharding] ************************************************************************************************************************************************************************************** Wednesday 29 November 2023 11:25:43 +0000 (0:00:11.053) 0:00:29.088 **** ok: [localhost -> host03] TASK [reshard] **************************************************************************************************************************************************************************************************** Wednesday 29 November 2023 11:25:45 +0000 (0:00:01.446) 0:00:30.534 **** ok: [localhost -> host03] TASK [check fs consistency with fsck after resharding] ************************************************************************************************************************************************************ Wednesday 29 November 2023 11:25:46 +0000 (0:00:01.479) 0:00:32.014 **** ok: [localhost -> host03] TASK [restart the osd] ******************************************************************************************************************************************************************************************** Wednesday 29 November 2023 11:25:57 +0000 (0:00:10.699) 0:00:42.714 **** changed: [localhost -> host03]
验证重新划分已经完成。
停止重新划分的 OSD:
示例
[ceph: root@host01 /]# ceph orch daemon stop osd.7
进入 OSD 容器:
示例
[root@host03 ~]# cephadm shell --name osd.7
检查重新划分:
示例
[ceph: root@host03 /]# ceph-bluestore-tool --path /var/lib/ceph/osd/ceph-7/ show-sharding m(3) p(3,0-12) O(3,0-13) L P
启动 OSD:
示例
[ceph: root@host01 /]# ceph orch daemon start osd.7
11.6.2. 手动重新划分 OSD
登录
cephadm
shell:示例
[root@host01 ~]# cephadm shell
从管理节点获取 OSD_ID 和主机详情:
示例
[ceph: root@host01 /]# ceph orch ps
以
root
用户身份登录对应的主机,再停止 OSD:语法
cephadm unit --name OSD_ID stop
示例
[root@host02 ~]# cephadm unit --name osd.0 stop
进入已停止的 OSD 守护进程容器:
语法
cephadm shell --name OSD_ID
示例
[root@host02 ~]# cephadm shell --name osd.0
登录到
cephadm shell
并检查文件系统一致性:语法
ceph-bluestore-tool --path/var/lib/ceph/osd/ceph-OSD_ID/ fsck
示例
[ceph: root@host02 /]# ceph-bluestore-tool --path /var/lib/ceph/osd/ceph-0/ fsck fsck success
检查 OSD 节点的分片状态:
语法
ceph-bluestore-tool --path /var/lib/ceph/osd/ceph-OSD_ID/ show-sharding
示例
[ceph: root@host02 /]# ceph-bluestore-tool --path /var/lib/ceph/osd/ceph-6/ show-sharding m(3) p(3,0-12) O(3,0-13) L P
运行
ceph-bluestore-tool
命令来重新划分。红帽建议使用命令中的参数:语法
ceph-bluestore-tool --log-level 10 -l log.txt --path /var/lib/ceph/osd/ceph-OSD_ID/ --sharding="m(3) p(3,0-12) O(3,0-13)=block_cache={type=binned_lru} L P" reshard
示例
[ceph: root@host02 /]# ceph-bluestore-tool --path /var/lib/ceph/osd/ceph-6/ --sharding="m(3) p(3,0-12) O(3,0-13)=block_cache={type=binned_lru} L P" reshard reshard success
要检查 OSD 节点的分片状态,请运行
show-sharding
命令:语法
ceph-bluestore-tool --path /var/lib/ceph/osd/ceph-OSD_ID/ show-sharding
示例
[ceph: root@host02 /]# ceph-bluestore-tool --path /var/lib/ceph/osd/ceph-6/ show-sharding m(3) p(3,0-12) O(3,0-13)=block_cache={type=binned_lru} L P
从
cephadm
shell 退出:[ceph: root@host02 /]# exit
以
root
用户身份登录对应的主机,再启动 OSD:语法
cephadm unit --name OSD_ID start
示例
[root@host02 ~]# cephadm unit --name osd.0 start
其它资源
- 如需更多信息,请参阅 Red Hat Ceph Storage 安装指南。