×

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

对于 OpenShift Virtualization 的备份和恢复,不支持早于 1.3.0 的 OADP 版本。

使用 用于数据保护的 OpenShift API 备份和恢复虚拟机。

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

用于 OpenShift Virtualization 的 OpenShift API for Data Protection 支持以下备份和恢复存储选项

  • 容器存储接口 (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 beta 快照 API。您不需要配置快照位置。
    5 `openshift` 插件是必需的。
    6 指定在超时发生前等待多个 Velero 资源(例如 Velero CRD 可用性、卷快照删除和备份存储库可用性)的分钟数。默认为 10 分钟。
    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. 通过运行以下命令验证备份存储位置并确认PHASEAvailable

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