驗證您的 OpenShift 資料基礎架構區域災難復原設定

虛擬私有雲 4.21 後來

設定完成「OpenShift Data Foundation (ODF) 區域性災難復原 (RDR)」後,請確認堆疊中的每個元件狀態正常且已正確設定。 請依照指示,依序處理各區段中對應的叢集、樞紐或託管服務。

在樞紐叢集中驗證 ACM 附加元件

樞紐叢集

請在集線器叢集上執行以下步驟。

  1. 請確認 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 附加元件。

  2. 請確認 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
    
  3. 請確認 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 操作員

樞紐叢集

  1. 請確認 Submariner 操作艙是否正在樞紐叢集上運行。

    oc get pods -n submariner-operator
    

    輸出範例:

    NAME                                  READY   STATUS    RESTARTS      AGE
    submariner-operator-6bf8d56f74-7v44v  1/1     Running   3 (17h ago)   14d
    
  2. 請確認每個受管叢集均已註冊 Submariner 擴充套件。 請確認「AVAILABLE」欄位中,每個受管叢集的值皆顯示為「True」。

    oc get managedclusteraddon -A | grep submariner
    

    輸出範例:

    managedcluster1   submariner   True   False
    managedcluster2   submariner   True   False
    
  3. 請確認 Submariner 經紀人是否存在。

    oc get broker -A
    

    輸出範例:

    NAMESPACE                 NAME                AGE
    submariner-set1-broker    submariner-broker   12d
    

在受管叢集中驗證 Submariner

受管叢集

請在每個受管叢集上執行以下步驟。

  1. 請確認所需的 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
    
  2. 請確認 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

受管叢集

請在每個受管叢集上執行以下步驟。

  1. 請確認 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。

  2. 請確認是否已安裝所需的 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-server ServiceExport,請依照 ODF 區域災難復原設定的第 5 步 重新建立該資料夾。

  3. 請確認在 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 多叢集協調器

樞紐叢集

請在集線器叢集上執行以下步驟。

  1. 請確認 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 操作員」一文。

  2. 請確認 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
    
  3. 請確認 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
    
  4. 請確認 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

樞紐叢集

請在集線器叢集上執行以下步驟。

  1. 請確認 DRPolicy 已通過驗證。 在輸出結果中,請確認「Validated」條件的 status 為 "True"。

    oc get drpolicy -A
    oc describe drpolicy <drpolicy_name>
    

    oc describe 的輸出範例:

    status:
      conditions:
        - type: Validated
          status: "True"
    

    如果 DRPolicy 未通過驗證,請確認 NooBaa 物件的儲存桶是否已成功建立於兩個受管叢集上。

  2. 請確認 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 設定過程中安裝了選用運算子,請確認它們已在每個受管叢集中正常運作。

您負責管理選用運算子,包括更新、監控、復原及重新安裝。

  1. 請確認 OpenShift GitOps 中的操作員 Pod 是否正在運行。 請確認 openshift-gitops-application-controller、openshift-gitops-server 以及其他 GitOps pod 的狀態顯示為 Running。

    oc get pods -n openshift-gitops
    
  2. 請確認 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

如需更多必備的指引,請參閱以下資源:

下一步