11.6. BlueStore 管理ツールを使用して RocksDB データベースを再度シャード化する
このリリースでは、BlueStore 管理ツールを使用してデータベースをリシャード化できます。これにより、BlueStore の RocksDB データベースを、OSD を再デプロイせずに、ある形態から別の形態に、さらに複数の列ファミリーに変換します。列ファミリーはデータベース全体と同じ機能がありますが、ユーザーは小規模なデータセットで操作し、異なるオプションを適用することができます。これは、保存されたキーの異なる有効期間を活用します。このキーは、新しいキーを作成したり既存のキーを削除せずに、変換中に移動されます。
OSD を再シャードするには 2 つの方法があります。
-
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
シェルにログインします。例
[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
コマンドを実行してリシャードします。Red Hat は、コマンドで指定されたパラメーターを使用することを推奨します。構文
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
シェルを終了します。[ceph: root@host02 /]# exit
それぞれのホストに
root
ユーザーでログインし、OSD を起動します。構文
cephadm unit --name OSD_ID start
例
[root@host02 ~]# cephadm unit --name osd.0 start
関連情報
- 詳細は、Red Hat Ceph Storage インストールガイド を参照してください。