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).

Denne artikel gælder for Denne artikel gælder ikke for Denne artikel er ikke knyttet til et bestemt produkt. Det er ikke alle produktversioner, der er identificeret i denne artikel.

Instruktioner

AVERTISSEMENT : Avant d’effectuer les tâches couvertes dans cet article de la base de connaissances, prenez un snapshot des MVM. Cela fournira une méthode de restauration en cas d’erreur lors du nettoyage des PVC Docker. 

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....
    Prendre une photo de sieste
  • Cliquez sur CREATE

Nettoyer les PVC obsolètes du registre docker

Étapes

  1. 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>
  2. 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
  3. 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 ».

  4. 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
  5. 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
  6. Suppression du répertoire obsolète « docker-registry »

  7. 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 :
    Versions de conformité

    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/fileshare sur 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+ Go
    sudo 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 vierge
touch /home/delladmin/dockerpvcclean.sh

#Give l’autorisation d’exécution du fichier
chmod +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 script
cat /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

 

Berørte produkter

PowerFlex rack connectivity, PowerFlex rack RCM Software, PowerFlex Software

Produkter

PowerFlex rack
Artikelegenskaber
Artikelnummer: 000348682
Artikeltype: How To
Senest ændret: 21 jan. 2026
Version:  5
Find svar på dine spørgsmål fra andre Dell-brugere
Supportservices
Kontrollér, om din enhed er dækket af supportservices.