PowerFlex : Nettoyage MVM et récupération d’espace
Oversigt: Cet article explique comment récupérer de l’espace sur les machines virtuelles de gestion (MVM).
Instruktioner
Les snapshots MVM peuvent être créés avec les MVM en cours d’exécution. Appliquez ces étapes pour les trois MVM
- Connectez-vous à vCenter
- Pour chaque MVM, procédez comme suit
- Cliquez sur MVM --> Cliquez sur Snapshots --> Cliquez sur TAKE SNAPSHOT....

- Cliquez sur CREATE
Nettoyer les PVC obsolètes du registre docker
Étapes
-
La commande suivante répertorie les pods « docker-registry » et répertorie le MVM qui exécute le pod.
delladmin@pfmpn2:/opt/platform-provisioner> kubectl get pods -n powerflex -o wide | grep docker | grep -v sync docker-registry-0 1/1 Running 0 16h 192.168.21.154 pfmpn3 <none> <none> docker-registry-1 1/1 Running 0 16h 192.168.23.40 pfmpn2 <none> <none>
-
Lorsque vous passez en revue la sortie des revendications de volume persistant configurées pour docker-registry, les ID de PVC sont répertoriés pour les PVC actifs. Les données du PVC sont stockées dans
/opt/platform-provisioner/.Exemple :
delladmin@pfmpn2:~> kubectl get pvc -n powerflex | grep docker docker-registry-data-docker-registry-0 Bound pvc-648ed95b-0393-4c6d-b500-03a4b162dda5 20Gi RWO local-path 46h docker-registry-data-docker-registry-1 Bound pvc-0f689062-a700-48ad-8d10-65b985477e1a 20Gi RWO local-path 19d
-
Lorsque nous examinons la sortie du répertoire ci-dessus, vous pouvez voir qu’il existe deux répertoires pour « docker-registry-1 ». L’ID PVC actuel de « docker registry 1 » est « pvc-0f689062-a700-48ad-8d10-65b985477e1a ». Puisqu’il y a deux répertoires répertoriés pour « docker-registry-1 ».
-
Il existe un répertoire obsolète qui peut être supprimé pour libérer de l’espace. Il peut y en avoir beaucoup plus en fonction du nombre de répertoires obsolètes restants au fil du temps.
delladmin@pfmpn2:~> ls -al /opt/platform-provisioner/ | grep docker drwxrwxrwx 1 root root 12 Jul 22 15:47 pvc-0f689062-a700-48ad-8d10-65b985477e1a_powerflex_docker-registry-data-docker-registry-1 drwxrwxrwx 1 root root 12 May 17 00:44 pvc-8a5f3651-dbd5-40a9-8252-51fd18539fc3_powerflex_docker-registry-data-docker-registry-1
-
Le répertoire obsolète consomme 60 Go et peut être supprimé. L’ID de PVC obsolète est « pvc-8a5f3651-dbd5-40a9-8252-51fd18539fc3 »
Espace utilisé avant le nettoyage du répertoire obsolète
delladmin@pfmpn2:~> df -h /dev/sda2 Filesystem Size Used Avail Use% Mounted on /dev/sda2 600G 273G 326G 46% /
Exemple :
Le répertoire obsolète consomme 60 Go d’espace disque.delladmin@pfmpn2:~> du -h --max-depth=1 /opt/platform-provisioner/pvc-8a5f3651-dbd5-40a9-8252-51fd18539fc3_powerflex_docker-registry-data-docker-registry-1 60G /opt/platform-provisioner/pvc-8a5f3651-dbd5-40a9-8252-51fd18539fc3_powerflex_docker-registry-data-docker-registry-1/docker 60G /opt/platform-provisioner/pvc-8a5f3651-dbd5-40a9-8252-51fd18539fc3_powerflex_docker-registry-data-docker-registry-1
-
Suppression du répertoire obsolète « docker-registry »
-
Lorsque le répertoire obsolète est supprimé, il libère 60 Go.
delladmin@pfmpn2:/opt/platform-provisioner> sudo rm -rf pvc-8a5f3651-dbd5-40a9-8252-51fd18539fc3_powerflex_docker-registry-data-docker-registry-1 delladmin@pfmpn2:/opt/platform-provisioner> df -h /dev/sda2 Filesystem Size Used Avail Use% Mounted on /dev/sda2 600G 213G 385G 36% /
Nettoyage des anciens répertoires du référentiel IC/RCM
-
Exécutez la commande suivante à partir de n’importe quel MVM pour obtenir les UUID IC/RCM et le nom associé. Il ne peut y avoir qu’un seul IC/RCM défini par défaut. Les anciens bundles de conformité IC/RCM peuvent être supprimés.
Exemple :

