6.4. CSI 볼륨 그룹 스냅샷


이 문서에서는 지원되는 컨테이너 스토리지 인터페이스(CSI) 드라이버와 함께 볼륨 그룹 스냅샷을 사용하여 OpenShift Container Platform에서 데이터 손실을 방지하는 방법을 설명합니다. 지속적인 볼륨 에 대해 잘 알고 있는 것이 좋습니다.

중요

CSI 볼륨 그룹 스냅샷은 기술 미리 보기 기능에만 해당됩니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

이 기술 미리보기 기능을 사용하려면 기능 게이트를 사용하여 해당 기능을 활성화 해야 합니다.

6.4.1. CSI 볼륨 그룹 스냅샷 개요

스냅샷은 특정 시점에서 클러스터의 스토리지 볼륨 상태를 나타냅니다. 볼륨 스냅샷을 사용하여 새 볼륨을 프로비저닝할 수 있습니다.

볼륨 그룹 스냅샷은 레이블 선택기를 사용하여 여러 개의 영구 볼륨 클레임을 그룹화하여 스냅샷을 찍습니다. 볼륨 그룹 스냅샷은 동일한 시점에 생성된 여러 볼륨의 복사본을 나타냅니다. 이 기능은 여러 볼륨이 포함된 애플리케이션에 유용할 수 있습니다.

컨테이너 스토리지 인터페이스(CSI) 볼륨 그룹 스냅샷은 CSI 드라이버에서 지원되어야 합니다. OpenShift Data Foundation은 볼륨 그룹 스냅샷을 지원합니다.

볼륨 그룹 스냅샷은 스냅샷을 관리하기 위한 세 가지 새로운 API 객체를 제공합니다.

VolumeGroupSnapshot
여러 개의 영구 볼륨 클레임에 대한 볼륨 그룹 스냅샷 생성을 요청합니다. 여기에는 볼륨 그룹 스냅샷이 촬영된 타임스탬프, 볼륨 그룹 스냅샷을 사용할 준비가 되었는지 여부 등 볼륨 그룹 스냅샷 작업에 대한 정보가 포함되어 있습니다.
VolumeGroupSnapshotContent
동적으로 생성된 volumeGroupSnapshot에 대한 스냅샷 컨트롤러에 의해 생성됨. 여기에는 볼륨 그룹 스냅샷 ID를 포함한 볼륨 그룹 스냅샷에 대한 정보가 들어 있습니다. 이 개체는 클러스터에 프로비저닝된 리소스(그룹 스냅샷)를 나타냅니다. VolumeGroupSnapshotContent 개체는 생성된 볼륨 그룹 스냅샷에 일대일 매핑으로 바인딩됩니다.
VolumeGroupSnapshotClass
볼륨 그룹 스냅샷을 생성하는 방법(드라이버 정보, 삭제 정책 등)을 설명하기 위해 클러스터 관리자가 작성합니다.

이 세 가지 API 종류는 CRD( CustomResourceDefinitions )로 정의됩니다. CSI 드라이버가 볼륨 그룹 스냅샷을 지원하려면 이러한 CRD를 OpenShift Container Platform 클러스터에 설치해야 합니다.

6.4.2. CSI 볼륨 그룹 스냅샷 제한 사항

볼륨 그룹 스냅샷에는 다음과 같은 제한 사항이 있습니다.

  • 기존 영구 볼륨 클레임(PVC)을 스냅샷으로 표현된 이전 상태로 되돌리는 것을 지원하지 않습니다. 스냅샷에서 새 볼륨을 프로비저닝하는 것만 지원합니다.
  • 예를 들어, 충돌 일관성을 포함한 애플리케이션 일관성은 스토리지 시스템에서 제공하는 것 외에는 보장되지 않습니다. 애플리케이션 일관성에 대한 자세한 내용은 Quiesce 및 Unquiesce Hooks를 참조하세요.

6.4.3. 볼륨 그룹 스냅샷 클래스 생성

볼륨 그룹 스냅샷을 생성하려면 클러스터 관리자가 VolumeGroupSnapshotClass를 생성해야 합니다.

이 개체는 드라이버 정보, 삭제 정책 등을 포함하여 볼륨 그룹 스냅샷을 생성하는 방법을 설명합니다.

사전 요구 사항

  • 관리자 권한으로 실행 중인 OpenShift Container Platform 클러스터에 로그인했습니다.
  • 기능 게이트를 사용하여 이 기능을 활성화했습니다. 피처 게이트를 사용하는 방법에 대한 자세한 내용은 피처 게이트를 사용하여 피처 세트 활성화를 참조하세요.

프로세스

