14.2. 备份和恢复虚拟机


重要

红帽支持在 OADP 1.3.x 或更高版本中使用 OpenShift Virtualization 4.14 或更高版本。

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

使用 OpenShift API for Data Protection 来备份和恢复虚拟机。

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

注意

OpenShift API for Data Protection with OpenShift Virtualization 支持以下备份和恢复存储选项:

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

排除以下存储选项:

  • 文件系统备份和恢复
  • 卷快照备份和恢复

如需更多信息,请参阅使用文件系统备份备份应用程序: Kopia 或 Restic

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

详情请参阅在受限网络中使用 Operator Lifecycle Manager

14.2.1. 使用 OpenShift Virtualization 安装和配置 OADP

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

OADP Operator 的最新版本会安装 Velero 1.14

先决条件

  • 使用具有 cluster-admin 角色的用户访问集群。

流程

  1. 根据您的存储供应商说明安装 OADP Operator。
  2. 使用 kubevirtopenshift OADP 插件安装数据保护应用程序(DPA)。
  3. 通过创建 Backup 自定义资源(CR) 来备份虚拟机。

    警告

    红帽支持仅限于以下选项:

    • CSI 备份
    • 使用 DataMover 的 CSI 备份。

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

14.2.2. 安装数据保护应用程序

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

先决条件

  • 您必须安装 OADP Operator。
  • 您必须将对象存储配置为备份位置。
  • 如果使用快照来备份 PV,云供应商必须支持原生快照 API 或 Container Storage Interface(CSI)快照。
  • 如果备份和快照位置使用相同的凭证,您必须创建带有默认名称 cloud-credentialsSecret
  • 如果备份和快照位置使用不同的凭证,您必须创建两个 Secret

    • 带有备份位置的自定义名称的 secret。您可以将此 Secret 添加到 DataProtectionApplication CR 中。
    • 带有快照位置的另一个自定义名称的 Secret。您可以将此 Secret 添加到 DataProtectionApplication CR 中。
    注意

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

流程

  1. Operators Installed Operators 并选择 OADP Operator。
  2. Provided APIs 下,点 DataProtectionApplication 框中的 Create 实例
  3. YAML View 并更新 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 可用、volumeSnapshot 删除和备份存储库可用。默认值为 10m。
    7
    将管理请求路由到服务器的管理代理。
    8
    如果要启用 nodeAgent 并执行文件系统备份,则将此值设置为 true
    9
    输入 kopia 作为您的上传程序,以使用 Built-in DataMover。nodeAgent 部署守护进程集,这意味着 nodeAgent pod 在每个工作节点上运行。您可以通过在 Backup CR 中添加 spec.defaultVolumesToFsBackup: true 来配置文件系统备份。
    10
    指定 Kopia 可用的节点。默认情况下,Kopia 在所有节点上运行。
    11
    指定备份供应商。
    12
    如果备份供应商使用一个默认插件,为 Secret 指定正确的默认名称,如 cloud-credentials-gcp。如果指定了一个自定义名称,则使用自定义名称用于备份位置。如果没有指定 Secret 名称,则使用默认名称。
    13
    指定存储桶作为备份存储位置。如果存储桶不是 Velero 备份的专用存储桶,您必须指定一个前缀。
    14
    如果存储桶用于多个目的,请为 Velero 备份指定一个前缀,如 velero
  4. Create

验证

  1. 运行以下命令,查看 OpenShift API for Data Protection (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

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.