11.4. Ceph Storage ノードからの OSD の削除
この手順では、ノードから OSD を削除する方法を説明します。環境について以下を前提とします。
-
サーバー (
ceph-storage0) には、/dev/sdeで実行している OSD (ceph-osd@4) がある。 -
Ceph monitor サービス (
ceph-mon) がcontroller0で実行されている。 - ストレージクラスターの割合がほぼ完全とならないように、利用可能な OSD が十分にある。
Ceph OSD に関する詳細は、『Red Hat Ceph Storage Operations Guide』の「Ceph OSDs」を参照してください。
手順
-
ceph-storage0に SSH 接続し、rootでログインします。 OSD サービスを無効にし、停止します。
[root@ceph-storage0 ~]# systemctl disable ceph-osd@4 [root@ceph-stoarge0 ~]# systemctl stop ceph-osd@4
-
ceph-storage0からの接続を切断します。 -
controller0に SSH 接続し、rootでログインします。 Ceph monitor コンテナーの名前を特定します。
[root@controller0 ~]# podman ps | grep ceph-mon ceph-mon-controller0 [root@controller0 ~]#
Ceph monitor コンテナーを有効にして、望ましくない OSD を
outとマークします。[root@controller0 ~]# podman exec ceph-mon-controller0 ceph osd out 4
注記このコマンドにより、Ceph はストレージクラスターをリバランスし、データをクラスター内の他の OSD にコピーします。クラスターは、リバランスが完了するまで、一時的に
active+clean状態から離れます。以下のコマンドを実行し、ストレージクラスターの状態が
active+cleanになるまで待機します。[root@controller0 ~]# podman exec ceph-mon-controller0 ceph -w
CRUSH マップから OSD を削除して、データを受信しないようにします。
[root@controller0 ~]# podman exec ceph-mon-controller0 ceph osd crush remove osd.4
OSD 認証キーを削除します。
[root@controller0 ~]# podman exec ceph-mon-controller0 ceph auth del osd.4
OSD を削除します。
[root@controller0 ~]# podman exec ceph-mon-controller0 ceph osd rm 4
-
controller0から接続を解除します。 -
stackユーザーとしてアンダークラウドに SSH 接続し、CephAnsibleDisksConfigパラメーターを定義した heat 環境ファイルを見つけます。 heat テンプレートに OSD が 4 つ含まれています。
parameter_defaults: CephAnsibleDisksConfig: devices: - /dev/sdb - /dev/sdc - /dev/sdd - /dev/sde osd_scenario: lvm osd_objectstore: bluestoreテンプレートを変更して
/dev/sdeを削除します。parameter_defaults: CephAnsibleDisksConfig: devices: - /dev/sdb - /dev/sdc - /dev/sdd osd_scenario: lvm osd_objectstore: bluestoreopenstack overcloud deployを実行してオーバークラウドを更新します。注記この例では、OSD を使用するすべてのホストから
/dev/sdeデバイスを削除していることを前提としています。すべてのノードから同じデバイスを削除しない場合には、heat テンプレートを更新します。異なるdevices一覧を持つホストを定義する方法についての詳細は、「異なる構成の Ceph Storage ノードへのディスクレイアウトのマッピング」を参照してください。