PowerFlex. Очистка и рекультивация пространства MVM

Oversigt: В этой статье объясняется, как освободить пространство на виртуальной машине управления (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

ПРЕДУПРЕЖДЕНИЕ. Перед выполнением задач, описанных в этой статье базы знаний, создайте моментальный снимок MVM. Это обеспечит метод отката в случае ошибки при очистке PVC Docker. 

Снимки MVM можно создавать при работающих MVM. Выполните эти действия для всех трех MVM

  • Войдите в vCenter.
  • Для каждого MVM выполните следующие действия
  • Нажмите MVM -->Нажмите Моментальные снимки -->Нажмите СДЕЛАТЬ МОМЕНТАЛЬНЫЙ СНИМОК....
    Сделать снимок
  • Нажмите СОЗДАТЬ

Очистка устаревших PVC-файлов docker-registry

Действия

  1. С помощью следующей команды выводится список модулей pod «docker-registry» и MVM, на котором работает модуль.

    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. При просмотре выходных данных настроенных постоянных заявок томов для docker-registry отображаются идентификаторы PVC для активных PVC. Данные PVC хранятся в /opt/platform-provisioner/.

    Пример.

    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. Если мы посмотрим на вывод каталога выше, мы увидим, что есть два каталога для «docker-registry-1». Текущий идентификатор PVC для «docker registry 1» — «pvc-0f689062-a700-48ad-8d10-65b985477e1a». Так как для «docker-registry-1» указано два каталога.

  4. Существует один устаревший каталог, который можно удалить, чтобы освободить место. Их может быть гораздо больше в зависимости от того, сколько устаревших каталогов оставалось с течением времени.

    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. Устаревший каталог потребляет 60 Гбайт и может быть удален. Устаревший идентификатор PVC — «pvc-8a5f3651-dbd5-40a9-8252-51fd18539fc3».

    Пространство, использованное до очистки устаревшего каталога

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

    Пример.
    Устаревший каталог занимает 60 Гбайт дискового пространства.

    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. Удаление устаревшего каталога «docker-registry»

  7. При удалении устаревшего каталога освобождается 60 Гбайт.

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

Очистка старых каталогов репозитория IC/RCM

  • Выполните следующую команду из любого MVM, чтобы получить идентификаторы UUID IC/RCM и связанное имя. Может быть только одна IC/RCM, для которой установлено значение по умолчанию. Старые пакеты комплаенса IC/RCM можно удалить.

    Пример.
    Версии комплаенса

    Пример.
    Поскольку в пользовательском интерфейсе PFMP к версиям соответствия добавлен только один IC/RCM, база данных, в свою очередь, сообщает только об одном.

    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)
  • Пакеты комплаенса хранятся в /opt/platform/fileshare на всех трех MVM. Любой UUID, не связанный с текущей версией комплаенса по умолчанию в пользовательском интерфейсе PFMP, можно удалить, если вы видите пакеты соответствия требованиям с расширением .zip. Убедитесь, что в пользовательском интерфейсе PFMP не выполняется синхронизация IC/RCM.

  • Если все пакеты находятся в состоянии Доступно. Файлы .zip можно удалить, чтобы освободить место.

    Пример.

    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

    Пример.

  • Этот MVM pfmpn1 имеет пакет комплаенса в .zip от задачи синхронизации IC/RCM, которая не была завершена. Этот файл можно удалить, чтобы освободить место.

    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
  • В этом примере показано, что pfmpn3 содержит старый каталог версий соответствия IC/RCM, который больше не нужен, поскольку в пользовательский интерфейс PFMP добавлена только одна версия соответствия IC/RCM.

    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
  • Пространство, использованное на диске для старых 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     .
  • Можно выполнить следующую команду, чтобы определить имя IC/RCM, связанного с этим старым каталогом. Измените команду, включив в нее UUID, применимый к вашей среде.

    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">
  • Этот старый каталог комплаенса IC/RCM занимает 53 Гбайт, так как текущая версия IC/RCM по умолчанию в данном примере — 46.382.00. Если в пользовательском интерфейсе нет ссылки на старую IC/RCM, этот каталог можно удалить. Если IC/RCM все еще отображается в пользовательском интерфейсе, сначала удалите его из пользовательского интерфейса. Затем проверьте, очищен ли каталог. Если нет, то можно вручную удалить каталог.

  • Очистка устаревших PVC для docker и очистка старых пакетов IC/RCM — это все, что нужно для снижения использования диска MVM до уровня работоспособности.

Очистка каталогов обновления PFMP

Во время обновления PFMP создаются три каталога. Если обновление PFMP выполнено успешно, но этап обновления может быть выполнен вручную, каталоги не очищаются. При наличии проблем с разрешениями на владение каталоги также может не выполняться очистка. Каталоги находятся в каталоге /opt/platform/fileshare на каждом MVM. Каталог, который предоставляет больше всего пространства для освобождения, называется «PFMPUpgradeBundle».

Имена каталогов

  • Пакет PFMPUpgradeBundle
  • Платформа
  • Модернизация
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

Выполните следующие команды, чтобы удалить эти каталоги.

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

Очистка больших файлов журнала pod

  • Если требуется больше места, проверьте и удалите при необходимости:

  • На любом сервере PFMP (MVM) с нехваткой свободного места выполните следующие команды find, чтобы проверить размер файлов журнала:

    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 {} \;
  • Следующие команды автоматически удаляют эти большие файлы журнала.

    Примечание. Если размер файлов составляет 300 Мбайт, выполнять приведенные ниже команды удаления не < требуется. Если они большие, размер может варьироваться от 1 ГБ до 100+ ГБ
    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"' _ {} \;

Валидация

Убедитесь, что использование диска сократилось, с помощью следующей команды. Если очистка завершена только с одним пакетом комплаенса, использование может варьироваться от 35 % до 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    .

Выполните следующую команду и убедитесь, что все модули pod находятся в состоянии «Выполняется».

kubectl get pods -o wide -n powerflex

Мониторинг кластера PFMP в течение 24 часов. После этого снимки MVM можно удалить.

Flere oplysninger

Кроме того, приведенный ниже сценарий можно использовать для очистки PVC.

Использовать этот сценарий безопасно, так как он не выполняет удаление. В нем представлены команды, необходимые для удаления. Однако этот сценарий не поддерживается Dell; Рекомендуется использовать ручной метод, описанный в данной статье базы знаний. Использование этого сценария не поддерживается.

Как создать файл скрипта на MVM.  Эту процедуру необходимо повторить для двух других MVM

 

#Create пустого файла
touch /home/delladmin/dockerpvcclean.sh

#Give файла разрешения на выполнение
chmod +x /home/dellamdin/dockerpvcclean.sh

#Use следующую команду, чтобы открыть файл с помощью редактора
vi/home/delladmin/dockerpvcclean.sh

Открыв редактор vi, перейдите в режим вставки, нажав клавишу
"i"#Copy содержимое файла сценария в конце этого раздела. 
Щелкните правой кнопкой мыши в терминале, чтобы вставить содержимое в файл.

#Save файл
{Нажмите клавишу Esc для выхода из режима вставки. Нажмите {Shift}: 
Затем нажмите wq
Затем нажмите Enter (это запишет и выведет редактор vi и вернется к командной строке)

#Confirm файл содержит содержимое скрипта
cat /home/delladmin/dockerpvcclean.sh

#To выполнения сценария выполните следующие команды.

sudo -s
/home/delladmin/dockerpvcclean.sh

Содержимое файла сценария

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