PowerFlex. Очистка и рекультивация пространства MVM
Oversigt: В этой статье объясняется, как освободить пространство на виртуальной машине управления (MVM).
Instruktioner
Снимки MVM можно создавать при работающих MVM. Выполните эти действия для всех трех MVM
- Войдите в vCenter.
- Для каждого MVM выполните следующие действия
- Нажмите MVM -->Нажмите Моментальные снимки -->Нажмите СДЕЛАТЬ МОМЕНТАЛЬНЫЙ СНИМОК....

- Нажмите СОЗДАТЬ
Очистка устаревших PVC-файлов docker-registry
Действия
-
С помощью следующей команды выводится список модулей 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>
-
При просмотре выходных данных настроенных постоянных заявок томов для 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
-
Если мы посмотрим на вывод каталога выше, мы увидим, что есть два каталога для «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 — «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, чтобы получить идентификаторы 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