検索

11.6. BlueStore 管理ツールを使用して RocksDB データベースを再度シャード化する

download PDF

このリリースでは、BlueStore 管理ツールを使用してデータベースをリシャード化できます。これにより、BlueStore の RocksDB データベースを、OSD を再デプロイせずに、ある形態から別の形態に、さらに複数の列ファミリーに変換します。列ファミリーはデータベース全体と同じ機能がありますが、ユーザーは小規模なデータセットで操作し、異なるオプションを適用することができます。これは、保存されたキーの異なる有効期間を活用します。このキーは、新しいキーを作成したり既存のキーを削除せずに、変換中に移動されます。

OSD を再シャードするには 2 つの方法があります。

  1. rocksdb-resharding.yml Playbook を使用します。
  2. OSD を手動で再シャードします。

前提条件

  • 稼働中の Red Hat Ceph Storage クラスターがある。
  • オブジェクトストアが BlueStore として設定されている。
  • OSD ノードがホストにデプロイされている。
  • すべてのホストへ root レベルでアクセスできる。
  • ceph-common パッケージおよび cephadm パッケージがすべてのホストにインストールされている。

11.6.1. rocksdb-resharding.yml Playbook を使用する

  1. root ユーザーとして、管理ノードで、Playbook がインストールされている cephadm フォルダーに移動します。

    [root@host01 ~]# cd /usr/share/cephadm-ansible

  2. 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]

  3. 再シャーディングが完了したことを確認します。

    1. 再シャーディングされた OSD を停止します。

      [ceph: root@host01 /]# ceph orch daemon stop osd.7

    2. OSD コンテナーを入力します。

      [root@host03 ~]# cephadm shell --name osd.7

    3. 再シャーディングを確認します。

      [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

    4. OSD を起動します。

      [ceph: root@host01 /]# ceph orch daemon start osd.7

11.6.2. OSD を手動で再シャーディングする

  1. cephadm シェルにログインします。

    [root@host01 ~]# cephadm shell

  2. 管理ノードから OSD_ID とホストの詳細を取得します。

    [ceph: root@host01 /]# ceph orch ps

  3. それぞれのホストに root ユーザーでログインし、OSD を停止します。

    構文

    cephadm unit --name OSD_ID stop

    [root@host02 ~]# cephadm unit --name osd.0 stop

  4. 停止中の OSD デーモンコンテナーに入ります。

    構文

    cephadm shell --name OSD_ID

    [root@host02 ~]# cephadm shell --name osd.0

  5. 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

  6. 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

  7. 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

  8. 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

  9. cephadm シェルを終了します。

    [ceph: root@host02 /]# exit
  10. それぞれのホストに root ユーザーでログインし、OSD を起動します。

    構文

    cephadm unit --name OSD_ID start

    [root@host02 ~]# cephadm unit --name osd.0 start

関連情報

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.