PowerFlex: MVM-Bereinigung und Speicherplatzrückgewinnung

Oversigt: In diesem Artikel wird erläutert, wie Sie Speicherplatz auf der Management-VM (Management Virtual Machine, MVMs) zurückgewinnen.

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

WARNUNG: Erstellen Sie vor der Durchführung der in diesem Wissensdatenbank-Artikel beschriebenen Aufgaben einen Snapshot der MVMs. Dies bietet eine Rollback-Methode für den Fall, dass beim Bereinigen der Docker-PVCs ein Fehler gemacht wird. 

MVM-Snapshots können erstellt werden, während die MVMs ausgeführt werden. Wenden Sie diese Schritte auf alle drei MVMs an

  • Melden Sie sich beim vCenter an.
  • Führen Sie für jeden MVM die folgenden Schritte aus
  • Klicken Sie auf MVM. Klicken> Sie auf Snapshots –> klicken Sie auf SNAPSHOT ERSTELLEN ....
    Machen Sie ein Nickerchen
  • Klicken Sie auf ERSTELLEN.

Bereinigung veralteter Docker-Registry-PVCs

Schritte

  1. Mit dem folgenden Befehl werden die "docker-registry"-Pods sowie der MVM, auf dem der Pod ausgeführt wird, aufgeführt.

    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. Wenn Sie die Ausgabe der konfigurierten Persistent Volume Claims für docker-registry überprüfen, werden die PVC-IDs für die aktiven PVCs aufgelistet. Die PVC-Daten werden gespeichert in /opt/platform-provisioner/.

    Beispiel:

    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. Wenn wir uns die obige Verzeichnisausgabe ansehen, können Sie sehen, dass es zwei Verzeichnisse für "docker-registry-1" gibt. Die aktuelle PVC-ID für "docker registry 1" lautet "pvc-0f689062-a700-48ad-8d10-65b985477e1a". Es sind zwei Verzeichnisse für "docker-registry-1" aufgeführt.

  4. Es gibt ein veraltetes Verzeichnis, das gelöscht werden kann, um Speicherplatz freizugeben. Je nachdem, wie viele veraltete Verzeichnisse im Laufe der Zeit übrig geblieben sind, können es noch viel mehr sein.

    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. Das veraltete Verzeichnis verbraucht 60 GB und dieses Verzeichnis kann gelöscht werden. Die veraltete PVC-ID lautet "pvc-8a5f3651-dbd5-40a9-8252-51fd18539fc3".

    Speicherplatz, der vor der Bereinigung veralteter Verzeichnisse belegt ist

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

    Beispiel:
    Das veraltete Verzeichnis belegt 60 GB Speicherplatz.

    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. Löschen des veralteten Verzeichnisses "docker-registry"

  7. Wenn das veraltete Verzeichnis gelöscht wird, werden 60 GB freigegeben.

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

Bereinigen alter IC/RCM-Repository-Verzeichnisse

  • Führen Sie den folgenden Befehl von einem beliebigen MVM aus, um die IC/RCM-UUIDs und den zugehörigen Namen abzurufen. Es kann nur ein IC/RCM auf die Standardeinstellung gesetzt sein. Ältere IC/RCM-Compliance-Bundles können entfernt werden.

    Beispiel:
    Compliance-Versionen

    Beispiel:
    Da in der PFMP-Benutzeroberfläche nur ein IC/RCM zu den Compliance-Versionen hinzugefügt wird, meldet die Datenbank wiederum nur einen.

    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)
  • Die Compliance-Bundles werden gespeichert in /opt/platform/fileshare auf allen drei MVMs. Jede UUID, die nicht mit der aktuellen standardmäßigen Compliance-Version in der PFMP-Benutzeroberfläche verknüpft ist, kann gelöscht werden, wenn Compliance-Bundles mit einer .zip Erweiterung angezeigt werden. Stellen Sie sicher, dass in der PFMP-Benutzeroberfläche keine IC/RCM-Synchronisation durchgeführt wird.

  • Wenn alle Bundles den Status "Available" aufweisen. Die .zip Dateien können gelöscht werden, um Speicherplatz freizugeben.

    Beispiel:

    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

    Beispiel:

  • Dieser MVM pfmpn1 verfügt über ein Compliance-Bundle in .zip von einer IC/RCM-Synchronisationsaufgabe, die nicht abgeschlossen wurde. Diese Datei kann gelöscht werden, um Speicherplatz freizugeben.

    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
  • Dieses Beispiel zeigt, dass pfmpn3 ein altes IC/RCM-Compliance-Versionsverzeichnis enthält, das nicht mehr benötigt wird, da nur eine IC/RCM-Compliance-Version in der PFMP-Benutzeroberfläche hinzugefügt wird.

    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
  • Speicherplatzverbrauch auf der Festplatte für alten 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     .
  • Sie können den folgenden Befehl ausführen, um den Namen des IC/RCM zu identifizieren, der diesem alten Verzeichnis zugeordnet ist. Ändern Sie den Befehl so, dass er die für Ihre Umgebung anwendbare UUID einschließt.

    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">
  • Dieses alte IC/RCM-Compliance-Verzeichnis verbraucht 53 GB, da die aktuelle Standardversion von IC/RCM in diesem Beispiel 46.382.00 ist. Wenn der alte IC/RCM in der Benutzeroberfläche nicht referenziert wird, kann dieses Verzeichnis gelöscht werden. Wenn ein IC/RCM noch in der Benutzeroberfläche aufgeführt ist, entfernen Sie ihn zuerst aus der Benutzeroberfläche. Überprüfen Sie dann, ob das Verzeichnis bereinigt ist. Wenn dies nicht der Fall ist, können Sie das Verzeichnis manuell löschen.

  • Das Bereinigen veralteter PVCs für Docker und das Bereinigen alter IC/RCM-Bundles sollte alles sein, was erforderlich ist, um die MVM-Festplattenauslastung auf ein Integritätslevel zu bringen.

