피드로 돌아가기
Persistent VMs in Podman: Install Alpine to a qcow2 Disk Image
Dev.toDev.to
Infrastructure

qcow2 디스크 이미지를 생성하여 컨테이너 재시작 후에도 VM 상태가 유지되는 persistence VM 구축 방법

Persistent VMs in Podman: Install Alpine to a qcow2 Disk Image

David Tio2026년 4월 1일6intermediate

Context

Podman 컨테이너에서 KVM VM을 실행하면 컨테이너가 종료될 때 VM 상태가 사라진다. Alpine ISO는 읽기 전용이며 VM 내부에서 가한 변경사항은 RAM에만 존재한다. 이는 부트 속도 데모에는 적합하지만 실제 VM 운용에는 부적합하다.

Technical Solution

  • qcow2 디스크 이미지 → qemu-img create로 호스트에 생성 (8G 최대 용량, thin provisioning 적용)
  • Alpine ISO + 디스크 이미지 → QEMU로 동시 부트하여 Alpine 설치 실행
  • setup-alpine → 대화형 설치 마법사로 VM 내부에 Alpine Linux 설치
  • 디스크만 부트 → -cdrom 옵션 제거 후 -drive만으로 VM 실행하여 설치 완료 확인
  • 파일 쓰기 테스트 → 재부팅 후에도 호스트 디스크 이미지의 데이터가 유지됨을 검증

Impact

디스크 이미지 파일 크기: 설치 전 몇백 KB → 설치 후 수 GB (실제 사용량 기준 thin provisioning)

Key Takeaway

컨테이너는 일시적 런타임이며, 호스트 파일시스템에 저장된 qcow2 이미지가 persistence 계층이 된다. bind mount로 호스트 디렉토리를 컨테이너에 마운트하면 컨테이너 종료 후에도 디스크 데이터가 보존된다.


rootless Podman 환경에서 KVM VM을 운용할 때, 호스트 파일시스템의 디렉토리를 bind mount하여 qcow2 이미지를 관리하면 컨테이너 lifecycle과 독립적으로 VM 데이터가 유지된다

원문 읽기