볼륨 그룹 스냅샷은 쿠버네티스 1.27 릴리스에서 알파 기능으로 도입되었고, 쿠버네티스 1.32 릴리스에서 베타로 이동했습니다. 최근 쿠버네티스 v1.34 릴리스에서는 해당 지원이 두 번째 베타로 이동했습니다. 볼륨 그룹 스냅샷 지원은 일련의 그룹 스냅샷용 확장 API에 의존합니다. 이 API를 통해 사용자는 여러 볼륨에 대해 크래시 일관성(crash consistent) 있는 스냅샷을 찍을 수 있습니다. 내부적으로 쿠버네티스는 레이블 셀렉터를 사용하여 여러 PersistentVolumeClaim을 스냅샷팅을 위해 그룹화합니다. 핵심 목표는 해당 스냅샷 세트를 새 볼륨으로 복원하고 크래시 일관성 있는 복구 지점을 기반으로 워크로드를 복구할 수 있도록 하는 것입니다.
이 새로운 기능은 CSI 볼륨 드라이버에서만 지원됩니다.
베타 2의 새로운 기능
베타 버전을 테스트하는 동안, CSI 드라이버가 ListSnapshots RPC 호출을 구현하지 않을 경우 개별 VolumeSnapshotContents 및 VolumeSnapshots에 restoreSize 필드가 설정되지 않는 문제가 발생했습니다. 저희는 여기에서 다양한 옵션을 평가한 후, API에 대한 새로운 베타를 릴리스하여 이 변경 사항을 적용하기로 결정했습니다.
구체적으로, v1beta2에서는 VolumeSnapshotInfo 구조체가 추가되었습니다. 이 구조체는 볼륨 그룹 스냅샷의 멤버인 개별 볼륨 스냅샷에 대한 정보를 담고 있습니다. VolumeSnapshotInfo의 리스트인 VolumeSnapshotInfoList는 VolumeSnapshotHandlePairList를 대체하여 VolumeGroupSnapshotContentStatus에 추가됩니다. VolumeSnapshotInfoList는 스토리지 시스템의 스냅샷을 식별하기 위해 CSI 드라이버가 반환하는 스냅샷 정보 목록입니다. VolumeSnapshotInfoList는 CSI 드라이버의 CreateVolumeGroupSnapshot 호출에서 반환된 CSI CreateVolumeGroupSnapshotResponse를 기반으로 csi-snapshotter 사이드카에 의해 채워집니다.
기존 v1beta1 API 객체는 컨버전 웹훅(conversion webhook)을 통해 새로운 v1beta2 API 객체로 변환됩니다.
다음 단계
피드백과 채택률에 따라, 쿠버네티스 프로젝트는 향후 릴리스에서 볼륨 그룹 스냅샷 구현을 일반 가용성(GA)으로 전환할 계획입니다.
더 알아보기
참여 방법
이 프로젝트는 모든 쿠버네티스와 마찬가지로 다양한 배경을 가진 많은 기여자들이 함께 노력한 결과물입니다. SIG Storage를 대표하여, 지난 몇 분기 동안 프로젝트가 베타 단계에 도달하는 데 도움을 주신 기여자분들께 진심으로 감사드립니다:
- Ben Swartzlander (bswartz)
- Hemant Kumar (gnufied)
- Jan Šafránek (jsafrane)
- Madhu Rajanna (Madhu-1)
- Michelle Au (msau42)
- Niels de Vos (nixpanic)
- Leonardo Cecchi (leonardoce)
- Saad Ali (saad-ali)
- Xing Yang (xing-yang)
- Yati Padia (yati1998)
CSI 또는 쿠버네티스 스토리지 시스템의 설계 및 개발에 참여하는 데 관심이 있는 분들은 쿠버네티스 스토리지 특별 관심 그룹(SIG)에 가입하십시오. 새로운 기여자들을 항상 환영합니다.
저희는 또한 정기적으로 데이터 보호 워킹 그룹 회의를 개최합니다. 새로운 참석자들은 저희 토론에 참여하는 것을 환영합니다.