Suivez les instructions ci-dessous pour utiliser Dell EMC PowerProtect Data Manager 19.8 et ConfigMap afin d’activer un snapshot de sauvegarde Persistent Volume Claims (PVC) pour qu’il se lie à une classe de stockage définie par l’utilisateur lors de la sauvegarde.
Cet article repose sur le scénario suivant :
- Deux classes de stockage sont définies dans votre cluster Kubernetes. Par exemple :
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
- L’espace de nommage de votre application utilise, par exemple, la première classe de stockage :
debjeet@irv-ppdm-sdr-140:~$ kubectl get pods,pvc -n exns
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
- Lorsque vous lancez une procédure de sauvegarde, Dell EMC PowerProtect Data Manager crée un snapshot de sauvegarde PVC temporaire qui est monté sur le pod cProxy. Cette action déplace le snapshot de sauvegarde vers l’appliance PowerProtect. Ce snapshot de sauvegarde PVC se lie automatiquement à la classe de stockage PVC source.
debjeet@irv-ppdm-sdr-140:~$ kubectl get pods,pvc -n exns
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
- Vous devez faire en sorte que le snapshot de sauvegarde PVC temporaire soit monté sur une autre classe de stockage. Cette exigence peut être due à des restrictions de classe de stockage ou à des politiques internes concernant la classe de stockage source.
Effectuez les opérations suivantes :
- Créez un ConfigMap dans l’espace de nommage powerprotect avec le nom ppdm-snapshot-storage-class-mapping en exécutant la commande suivante :
kubectl create cm ppdm-snapshot-storage-class-mapping -n powerprotect
- Modifiez le ConfigMap en exécutant la commande suivante :
kubectl edit cm ppdm-snapshot-storage-class-mapping -n powerprotect
- L’éditeur s’ouvre. Ajoutez la section data mise en gras dans l’exemple de ConfigMap suivant.
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
- Créez un mappage entre le nom de la classe de stockage source et le nom de la classe de stockage cible.
Si vous créez plusieurs mappages dans un même ConfigMap, les scénarios suivants présentent les cas d’utilisation non pris en charge et pris en charge :
- Scénario non pris en charge : Vous ne pouvez pas mapper une classe de stockage sur deux classes de stockage différentes. Par exemple :
isilon-sc: unity-nfs
isilon-sc: vxflex-sc
- Scénario pris en charge : Vous pouvez mapper des classes de stockage différentes sur une même classe de stockage.
unity-nfs: isilon-sc
vxflex-sc: isilon-sc
- Enregistrez le ConfigMap. Pour la sauvegarde PVC qui est liée au nom de la classe de stockage source répertorié dans le ConfigMap, le snapshot de sauvegarde PVC est lié au nom de la classe de stockage cible répertorié dans le ConfigMap.
Dans l’exemple de ConfigMap précédent, le nom de la classe de stockage source est csi-hostpath-sc et celui de la classe de stockage cible est debjaet-sc. Si une revendication de volume persistant (PVC) en cours de sauvegarde utilise la classe de stockage csi-hostpath-sc, son snapshot PVC sauvegardé est désormais lié à debjaet-sc.
debjeet@irv-ppdm-sdr-140:~$ kubectl get pods,pvc -n exns
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 debjeet-sc 56s