Bereinigen von PFMP-Upgradeverzeichnissen

Es gibt drei Verzeichnisse, die während des PFMP-Upgrades erstellt werden. Wenn Sie PFMP erfolgreich aktualisiert haben, aber möglicherweise eine Upgradephase manuell abschließen mussten, wurden die Verzeichnisse nicht bereinigt. Die Verzeichnisse können auch möglicherweise nicht bereinigt werden, wenn Probleme mit der Eigentümerberechtigung aufgetreten sind. Die Verzeichnisse befinden sich in /opt/platform/fileshare auf jedem MVM. Das Verzeichnis, das den meisten Speicherplatz zur Rückgewinnung bietet, ist "PFMPUpgradeBundle".

Verzeichnisnamen

  • PFMPUpgradeBundle
  • Plattform
  • Aktualisierung
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

Führen Sie die folgenden Befehle aus, um diese Verzeichnisse zu löschen.

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

Bereinigung großer Pod-Protokolldateien

  • Wenn mehr Speicherplatz benötigt wird, überprüfen und bei Bedarf löschen:

  • Führen Sie auf jedem PFMP (MVM)-Server, der Speicherplatzprobleme aufweist, die folgenden Suchbefehle aus, um zu überprüfen, wie groß die Protokolldateien sind:

    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 {} \;
  • Mit den folgenden Befehlen werden diese großen Protokolldateien automatisch entfernt:

    Hinweis: Sie müssen die folgenden Löschbefehle nicht ausführen, wenn die Dateien klein sind und < 300 MB groß sind. Wenn sie groß sind, kann die Größe zwischen 1 GB und 100+ GB liegen
    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"' _ {} \;

Validierung

Überprüfen Sie mit dem folgenden Befehl, ob die Festplattenauslastung reduziert wurde. Wenn die Bereinigung mit nur einem Compliance-Bundle abgeschlossen ist, kann die Nutzung zwischen 35 % und 55 % liegen.

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    .

Führen Sie den folgenden Befehl aus und überprüfen Sie, ob sich alle Pods im Status "Running" befinden.

kubectl get pods -o wide -n powerflex

Überwachen Sie den PFMP-Cluster 24 Stunden lang. Anschließend können die MVM-Snapshots gelöscht werden.

Flere oplysninger

Außerdem kann das folgende Skript für die PVC-Bereinigung verwendet werden.

Es ist sicher, das Skript zu verwenden, da es die Löschvorgänge nicht durchführt. Es enthält die zum Löschen erforderlichen Befehle. Es handelt sich jedoch um ein von Dell nicht unterstütztes Skript. Es wird empfohlen, die in diesem Wissensdatenbank-Artikel beschriebene manuelle Methode zu verwenden. Die Verwendung dieses Skripts wird nicht unterstützt.

So erstellen Sie eine Skriptdatei auf einem MVM.  Dieser Vorgang müsste auf den anderen beiden MVMs wiederholt werden

 

#Create einer leeren Datei
touch /home/delladmin/dockerpvcclean.sh

#Give die Dateidurchführungsberechtigung
chmod +x /home/dellamdin/dockerpvcclean.sh

#Use den folgenden Befehl aus, um die Datei mit dem VI-Editor
vi /home/delladmin/dockerpvcclean.sh zu öffnen

Wechseln Sie bei geöffnetem vi-Editor in den Einfügemodus, indem Sie die Taste
"i" drücken#Copy den Inhalt der Skriptdatei am Ende dieses Abschnitts. 
Klicken Sie mit der rechten Maustaste in das Terminal, um den Inhalt in die Datei einzufügen.

#Save die Datei
{Drücken Sie die Esc-Taste, um den Einfügemodus zu beenden. Drücken Sie {Shift}: 
Drücken Sie dann wq
Drücken Sie dann die Eingabetaste (dies schreibt und beendet den vi-Editor und kehrt zur Eingabeaufforderung zurück)

#Confirm die Datei enthält den Skriptinhalt
cat /home/delladmin/dockerpvcclean.sh

#To das Skript auszuführen, führen Sie die folgenden Befehle aus.

sudo -s
/home/delladmin/dockerpvcclean.sh

Inhalt der Skriptdatei

#!/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.