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: bluestore
openstack overcloud deploy
を実行してオーバークラウドを更新します。注記この例では、OSD を持つすべてのホストから
/dev/sde
デバイスを削除します。すべてのノードから同じデバイスを削除しない場合には、heat テンプレートを更新します。異なるdevices
一覧を持つホストを定義する方法は、「異なる Ceph Storage ノードのパラメーターのオーバーライド」 を参照してください。