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 --> 按一下 快照 --> 按一下拍攝 快照...。
    打盹
  • 按一下 建立

清理過時的 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-註冊表配置的持續性卷聲明的輸出時,將列出活動 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. 過時的目錄佔用 60GB,可以刪除此目錄。過時的 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% /

    範例:
    過時的目錄佔用了 60GB 的磁碟空間。

    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 GB。

    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 相容目錄會消耗 53GB,因為本範例中目前預設的 IC/RCM 版本為 46.382.00。如果未在 UI 中參照舊的 IC/RCM,則可以刪除此目錄。如果 IC/RCM 仍列在 UI 中,請先將其從 UI 移除。然後檢查目錄是否已清理。如果沒有,您可以手動刪除目錄。

  • 清理 docker 的過時 PVC 和清理舊的 IC/RCM 套裝,應只需要將 MVM 磁碟使用量降至執行狀況層級。

清理 PFMP 升級目錄

PFMP 升級期間會建立三個目錄。如果您已成功升級 PFMP,但可能必須手動完成升級階段,則不會清理目錄。如果發生擁有權權限問題,目錄也可能無法清理。這些目錄位於每個 MVM 的 /opt/platform/fileshare 中。提供最多回收空間的目錄是「PFMPUpgradeBundle」

目錄名稱

  • PFMPUpgrade 套裝
  • 平台
  • 升級
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

清理大型容器記錄檔

  • 如果需要更多空間,請勾選並視需要刪除:

  • 在任何有空間問題的 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 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 是否都處於正在運行狀態。

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 編輯器
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.