驗證您的 OpenShift 資料基礎架構區域災難復原設定
虛擬私有雲 4.21 後來
設定完成「OpenShift Data Foundation (ODF) 區域性災難復原 (RDR)」後,請確認堆疊中的每個元件狀態正常且已正確設定。 請依照指示,依序處理各區段中對應的叢集、樞紐或託管服務。
在樞紐叢集中驗證 ACM 附加元件
樞紐叢集
請在集線器叢集上執行以下步驟。
-
請確認 ACM 附加元件已安裝,且處於「
normal」狀態。 請在輸出結果中尋找「acm」外掛程式,並確認其狀態顯示為「Addon Ready」。ibmcloud oc cluster addon ls --cluster HUB_CLUSTER_NAME | grep -i acm輸出範例:
acm 2.15.0 normal Addon Ready. For more info: http://ibm.biz/addon-state (H1500)如果未列出 ACM 附加元件,請安裝 ACM 附加元件。
-
請確認 ACM 附加元件 Pod 是否正在「
kube-system」命名空間中執行。 請尋找名為「acm-agent」和「ibm-acm-operator-controller-manager」的 Pod,並確認兩者皆顯示「Running」的狀態。oc get pods -n kube-system | grep acm輸出範例:
acm-agent-6d9d49cbf6-tsmxd 1/1 Running 118 (107m ago) 19d ibm-acm-operator-controller-manager-bc7b7f969-pr9lj 1/1 Running 3 (7d17h ago) 19d -
請確認 ACM 操作員 Pod 和 MultiClusterHub Pod 是否正在
open-cluster-management命名空間中執行。oc get pods -n open-cluster-management輸出範例:
multiclusterhub-operator-dcd787649-sqrcx 1/1 Running 0 14d console-chart-console-v2-7c8c6649cc-hmg6g 1/1 Running 0 15d submariner-addon-76986fdf45-v9kgm 1/1 Running 0 15d volsync-addon-controller-6575568dc6-6pjsb 1/1 Running 0 15d若發現有任何 Pod 缺失,或其狀態並非「
Running」,請參閱《 安裝 ACM 附加元件 》。
驗證受管叢集是否已匯入且可供使用
樞紐叢集
請在集線器叢集中完成以下步驟。
請確認所有受管叢集均已成功匯入,且「JOINED」與「AVAILABLE」兩欄均顯示為「True」。
oc get managedclusters
輸出範例:
NAME HUB ACCEPTED MANAGED CLUSTER URLS JOINED AVAILABLE AGE
local-cluster true https://c100.au-syd.containers.cloud.ibm.com:30253 True True 14d
managedcluster1 true https://c100.au-syd.containers.cloud.ibm.com:31003 True True 14d
managedcluster2 true https://c100.au-syd.containers.cloud.ibm.com:31888 True True 14d
若受管叢集遺失或無法使用,請重新匯入該叢集。
驗證 Submariner 的連線狀態
Hub 叢集 受管叢集
Submariner 可在您的受管叢集之間提供網路連線功能。 請按照指示,完成指定叢集中各子節中的步驟。
驗證樞紐叢集上的 Submariner 操作員
樞紐叢集
-
請確認 Submariner 操作艙是否正在樞紐叢集上運行。
oc get pods -n submariner-operator輸出範例:
NAME READY STATUS RESTARTS AGE submariner-operator-6bf8d56f74-7v44v 1/1 Running 3 (17h ago) 14d -
請確認每個受管叢集均已註冊 Submariner 擴充套件。 請確認「
AVAILABLE」欄位中,每個受管叢集的值皆顯示為「True」。oc get managedclusteraddon -A | grep submariner輸出範例:
managedcluster1 submariner True False managedcluster2 submariner True False -
請確認 Submariner 經紀人是否存在。
oc get broker -A輸出範例:
NAMESPACE NAME AGE submariner-set1-broker submariner-broker 12d
在受管叢集中驗證 Submariner
受管叢集
請在每個受管叢集上執行以下步驟。
-
請確認所需的 Submariner 模組是否正在執行。 請確認
submariner-gateway、submariner-routeagent以及submariner-globalnet這些 Pod 是否存在,且其狀態顯示為「Running」。oc get pods -n submariner-operator輸出範例:
NAME READY STATUS RESTARTS AGE submariner-addon-bc6bbf579-wjqhq 1/1 Running 0 12d submariner-gateway-hxcbh 1/1 Running 0 12d submariner-globalnet-jbmxw 1/1 Running 3 (12d ago) 12d submariner-lighthouse-agent-858896855b-xghxn 1/1 Running 0 12d submariner-lighthouse-coredns-66d5579b66-52f6j 1/1 Running 0 12d submariner-lighthouse-coredns-66d5579b66-jhqkm 1/1 Running 0 12d submariner-metrics-proxy-65n4c 2/2 Running 3 (12d ago) 12d submariner-operator-7c99f89cfb-rppth 1/1 Running 2 (17h ago) 12d submariner-routeagent-27p7v 1/1 Running 0 12d submariner-routeagent-jjw66 1/1 Running 0 12d submariner-routeagent-nt78s 1/1 Running 0 12d -
請確認 Submariner 的連線狀態正常。 在輸出結果中,請確認「
RouteAgentConnectionDegraded」的「status」值為「"False"」,這表示所有路由代理與遠端端點之間的連線均已建立且狀態正常。oc -n <managed_cluster_name> get managedclusteraddons submariner -o yaml輸出範例:
status: - lastTransitionTime: "2026-03-18T03:36:24Z" message: All RouteAgent connections to remote endpoints are established and healthy. reason: ConnectionsEstablished status: "False" type: RouteAgentConnectionDegraded若連線品質下降,請依照 ODF 區域災難復原設定的第 4 步驟, 重新安裝 Submariner。
在受管叢集上驗證 ODF
受管叢集
請在每個受管叢集上執行以下步驟。
-
請確認 ODF StorageCluster 已就緒,且 Ceph 狀態為
HEALTH_OK。 在輸出結果中,請確認「PHASE」欄位針對「StorageCluster」顯示「Ready」,而「HEALTH」欄位針對「CephCluster」顯示「HEALTH_OK」。oc get storagecluster -n openshift-storage oc get cephcluster -n openshift-storage輸出範例:
NAME AGE PHASE EXTERNAL CREATED AT VERSION ocs-storagecluster 12d Ready 2026-03-17T10:51:46Z 4.20.7 NAME DATADIRHOSTPATH MONCOUNT AGE PHASE MESSAGE HEALTH EXTERNAL FSID ocs-storagecluster-cephcluster /var/lib/rook 3 12d Ready Cluster created successfully HEALTH_OK 5fb59e70-bd54-438f-9190-c09ddcf04c0c如果這是全新的 ODF 安裝,且尚未部署任何應用程式,請考慮依照 ODF 安裝指南 重新安裝 ODF。
-
請確認是否已安裝所需的 ServiceExports。 請確認「
ocs-provider-server」以及「rook-ceph-mon-*」和「rook-ceph-osd-*」這三個項目是否已列出。oc get serviceexports -n openshift-storage輸出範例:
NAME AGE ocs-provider-server 12d rook-ceph-mon-d 12d rook-ceph-mon-e 12d rook-ceph-mon-f 12d rook-ceph-osd-0 12d rook-ceph-osd-1 12d rook-ceph-osd-2 12d若缺少
ocs-provider-serverServiceExport,請依照 ODF 區域災難復原設定的第 5 步 重新建立該資料夾。 -
請確認在 StorageCluster 上已正確設定多叢集網路配置。 在輸出結果中,請確認
multiClusterService.enabled是否為true,且clusterID是否與受管叢集的名稱相符。 請同時確認是否已存在ocs.openshift.io/api-server-exported-address註解,且其設定是否正確。oc get storagecluster -n openshift-storage -o yaml請在輸出結果中尋找以下數值:
network: multiClusterService: clusterID: <cluster-name> enabled: true以及以下註解:
ocs.openshift.io/api-server-exported-address: <cluster-name>.ocs-provider-server.openshift-storage.svc.clusterset.local:50051
在樞紐叢集上驗證 ODF 多叢集協調器
樞紐叢集
請在集線器叢集上執行以下步驟。
-
請確認 OpenShift GitOps 中的操作員 Pod 是否正在運行。 ODF 多叢集協調器需要先安裝 GitOps。
oc get pods -n openshift-gitops輸出範例:
NAME READY STATUS RESTARTS AGE cluster-6484df7d8f-fbk9b 1/1 Running 0 4d12h gitops-plugin-8646dcfd5d-kj5mf 1/1 Running 0 4d12h openshift-gitops-application-controller-0 1/1 Running 0 4d12h openshift-gitops-applicationset-controller-664645457b-8n9gj 1/1 Running 0 4d12h openshift-gitops-dex-server-74ddb4bb94-trxk6 1/1 Running 0 4d12h openshift-gitops-redis-68469975f8-mlkrq 1/1 Running 0 14d openshift-gitops-repo-server-76567d7c46-j9fjq 1/1 Running 0 4d12h openshift-gitops-server-6d74f8d998-f97zx 1/1 Running 0 4d12h若尚未安裝 GitOps,請參閱「在 Web 控制台中安裝 Red Hat OpenShift GitOps 操作員」一文。
-
請確認 ODF Multicluster Orchestrator 操作員 Pod 是否正在
openshift-operators命名空間中執行。 請確認odf-multicluster-console和odfmo-controller-manager這兩組 Pod 的狀態均顯示為「Running」。oc get pods -n openshift-operators | grep -i odf輸出範例:
odf-multicluster-console-cdd786658-2bdbz 1/1 Running 0 12d odfmo-controller-manager-8585c4bf9-mwhvf 1/1 Running 2 (16h ago) 12d -
請確認 Ramen hub 運作者 Pod 是否正在
submariner-operator命名空間中執行。oc get pods -n submariner-operator輸出範例:
NAME READY STATUS RESTARTS AGE submariner-operator-6bf8d56f74-7v44v 1/1 Running 3 (17h ago) 14d -
請確認 Ramen DR 叢集操作員 Pod 是否已在
openshift-dr-system命名空間中的每個受管叢集中運行。oc get pods -n openshift-dr-system | grep -i ramen輸出範例:
ramen-dr-cluster-operator-785d878dbc-lbrgz 2/2 Running 0 2d15h
在樞紐叢集中驗證災難復原 (DR) 政策及 MirrorPeer
樞紐叢集
請在集線器叢集上執行以下步驟。
-
請確認 DRPolicy 已通過驗證。 在輸出結果中,請確認「
Validated」條件的status為"True"。oc get drpolicy -A oc describe drpolicy <drpolicy_name>oc describe的輸出範例:status: conditions: - type: Validated status: "True"如果 DRPolicy 未通過驗證,請確認 NooBaa 物件的儲存桶是否已成功建立於兩個受管叢集上。
-
請確認 MirrorPeer 階段的狀態為
ExchangedSecret。 請描述「MirrorPeer」資源,並勾選「Phase」欄位。oc get mirrorpeers -A oc describe mirrorpeer <mirrorpeer_name>oc describe的輸出範例:Status: Phase: ExchangedSecret Events: <none>若螢幕顯示「
ExchangingSecret」,請依照「驗證 Submariner 連線狀態」的步驟,驗證 Submariner 的連線狀態。
在受管叢集中驗證可選運算子
受管叢集
如果您在 ODF RDR 設定過程中安裝了選用運算子,請確認它們已在每個受管叢集中正常運作。
您負責管理選用運算子,包括更新、監控、復原及重新安裝。
-
請確認 OpenShift GitOps 中的操作員 Pod 是否正在運行。 請確認
openshift-gitops-application-controller、openshift-gitops-server以及其他 GitOps pod 的狀態顯示為Running。oc get pods -n openshift-gitops -
請確認 OpenShift 資料保護 API( OADP )的操作員 Pod 是否正在執行中。 請確認
openshift-adp-controller-manager和velero這兩組 Pod 的狀態均顯示為「Running」。oc get pods -n openshift-adp輸出範例:
NAME READY STATUS RESTARTS AGE openshift-adp-controller-manager-7c8fc7f964-j2jnq 1/1 Running 1 12d velero-9cdf64b8b-9c2kk 1/1 Running 1 12d若缺少某個操作元件,請依照相關安裝指南重新安裝。
收集必須蒐集的日誌
Hub 叢集 受管叢集
若您無法透過執行前述的驗證步驟來解決問題,請從您的樞紐和受管叢集收集必須蒐集的日誌,並將其提供給 IBM 技術支援團隊。
收集樞紐叢集日誌
樞紐叢集
請在集線器叢集上執行以下腳本,以蒐集診斷資訊。
#!/bin/bash
# Usage: ./hub-check.sh <cluster-name>
CLUSTER_NAME=$1
if [[ -z "$CLUSTER_NAME" ]]; then
echo "Usage: $0 <cluster-name>"
exit 1
fi
echo "===== Verify ACM ====="
ibmcloud oc cluster addon ls --cluster "$CLUSTER_NAME" | grep -i acm
oc get pods -n kube-system | grep acm
oc get pods -n open-cluster-management
oc get managedclusters
echo "===== Verify Submariner ====="
oc get pods -n submariner-operator
oc get managedclusteraddon -A | grep submariner
oc get managedclusteraddon -A -o yaml
oc get broker -A
echo "===== Verify Multicluster Operator ====="
oc get pods -n openshift-operators | grep -i odf
oc get drpolicy -A
oc get mirrorpeers -A
echo "===== Verify Additional Operators ====="
oc get pods -n openshift-gitops
oc get pods -n openshift-adp
收集受管叢集的日誌
受管叢集
請在每個受管叢集上執行以下腳本,以收集診斷資訊。
#!/bin/bash
# Usage: ./managedCluster-check.sh
echo "===== Verify Submariner ====="
oc get pods -n submariner-operator
oc get submariner -A
echo "===== Verify DR Operator ====="
oc get pods -n openshift-dr-system | grep -i ramen
echo "===== Verify ODF ====="
oc get storagecluster -n openshift-storage
oc get cephcluster -n openshift-storage
oc get serviceexports -n openshift-storage
oc get storagecluster -n openshift-storage -o yaml
echo "===== Verify Additional Operators ====="
oc get pods -n openshift-gitops
oc get pods -n openshift-adp
如需更多必備的指引,請參閱以下資源:
下一步
- 若所有元件均運作正常,請執行故障轉移與遷移情境,以 測試您的災難復原設定。
- 若您需要進一步協助 ,請聯絡 IBM 技術支援團隊,並附上您所收集的「必須提供」日誌。
- 請參閱 ODF 區域災難復原設定指南,以確認所有安裝步驟均已正確完成。