15.2. Red Hat Ceph Storage ノードのスケールダウンと置き換え
場合によっては、Red Hat Ceph Storage クラスターをスケールダウンしたり、Red Hat Ceph Storage ノードを置き換えたりしないといけない場合があります。いずれの場合も、データの損失を防ぐために、オーバークラウドから削除する Red Hat Ceph Storage ノードを無効にして再調整する必要があります。
Red Hat Ceph Storage クラスターに OSD を失うだけの容量がない場合は、この手順を続行しないでください。
-
tripleo-admin
ユーザーとしてオーバークラウドのコントローラーノードにログインします。 -
sudo cephadm shell
コマンドを使用して、Ceph シェルを開始します。 ceph osd tree
コマンドを使用して、サーバーによって削除される OSD を識別します。次の例では、
ceph-2
ホストの OSD を識別します。[ceph: root@oc0-controller-0 /]# ceph osd tree ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF -1 0.58557 root default -7 0.19519 host ceph-2 5 hdd 0.04880 osd.5 up 1.00000 1.00000 7 hdd 0.04880 osd.7 up 1.00000 1.00000 9 hdd 0.04880 osd.9 up 1.00000 1.00000 11 hdd 0.04880 osd.11 up 1.00000 1.00000
Ceph クラスター仕様を YAML ファイルにエクスポートします。
[ceph: root@oc0-controller-0 /]# ceph orch ls --export > spec.yml
-
エクスポートされた仕様ファイルを編集して、該当するホストが
service-type: osd hosts
リストから削除され、該当するホストのplacement: hosts
値が削除されるようにします。 - 編集したファイルを保存します。
変更した Ceph 仕様ファイルを適用します。
[ceph: root@oc0-controller-0 /]# ceph orch apply -i spec.yml
重要OSD を削除する前に Ceph 仕様ファイルをエクスポートして編集しない場合、Ceph Manager は OSD を再作成しようとします。
OSD を削除するには、コマンド
ceph orch osd rm --zap <osd_list>
を使用します。[ceph: root@oc0-controller-0 /]# ceph orch osd rm --zap 5 7 9 11 Scheduled OSD(s) for removal [ceph: root@oc0-controller-0 /]# ceph orch osd rm status OSD_ID HOST STATE PG_COUNT REPLACE FORCE DRAIN_STARTED_AT 7 ceph-2 draining 27 False False 2021-04-23 21:35:51.215361 9 ceph-2 draining 8 False False 2021-04-23 21:35:49.111500 11 ceph-2 draining 14 False False 2021-04-23 21:35:50.243762
コマンド
ceph orch osd status
を使用して、OSD 削除のステータスを確認します。[ceph: root@oc0-controller-0 /]# ceph orch osd rm status OSD_ID HOST STATE PG_COUNT REPLACE FORCE DRAIN_STARTED_AT 7 ceph-2 draining 34 False False 2021-04-23 21:35:51.215361 11 ceph-2 draining 14 False False 2021-04-23 21:35:50.243762
警告このコマンドが結果を返さなくなるまで、次のステップに進まないでください。
コマンド
ceph orch host drain <HOST>
を使用して、残りのデーモンをドレインします。[ceph: root@oc0-controller-0 /]# ceph orch host drain ceph-2
コマンド
ceph orch host rm <HOST>
を使用して、ホストを削除します。[ceph: root@oc0-controller-0 /]# ceph orch host rm ceph-2
- Ceph シェルセッションを終了します。
-
tripleo-admin
アカウントからログアウトします。 -
アンダークラウドノードに
stack
ユーザーとしてログインします。 ~/overcloud-baremetal-deploy.yaml
を以下の方法で変更します。-
スケールダウンするロールの
count
属性を減らします。 プロビジョニングを解除する各ノードの
instances
エントリーを追加します。各エントリーには以下が含まれている必要があります。-
ベアメタルノードの
name
。 -
そのノードに割り当てられた
hostname
。 provisioned: false
値。以下の例では、ノード
overcloud-compute-1
を削除します。- name: Compute count: 1 instances: - hostname: overcloud-compute-0 name: node10 # Removed from deployment due to disk failure provisioned: false - hostname: overcloud-compute-1 name: node11
-
ベアメタルノードの
-
スケールダウンするロールの
ノードを削除するには、
openstack overcloud node delete
コマンドを使用します。openstack overcloud node delete \ --stack overcloud \ --baremetal-deployment ~/overcloud-baremetal-deploy.yaml
注記ノードが削除される前に、削除するノードのリストが確認プロンプトとともに提供されます。
Ceph クラスターのスケールダウンが一時的であり、削除されたノードが後で復元される場合、スケールアップアクションは count
を増やし、以前は provisioned: false
に設定されていたノードで provisioned: true
を設定できます。ノードが再利用されない場合は、provisioned: false
を無期限で設定し、スケールアップアクションで新しいインスタンスエントリーを指定できます。
+ 次のファイルサンプルは、各インスタンスの例をいくつか示しています。
+
- name: Compute count: 2 instances: - hostname: overcloud-compute-0 name: node10 # Removed from deployment due to disk failure provisioned: false - hostname: overcloud-compute-1 name: node11 - hostname: overcloud-compute-2 name: node12