11.2. Ceph Storage ノードのスケールダウンと置き換え
場合によっては、Ceph クラスターのスケールダウン、または Ceph Storage ノードのを置き換え (Ceph Storage ノードに問題がある場合など) が必要となる可能性があります。いずれの場合も、データの損失を避けるために、オーバークラウドから削除する Ceph Storage ノードを無効にしてリバランスする必要があります。
以下の手順では、Red Hat Ceph Storage Administration Guideからのステップを使用して、手動で Ceph Storage ノードを削除します。Ceph Storage ノードの手動削除に関する詳細は、コンテナー内で実行される Ceph デーモンの開始、停止、および再起動 および コマンドラインインターフェイスを使用した Ceph OSD の削除 を参照してください。
手順
-
コントローラーノードに
heat-adminユーザーとしてログインします。director のstackユーザーには、heat-adminユーザーにアクセスするための SSH キーがあります。 OSD ツリーをリスト表示して、お使いのノードの OSD を検索します。たとえば、削除するノードには、以下の OSD が含まれる場合があります。
-2 0.09998 host overcloud-cephstorage-0 0 0.04999 osd.0 up 1.00000 1.00000 1 0.04999 osd.1 up 1.00000 1.00000
-2 0.09998 host overcloud-cephstorage-0 0 0.04999 osd.0 up 1.00000 1.00000 1 0.04999 osd.1 up 1.00000 1.00000Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph Storage ノードの OSD を無効化します。今回は、OSD ID は 0 と 1 です。
sudo podman exec ceph-mon-<HOSTNAME> ceph osd out 0 sudo podman exec ceph-mon-<HOSTNAME> ceph osd out 1
[heat-admin@overcloud-controller-0 ~]$ sudo podman exec ceph-mon-<HOSTNAME> ceph osd out 0 [heat-admin@overcloud-controller-0 ~]$ sudo podman exec ceph-mon-<HOSTNAME> ceph osd out 1Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph Storage クラスターがリバランスを開始します。このプロセスが完了するまで待機してください。以下のコマンドを使用して、ステータスを確認できます。
sudo podman exec ceph-mon-<HOSTNAME> ceph -w
[heat-admin@overcloud-controller-0 ~]$ sudo podman exec ceph-mon-<HOSTNAME> ceph -wCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph クラスターのリバランスが完了したら、削除する Ceph Storage ノード (ここでは
overcloud-cephstorage-0) にheat-adminユーザーとしてログインし、ノードを停止し無効にします。sudo systemctl stop ceph-osd@0 sudo systemctl stop ceph-osd@1 sudo systemctl disable ceph-osd@0 sudo systemctl disable ceph-osd@1
[heat-admin@overcloud-cephstorage-0 ~]$ sudo systemctl stop ceph-osd@0 [heat-admin@overcloud-cephstorage-0 ~]$ sudo systemctl stop ceph-osd@1 [heat-admin@overcloud-cephstorage-0 ~]$ sudo systemctl disable ceph-osd@0 [heat-admin@overcloud-cephstorage-0 ~]$ sudo systemctl disable ceph-osd@1Copy to Clipboard Copied! Toggle word wrap Toggle overflow OSD を停止します。
sudo systemctl stop ceph-osd@0 sudo systemctl stop ceph-osd@1
[heat-admin@overcloud-cephstorage-0 ~]$ sudo systemctl stop ceph-osd@0 [heat-admin@overcloud-cephstorage-0 ~]$ sudo systemctl stop ceph-osd@1Copy to Clipboard Copied! Toggle word wrap Toggle overflow コントローラーノードにログインしたら、CRUSH マップから OSD を削除して、データを受信しないようにします。
sudo podman exec ceph-mon-<HOSTNAME> ceph osd crush remove osd.0 sudo podman exec ceph-mon-<HOSTNAME> ceph osd crush remove osd.1
[heat-admin@overcloud-controller-0 ~]$ sudo podman exec ceph-mon-<HOSTNAME> ceph osd crush remove osd.0 [heat-admin@overcloud-controller-0 ~]$ sudo podman exec ceph-mon-<HOSTNAME> ceph osd crush remove osd.1Copy to Clipboard Copied! Toggle word wrap Toggle overflow OSD 認証キーを削除します。
sudo podman exec ceph-mon-<HOSTNAME> ceph auth del osd.0 sudo podman exec ceph-mon-<HOSTNAME> ceph auth del osd.1
[heat-admin@overcloud-controller-0 ~]$ sudo podman exec ceph-mon-<HOSTNAME> ceph auth del osd.0 [heat-admin@overcloud-controller-0 ~]$ sudo podman exec ceph-mon-<HOSTNAME> ceph auth del osd.1Copy to Clipboard Copied! Toggle word wrap Toggle overflow クラスターから OSD を削除します。
sudo podman exec ceph-mon-<HOSTNAME> ceph osd rm 0 sudo podman exec ceph-mon-<HOSTNAME> ceph osd rm 1
[heat-admin@overcloud-controller-0 ~]$ sudo podman exec ceph-mon-<HOSTNAME> ceph osd rm 0 [heat-admin@overcloud-controller-0 ~]$ sudo podman exec ceph-mon-<HOSTNAME> ceph osd rm 1Copy to Clipboard Copied! Toggle word wrap Toggle overflow CRUSH マップからストレージノードを削除します。
sudo docker exec ceph-mon-<HOSTNAME> ceph osd crush rm <NODE> sudo ceph osd crush remove <NODE>
[heat-admin@overcloud-controller-0 ~]$ sudo docker exec ceph-mon-<HOSTNAME> ceph osd crush rm <NODE> [heat-admin@overcloud-controller-0 ~]$ sudo ceph osd crush remove <NODE>Copy to Clipboard Copied! Toggle word wrap Toggle overflow CRUSH ツリーを検索して、CRUSH マップに定義されている <NODE> の名前を確認できます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow CRUSH ツリーで、アイテムリストが空であることを確認します。リストが空でない場合は、ステップ 7 を再度実施してください。
ノードからログアウトして、
stackユーザーとしてアンダークラウドに戻ります。exit
[heat-admin@overcloud-controller-0 ~]$ exit [stack@director ~]$Copy to Clipboard Copied! Toggle word wrap Toggle overflow director が再度プロビジョニングしないように、Ceph Storage ノードを無効にします。
openstack baremetal node list openstack baremetal node maintenance set UUID
[stack@director ~]$ openstack baremetal node list [stack@director ~]$ openstack baremetal node maintenance set UUIDCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph Storage ノードを削除するには、ローカルのテンプレートファイルを使用して、director の
overcloudスタックへの更新が必要です。最初にオーバークラウドスタックの UUID を特定します。openstack stack list
$ openstack stack listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 削除する Ceph Storage ノードの UUID を特定します。
openstack server list
$ openstack server listCopy to Clipboard Copied! Toggle word wrap Toggle overflow スタックからノードを削除し、それに応じてプランを更新します。
重要オーバークラウドの作成時に追加の環境ファイルを渡した場合には、予定外の変更がオーバークラウドに加えられないように、ここで
-eオプションを使用して環境ファイルを再度渡します。詳しい情報は、director のインストールと使用方法ガイドの オーバークラウド環境の変更 を参照してください。openstack overcloud node delete / --stack <stack-name> / --templates / -e <other-environment-files> / <node_UUID>
$ openstack overcloud node delete / --stack <stack-name> / --templates / -e <other-environment-files> / <node_UUID>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
stack が更新を完了するまで待機します。
heat stack-list --show-nestedコマンドを使用して、stack の更新を監視します。 新規ノードを director のノードプールに追加して、Ceph Storage ノードとしてデプロイします。環境ファイル (ここでは
~/templates/storage-config.yaml) のparameter_defaultsのCephStorageCountパラメーターを使用して、オーバークラウド内の Ceph Storage ノードの合計数を定義します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記ロールごとのノード数を定義する方法の詳細は、「ロールへのノードとフレーバーの割り当て」を参照してください。
環境ファイルを更新したら、オーバークラウドを再デプロイします。
openstack overcloud deploy --templates -e <ENVIRONMENT_FILE>
$ openstack overcloud deploy --templates -e <ENVIRONMENT_FILE>Copy to Clipboard Copied! Toggle word wrap Toggle overflow director は、新しいノードをプロビジョニングし、新しいノードの詳細を用いて stack 全体を更新します。
heat-adminユーザーとしてコントローラーノードにログインし、Ceph Storage ノードのステータスを確認します。sudo ceph status
[heat-admin@overcloud-controller-0 ~]$ sudo ceph statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
osdmapセクションの値がクラスターで必要なノード数と一致していることを確認します。削除した Ceph Storage ノードは新規ノードに置き換えられます。