PowerFlex: Pulizia MVM e recupero dello spazio

Oversigt: Questo articolo spiega come recuperare spazio sulla macchina virtuale di gestione (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

AVVERTENZA: Prima di eseguire le attività trattate in questo articolo della KB, eseguire un'istantanea degli MVM. In questo modo verrà fornito un metodo di rollback nel caso in cui si verifichi un errore durante la pulizia dei PVC docker. 

Le istantanee MVM possono essere create con gli MVM in esecuzione. Applicare questi passaggi per tutte e tre le MVM

  • Accedere a vCenter.
  • Per ogni MVM, effettuare le seguenti operazioni
  • Cliccare su MVM -->Cliccare su Snapshots --> Cliccare su TAKE SNAPSHOT....
    Fai un pisolino
  • Cliccare su CREATE

Pulizia dei PVC del registro docker obsoleto

Procedura

  1. Il comando seguente elenca i pod "docker-registry" e l MVM che esegue il 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. Quando si esamina l'output delle attestazioni del volume persistente configurate per docker-registry, vengono elencati gli ID PVC per i PVC attivi. I dati del PVC sono memorizzati in /opt/platform-provisioner/.

    Esempio:

    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. Osservando l'output della directory riportato sopra, è possibile notare che sono presenti due directory per "docker-registry-1". L'ID PVC corrente per "docker registry 1" è "pvc-0f689062-a700-48ad-8d10-65b985477e1a". Poiché sono elencate due directory per "docker-registry-1",

  4. È presente una directory obsoleta che può essere eliminata per liberare spazio. Possono essercene molti di più a seconda del numero di directory obsolete rimaste nel tempo.

    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. La directory non aggiornata consuma 60 GB e questa directory può essere eliminata. L'ID PVC non aggiornato è "pvc-8a5f3651-dbd5-40a9-8252-51fd18539fc3"

    Spazio utilizzato prima della pulizia della directory obsoleta

    delladmin@pfmpn2:~> df -h /dev/sda2
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda2       600G  273G  326G  46% /

    Esempio:
    La directory obsoleta utilizza 60 GB di spazio su disco.

    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. Eliminazione della directory "docker-registry" obsoleta

  7. Quando la directory obsoleta viene eliminata, vengono liberati 60 GB.

    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% /

Pulizia delle vecchie directory del repository IC/RCM

  • Eseguire il seguente comando da qualsiasi MVM per ottenere gli UUID IC/RCM e il nome associato. Può essere presente un solo IC/RCM impostato sul valore predefinito. I pacchetti di conformità IC/RCM meno recenti possono essere rimossi.

    Esempio:
    Versioni di conformità

    Esempio:
    Poiché è presente un solo IC/RCM aggiunto alle versioni di conformità nell'interfaccia utente PFMP, il database ne segnala a sua volta solo uno.

    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)
  • I pacchetti di conformità sono archiviati in /opt/platform/fileshare su tutti e tre gli MVM. Qualsiasi UUID non associato alla versione di conformità predefinita corrente nell'interfaccia utente PFMP può essere eliminato se vengono visualizzati pacchetti di conformità con un'estensione .zip. Verificare che non sia in corso alcuna sincronizzazione IC/RCM nell'interfaccia utente PFMP.

  • Se lo stato di tutti i pacchetti è Available. I file .zip possono essere eliminati per liberare spazio.

    Esempio:

    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

    Esempio:

  • Questo MVM pfmpn1 dispone di un pacchetto di conformità in .zip da un attività di sincronizzazione IC/RCM non completata. Questo file può essere eliminato per liberare spazio.

    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
  • Questo esempio mostra che pfmpn3 contiene una directory precedente della versione di conformità IC/RCM che non è più necessaria poiché è presente una sola versione di conformità IC/RCM aggiunta nell'interfaccia utente 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
  • Spazio consumato su disco per il vecchio 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     .
  • È possibile eseguire il seguente comando per identificare il nome dell'IC/RCM associato a questa directory precedente. Modificare il comando in modo da includere l'UUID applicabile all'ambiente in uso.

    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">
  • Questa directory precedente di conformità IC/RCM utilizza 53 GB poiché la versione predefinita corrente di IC/RCM in questo esempio è 46.382.00. Se nell'interfaccia utente non si fa riferimento al vecchio IC/RCM, è possibile eliminare questa directory. Se un IC/RCM è ancora elencato nell'interfaccia utente, rimuoverlo prima dall'interfaccia utente. Quindi controlla se la directory è stata pulita. In caso contrario, è possibile eliminare manualmente la directory.

  • La pulizia dei PVC obsoleti per docker e la pulizia dei vecchi bundle IC/RCM dovrebbe essere tutto ciò che serve per ridurre l'utilizzo del disco MVM a un livello di integrità.

