스냅샷 핸드북

핵심 요약

스냅샷은 시스템·데이터 볼륨을 특정 시점에 ‘동결’한 읽기 전용 이미지로, 최소한의 저장 공간즉각적인 생성 속도를 특징으로 한다. 파일시스템·데이터베이스·가상머신·클라우드 인프라 전반에서 사용되며, 재해 복구, 테스트·개발 환경 복제, 감사·보고, 운영 오류 롤백 등 다양한 목적에 활용된다.

1. 탄생 배경 및 필요성

대규모 데이터 백업 시

  • 전체 복사(full copy)는 시간·I/O 부담이 크고 다운타임을 유발
  • 스냅샷은 O(1) 방식으로 즉시 생성 가능하며, 이후 변경분만 기록
  • 고가용성 시스템의 연속 운영과 일관성 있는 백업을 동시에 만족

2. 핵심 원리 및 구조

2.1 복사 온 라이트(Copy-on-Write)

  • 초기 스냅샷 생성 시 실제 데이터 블록 복사는 없고 메타데이터만 복제
  • 이후 원본 변경 시, 변경 전 블록을 스냅샷용 저장소에 복사(local COW)
  • 메타데이터가 새 블록을 가리키도록 업데이트

2.2 참조 기반 증분 구조

  • 첫 스냅샷은 전체 데이터 참조(Full)
  • 이후 스냅샷은 이전 스냅샷과의 변경분만 저장
  • 참조 체인(chain)을 통해 일관된 시점 복원이 가능

3. 유형별 특징 및 비교

유형범위일관성저장 방식장점단점
파일시스템 스냅샷ZFS·GPFS 등의 전체 파일 시스템쓰기 순서 일관성COW 블록 참조즉시 생성·삭제, 파일 단위 복구스냅샷 블록이 사용quota 차감1
데이터베이스 스냅샷SQL Server 등 DB 인스턴스트랜잭션 일관성페이지 레벨 COW, 스파스 파일롤백·보고용 읽기 전용 뷰 제공2롤포워드 불가, 원본 의존2
가상머신 스냅샷VM 하이퍼바이저(E.g. VMware)크래시 일관성/앱 일관성전체 디스크 이미지 또는 COW전체 VM 상태 즉시 복원용량·성능 오버헤드 발생 가능
클라우드 디스크 스냅샷GCP·AWS·Azure 블록 볼륨크래시 일관성증분 백업, 리전별 중복원격 백업·장기 보관 최적화3복구 시간(RTO) 차이 존재3

4. 스냅샷 활용법

4.1 재해 복구 및 백업

  • 스냅샷 정책(스케줄·보존 주기) 설정 → DR·아카이빙에 활용
  • 증분 삭제 시 종속 스냅샷 데이터 통합 관리3

4.2 개발·테스트 환경

  • 대규모 DB·파일시스템 빠른 테스트 리셋
  • 스냅샷→리버트(revert)로 초기 상태 즉시 복원4

4.3 보고·감사

  • 특정 시점 데이터 읽기 전용 뷰 제공 → 포인트-인-타임 보고42
  • 다중 스냅샷 간 비교를 통한 변경 이력 감사

4.4 운영 오류·변경 롤백

  • 실수로 인한 데이터 손상 시 바로 직전 스냅샷으로 복구
  • 데이터베이스 대량 업데이트·스키마 변경 전 스냅샷 생성 권장

5. 구현 고려사항 및 모범 사례

  1. 일관성 보장
    • 데이터베이스는 애플리케이션 일관성 스냅샷 선택
    • 파일시스템·VM은 필수 서비스 일시 중단 또는 로그 플러시 병행
  2. 저장소 관리
    • 증분 저장 비용 파악, 오래된 스냅샷 주기적 정리
    • 스냅샷 블록이 사용자 quota에 포함되는 환경 주의1
  3. 보안 및 접근 제어
    • 스냅샷 메타데이터·암호화 여부 확인
    • 권한 설정으로 무단 복원 방지
  4. 백업 전략 연계
    • 3-2-1 백업 원칙: 로컬·리모트 스냅샷, 별도 백업 병행 권장5
  5. 테스트·모니터링
    • 복원 테스트 주기적 수행
    • 스냅샷 체인 무결성 모니터링

6. 결론 및 추천

스냅샷은 고속·경량 백업·복구 솔루션으로, 운영 중단 없이 신속한 복원, 테스트 환경 자동화, 포인트 인 타임 감사 등에 필수적이다. 다만, 정기적 정리일관성 확보, 원본 백업과의 연계 등 관리 절차를 엄격히 준수해야 스토리지 낭비 및 복구 실패를 방지할 수 있다.

Footnotes

  1. https://tig.csail.mit.edu/data-storage/nfs/snapshots/ 2

  2. https://learn.microsoft.com/en-us/sql/relational-databases/databases/database-snapshots-sql-server?view=sql-server-ver17 2 3

  3. https://cloud.google.com/compute/docs/disks/snapshots 2 3

  4. https://www.mssqltips.com/sqlservertip/7881/how-database-snapshots-benefit-the-sql-server-dba/ 2

  5. https://www.datamation.com/big-data/database-snapshots/