PowerFlex: Recuperación de espacio y limpieza de MVM
Oversigt: En este artículo, se explica cómo recuperar espacio en la máquina virtual de administración (MVM).
Instruktioner
Las instantáneas de MVM se pueden tomar con los MVM en ejecución. Aplique estos pasos para los tres MVM
- Inicie sesión en vCenter
- Para cada MVM, realice los siguientes pasos
- Haga clic en MVM, haga> clic en Snapshots,> haga clic en TAKE SNAPSHOT...

- Haga clic en CREATE
Limpieza de PVC de registro de docker obsoletos
Pasos
-
El siguiente comando enumera los pods "docker-registry" y enumera el MVM que ejecuta el 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>
-
Cuando revisa la salida de las reclamaciones de volumen persistente configuradas para docker-registry, se enumeran los ID de PVC para las PVC activas. Los datos de PVC se almacenan en
/opt/platform-provisioner/.Ejemplo:
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
-
Cuando observamos el resultado del directorio anterior, puede ver que hay dos directorios para "docker-registry-1". El ID de PVC actual para "docker registry 1" es "pvc-0f689062-a700-48ad-8d10-65b985477e1a". Dado que hay dos directorios enumerados para "docker-registry-1".
-
Hay un directorio obsoleto que se puede eliminar para liberar espacio. Puede haber muchos más según la cantidad de directorios obsoletos que quedaron con el tiempo.
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
-
El directorio obsoleto consume 60 GB y este directorio se puede eliminar. El ID de PVC obsoleto es "pvc-8a5f3651-dbd5-40a9-8252-51fd18539fc3"
Espacio utilizado antes de la limpieza de directorios obsoletos
delladmin@pfmpn2:~> df -h /dev/sda2 Filesystem Size Used Avail Use% Mounted on /dev/sda2 600G 273G 326G 46% /
Ejemplo:
El directorio obsoleto consume 60 GB de espacio de 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
-
Eliminación del directorio "docker-registry" obsoleto
-
Cuando se elimina el directorio obsoleto, se liberan 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% /
Limpieza de directorios de repositorios antiguos de IC/RCM
-
Ejecute el siguiente comando desde cualquier MVM para obtener los UUID de IC/RCM y el nombre asociado. Solo puede haber un IC/RCM configurado en el valor predeterminado. Se pueden eliminar los paquetes de cumplimiento de IC/RCM más antiguos.
Ejemplo:

