×

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

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

OpenShift虚拟化的OpenShift数据保护API支持以下备份和恢复存储选项

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

  • 使用DataMover的容器存储接口 (CSI) 备份

以下存储选项被排除在外

  • 文件系统备份和恢复

  • 卷快照备份和恢复

要在受限网络环境中安装OADP运算符,您必须首先禁用默认的OperatorHub源并镜像Operator目录。详情请参见在断开连接的环境中使用Operator生命周期管理器

使用OpenShift虚拟化安装和配置OADP

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

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

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

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

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

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

    Red Hat支持仅限于以下选项

    • CSI备份

    • 使用DataMover的CSI备份。

您可以通过创建Restore CR来恢复Backup CR。

安装数据保护应用程序

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

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

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

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

  • 如果备份和快照位置使用相同的凭据,则必须创建具有默认名称cloud-credentialsSecret

    如果您不想在安装过程中指定备份或快照位置,您可以创建一个包含空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 插件对于使用 CSI 快照备份 PV 是必需的。csi 插件使用Velero CSI Beta 快照 API。您不需要配置快照位置。
    5 openshift 插件是必需的。
    6 指定在超时发生之前等待多个 Velero 资源(例如 Velero CRD 可用性、卷快照删除和备份存储库可用性)的分钟数。默认值为 10 分钟。
    7 将管理请求路由到服务器的管理代理。
    8 如果您想启用nodeAgent 并执行文件系统备份,请将此值设置为true
    9 输入kopia 作为您的上传器以使用内置 DataMover。nodeAgent 部署了一个 DaemonSet,这意味着nodeAgent Pod 在每个工作节点上运行。您可以通过向Backup CR 添加spec.defaultVolumesToFsBackup: true 来配置文件系统备份。
    10 指定 Kopia 可用的节点。默认情况下,Kopia 在所有节点上运行。
    11 指定备份提供程序。
    12 Secret指定正确的默认名称,例如,如果您使用备份提供程序的默认插件,则指定cloud-credentials-gcp。如果指定自定义名称,则自定义名称将用于备份位置。如果您没有指定Secret名称,则使用默认名称。
    13 指定一个 bucket 作为备份存储位置。如果该 bucket 不是 Velero 备份的专用 bucket,则必须指定一个前缀。
    14 如果 bucket 用于多种用途,请为 Velero 备份指定一个前缀,例如velero
  4. 点击**创建**。

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

    $ 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

如果您在虚拟机 (VM) 重启后立即运行 Microsoft Windows 虚拟机的备份,则备份可能会失败并出现PartiallyFailed错误。这是因为,在虚拟机启动后立即,Microsoft Windows 卷影复制服务 (VSS) 和访客代理 (GA) 服务尚未准备好。VSS 和 GA 服务未准备好会导致备份失败。在这种情况下,请在虚拟机启动几分钟后再重试备份。

配置具有客户端突发和 QPS 设置的 DPA

突发设置决定在应用限制之前可以发送到velero服务器的请求数。达到突发限制后,每秒查询数 (QPS) 设置决定每秒可以发送多少个附加请求。

您可以通过使用突发和 QPS 值配置数据保护应用程序 (DPA) 来设置velero服务器的突发和 QPS 值。您可以使用 DPA 的dpa.configuration.velero.client-burstdpa.configuration.velero.client-qps字段来设置突发和 QPS 值。

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

步骤
  • 如以下示例所示,配置 DPA 中的client-burstclient-qps字段

    示例数据保护应用程序
    apiVersion: oadp.openshift.io/v1alpha1
    kind: DataProtectionApplication
    metadata:
      name: test-dpa
      namespace: openshift-adp
    spec:
      backupLocations:
        - name: default
          velero:
            config:
              insecureSkipTLSVerify: "true"
              profile: "default"
              region: <bucket_region>
              s3ForcePathStyle: "true"
              s3Url: <bucket_url>
            credential:
              key: cloud
              name: cloud-credentials
            default: true
            objectStorage:
              bucket: <bucket_name>
              prefix: velero
            provider: aws
      configuration:
        nodeAgent:
          enable: true
          uploaderType: restic
        velero:
          client-burst: 500 (1)
          client-qps: 300 (2)
          defaultPlugins:
            - openshift
            - aws
            - kubevirt
    1 指定client-burst值。在此示例中,client-burst字段设置为 500。
    2 指定client-qps值。在此示例中,client-qps字段设置为 300。

配置节点代理和节点标签

OADP 的 DPA 使用nodeSelector字段来选择哪些节点可以运行节点代理。nodeSelector字段是最简单的推荐的节点选择约束形式。

指定的任何标签都必须与每个节点上的标签匹配。

在您选择的任何节点上运行节点代理的正确方法是使用自定义标签标记节点

$ oc label node/<node_name> node-role.kubernetes.io/nodeAgent=""

DPA.spec.configuration.nodeAgent.podConfig.nodeSelector中使用与用于标记节点相同的自定义标签。例如

configuration:
  nodeAgent:
    enable: true
    podConfig:
      nodeSelector:
        node-role.kubernetes.io/nodeAgent: ""

以下示例是nodeSelector的反模式,除非节点上同时存在'node-role.kubernetes.io/infra: ""''node-role.kubernetes.io/worker: ""'这两个标签,否则无效

    configuration:
      nodeAgent:
        enable: true
        podConfig:
          nodeSelector:
            node-role.kubernetes.io/infra: ""
            node-role.kubernetes.io/worker: ""

关于增量备份支持

OADP 支持容器化和 OpenShift Virtualization 工作负载的blockFilesystem持久卷的增量备份。下表总结了对文件系统备份 (FSB)、容器存储接口 (CSI) 和 CSI 数据移动器的支持

表 1. OADP 容器化工作负载备份支持矩阵
卷模式 FSB - Restic FSB - Kopia CSI CSI 数据移动器

文件系统

支持[1],增量支持[2]

支持[1],增量支持[2]

支持[1]

支持[1],增量支持[2]

不支持[3]

不支持[3]

支持[1]

支持[1],增量支持[2]

表 2. OADP OpenShift Virtualization 工作负载备份支持矩阵
卷模式 FSB - Restic FSB - Kopia CSI CSI 数据移动器

文件系统

不支持[3]

不支持[3]

支持[1]

支持[1],增量支持[2]

不支持[3]

不支持[3]

支持[1]

支持[1],增量支持[2]

  1. 支持备份

  2. 支持增量备份

  3. 不支持

CSI 数据移动器备份无论uploaderType如何都使用 Kopia。

Red Hat 只支持 OADP 版本 1.3.0 及更高版本与 OpenShift Virtualization 版本 4.14 及更高版本的组合。

1.3.0 之前的 OADP 版本不支持 OpenShift Virtualization 的备份和恢复。