Exemple :
Étant donné qu’un seul IC/RCM est ajouté aux versions de conformité dans l’interface utilisateur de PFMP, la base de données n’en signale qu’un seul.delladmin@pfmpn2:/opt/platform/fileshare> kubectl exec -it -n powerflex $(kubectl get pods -n powerflex | grep -i asmm | awk '{print $1}') -- bash -c 'PGPASSWORD=$CONNECTION_USER_PASSWORD psql -h postgres-ha-pgbouncer -p 5432 -U asmmanageruser -d asm_manager -w -c "SELECT id,name FROM firmware_repository;"' id | name ----------------------------------+------------------------------- 402897a59688313b01968c2d859e4732 | Intelligent Catalog 46.382.00 (1 row) -
Les bundles de conformité sont stockés dans
/opt/platform/filesharesur les trois MVM. Tout UUID qui n’est pas associé à la version de conformité par défaut actuelle dans l’interface utilisateur de PFMP peut être supprimé si vous voyez des bundles de conformité avec une extension .zip. Vérifiez qu’aucune synchronisation IC/RCM n’est en cours dans l’interface utilisateur PFMP. -
Si tous les bundles sont à l’état Available. Les fichiers .zip peuvent être supprimés pour libérer de l’espace.
Exemple :
delladmin@pfmpn2:/opt/platform/fileshare> pwd /opt/platform/fileshare delladmin@pfmpn2:/opt/platform/fileshare> ls -al | grep 402897a59688313b01968c2d859e4732 drwxr-xr-x 1 delladmin users 14184 May 30 16:41 402897a59688313b01968c2d859e4732
Exemple :
-
Ce PFMPN1 MVM dispose d’un bundle de conformité en .zip d’une tâche de synchronisation IC/RCM qui ne s’est pas terminée. Ce fichier peut être supprimé pour libérer de l’espace.
delladmin@pfmp452n1:/opt/platform/fileshare> ls -alh | grep 402897 drwxr-xr-x 1 delladmin users 14K May 30 16:41 402897a59688313b01968c2d859e4732 -rw-r--r-- 1 delladmin users 28G Jul 17 14:06 402897a59688313b01968c2d859e4732.zip delladmin@pfmp452n1:/opt/platform/fileshare> sudo rm -rf /opt/platform/fileshare/402897a59688313b01968c2d859e4732.zip Result delladmin@pfmp452n1:/opt/platform/fileshare> ls -alh | grep 402897 drwxr-xr-x 1 delladmin users 14K May 30 16:41 402897a59688313b01968c2d859e4732
-
Cet exemple montre que pfmpn3 contient un ancien répertoire de version de conformité IC/RCM qui n’est plus nécessaire, car il n’y a qu’une seule version de conformité IC/RCM ajoutée dans l’interface utilisateur PFMP.
delladmin@pfmp452n3:~> ls -al /opt/platform/fileshare/ | grep 402897 drwxr-xr-x 1 delladmin users 11798 Feb 13 17:16 4028979594e191650195014584d93692 drwxr-xr-x 1 delladmin users 14184 May 30 16:41 402897a59688313b01968c2d859e4732
-
Espace consommé sur le disque pour l’ancien IC/RCM
delladmin@pfmpn3:/opt/platform/fileshare/4028979594e191650195014584d93692> du -h --max-depth=1 . 1.3G ./modified 47G ./os 2.8M ./rpm s 5.8M ./slesrpms 15M ./vibs70 53G .
-
Vous pouvez exécuter la commande suivante pour identifier le nom de l’IC/RCM associé à cet ancien répertoire. Modifiez la commande pour inclure l’UUID applicable à votre environnement.
delladmin@pfmp452n3:/opt/platform/fileshare/4028979594e191650195014584d93692> head /opt/platform/fileshare/4028979594e191650195014584d93692/catalog.xml | grep name <Manifest baseLocation="" dateTime="2020-08-06T15:05:13" name="Intelligent Catalog 46.376.00" identifier="d70a21a1-116e-4a3c-95ec-52a24603b684" releaseID="MW3KN" version="1.28">
-
Cet ancien répertoire de conformité IC/RCM consomme 53 Go, car la version actuelle par défaut d’IC/RCM dans cet exemple est 46.382.00. Si l’ancien IC/RCM n’est pas référencé dans l’interface utilisateur, ce répertoire peut être supprimé. Si un IC/RCM est toujours répertorié dans l’interface utilisateur, supprimez-le d’abord de l’interface utilisateur. Vérifiez ensuite si le répertoire est nettoyé. Si ce n’est pas le cas, vous pouvez supprimer manuellement le répertoire.
-
Le nettoyage des PVC obsolètes pour Docker et le nettoyage des anciens bundles IC/RCM devraient suffire à ramener l’utilisation du disque MVM à un niveau d’intégrité.
Nettoyer les répertoires de mise à niveau PFMP
Trois répertoires sont créés lors de la mise à niveau de PFMP. Si vous avez réussi à mettre à niveau PFMP, mais que vous avez peut-être dû effectuer manuellement une phase de mise à niveau, les répertoires n’ont pas été nettoyés. Il se peut également que les répertoires ne puissent pas être nettoyés en cas de problèmes d’autorisation de propriété. Les répertoires se trouvent dans /opt/platform/fileshare sur chaque MVM. Le répertoire qui fournit le plus d’espace à récupérer est « PFMPUpgradeBundle »
Noms des répertoires
- PFMPUpgradeBundle
- Plateforme
- Mise à niveau
delladmin@pfmp452n3:/opt/platform/fileshare> ls -alh /opt/platform/fileshare/ | grep -Ei 'upgrade|platform' drwxr-xr-x 1 delladmin root 362 Jul 22 15:23 PFMPUpgradeBundle drwxr-xr-x 1 delladmin users 0 Nov 7 2024 platform drwxr-xr-x 1 delladmin root 92 Jul 22 15:23 Upgrade
Exécutez les commandes suivantes pour supprimer ces répertoires.
sudo rm -rf /opt/platform/fileshare/PFMPUpgradeBundle sudo rm -rf /opt/platform/fileshare/Upgrade sudo rm -rf /opt/platform/fileshare/platform
Nettoyage des fichiers journaux des volumineux pods
-
Si vous avez besoin de plus d’espace, vérifiez et supprimez si nécessaire :
-
Sur n’importe quel serveur PFMP (MVM) présentant des problèmes d’espace, exécutez les commandes find suivantes pour vérifier la taille des fichiers journaux :
sudo find /opt/platform-provisioner -type d -name "pvc-*_*_logging-rsyslog-data-*" -exec ls -lh {} \; sudo find /opt/platform-provisioner -iname "docker-registry.stdout.log" -exec du -h {} \; sudo find /opt/platform-provisioner -iname "supportassist-vxflexappliance.stdout.log" -exec du -h {} \; sudo find /opt/platform-provisioner -iname "temporal-history.stdout.log" -exec du -h {} \; -
Les commandes suivantes suppriment automatiquement ces fichiers journaux volumineux :
Remarque : Vous n’avez pas besoin d’exécuter les commandes de suppression ci-dessous si les fichiers sont de petite taille < (300 Mo). S’ils sont volumineux, leur taille peut varier entre 1 Go et 100+ Gosudo find /opt/platform-provisioner -type d -name "pvc-*_*_logging-rsyslog-data-*" -exec sh -c 'for log in "$1"/*.log; do [ -e "$log" ] && echo "clean" > "$log"; done' _ {} \; sudo find /opt/platform-provisioner -iname "docker-registry.stdout.log" -exec sh -c 'echo "clean" > "$1"' _ {} \; sudo find /opt/platform-provisioner -iname "supportassist-vxflexappliance.stdout.log" -exec sh -c 'echo "clean" > "$1"' _ {} \; sudo find /opt/platform-provisioner -iname "temporal-history.stdout.log" -exec sh -c 'echo "clean" > "$1"' _ {} \;
Validation
Vérifiez que l’utilisation du disque a diminué à l’aide de la commande suivante. Lorsque le nettoyage est terminé avec un seul bundle de conformité, l’utilisation peut varier de 35 % à 55 %.
df -h /dev/sda2 Ex. delladmin@pfmpn2:/opt> df -h /dev/sda2 Filesystem Size Used Avail Use% Mounted on /dev/sda2 600G 218G 381G 37% / sudo du -h --max-depth=1 /opt Ex. delladmin@pfmpn2:/opt> sudo du -h --max-depth=1 /opt 45G ./platform 146M ./rke2 294M ./cni 84G ./platform-provisioner 129G .
Exécutez la commande suivante et vérifiez que tous les pods sont à l’état Running.
kubectl get pods -o wide -n powerflex
Surveillez le cluster PFMP pendant 24 heures. Ensuite, les snapshots MVM peuvent être supprimés.
Flere oplysninger
En outre, le script ci-dessous peut être utilisé pour le nettoyage du PVC.
Il est possible d’utiliser le script en toute sécurité, car il n’effectue pas les suppressions. Il fournit les commandes nécessaires à la suppression. Toutefois, il s’agit d’un script non pris en charge par Dell. Il est recommandé d’utiliser la méthode manuelle décrite dans cet article de la base de connaissances. L’utilisation de ce script n’est pas prise en charge.
Création d’un fichier de script sur un MVM. Cette procédure doit être répétée sur les deux autres MVM
#Create un fichier viergetouch /home/delladmin/dockerpvcclean.sh
#Give l’autorisation d’exécution du fichierchmod +x /home/dellamdin/dockerpvcclean.sh
#Use la commande suivante pour ouvrir le fichier avec l’éditeur
vivi /home/delladmin/dockerpvcclean.sh
Une fois l’éditeur vi ouvert, passez en mode insertion en appuyant sur la touche
"i#Copy le contenu du fichier de script à la fin de cette section.
Cliquez avec le bouton droit de la souris dans le terminal pour coller le contenu dans le fichier.
#Save le fichier
{Appuyez sur Échap pour quitter le mode d’insertion. Appuyez sur {Maj} :
Appuyez ensuite sur wq
Puis appuyez sur Entrée (cela écrira et quittera l’éditeur vi et reviendra à l’invite de commande)
#Confirm le fichier contient le contenu du scriptcat /home/delladmin/dockerpvcclean.sh
#To exécuter le script, exécutez les commandes suivantes.
sudo -s/home/delladmin/dockerpvcclean.sh
Contenu du fichier de script
#!/bin/bash
# Set this node name
MYNODENAME=$(kubectl get node -o yaml |grep host |awk '{print $2}' |grep $(hostname))
echo "$MYNODENAME Free space on root partition:"
df -h /
#
DOCKER0PV=$(kubectl get pvc -n powerflex docker-registry-data-docker-registry-0 -o json | jq .spec.volumeName | sed 's/"//g')
DOCKER1PV=$(kubectl get pvc -n powerflex docker-registry-data-docker-registry-1 -o json | jq .spec.volumeName | sed 's/"//g')
echo Currently used docker-registry-0 PV is $DOCKER0PV
echo Currently used docker-registry-1 PV is $DOCKER1PV
#
# Show which hosts have the current running set of docker-registry pods
for DOCKPOD in $(kubectl get pods -A -o name | grep docker-registry | grep -v sync); do
REGHOST=$(kubectl get $DOCKPOD -n powerflex -o jsonpath='{.spec.nodeName}');
echo $REGHOST has $DOCKPOD;
done
#Check for the good/valid PV directories on this host
DOCKER0PVDIR=$(find /opt/platform-provisioner/ -type d -name $DOCKER0PV*)
DOCKER1PVDIR=$(find /opt/platform-provisioner/ -type d -name $DOCKER1PV*)
if [ -n "$DOCKER0PVDIR" ];
then
echo Keeping $DOCKER0PVDIR which is on this node
fi
if [ -n "$DOCKER1PVDIR" ];
then
echo Keeping $DOCKER1PVDIR which is on this node
fi
STALEDOCKERPVDIRS=$(find /opt/platform-provisioner/ -type d -name *docker-registry-data* | grep -v $DOCKER1PV | grep -v $DOCKER0PV; echo )
if [ -n "$STALEDOCKERPVDIRS" ];
then
echo ##################################
echo Found $(echo $STALEDOCKERPVDIRS | wc -w ) Stale PVs on $HOSTNAME;
for CHECKSPACE in $(echo $STALEDOCKERPVDIRS); do
echo
echo $CHECKSPACE uses;
du -hcs $CHECKSPACE;
echo "#Please Run the following:"
echo "rm -rf $CHECKSPACE"
done
echo "A total of $(du -hcs $STALEDOCKERPVDIRS | grep total) can be saved"
else
echo "Good news: No stale PVs related to docker-registry found!"
fi