본문 바로가기

Monitoring/PMM

podman container storage(graphroot) 변경하는 방법

반응형

PMM(Percona Monitoring and Management )을 띄워서 운영하던 중.. 루트 디렉토리(/) 가 점점 차는것을 발견했다.

확인해보니,, 제공받은 OS 버전이 8버전 이상이여서 DOCKER가 아니라 PODMAN으로 컨테이너를 띄우다 보니(경험이 없었다..), 

container storage를 커스터마이징 못했고,, 이로 인해서 /var/lib이란 경로에 계속 데이터가 쌓이고 있었던 것..!

 

그래서 container storage를 다른경로로 변경할 방법을 찾아보니 국내에는 자료가 많지 않아 추후 동일이슈 해결을 위해 정리했다. 

(podman 자체를 많이 사용하지 않는 듯 하다..)

 

 

우선 container storage를 다른경로로 변경할 방법을 찾아보니 아래와 같았다.

 

 

  1. podman을 중지 시킨다.
  2. podman 환경 설정 파일( /etc/containers/storage.conf  )내에 graphroot라고 되어 있는 디렉토리 경로를 변경한다.
  3. podman 을 재시작한다.

 

 

하지만 이 방법은 초기에 데이터가 하나도 쌓이지 않은 상태에서 사용한 방법이었고..

나는 이미 podman으로 데이터를 쌓고 있어 해당 데이터도 이동해줘야 했었다. 

 

 

아 이 방법 말고도 소프트링크를 걸어주는 방법이 있다.

하지만 소프트링크를 거는건 추후에 관리가 더더욱 힘들 거라는 생각이 들었고.. 결국 환경설정 파일을 변경하는게 가장 나은 방법이라고 생각.

 

 

그래서 아래와 같이 storage container자체를 내가 원하는 경로로 전체 복사를 진행해주었다.

1. podman stop
podman stop [container ID]

2. 기존 설정 파일 백업
rsync  -r -avL --bwlimit=20000 /etc/containers/storage.conf /etc/containers/orig_storage.conf

3. 기존 파일내에 있던 정보 복사
rsync -r -avL --bwlimit=20000 -aP /var/lib/containers/storage /data/lib/containers/storage
rsync  -r -avL --partial --bwlimit=20000 -P /var/lib/containers/storage /data/lib/containers/storage

4. vi /etc/containers/storage.conf 파일 변경
graphroot = "/data/lib/containers/storage"

5. podmaninfo 확인
podman info | grep graphroot

6. podman start -all
podman ps -a
podman start [container ID]


 
이렇게 한 뒤에 다시 올리려고 하니까.. 아예 올라오지 않았다..

뭔가 데이터가 꼬인듯하다..

정확히 어디서 꼬인지는 모르겠지만, 링크 자체로 복사해올때부터 안될 것 같은 예감이 들었고, 역시나 불가능했다.

 

 

최종적으로 기존 데이터를 이동하지 않고,

초기 방법대로 graphroot를 새 경로로 변경한 뒤 컨테이너를 새로 생성하는 방식으로 해결했다.

 

아 참고로 podman graphroot를 변경했어도 podman images로 확인해보면 이미지 파일들은 그대로 업로드 되어있다.

그 이미지를 사용해서 다시 container를 띄어주면 된다. 

1. podman stop
podman stop [container ID]

2. 기존 설정 파일 백업
rsync  -r -avL --bwlimit=20000 /etc/containers/storage.conf /etc/containers/orig_storage.conf


3. vi /etc/containers/storage.conf 파일 변경
graphroot = "/data/lib/containers/storage"


4. podman ps -a
## podman에서 띄어져 있는 리스트를 확인 시 아무것도 안뜨는게 정상이다..
이미 디렉토리를 바꾸었기에 데이터가 하나도 없기 때문이다.

5. 필요한 container를 신규로 생성해준다.
podman create -v ~~~
podman run --detach --restart always ~~~

 

 

드디어 해결...

 

 

아래 podman 공식 사이트에서 추가 정보를 제공받을 수 있다.

추가로.. 나와 비슷하게 시도하다 실패한 사람인 듯 하다...

 

반응형