피드로 돌아가기
Kubernetes BlogKubernetes Blog
Backend

Kubernetes가 Changed Block Tracking API를 CSI에 도입해 대규모 볼륨의 증분 백업 시간과 네트워크 대역폭 소비량을 획기적으로 감소

Announcing Changed Block Tracking API support (alpha)

2025년 9월 25일8intermediate

Context

전체 볼륨 백업 방식은 수십 GB 이상의 대규모 데이터셋에서 수 시간의 백업 윈도우가 필요하고, 매번 전체 데이터를 스캔하면서 네트워크 I/O 리소스를 과도하게 소비한다. 또한 변경된 블록이 전체 데이터의 소수 퍼센트에 불과해도 중복된 데이터를 반복 저장하므로 스토리지 비용이 선형으로 증가한다.

Technical Solution

  • CSI SnapshotMetadata Service API 신규 추가: gRPC 기반 API로 볼륨 스냅샷과 변경된 블록 데이터를 노출
  • GetMetadataAllocated RPC 구현 필수: 단일 스냅샷 내 할당된 블록을 식별하는 서버 사이드 스트리밍 RPC
  • GetMetadataDelta RPC 구현 필수: 두 스냅샷 간 변경된 블록을 결정하는 서버 사이드 스트리밍 RPC
  • SnapshotMetadataService CRD 신규 등록: CSI 드라이버의 메타데이터 서비스 가용성과 연결 정보를 클러스터 클라이언트에 광고
  • External Snapshot Metadata Sidecar 배포: CSI 드라이버와 백업 애플리케이션 간 표준화된 gRPC 인터페이스 연결

Key Takeaway

Kubernetes 스토리지 계층의 표준 인터페이스(CSI)에 블록 레벨 변경 추적 기능을 통합하면, 백업 애플리케이션이 전체 볼륨 스캔 없이 변경된 블록만 식별해 네트워크 대역폭과 스토리지 비용을 동시에 절감할 수 있다.


Kubernetes 기반 상태 저장 워크로드를 관리하는 운영팀에서 Changed Block Tracking을 지원하는 CSI 드라이버를 배포하고, 백업 솔루션이 GetMetadataDelta RPC를 통해 변경된 블록만 전송하도록 구현하면, 대규모 데이터셋의 증분 백업 시간을 단축하고 네트워크 I/O 소비를 크게 절감할 수 있다.

원문 읽기