Pulizia delle directory di aggiornamento PFMP

Durante l'aggiornamento PFMP vengono create tre directory. Se PFMP è stato aggiornato correttamente, ma potrebbe essere stato necessario completare manualmente una fase di aggiornamento, le directory non sono state pulite. La pulizia delle directory potrebbe anche non riuscire se si sono verificati problemi di autorizzazioni di proprietà. Le directory si trovano in /opt/platform/fileshare su ogni MVM. La directory che fornisce la maggior parte dello spazio da recuperare è "PFMPUpgradeBundle"

Nomi directory

  • PFMPUpgradeBundle
  • Piattaforma
  • Upgrade
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

Eseguire i seguenti comandi per eliminare queste directory.

sudo rm -rf /opt/platform/fileshare/PFMPUpgradeBundle
sudo rm -rf /opt/platform/fileshare/Upgrade
sudo rm -rf /opt/platform/fileshare/platform

Pulizia di file di registro pod di grandi dimensioni

  • Se è necessario più spazio, controllare ed eliminare se necessario:

  • Su qualsiasi server PFMP (MVM) con problemi di spazio, eseguire i seguenti comandi di ricerca per verificare le dimensioni dei file di registro:

    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 {} \;
  • I seguenti comandi rimuovono automaticamente questi file di registro di grandi dimensioni:

    Nota: Non è necessario eseguire i comandi di eliminazione riportati di seguito se i file sono di piccole dimensioni < , pari a 300 MB. Se sono di grandi dimensioni, le dimensioni potrebbero variare tra 1 GB e 100+GB
    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"' _ {} \;

Convalida

Verificare che l'utilizzo del disco sia diminuito utilizzando il seguente comando. Quando la pulizia viene completata con un solo pacchetto di conformità, l'utilizzo può variare dal 35% al 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    .

Eseguire il comando seguente e verificare che tutti i pod siano in stato Running.

kubectl get pods -o wide -n powerflex

Monitorare il cluster PFMP per 24 ore. Quindi è possibile eliminare le istantanee MVM.

Flere oplysninger

Inoltre, è possibile utilizzare lo script riportato di seguito per la pulizia della PVC.

È sicuro utilizzare lo script perché non esegue le eliminazioni. Fornisce i comandi necessari per l'eliminazione. Tuttavia, si tratta di uno script non supportato da Dell; Si consiglia di utilizzare il metodo manuale trattato in questo articolo della Knowledge Base. L'utilizzo di questo script non è supportato.

Come creare un file di script su un MVM.  Questa procedura dovrebbe essere ripetuta sugli altri due MVM

 

#Create un file vuoto
touch /home/delladmin/dockerpvcclean.sh

#Give l'autorizzazione di esecuzione del file
chmod +x /home/dellamdin/dockerpvcclean.sh

#Use il seguente comando per aprire il file con l'editor
VIvi /home/delladmin/dockerpvcclean.sh

Con l'editor vi aperto, passare alla modalità di inserimento premendo il tasto
"i#Copy il contenuto del file di script alla fine di questa sezione. 
Fare clic con il pulsante destro del mouse sul terminale per incollare il contenuto nel file.

#Save il file
{Premere Esc per uscire dalla modalità di inserimento. Premi {Shift}: 
Quindi premere wq
Quindi premere Invio (questo scriverà e uscirà dall'editor vi e tornerà al prompt dei comandi)

#Confirm il file contiene il contenuto dello script
cat /home/delladmin/dockerpvcclean.sh

#To eseguire lo script, eseguire i seguenti comandi.

sudo -s
/home/delladmin/dockerpvcclean.sh

Contenuto del file di 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.