LabHub
배우기 러닝패스 코스

Rootless Podmanの運用

graph rootを新しいパスへ

LabHub 에서 이어서 보기

한국어 원문으로 표시합니다.

목표

rootless podman 의 graph root 를 홈에서 별도 경로로 옮기고, 새 스토어를 이미지로 다시 채웁니다. 실무에서 가장 자주 하는 podman 운영 작업입니다.

왜 중요한가

rootless podman 의 이미지는 ~/.local/share/containers/storage 에 쌓입니다. CUDA 베이스 이미지 하나가 8GB 인 GPU 서버에서는 홈 파티션이 순식간에 찹니다. 그리고 홈이 차면 podman 뿐 아니라 그 사용자의 모든 작업이 멈춥니다. 그래서 GPU 노드 표준 설정에는 graphroot 이전이 아예 들어 있는 경우가 많습니다.

주의할 점 두 가지. 새 스토어는 비어 있습니다 — 기존 이미지는 옛 경로에 남고 podman 은 더 이상 보지 않습니다. 그리고 runroot 는 옮기지 않습니다 — 실행 중 락과 임시 상태가 들어가므로 tmpfs 여야 합니다.

단계

  1. /root/gr 디렉터리를 만들고, podster 의 현재 graphRootrunRoot 를 각각 한 줄씩(graphRoot 가 먼저) /root/gr/before.txt 에 적으세요.
  2. 새 경로 /srv/podman/podster 를 만들고 소유자를 podster, 권한을 700 으로 설정하세요.
  3. podsterstorage.conf 에서 graphroot 를 새 경로로 바꾸세요.
  4. podman infographRoot 가 새 경로인지 확인해 /root/gr/after.txt 에 한 줄로 적으세요.
  5. 새 스토어의 이미지 개수를 숫자 한 줄로 /root/gr/empty.txt 에 적으세요. 0 이어야 합니다.
  6. /opt/images/labhub-alpine.tar 를 새 스토어로 적재하고, 적재 후 이미지 목록을 /root/gr/images.txt 로 저장하세요. 최소 1개가 있어야 합니다.
  7. /root/gr/runroot.txt 를 다음 2줄로 만드세요. RUNROOT=<현재 runRoot 값> / WHY=tmpfs
  8. /root/gr/report.txt 를 다음 4줄로 만드세요. OLD=<1번의 graphRoot> / NEW=/srv/podman/podster / IMAGES_BEFORE=0 / IMAGES_AFTER=<6번 이후 이미지 개수>

참고

현재 경로 기록

/root/gr 디렉터리를 만들고, podster 의 현재 graphRootrunRoot 를 각각 한 줄씩(graphRoot 가 먼저) /root/gr/before.txt 에 적으세요.

podman info 에는 Go 템플릿으로 특정 값만 뽑는 옵션이 있습니다. Store 하위에 경로들이 있습니다.

새 경로 준비

새 경로 /srv/podman/podster 를 만들고 소유자를 podster, 권한을 700 으로 설정하세요.

소유자와 권한이 중요합니다. 그 사용자가 읽고 쓸 수 있어야 하고 남이 들여다보면 안 됩니다.

storage.conf 수정

podsterstorage.conf 에서 graphroot 를 새 경로로 바꾸세요.

[storage] 섹션의 graphroot 값만 바꾸면 됩니다. 따옴표를 유지하세요.

새 경로 반영 확인

podman infographRoot 가 새 경로인지 확인해 /root/gr/after.txt 에 한 줄로 적으세요.

설정을 고친 뒤 다시 info 를 실행하면 값이 바뀌어야 합니다. 안 바뀌면 소유권이나 경로를 의심하세요.

새 스토어가 비어 있음 확인

새 스토어의 이미지 개수를 숫자 한 줄로 /root/gr/empty.txt 에 적으세요. 0 이어야 합니다.

이미지 목록을 조회하면 머리말만 나오고 항목이 없어야 합니다. 개수를 세어 파일에 적으세요.

이미지 아카이브 적재

/opt/images/labhub-alpine.tar 를 새 스토어로 적재하고, 적재 후 이미지 목록을 /root/gr/images.txt 로 저장하세요. 최소 1개가 있어야 합니다.

podman 에는 tar 아카이브에서 이미지를 읽어들이는 명령이 있습니다. 적재 후 목록에 나타나야 합니다.

runroot 확인과 근거 기록

/root/gr/runroot.txt 를 다음 2줄로 만드세요. RUNROOT=<현재 runRoot 값> / WHY=tmpfs

runroot 는 옮기지 않습니다. 왜 그런지를 정해진 키워드로 적으세요.

이전 보고서

/root/gr/report.txt 를 다음 4줄로 만드세요. OLD=<1번의 graphRoot> / NEW=/srv/podman/podster / IMAGES_BEFORE=0 / IMAGES_AFTER=<6번 이후 이미지 개수>

이전/이후 경로와 이미지 개수를 모으면 됩니다. 값은 실제 확인한 것이어야 합니다.