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
文件夹:示例
cd /usr/share/cephadm-ansible
[root@host01 ~]# cd /usr/share/cephadm-ansible
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行 playbook:
语法
ansible-playbook -i hosts rocksdb-resharding.yml -e osd_id=OSD_ID -e admin_node=HOST_NAME
ansible-playbook -i hosts rocksdb-resharding.yml -e osd_id=OSD_ID -e admin_node=HOST_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证重新划分已经完成。
停止重新划分的 OSD:
示例
[ceph: root@host01 /]# ceph orch daemon stop osd.7
[ceph: root@host01 /]# ceph orch daemon stop osd.7
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 进入 OSD 容器:
示例
cephadm shell --name osd.7
[root@host03 ~]# cephadm shell --name osd.7
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查重新划分:
示例
[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
[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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启动 OSD:
示例
[ceph: root@host01 /]# ceph orch daemon start osd.7
[ceph: root@host01 /]# ceph orch daemon start osd.7
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
11.6.2. 手动重新划分 OSD 复制链接链接已复制到粘贴板!
登录
cephadm
shell:示例
cephadm shell
[root@host01 ~]# cephadm shell
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 从管理节点获取 OSD_ID 和主机详情:
示例
[ceph: root@host01 /]# ceph orch ps
[ceph: root@host01 /]# ceph orch ps
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以
root
用户身份登录对应的主机,再停止 OSD:语法
cephadm unit --name OSD_ID stop
cephadm unit --name OSD_ID stop
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
cephadm unit --name osd.0 stop
[root@host02 ~]# cephadm unit --name osd.0 stop
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 进入已停止的 OSD 守护进程容器:
语法
cephadm shell --name OSD_ID
cephadm shell --name OSD_ID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
cephadm shell --name osd.0
[root@host02 ~]# cephadm shell --name osd.0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 登录到
cephadm shell
并检查文件系统一致性:语法
ceph-bluestore-tool --path/var/lib/ceph/osd/ceph-OSD_ID/ fsck
ceph-bluestore-tool --path/var/lib/ceph/osd/ceph-OSD_ID/ fsck
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host02 /]# ceph-bluestore-tool --path /var/lib/ceph/osd/ceph-0/ fsck fsck success
[ceph: root@host02 /]# ceph-bluestore-tool --path /var/lib/ceph/osd/ceph-0/ fsck fsck success
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查 OSD 节点的分片状态:
语法
ceph-bluestore-tool --path /var/lib/ceph/osd/ceph-OSD_ID/ show-sharding
ceph-bluestore-tool --path /var/lib/ceph/osd/ceph-OSD_ID/ show-sharding
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[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: 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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行
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-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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[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
[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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要检查 OSD 节点的分片状态,请运行
show-sharding
命令:语法
ceph-bluestore-tool --path /var/lib/ceph/osd/ceph-OSD_ID/ show-sharding
ceph-bluestore-tool --path /var/lib/ceph/osd/ceph-OSD_ID/ show-sharding
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[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
[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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 从
cephadm
shell 退出:[ceph: root@host02 /]# exit
[ceph: root@host02 /]# exit
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以
root
用户身份登录对应的主机,再启动 OSD:语法
cephadm unit --name OSD_ID start
cephadm unit --name OSD_ID start
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
cephadm unit --name osd.0 start
[root@host02 ~]# cephadm unit --name osd.0 start
Copy to Clipboard Copied! Toggle word wrap Toggle overflow