PowerFlex: MVM 정리 및 공간 회수를 수행하는 방법

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

이 문서는 다음에 적용됩니다. 이 문서는 다음에 적용되지 않습니다. 이 문서는 특정 제품과 관련이 없습니다. 모든 제품 버전이 이 문서에 나와 있는 것은 아닙니다.

지침

필수: 이 문서에서 다루는 작업을 수행하기 전에.  MVM이 가상화된 경우 MVM의 스냅샷을 생성합니다. 오래된 Docker PVC를 정리할 때 실수가 발생할 경우 롤백 방법이 제공됩니다.  바인딩된 PVC에 대한 docker-registry PV 디렉터리를 삭제하면 스택이 끊어집니다.   스냅샷이 불가능하거나 MVM이 KVM에서 실행되는 경우.   이 문서에서 다루는 정리 작업에서 "오래된 docker-registry PVC 정리"를 제외합니다.  또는 지원을 통해 PVC 정리에 대한 지침을 받을 수 있습니다.

 

ESXi 스냅샷 절차

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

  • vCenter에 로그인
  • 각 MVM에 대해 다음 단계를 수행합니다
  • MVM 클릭 -->Snapshots 클릭 -->TAKE SNAPSHOT...을 클릭합니다.
    Powerflex 스냅샷 생성 
  • 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"에 대해 두 개의 디렉토리가 나열되어 있기 때문입니다.

    공간을 확보하기 위해 삭제할 수 있는 오래된 디렉토리가 하나 있습니다. 시간이 지남에 따라 얼마나 많은 오래된 디렉토리가 남았는지에 따라 더 많은 디렉토리가 있을 수 있습니다.

    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  <-removable folder

     

  4. 오래된 디렉토리는 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
  5. 오래된 "docker-registry" 디렉토리 삭제

  6. 오래된 디렉토리가 삭제되면 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이 하나뿐이므로 데이터베이스는 하나만 보고합니다.

PFMP 4.6 이하 

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)

 

PFMP 4.8 이상

kubectl exec -it -n powerflex $(kubectl -n powerflex get pod -l='cnpg.io/cluster=postgres-ha-cnpg, cnpg.io/instanceRole=primary' -o name) -- psql -U postgres -d asm_manager -w -c "SELECT id,name FROM firmware_repository;"
  • 규정 준수 번들은 다음 위치에 저장됩니다. /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 스냅샷을 삭제할 수 있습니다.

추가 정보

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

파일
#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

 

해당 제품

PowerFlex rack connectivity, PowerFlex rack RCM Software, PowerFlex Software

제품

PowerFlex rack
문서 속성
문서 번호: 000348682
문서 유형: How To
마지막 수정 시간: 25 6월 2026
버전:  14
다른 Dell 사용자에게 질문에 대한 답변 찾기
지원 서비스
디바이스에 지원 서비스가 적용되는지 확인하십시오.