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

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

PRECAUCIÓN: Antes de realizar las tareas que se describen en este artículo de la base de conocimientos, tome una instantánea de los MVM. Esto proporcionará un método de reversión en caso de que se cometa un error al limpiar las PVC de Docker. 

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...
    Toma una siesta
  • Haga clic en CREATE

Limpieza de PVC de registro de docker obsoletos

Pasos

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

  4. 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
  5. 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
  6. Eliminación del directorio "docker-registry" obsoleto

  7. 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:
    Versiones de cumplimiento

    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/fileshare en 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 + 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"' _ {} \;

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 blanco
touch /home/delladmin/dockerpvcclean.sh

#Give el permiso de ejecución del archivo
chmod +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 script
cat /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

 

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.