Ejemplo:
Dado que solo hay un IC/RCM agregado a las versiones de cumplimiento de normas en la interfaz del usuario de PFMP, a su vez, la base de datos informa 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) -
Los paquetes de cumplimiento se almacenan en
/opt/platform/fileshareen los tres MVM. Cualquier UUID que no esté asociado con la versión de cumplimiento predeterminada actual en la interfaz de usuario de PFMP se puede eliminar si ve paquetes de cumplimiento con una extensión .zip. Verifique que no haya ninguna sincronización de IC/RCM en curso en la interfaz de usuario de PFMP. -
Si todos los paquetes están en un estado Disponible. Los archivos .zip se pueden eliminar para liberar espacio.
Ejemplo:
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
Ejemplo:
-
Este MVM pfmpn1 tiene un paquete de cumplimiento en .zip de una tarea de sincronización de IC/RCM que no se completó. Este archivo se puede eliminar para liberar espacio.
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
-
En este ejemplo, se muestra que pfmpn3 contiene un directorio de versión de cumplimiento de IC/RCM anterior que ya no es necesario, ya que solo se agregó una versión de cumplimiento de IC/RCM en la interfaz de usuario de 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
-
Espacio consumido en el disco para IC/RCM antiguo
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 .
-
Puede ejecutar el siguiente comando para identificar el nombre del IC/RCM asociado con este directorio antiguo. Modifique el comando para incluir el UUID aplicable a su entorno.
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">
-
Este antiguo directorio de cumplimiento de normas de IC/RCM consume 53 GB, ya que la versión predeterminada actual de IC/RCM en este ejemplo es 46.382.00. Si no se hace referencia al IC/RCM antiguo en la interfaz de usuario, este directorio se puede eliminar. Si un IC/RCM aún aparece en la interfaz de usuario, primero elimínelo. A continuación, compruebe si el directorio se ha limpiado. Si no es así, puede eliminar manualmente el directorio.
-
La limpieza de PVC obsoletos para Docker y la limpieza de paquetes IC/RCM antiguos debe ser todo lo que se necesita para reducir el uso del disco MVM a un nivel de estado.
Limpieza de directorios de actualización de PFMP
Hay tres directorios que se crean durante la actualización de PFMP. Si actualizó PFMP correctamente, pero es posible que haya tenido que completar manualmente una fase de actualización, los directorios no se limpiaron. También es posible que los directorios no se limpien si hubo problemas de permisos de propiedad. Los directorios se encuentran en /opt/platform/fileshare en cada MVM. El directorio que proporciona la mayor cantidad de espacio para recuperar es "PFMPUpgradeBundle"
Nombres de directorios
- Paquete de PFMPUpgradeBundle
- Plataforma
- Actualizar
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
Ejecute los siguientes comandos para eliminar estos directorios.
sudo rm -rf /opt/platform/fileshare/PFMPUpgradeBundle sudo rm -rf /opt/platform/fileshare/Upgrade sudo rm -rf /opt/platform/fileshare/platform
Limpieza de archivos de registro de pods grandes
-
Si se necesita más espacio, verifique y elimine si es necesario:
-
En cualquier servidor PFMP (MVM) que tenga problemas de espacio, ejecute los siguientes comandos de búsqueda para comprobar el tamaño de los archivos de 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 {} \; -
Los siguientes comandos eliminan automáticamente estos archivos de registro grandes:
Nota: No es necesario ejecutar los siguientes comandos de eliminación si los archivos tienen un tamaño < pequeño de 300 MB. Si son grandes, el tamaño podría oscilar entre 1 GB y 100 + GBsudo 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"' _ {} \;
Validación
Verifique que el uso del disco se haya reducido mediante el siguiente comando. Cuando la limpieza se completa con solo un paquete de cumplimiento, el uso puede variar del 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 .
Ejecute el siguiente comando y verifique que todos los pods estén en el estado Running.
kubectl get pods -o wide -n powerflex
Monitoree el clúster de PFMP durante 24 horas. A continuación, se pueden eliminar las instantáneas de MVM.
Flere oplysninger
Además, el siguiente script se puede utilizar para la limpieza de PVC.
Es seguro usar el script porque no realiza las eliminaciones. Proporciona los comandos necesarios para eliminar. Sin embargo, es un script no compatible de Dell; Se recomienda utilizar el método manual que se describe en esta base de conocimientos. El uso de este script no es compatible.
Cómo crear un archivo de script en un MVM. Este procedimiento se debe repetir en los otros dos MVM
#Create un archivo en blancotouch /home/delladmin/dockerpvcclean.sh
#Give el permiso de ejecución del archivochmod +x /home/dellamdin/dockerpvcclean.sh
#Use el siguiente comando para abrir el archivo con el editor
vi/home/delladmin/dockerpvcclean.sh
Con el editor vi abierto, entre en modo de inserción pulsando la tecla
"i#Copy el contenido del archivo de script al final de esta sección.
Haga clic con el botón secundario en el terminal para pegar el contenido en el archivo.
#Save el archivo
{Presione Esc para salir del modo de inserción. Presione {Mayús}:
A continuación, pulse wq
A continuación, pulse Intro (Esto escribirá y saldrá del editor vi y volverá al símbolo del sistema)
#Confirm el archivo contiene el contenido del scriptcat /home/delladmin/dockerpvcclean.sh
#To ejecutar el script, ejecute los siguientes comandos.
sudo -s/home/delladmin/dockerpvcclean.sh
Contenido del archivo 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