PowerFlex: MVM 정리 및 공간 재확보

Oversigt: 이 문서에서는 MVM(Management Virtual Machine)에서 공간을 회수하는 방법에 대해 설명합니다.

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

경고: 이 KB에서 다루는 작업을 수행하기 전에 MVM의 스냅샷을 생성합니다. 이렇게 하면 Docker PVC를 정리할 때 실수가 발생할 경우 롤백 방법이 제공됩니다. 

MVM 스냅샷은 실행 중인 MVM으로 생성할 수 있습니다. 세 MVM 모두에 다음 단계를 적용합니다.

  • vCenter에 로그인
  • 각 MVM에 대해 다음 단계를 수행합니다
  • MVM 클릭 -->Snapshots 클릭 -->TAKE SNAPSHOT...을 클릭합니다.
    낮잠을 자다
  • CREATE를 클릭합니다.

오래된 docker-registry PVC 정리

단계

  1. 다음 명령은 "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>
  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. 오래된 디렉토리는 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. 오래된 디렉토리가 삭제되면 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의 Compliance Versions에 추가된 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 모두에서. PFMP UI에서 현재 기본 규정 준수 버전과 연결되지 않은 모든 UUID는 .zip 확장이 포함된 규정 준수 번들이 표시되는 경우 삭제할 수 있습니다. PFMP UI에서 진행 중인 IC/RCM 동기화가 없는지 확인합니다.

  • 모든 번들이 Available 상태인 경우 .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에 PFMP UI에 추가된 IC/RCM 규정 준수 버전이 하나뿐이므로 더 이상 필요하지 않은 이전 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 규정 준수 디렉토리는 53GB를 사용합니다. 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 {} \;
  • 다음 명령을 실행하면 이러한 큰 로그 파일이 자동으로 제거됩니다.

    참고: 파일 크기가 < 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"' _ {} \;

검증

다음 명령을 사용하여 디스크 사용량이 감소했는지 확인합니다. 하나의 규정 준수 번들만 사용하여 정리가 완료되면 사용량 범위는 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    .

다음 명령을 실행하고 모든 포드가 Running 상태인지 확인합니다.

kubectl get pods -o wide -n powerflex

24시간 동안 PFMP 클러스터를 모니터링합니다. 그런 다음 MVM 스냅샷을 삭제할 수 있습니다.

Flere oplysninger

또한 아래 스크립트는 PVC 정리에 사용할 수 있습니다.

스크립트는 삭제를 수행하지 않으므로 스크립트를 사용하는 것이 안전합니다. 삭제하는 데 필요한 명령을 제공합니다. 그러나 Dell에서 지원하지 않는 스크립트입니다. 이 KB에서 다루는 수동 방법을 사용하는 것이 좋습니다. 이 스크립트의 사용은 지원되지 않습니다.

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 이 섹션의 끝에 있는 스크립트 파일 컨텐츠
터미널을 마우스 오른쪽 버튼으로 클릭하여 콘텐츠를 파일에 붙여넣습니다.

{삽입 모드를 종료하려면 Esc 키를 눌러 파일을
#Save. {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.