8.3. ローカルストレージデバイスを使用してプロビジョニングされた、失敗したまたは不要な Ceph OSD を削除
以下の手順に従って、ローカルストレージデバイスを使用して、Ceph がプロビジョニングした障害のあるオブジェクトまたは不要なオブジェクトストレージデバイス (OSD) を削除できます。
クラスターのスケールダウンは、Red Hat サポートチームの支援がある場合にのみサポートされます。
- Ceph コンポーネントが正常な状態ではないときに OSD を削除すると、データが失われる可能性があります。
- 2 つ以上の OSD を同時に削除すると、データが失われます。
前提条件
- Ceph が正常かどうかを確認します。詳細は、Ceph クラスターが正常であることの確認 を参照してください。
- アラートが発生していないか、再構築プロセスが進行中ではないことを確認してください。
手順
OSD デプロイメント上のレプリカを 0 にスケールして、OSD を強制的にマークダウンします。障害により OSD がすでにダウンしている場合は、この手順をスキップできます。
# oc scale deployment rook-ceph-osd-<osd-id> --replicas=0
失敗した OSD をクラスターから削除します。
# failed_osd_id=<osd_id> # oc process -n openshift-storage ocs-osd-removal -p FAILED_OSD_IDS=$<failed_osd_id> | oc create -f -
ここで、
FAILED_OSD_ID
は、rook-ceph-osd
接頭辞の直後の Pod 名の整数です。ログを確認して、OSD が正常に削除されたことを確認します。
# oc logs -n openshift-storage ocs-osd-removal-$<failed_osd_id>-<pod-suffix>
-
オプション:OpenShift Container Platform の ocs-osd-removal-job Pod から
cephosd:osd.0 is NOT ok to destroy
としてエラーが 発生した場合は、エラーcephosd:osd.0 is NOT ok to destroy
のトラブルシューティング を参照してください。 障害のある OSD に関連付けられた Persistent Volume Claim (永続ボリューム要求、PVC) リソースを削除します。
失敗した OSD に関連付けられた
PVC
を取得します。# oc get -n openshift-storage -o yaml deployment rook-ceph-osd-<osd-id> | grep ceph.rook.io/pvc
PVC に関連付けられた
persistent volume
(PV) を取得します。# oc get -n openshift-storage pvc <pvc-name>
障害が発生したデバイス名を取得します。
# oc get pv <pv-name-from-above-command> -oyaml | grep path
失敗した OSD に関連付けられた
prepare-pod
を取得します。# oc describe -n openshift-storage pvc ocs-deviceset-0-0-nvs68 | grep Mounted
関連付けられた PVC を削除する前に
osd-prepare pod
を削除します。# oc delete -n openshift-storage pod <osd-prepare-pod-from-above-command>
失敗した OSD に関連付けられた
PVC
を削除します。# oc delete -n openshift-storage pvc <pvc-name-from-step-a>
障害が発生したデバイスエントリーを
LocalVolume custom resoure
(CR)から削除します。障害が発生したデバイスを使用してノードにログインします。
# oc debug node/<node_with_failed_osd>
障害が発生したデバイス名の /dev/disk/by-id/<id> を記録します。
# ls -alh /mnt/local-storage/localblock/
オプション: OSD のプロビジョニングにローカルストレージオペレーターが使用されている場合は、{osd-id} を使用してマシンにログインし、デバイスのシンボリックリンクを削除します。
# oc debug node/<node_with_failed_osd>
障害が発生したデバイス名の OSD シンボリックリンクを取得します。
# ls -alh /mnt/local-storage/localblock
symlink を削除します。
# rm /mnt/local-storage/localblock/<failed-device-name>
- OSD に関連付けられた PV を削除します。
# oc delete pv <pv-name>
検証手順
OSD が正常に削除されたかどうかを確認するには、次のコマンドを実行します。
#oc get pod -n openshift-storage ocs-osd-removal-$<failed_osd_id>-<pod-suffix>
このコマンドはステータスを Completed として返す必要があります。