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