PowerFlex:MVMクリーンアップとスペース再利用
Oversigt: この記事では、管理仮想マシン(MVM)のスペースを再利用する方法について説明します。
Instruktioner
MVMスナップショットは、MVMを実行している状態で取得できます。3つのMVMすべてにこれらの手順を適用します
- vCenterにログインします。
- MVMごとに、次の手順を実行します
- [MVM]をクリックします> [ Snapshots ]をクリックします>[TAKE SNAPSHOT]をクリックします。

- [CREATE]をクリックします。
古いdocker-registry PVCのクリーンアップ
手順
-
次のコマンドは、「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 IDが一覧表示されます。PVCデータは、
/opt/platform-provisioner/の詳細を確認してください。Example:
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」のディレクトリーが2つあることがわかります。「docker registry 1」の現在のPVC IDは「pvc-0f689062-a700-48ad-8d10-65b985477e1a」です。「docker-registry-1」には2つのディレクトリーがリストされているためです。
-
古いディレクトリーが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
-
古いディレクトリーは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% /
Example:
古いディレクトリーは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
-
古い「docker-registry」ディレクトリーの削除
-
古いディレクトリーを削除すると、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は1つだけです。古いIC/RCMコンプライアンス バンドルは削除できます。
Example:

Example:
PFMP UIのコンプライアンス バージョンに追加されるIC/RCMは1つだけであるため、データベースは1つだけを報告します。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/fileshare3 つの MVM すべてで。.zip拡張機能を持つコンプライアンス バンドルが表示されている場合は、PFMP UIで現在のデフォルトのコンプライアンス バージョンに関連付けられていないUUIDを削除できます。PFMP UIでIC/RCM同期が進行中でないことを確認します。 -
すべてのバンドルが[Available]状態の場合。.zipファイルを削除して、スペースを解放できます。
Example:
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
Example:
-
この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 コンプライアンス バージョンが 1 つしかないため、不要になっています。
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コンプライアンス ディレクトリーは53GBを消費しています。古いIC/RCMがUIで参照されていない場合は、このディレクトリーを削除できます。IC/RCMがまだUIにリストされている場合は、最初にUIから削除します。次に、ディレクトリーがクリーン アップされているかどうかを確認します。そうでない場合は、ディレクトリーを手動で削除できます。
-
MVMディスクの使用率を正常性レベルまで下げるために必要なのは、docker用の古いPVCをクリーンアップし、古いIC/RCMバンドルをクリーンアップすることだけです。
PFMPアップグレード ディレクトリーのクリーンアップ
PFMPのアップグレード中に作成されるディレクトリーは3つあります。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
大規模なポッドのログ ファイルのクリーンアップ
-
さらにスペースが必要な場合は、確認し、必要に応じて削除します。
-
スペースの問題がある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 {} \; -
次のコマンドは、これらの大きなログ ファイルを自動的に削除します。
注:ファイルのサイズが300MB < 小さい場合は、以下の削除コマンドを実行する必要はありません。サイズが大きい場合、サイズは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"' _ {} \;
確認
次のコマンドを使用して、ディスク使用量が削減されたことを確認します。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
また、次のスクリプトはPVCクリーンアップに使用できます。
削除は実行されないため、スクリプトを使用しても安全です。削除に必要なコマンドを提供します。ただし、 これはDellでサポートされていないスクリプトです。このKBに記載されている手動の方法を使用することをお勧めします。このスクリプトの使用はサポートされていません。
MVM でスクリプト ファイルを作成する方法。 この手順は、他の2つのMVMで繰り返す必要があります
空のファイル #Createtouch /home/delladmin/dockerpvcclean.sh
ファイル実行権限 #Givechmod +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