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 的快照。这将提供回滚方法,以防在清理 docker PVC 时出错。 

可以在运行 MVM 的情况下创建 MVM 快照。对所有三个 MVM 应用这些步骤

  • 登录到 vCenter
  • 对于每个 MVM,执行以下步骤
  • 单击 MVM—> 单击 Snapshots --> 单击 TAKE SNAPSHOT...
    午睡
  • 单击 CREATE

清理过时的 docker-registry PVC

步骤

  1. 以下命令会列出“docker-registry”pod 并列出正在运行 pod 的 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 ID。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”有两个目录。“docker registry 1”的当前 PVC ID 为“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 GB,可以删除此目录。过时的 PVC ID 为“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 GB 的磁盘空间。

    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. 删除过时的目录后,它会释放 60GB。

    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 运行以下命令以获取 IC/RCM UUID 和关联的名称。只能将一个 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 上。如果您看到带有.zip扩展的合规性捆绑包,则可以删除 PFMP UI 中未与当前默认合规性版本关联的任何 UUID。验证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 具有与未完成的 IC/RCM 同步任务.zip合规性捆绑包。可以删除此文件以释放空间。

    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 UI 中只添加了一个 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 版本为 46.382.00,因此此旧的 IC/RCM 合规性目录占用 53 GB。如果 UI 中未引用旧 IC/RCM,则可以删除此目录。如果 UI 中仍列出 IC/RCM,请先从 UI 中删除它。然后检查目录是否被清理。如果不是,则可以手动删除该目录。

  • 清理 docker 的过时 PVC 并清理旧的 IC/RCM 捆绑包应该是将 MVM 磁盘使用率降低到正常运行水平所需的全部内容。

清理 PFMP 升级目录

在 PFMP 升级期间创建了三个目录。如果您已成功升级 PFMP,但可能必须手动完成升级阶段,则目录未清理。如果存在所有权权限问题,目录也可能无法清理。目录位于每个 MVM 上的 /opt/platform/fileshare 中。提供最多回收空间的目录是“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 MB,则不必运行下面的删除命令。如果它们很大,大小可能在 1GB 和 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"' _ {} \;

验证

使用以下命令验证磁盘使用率是否已降低。当仅使用一个合规性捆绑包完成清理时,使用率可能在 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 是否都处于 Running 状态。

kubectl get pods -o wide -n powerflex

监视 PFMP 群集 24 小时。然后可以删除 MVM 快照。

Flere oplysninger

此外,下面的脚本可用于 PVC 清理。

使用脚本是安全的,因为它不执行删除。它提供了删除所需的命令。但是, 这是戴尔不支持的脚本;建议使用本知识库文章中介绍的手动方法。不支持使用此脚本。

如何在 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.