VolumeGroupSnapshotClass를 생성하려면 다음을 수행합니다.

  1. 다음 예제 파일을 사용하여 VolumeGroupSnapshotClass YAML 파일을 만듭니다.

    예제 볼륨 그룹 스냅샷 클래스 YAML 파일

    apiVersion: groupsnapshot.storage.k8s.io/v1beta1
    kind: VolumeGroupSnapshotClass 
    1
    
    metadata:
      name: csi-hostpath-groupsnapclass 
    2
    
    deletionPolicy: Delete
    driver: hostpath.csi.k8s.io
         …...
    Copy to Clipboard Toggle word wrap

    1
    VolumeGroupSnapshotClass 객체를 지정합니다.
    2
    VolumeGroupSnapshotClass 의 이름입니다.
  2. 다음 명령을 실행하여 'VolumeGroupSnapshotClass' 객체를 만듭니다.

    $ oc create -f <volume-group-snapshot-class-filename>.yaml
    Copy to Clipboard Toggle word wrap

6.4.4. 볼륨 그룹 스냅샷 생성

VolumeGroupSnapshot 객체를 생성하면 OpenShift Container Platform에서 볼륨 그룹 스냅샷을 생성합니다.

사전 요구 사항

  • 실행 중인 OpenShift Container Platform 클러스터에 로그인합니다.
  • 기능 게이트를 사용하여 이 기능을 활성화했습니다. 피처 게이트를 사용하는 방법에 대한 자세한 내용은 피처 게이트를 사용하여 피처 세트 활성화를 참조하세요.
  • 스냅샷을 그룹화하려는 영구 볼륨 클레임(PVC)은 VolumeGroupSnapshot 객체를 지원하는 CSI 드라이버를 사용하여 생성되었습니다.
  • 스토리지 백엔드를 프로비저닝하는 스토리지 클래스입니다.
  • 관리자가 VolumeGroupSnapshotClass 객체를 생성했습니다.

프로세스

볼륨 그룹 스냅샷을 생성하려면:

  1. 볼륨 그룹 스냅샷에 포함할 PVC를 찾거나 만듭니다.

    $ oc get pvc
    Copy to Clipboard Toggle word wrap

    예제 명령 출력

    NAME        STATUS    VOLUME                                     CAPACITY   ACCESSMODES   AGE
    pvc-0       Bound     pvc-a42d7ea2-e3df-11ed-b5ea-0242ac120002   1Gi        RWO           48s
    pvc-1       Bound     pvc-a42d81b8-e3df-11ed-b5ea-0242ac120002   1Gi        RWO           48S
    Copy to Clipboard Toggle word wrap

    이 예제에서는 두 개의 PVC를 사용합니다.

  2. PVC가 스냅샷 그룹에 속하도록 레이블을 지정합니다.

    1. 다음 명령을 실행하여 PVC pvc-0에 라벨을 지정합니다.

      $ oc label pvc pvc-0 group=myGroup
      Copy to Clipboard Toggle word wrap

      출력 예

      persistentvolumeclaim/pvc-0 labeled
      Copy to Clipboard Toggle word wrap

    2. 다음 명령을 실행하여 PVC pvc-1에 라벨을 지정합니다.

      $ oc label pvc pvc-1 group=myGroup
      Copy to Clipboard Toggle word wrap

      출력 예

      persistentvolumeclaim/pvc-1 labeled
      Copy to Clipboard Toggle word wrap

      이 예에서는 PVC "pvc-0" 및 "pvc-1"을 레이블링하여 그룹 "myGroup"에 속하도록 합니다.

  3. 볼륨 그룹 스냅샷을 지정하려면 VolumeGroupSnapshot 객체를 만듭니다.

    1. 다음 예제 파일을 사용하여 VolumeGroupSnapshot 개체 YAML 파일을 만듭니다.

      VolumeGroupSnapshot YAML 파일 예시

      apiVersion: groupsnapshot.storage.k8s.io/v1beta1
      kind: VolumeGroupSnapshot 
      1
      
      metadata:
        name: <volume-group-snapshot-name> 
      2
      
        namespace: <namespace> 
      3
      
      spec:
        volumeGroupSnapshotClassName: <volume-group-snapshot-class-name> 
      4
      
        source:
          selector:
            matchLabels:
              group: myGroup 
      5
      Copy to Clipboard Toggle word wrap

      1
      VolumeGroupSnapshot 객체는 여러 PVC에 대한 볼륨 그룹 스냅샷 생성을 요청합니다.
      2
      볼륨 그룹 스냅샷의 이름입니다.
      3
      볼륨 그룹 스냅샷에 대한 네임스페이스입니다.
      4
      VolumeGroupSnapshotClass 이름입니다. 이 개체는 관리자가 생성하며 볼륨 그룹 스냅샷을 생성하는 방법을 설명합니다.
      5
      스냅샷에 대한 원하는 PVC를 그룹화하는 데 사용되는 레이블의 이름입니다. 이 예에서는 "myGroup"입니다.
    2. 다음 명령을 실행하여 VolumeGroupSnapshot 객체를 만듭니다.

      $ oc create -f <volume-group-snapshot-filename>.yaml
      Copy to Clipboard Toggle word wrap

