PowerFlex: Limpeza do MVM e recuperação de espaço

Oversigt: Este artigo explica como recuperar espaço na máquina virtual de gerenciamento (MVMs).

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

ADVERTÊNCIA: Antes de executar as tarefas abordadas nesta KB, faça um snapshot dos MVMs. Isso fornecerá um método de reversão caso um erro seja cometido ao limpar os PVCs do docker. 

Os snapshots do MVM podem ser obtidos com os MVMs em execução. Aplique estas etapas para todos os três MVMs:

  • Faça login no vCenter
  • Para cada MVM, execute as seguintes etapas
  • Clique em MVM --> Clique em Snapshots --> Clique em TAKE SNAPSHOT....
    Tire um cochilo
  • Clique em CREATE

Limpeza de PVCs obsoletos de registro do docker

Etapas

  1. O comando a seguir lista os pods "docker-registry" e o MVM que está executando o 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 você analisa o resultado das solicitações de volume persistente configuradas para o registro do docker, os IDs de PVC são listados para os PVCs ativos. Os dados de PVC são armazenados em /opt/platform-provisioner/.

    Exemplo:

    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. Quando observamos a saída do diretório acima, você pode ver que há dois diretórios para "docker-registry-1". O ID de PVC atual para o "registro do docker 1" é "pvc-0f689062-a700-48ad-8d10-65b985477e1a". Como há dois diretórios listados para "docker-registry-1".

  4. Há um diretório obsoleto que pode ser excluído para liberar espaço. Pode haver muitos mais, dependendo de quantos diretórios obsoletos foram deixados ao longo do 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. O diretório obsoleto está consumindo 60 GB e esse diretório pode ser excluído. O ID de PVC obsoleto é "pvc-8a5f3651-dbd5-40a9-8252-51fd18539fc3"

    Espaço usado antes da limpeza obsoleta do diretório

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

    Exemplo:
    O diretório obsoleto está consumindo 60 GB de espaço em 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. Excluindo o diretório "docker-registry" obsoleto

  7. Quando o diretório obsoleto é excluído, ele libera 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% /

Limpar diretórios antigos do repositório IC/RCM

  • Execute o seguinte comando de qualquer MVM para obter os UUIDs de IC/RCM e o nome associado. Pode haver apenas um IC/RCM definido como padrão. Os pacotes de conformidade de IC/RCM mais antigos podem ser removidos.

    Exemplo:
    Versões de conformidade

    Exemplo:
    Como há apenas um IC/RCM adicionado às versões de conformidade na IU do PFMP, por sua vez, o banco de dados relata apenas um.

    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)
  • Os pacotes de conformidade são armazenados em /opt/platform/fileshare nos três MVMs. Qualquer UUID que não esteja associado à versão de conformidade padrão atual na interface do usuário do PFMP pode ser excluído se você vir pacotes de conformidade com uma extensão .zip. Verifique se não há nenhuma sincronização de IC/RCM em andamento na interface do usuário da PFMP.

  • Se todos os pacotes estiverem em um estado Available. Os arquivos .zip podem ser excluídos para liberar espaço.

    Exemplo:

    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

    Exemplo:

  • Esse pfmpn1 do MVM tem um pacote de conformidade no .zip de uma tarefa de sincronização de IC/RCM que não foi concluída. Esse arquivo pode ser excluído para liberar espaço.

    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
  • Este exemplo mostra que o pfmpn3 contém um diretório antigo da versão de conformidade do IC/RCM que não é mais necessário, pois há apenas uma versão de conformidade do IC/RCM adicionada na interface do usuário do 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
  • Espaço consumido no disco para IC/RCM antigo

    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     .
  • Você pode executar o seguinte comando para identificar o nome do IC/RCM associado a esse diretório antigo. Modifique o comando para incluir o UUID aplicável ao seu ambiente.

    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">
  • Esse antigo diretório de conformidade do IC/RCM está consumindo 53 GB, já que a versão padrão atual do IC/RCM neste exemplo é 46.382.00. Se o IC/RCM antigo não for referenciado na interface do usuário, esse diretório poderá ser excluído. Se um IC/RCM ainda estiver listado na interface do usuário, remova-o da interface do usuário primeiro. Em seguida, verifique se o diretório foi limpo. Se não estiver, você pode excluir manualmente o diretório.

  • A limpeza de PVCs obsoletos do docker e a limpeza de pacotes antigos de IC/RCM devem ser tudo o que é necessário para reduzir o uso de disco MVM a um nível de integridade.

Limpar diretórios de upgrade da PFMP

Há três diretórios que são criados durante o upgrade da PFMP. Se você fez upgrade da PFMP com sucesso, mas talvez tenha tido que concluir manualmente uma fase de upgrade, os diretórios não foram limpos. Os diretórios também podem falhar na limpeza se houver problemas de permissão de propriedade. Os diretórios estão em /opt/platform/fileshare em cada MVM. O diretório que oferece mais espaço para recuperação é "PFMPUpgradeBundle"

Nomes do diretório

  • PFMPUpgradeBundle
  • Plataforma
  • 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

Execute os seguintes comandos para excluir esses diretórios.

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

Limpeza de arquivos de log do pod grande

  • Se for necessário mais espaço, verifique e exclua, se necessário:

  • Em qualquer servidor PFMP (MVM) que tenha problemas de espaço, execute os seguintes comandos de localização para verificar o tamanho dos arquivos de log:

    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 {} \;
  • Os seguintes comandos removem automaticamente esses arquivos de log grandes:

    Nota: Você não precisará executar os comandos de exclusão abaixo se os arquivos forem pequenos em 300MB de tamanho < . Se eles forem grandes, o tamanho pode variar entre 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"' _ {} \;

Validação

Verifique se o uso do disco foi reduzido usando o comando a seguir. Quando a limpeza é concluída com apenas um pacote de conformidade, o uso pode variar de 35% a 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    .

Execute o comando a seguir e verifique se todos os pods estão em um estado Running.

kubectl get pods -o wide -n powerflex

Monitore o cluster da PFMP por 24 horas. Em seguida, os snapshots do MVM podem ser excluídos.

Flere oplysninger

Além disso, o script abaixo pode ser usado para a limpeza do PVC.

É seguro usar o script porque ele não realiza as exclusões. Ele fornece os comandos necessários para excluir. No entanto, é um script não suportado pela Dell; A recomendação é usar o método manual abordado neste artigo da KB. O uso deste script não é compatível.

Como criar um arquivo de script em um MVM.  Esse procedimento precisaria ser repetido nos outros dois MVMs

 

#Create um arquivo em branco
touch /home/delladmin/dockerpvcclean.sh

#Give a permissão de execução do arquivo
chmod +x /home/dellamdin/dockerpvcclean.sh

#Use o seguinte comando para abrir o arquivo com o vi editor
vi /home/delladmin/dockerpvcclean.sh

Com o editor vi aberto, entre no modo de inserção pressionando a tecla
"i#Copy o conteúdo do arquivo de script no final desta seção. 
Clique com o botão direito no terminal para colar o conteúdo no arquivo.

#Save o arquivo
{Pressione Esc para sair do modo de inserção. Pressione {Shift}: 
Em seguida, pressione wq
Em seguida, pressione Enter (Isso gravará e fechará o editor vi e retornará ao prompt de comando)

#Confirm o arquivo contém o conteúdo do script
cat /home/delladmin/dockerpvcclean.sh

#To executar o script, execute os comandos a seguir.

sudo -s
/home/delladmin/dockerpvcclean.sh

Conteúdo do arquivo 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.