Copy-on-Write 기반 할당 원리
LVM 스냅샷은 Copy-on-Write(CoW) 기술을 이용하여 원본 논리 볼륨(LV)의 특정 시점 복사본을 생성합니다. 스냅샷 생성 직후에는 실제 데이터를 저장하지 않고 메타데이터만 할당되며, 원본 LV의 데이터 블록이 변경될 때만 변경 전의 기존 데이터를 스냅샷 영역으로 복사합니다. 이 방식으로 스냅샷은 생성 시점의 데이터 상태를 유지하면서 동시에 원본 LV에 대한 새로운 쓰기 작업을 허용합니다.
두께 스냅샷과 씬 스냅샷의 할당 차이
두께 스냅샷은 생성 시 할당 크기를 명시적으로 지정해야 하며, 예상되는 데이터 변화량을 고려하여 사전에 저장 공간을 예약합니다. 일반적으로 원본 LV 크기의 10~30% 정도를 할당하는 것이 권장됩니다. 반면 씬 스냅샷은 크기 지정 없이 생성되며, 씬 풀에서 필요에 따라 동적으로 공간을 할당받습니다. 원본과 스냅샷이 초기에 동일한 데이터 블록을 공유하다가, 원본이 변경되면 새로운 블록에 기록하고 스냅샷은 기존 블록을 계속 참조합니다.
할당 부족 방지 및 모니터링
스냅샷 할당 공간이 100%에 도달하면 스냅샷이 무효화되어 원본 LV를 다시 마운트할 수 없게 됩니다. lvextend 명령으로 수동 확장하거나 /etc/lvm/lvm.conf에서 snapshot_autoextend_threshold와 snapshot_autoextend_percent를 설정하여 자동 확장을 구성할 수 있습니다. 모니터링은 lvs -o lv_name,data_percent,origin 명령으로 정기적으로 수행하여 미리 조치해야 합니다.