Технологія PowerFlex: Очищення та меліорація космосу

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. Це забезпечить метод відкату в разі, якщо буде допущена помилка при очищенні докерних ПВХ. 

Знімки MVM можна робити під час роботи MVM. Застосуйте ці кроки для всіх трьох MVM

  • Увійдіть у vCenter
  • Для кожного MVM виконайте наступні кроки
  • Клацніть MVM --> Натисніть Знімки -->Натисніть ЗРОБИТИ ЗНІМОК....
    Прийміть напшот
  • Натисніть СТВОРИТИ

Очищення застарілих ПВХ docker-registry

Кроки

  1. Наступна команда виводить список подів "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-реєстру, ідентифікатори 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-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, щоб отримати UID IC/RCM та пов'язане ім'я. За замовчуванням може бути встановлено лише одну IC/RCM. Старі пакети відповідності IC/RCM можна видалити.

    Приклад:
    Версії відповідності

    Приклад:
    Оскільки в інтерфейсі PFMP UI до версій відповідності додано лише одну 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 UI не виконується синхронізація 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 все ще відображається в інтерфейсі користувача, спочатку видаліть його з інтерфейсу користувача. Потім перевірте, чи не очищена директорія. Якщо його немає, то можна вручну видалити каталог.

  • Очищення застарілих ПВХ для 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), який має проблеми з простором, виконайте такі команди пошуку, щоб перевірити, наскільки великі файли журналу:

    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    .

Виконайте наступну команду та переконайтеся, що всі поди знаходяться в робочому стані.

kubectl get pods -o wide -n powerflex

Спостерігайте за кластером PFMP протягом 24 годин. Після цього знімки MVM можна видалити.

Flere oplysninger

Також наведений нижче скрипт може бути використаний для очищення ПВХ.

Користуватися скриптом безпечно, оскільки він не виконує видалення. Він надає команди, необхідні для видалення. Однак це непідтримуваний сценарій Dell; Рекомендується використовувати ручний метод, описаний у цьому КБ. Використання цього скрипту не підтримується.

Як створити файл скрипта на MVM.  Цю процедуру потрібно буде повторити на двох інших MVM

 

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

#Give файлу виконати дозвіл
chmod +x /home/dellamdin/dockerpvcclean.sh

#Use наступну команду, щоб відкрити файл за допомогою vi редактора
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.