피드로 돌아가기
Dev.toInfrastructure
원문 읽기
systemd-repart 기반 Declarative Partitioning으로 이미지 경량화 및 자동 확장 구현
Stop Shipping Fat Images: Practical `systemd-repart` for First-Boot Partition Growth on Linux
AI 요약
Context
VM 및 클라우드 인스턴스 배포 시 이미지 크기 최소화와 타겟 디스크 용량 최적화 사이의 Trade-off 발생. 기존의 ad hoc 스크립트 기반 파티션 리사이징 방식은 실행 과정이 불투명하며 시스템 환경에 따라 동작이 불안정한 Fragility 문제 보유.
Technical Solution
- Declarative Configuration 도입을 통한 파티션 레이아웃 정의 및 Repeatable한 배포 환경 구축
- GPT Partition Table 기반의 incremental growth 방식을 채택하여 기존 데이터 파괴 없이 파티션 확장 수행
- Partition Intent 관리(systemd-repart)와 Filesystem Expansion(x-systemd.growfs)의 책임 분리를 통한 구조적 안정성 확보
- Discoverable Partitions Specification 활용으로 /var 등 추가 파티션의 조건부 생성 로직 구현
- --dry-run 및 --image 옵션을 통한 실제 배포 전 가상 이미지 파일 기반의 레이아웃 사전 검증 프로세스 적용
실천 포인트
- 루트 파티션 최소 크기(SizeMinBytes) 설정으로 최소 동작 환경 보장 - /etc/fstab에 x-systemd.growfs 옵션을 명시하여 파일시스템 확장 단계의 가시성 확보 - /usr/lib/repart.d/ 내 설정 파일의 파일명 정렬 순서에 따른 매칭 우선순위 검토 - lsblk 및 journalctl -u systemd-repart.service를 통한 First-boot 확장 결과 검증