결과

개별 볼륨 스냅샷은 볼륨 그룹 스냅샷의 일부로 지정된 PVC 수에 따라 생성됩니다.

이러한 개별 볼륨 스냅샷은 다음 형식으로 명명됩니다: <VolumeGroupSnaphotContentUUID+volumeHandle의 해시>:

개별 볼륨 스냅샷 예시

apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshot
metadata:
  name: snapshot-4dc1c53a29538b36e85003503a4bcac5dbde4cff59e81f1e3bb80b6c18c3fd03
  namespace: default
  ownerReferences:
  - apiVersion: groupsnapshot.storage.k8s.io/v1beta1
    kind: VolumeGroupSnapshot
    name: my-groupsnapshot
    uid: ba2d60c5-5082-4279-80c2-daa85f0af354
  resourceVersion: "124503"
  uid: c0137282-f161-4e86-92c1-c41d36c6d04c
spec:
  source:
    persistentVolumeClaimName:pvc-1
status:
  volumeGroupSnapshotName: volume-group-snapshot-name
Copy to Clipboard Toggle word wrap

이전 예에서 두 개의 개별 볼륨 스냅샷이 볼륨 그룹 스냅샷의 일부로 생성됩니다.

snapshot-4dc1c53a29538b36e85003503a4bcac5dbde4cff59e81f1e3bb80b6c18c3fd03
snapshot-fbfe59eff570171765df664280910c3bf1a4d56e233a5364cd8cb0152a35965b
Copy to Clipboard Toggle word wrap

6.4.5. 볼륨 그룹 스냅샷 복원

VolumeGroupSnapshot 사용자 정의 리소스 정의(CRD) 콘텐츠를 사용하여 기존 볼륨을 이전 상태로 복원할 수 있습니다.

기존 볼륨을 복원하려면 VolumeGroupSnapshot 의 일부인 VolumeSnapshot 개체에서 새 영구 볼륨 클레임(PVC)을 생성하도록 요청할 수 있습니다. 이렇게 하면 지정된 스냅샷의 데이터로 채워진 새 볼륨의 프로비저닝이 트리거됩니다. 볼륨 그룹 스냅샷에 포함된 모든 스냅샷에서 모든 볼륨이 생성될 때까지 이 프로세스를 반복합니다.

사전 요구 사항

  • 실행 중인 OpenShift Container Platform 클러스터에 로그인합니다.
  • PVC는 볼륨 그룹 스냅샷을 지원하는 CSI(Container Storage Interface) 드라이버를 사용하여 생성되었습니다.
  • 스토리지 백엔드를 프로비저닝하는 스토리지 클래스입니다.
  • 볼륨 그룹 스냅샷이 생성되어 사용할 준비가 되었습니다.

프로세스

볼륨 그룹 스냅샷에서 기존 볼륨을 이전 상태로 복원하려면 다음을 수행합니다.

  1. 다음 예와 같이 PVC에 대한 볼륨 그룹 스냅샷에서 VolumeSnapshot 데이터 소스를 지정합니다.

    PVC YAML 파일 복원 예시

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: <pvc-restore-name> 
    1
    
      namespace: <namespace> 
    2
    
    spec:
      storageClassName: csi-hostpath-sc
      dataSource:
        name: snapshot-fbfe59eff570171765df664280910c3bf1a4d56e233a5364cd8cb0152a35965b 
    3
    
        kind: VolumeSnapshot 
    4
    
        apiGroup: snapshot.storage.k8s.io 
    5
    
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 1Gi
    Copy to Clipboard Toggle word wrap

    1
    복원된 PVC의 이름입니다.
    2
    네임스페이스의 이름입니다.
    3
    소스로 사용할 볼륨 그룹 스냅샷의 일부인 개별 볼륨 스냅샷의 이름입니다.
    4
    VolumeSnapshot 값으로 설정해야 합니다.
    5
    snapshot.storage.k8s.io 값으로 설정해야 합니다.
  2. 다음 명령을 실행하여 PVC를 생성합니다.

    $ oc create -f <pvc-restore-filename>.yaml 
    1
    Copy to Clipboard Toggle word wrap
    1
    이전 단계에서 지정한 PVC 복원 파일의 이름입니다.
  3. 다음 명령을 실행하여 복원된 PVC가 생성되었는지 확인하세요.

    $ oc get pvc
    Copy to Clipboard Toggle word wrap

    첫 번째 단계에서 지정한 이름의 새로운 PVC가 나타납니다.

  4. 볼륨 그룹 스냅샷에 포함된 모든 스냅샷에서 모든 볼륨이 생성될 때까지 필요에 따라 절차를 반복합니다.

6.4.6. 추가 리소스

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat