如何使用 ConfigMap 为带有 PowerProtect Data Manager 19.8 的 Snapshot Persistent Volume Claims 映射存储类
Summary: 本文介绍如何在备份期间启用备份快照 Persistent Volume Claims 以绑定到用户定义的存储类。
Instructions
请按照以下说明使用 Dell EMC PowerProtect Data Manager 19.8 和 ConfigMap 启用备份快照 Persistent Volume Claims,以便在备份期间绑定到用户定义的存储类。
本文介绍以下情形:
- 您在 Kubernetes 群集中定义了两个存储类。例如:
debjeet@irv-ppdm-sdr-140:~$ kubectl get sc
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
csi-hostpath-sc (default) hostpath.csi.k8s.io Delete Immediate true 161d
debjeet-sc hostpath.csi.k8s.io Delete Immediate true 12d
- 例如,您的应用程序命名空间使用第一个存储类:
NAME READY STATUS RESTARTS AGE
pod/wordpress-mysql-5b697dbbfc-gfv9k 1/1 Running 0 16d
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
persistentvolumeclaim/mysql-pv-claim Bound pvc-d6df4270-dc9e-48bb-bca9-bd430cea88c6 2Gi RWO csi-hostpath-sc 16d
- 启动备份作业时,Dell EMC PowerProtect Data Manager 会创建一个临时备份快照 Persistent Volume Claims,该快照装载到 cProxy Pod。此操作会将备份快照移至 PowerProtect 数据保护存储设备。此备份快照 Persistent Volume Claims 会自动绑定到源 Persistent Volume Claims 存储类。
NAME READY STATUS RESTARTS AGE
pod/epco-2021-06-17-11-40-05-epco-mysql-pv-claim-cproxy 1/1 Running 0 5s
pod/wordpress-mysql-5b697dbbfc-gfv9k 1/1 Running 0 17d
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
persistentvolumeclaim/mysql-pv-claim Bound pvc-d6df4270-dc9e-48bb-bca9-bd430cea88c6 2Gi RWO csi-hostpath-sc 17d
persistentvolumeclaim/pvc-epco-2021-06-17-11-40-05-mysql-pv-claim Bound pvc-4031a452-fd2b-42b1-b1a5-da4df6dc9eb0 2Gi RWO csi-hostpath-sc 6s
- 您必须将临时备份装载到不同存储类的快照 Persistent Volume Claims。此要求可能是由于源存储类的存储类限制或内部策略造成的。
执行以下步骤:
- 使用以下命令在 powerprotect 命名空间中使用名称 ppdm-snapshot-storage-class-mapping 创建 ConfigMap:
kubectl create cm ppdm-snapshot-storage-class-mapping -n powerprotect
- 使用以下命令编辑 ConfigMap:
kubectl edit cm ppdm-snapshot-storage-class-mapping -n powerprotect
- 编辑器会打开。添加在以下 ConfigMap 示例中以粗体突出显示的数据部分。
apiVersion: v1
kind: ConfigMap
data:
csi-hostpath-sc: debjeet-sc
metadata:
creationTimestamp: "2021-06-04T14:13:17Z"
name: ppdm-snapshot-storage-class-mapping
namespace: powerprotect
resourceVersion: "29682568"
selfLink: /api/v1/namespaces/powerprotect/configmaps/ppdm-snapshot-storage-class-mapping
uid: 74def0f9-207d-4ea5-a9b1-0fca688c7ea5
- 提供源存储类名称与目标存储类名称之间的映射。
如果您在单个 ConfigMap 中提供多个映射,以下情形将显示不受支持和受支持的使用情形:
- 不支持的情形:您不能将一个存储类映射到两个不同的存储类。例如:
isilon-sc: unity-nfs
isilon-sc: vxflex-sc
- 支持的情形:您可以将不同的存储类映射到一个存储类。
unity-nfs: isilon-sc
vxflex-sc: isilon-sc
- 保存 ConfigMap。对于绑定到 ConfigMap 中列出的源存储类名称的备份 Persistent Volume Claim,Backup Snapshot Persistent Volume Claim 绑定到 ConfigMap 中列出的目标存储类名称。
使用上一个 ConfigMap 示例,源存储类名称是 csi-hostpath-sc,目标存储类名称是 debjeet-sc。如果要备份的 Persistent Volume Claim 使用存储类 csi-hostpath-sc,则备份期间的快照 Persistent Volume Claim 现在将绑定到 debjeet-sc。
debjeet@irv-ppdm-sdr-140:~$ kubectl get pods,pvc -n exnsNAME READY STATUS RESTARTS AGE
pod/epco-2021-06-17-11-40-05-epco-mysql-pv-claim-cproxy 1/1 Running 0 5s
pod/wordpress-mysql-5b697dbbfc-gfv9k 1/1 Running 0 17d
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
persistentvolumeclaim/mysql-pv-claim Bound pvc-d6df4270-dc9e-48bb-bca9-bd430cea88c6 2Gi RWO csi-hostpath-sc 17d
persistentvolumeclaim/pvc-epco-2021-06-17-11-40-05-mysql-pv-claim Bound pvc-4031a452-fd2b-42b1-b1a5-da4df6dc9eb0 2Gi RWO debjeet-sc 56s