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

- Klicken Sie auf ERSTELLEN.
Bereinigung veralteter Docker-Registry-PVCs
Schritte
-
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>
-
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
-
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.
-
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
-
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
-
Löschen des veralteten Verzeichnisses "docker-registry"
-
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:

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/fileshareauf 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 liegensudo 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 Dateitouch /home/delladmin/dockerpvcclean.sh
#Give die Dateidurchführungsberechtigungchmod +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 Skriptinhaltcat /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