×

Red Hat 支持将 OpenShift Virtualization 4.14 或更高版本与 OADP 1.3.x 或更高版本一起使用。

低于 1.3.0 的 OADP 版本不支持 OpenShift Virtualization 的备份和还原。

使用 OpenShift 数据保护 API 备份和还原虚拟机。

您可以通过安装 OADP 运算符并配置备份位置来使用 OpenShift Virtualization 安装 OpenShift 数据保护 API (OADP)。然后,您可以安装数据保护应用程序。

OpenShift Virtualization 的 OpenShift 数据保护 API 支持以下备份和还原存储选项

  • 容器存储接口 (CSI) 备份

  • 带有 DataMover 的容器存储接口 (CSI) 备份

以下存储选项被排除在外

  • 文件系统备份和还原

  • 卷快照备份和还原

要在受限网络环境中安装 OADP 运算符,必须首先禁用默认的 OperatorHub 源并镜像 Operator 目录。

使用 OpenShift Virtualization 安装和配置 OADP

作为集群管理员,您可以通过安装 OADP 运算符来安装 OADP。

最新版本的 OADP 运算符安装了 Velero 1.14

先决条件
  • 以具有 `cluster-admin` 角色的用户身份访问集群。

步骤
  1. 根据您的存储提供商的说明安装 OADP 运算符。

  2. 使用 `kubevirt` 和 `openshift` OADP 插件安装数据保护应用程序 (DPA)。

  3. 通过创建 `Backup` 自定义资源 (CR) 来备份虚拟机。

    Red Hat 支持仅限于以下选项

    • CSI 备份

    • 带有 DataMover 的 CSI 备份。

您可以通过创建 `Restore` CR 来还原 `Backup` CR。

安装数据保护应用程序

您可以通过创建 `DataProtectionApplication` API 的实例来安装数据保护应用程序 (DPA)。

先决条件
  • 您必须安装 OADP 运算符。

  • 您必须将对象存储配置为备份位置。

  • 如果您使用快照备份 PV,您的云提供商必须支持本机快照 API 或容器存储接口 (CSI) 快照。

  • 如果备份和快照位置使用相同的凭据,则必须创建名称为 `cloud-credentials` 的默认 `Secret`。

    如果您不想在安装过程中指定备份或快照位置,则可以创建一个包含空 `credentials-velero` 文件的默认 `Secret`。如果没有默认 `Secret`,安装将失败。

步骤
  1. 单击**运算符** → **已安装的运算符**,然后选择 OADP 运算符。

  2. 在**提供的 API** 下,单击**DataProtectionApplication** 框中的**创建实例**。

  3. 单击**YAML 视图**并更新 `DataProtectionApplication` 清单的参数

    apiVersion: oadp.openshift.io/v1alpha1
    kind: DataProtectionApplication
    metadata:
      name: <dpa_sample>
      namespace: openshift-adp (1)
    spec:
      configuration:
        velero:
          defaultPlugins:
            - kubevirt (2)
            - gcp (3)
            - csi (4)
            - openshift (5)
          resourceTimeout: 10m (6)
        nodeAgent: (7)
          enable: true (8)
          uploaderType: kopia (9)
          podConfig:
            nodeSelector: <node_selector> (10)
      backupLocations:
        - velero:
            provider: gcp (11)
            default: true
            credential:
              key: cloud
              name: <default_secret> (12)
            objectStorage:
              bucket: <bucket_name> (13)
              prefix: <prefix> (14)
    1 OADP 的默认命名空间为 `openshift-adp`。命名空间是一个变量,可以配置。
    2 对于 OpenShift Virtualization,`kubevirt` 插件是必需的。
    3 指定备份提供程序的插件,例如,如果存在,则为 `gcp`。
    4 对于使用 CSI 快照备份 PV,`csi` 插件是必需的。`csi` 插件使用 Velero CSI 测试版快照 API。您无需配置快照位置。
    5 `openshift` 插件是必需的。
    6 指定在超时发生之前等待多个 Velero 资源(例如 Velero CRD 可用性、卷快照删除和备份存储库可用性)的分钟数。默认为 10m。
    7 将管理请求路由到服务器的管理代理。
    8 如果您想启用 `nodeAgent` 并执行文件系统备份,请将此值设置为 `true`。
    9 输入 `kopia` 作为您的上传器以使用内置 DataMover。`nodeAgent` 部署了一个守护程序集,这意味着 `nodeAgent` pod 在每个工作节点上运行。您可以通过将 `spec.defaultVolumesToFsBackup: true` 添加到 `Backup` CR 来配置文件系统备份。
    10 指定 Kopia 可用的节点。默认情况下,Kopia 在所有节点上运行。
    11 指定备份提供程序。
    12 指定 `Secret` 的正确默认名称,例如,如果您使用备份提供程序的默认插件,则为 `cloud-credentials-gcp`。如果指定自定义名称,则自定义名称将用于备份位置。如果您不指定 `Secret` 名称,则使用默认名称。
    13 指定一个存储桶作为备份存储位置。如果存储桶不是 Velero 备份的专用存储桶,则必须指定一个前缀。
    14 指定 Velero 备份的前缀,例如 `velero`,如果存储桶用于多种用途。
  4. 单击**创建**。

验证
  1. 通过运行以下命令查看 OpenShift 数据保护 API (OADP) 资源来验证安装

    $ oc get all -n openshift-adp
    示例输出
    NAME                                                     READY   STATUS    RESTARTS   AGE
    pod/oadp-operator-controller-manager-67d9494d47-6l8z8    2/2     Running   0          2m8s
    pod/node-agent-9cq4q                                     1/1     Running   0          94s
    pod/node-agent-m4lts                                     1/1     Running   0          94s
    pod/node-agent-pv4kr                                     1/1     Running   0          95s
    pod/velero-588db7f655-n842v                              1/1     Running   0          95s
    
    NAME                                                       TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
    service/oadp-operator-controller-manager-metrics-service   ClusterIP   172.30.70.140    <none>        8443/TCP   2m8s
    service/openshift-adp-velero-metrics-svc                   ClusterIP   172.30.10.0      <none>        8085/TCP   8h
    
    NAME                        DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
    daemonset.apps/node-agent    3         3         3       3            3           <none>          96s
    
    NAME                                                READY   UP-TO-DATE   AVAILABLE   AGE
    deployment.apps/oadp-operator-controller-manager    1/1     1            1           2m9s
    deployment.apps/velero                              1/1     1            1           96s
    
    NAME                                                           DESIRED   CURRENT   READY   AGE
    replicaset.apps/oadp-operator-controller-manager-67d9494d47    1         1         1       2m9s
    replicaset.apps/velero-588db7f655                              1         1         1       96s
  2. 通过运行以下命令验证 `DataProtectionApplication` (DPA) 是否已协调

    $ oc get dpa dpa-sample -n openshift-adp -o jsonpath='{.status}'
    示例输出
    {"conditions":[{"lastTransitionTime":"2023-10-27T01:23:57Z","message":"Reconcile complete","reason":"Complete","status":"True","type":"Reconciled"}]}
  3. 验证 `type` 是否设置为 `Reconciled`。

  4. 通过运行以下命令验证备份存储位置并确认 `PHASE` 为 `Available`

    $ oc get backupstoragelocations.velero.io -n openshift-adp
    示例输出
    NAME           PHASE       LAST VALIDATED   AGE     DEFAULT
    dpa-sample-1   Available   1s               3d16h   true