Технологія PowerFlex: Очищення та меліорація космосу
Oversigt: У цій статті пояснюється, як звільнити місце на віртуальній машині керування (MVM).
Instruktioner
Знімки MVM можна робити під час роботи MVM. Застосуйте ці кроки для всіх трьох MVM
- Увійдіть у vCenter
- Для кожного MVM виконайте наступні кроки
- Клацніть MVM --> Натисніть Знімки -->Натисніть ЗРОБИТИ ЗНІМОК....

- Натисніть СТВОРИТИ
Очищення застарілих ПВХ docker-registry
Кроки
-
Наступна команда виводить список подів "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>
-
Коли ви переглядаєте вивід налаштованих постійних вимог до гучності для 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
-
Коли ми подивимося на вивід каталогу вище, ви можете побачити, що є дві директорії для "docker-registry-1." Поточний ідентифікатор PVC для "docker registry 1" - "pvc-0f689062-a700-48ad-8d10-65b985477e1a". Оскільки для "docker-registry-1" вказано два каталоги.
-
Є одна застаріла директорія, яку можна видалити, щоб звільнити місце. Їх може бути набагато більше в залежності від того, скільки застарілих каталогів залишилося з часом.
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
-
Застарілий каталог споживає 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
-
Видалення застарілого каталогу "docker-registry"
-
Коли застарілий каталог видаляється, він звільняє 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