18.2. 备份 Data Grid 集群

创建将 Data Grid 集群状态存储到持久性卷的备份文件。

先决条件

  • 使用 spec.service.type: DataGrid 创建 Infinispan CR。
  • 确保到 Data Grid 集群没有活跃的客户端连接。

    数据网格备份不提供快照隔离,数据修改不会在备份缓存后写入存档。
    要归档集群的确切状态,您应该在备份前始终断开所有客户端。

流程

  1. 使用 metadata.name 字段命名 Backup CR。
  2. 使用 spec.cluster 字段指定 Data Grid 集群进行备份。
  3. 配置持久性卷声明(PVC),将备份归档添加到带有 spec.volume.storage 和 spec.volume.storage.storageClassName 字段的持久性卷(PV)。

    apiVersion: infinispan.org/v2alpha1
    kind: Backup
    metadata:
      name: my-backup
    spec:
      cluster: source-cluster
      volume:
        storage: 1Gi
        storageClassName: my-storage-class
  4. (可选)包含 spec.resources 字段来指定您要备份的 Data Grid 资源。

    如果您没有包含任何 spec.resources 字段,Backup CR 会创建一个包含所有 Data Grid 资源的存档。如果您指定了 spec.resources 字段,则 Backup CR 会创建一个仅包含这些资源的存档。

    spec:
      ...
      resources:
        templates:
          - distributed-sync-prod
          - distributed-sync-dev
        caches:
          - cache-one
          - cache-two
        counters:
          - counter-name
        protoSchemas:
          - authors.proto
          - books.proto
        tasks:
          - wordStream.js

    您还可以使用 * 通配符字符,如下例所示:

    spec:
      ...
      resources:
        caches:
          - "*"
        protoSchemas:
          - "*"
  5. 应用 备份 CR。

    oc apply -f my-backup.yaml

验证

  1. 检查 status.phase 字段在 Backup CR 中状态为 Succeeded,且 Data Grid 日志有以下以下信息:

    ISPN005044: Backup file created 'my-backup.zip'
  2. 运行以下命令检查备份是否已成功创建:

    oc describe Backup my-backup