6.4. CSI 볼륨 그룹 스냅샷


이 문서에서는 지원되는 CSI(Container Storage Interface) 드라이버와 함께 볼륨 그룹 스냅샷을 사용하여 OpenShift Container Platform의 데이터 손실을 보호하는 방법을 설명합니다. 영구 볼륨에 대해 숙지하는 것이 좋습니다.

중요

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

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

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

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

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

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

CSI(Container Storage Interface) 볼륨 그룹 스냅샷을 CSI 드라이버에서 지원해야 합니다. OpenShift Data Foundation은 볼륨 그룹 스냅샷을 지원합니다.

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

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

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

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

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

  • 기존 PVC(영구 볼륨 클레임)를 스냅샷에 표시된 이전 상태로 되돌리는 것은 스냅샷의 새 볼륨 프로비저닝만 지원합니다.
  • 애플리케이션 일관성(예: 충돌 일관성)은 스토리지 시스템에서 제공하는 것 이상으로 제공되지 않습니다. 애플리케이션 일관성에 대한 자세한 내용은 Quiesce and 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 수에 따라 개별 볼륨 스냅샷이 생성됩니다.

이러한 개별 볼륨 스냅샷의 이름은 다음과 같은 형식으로 지정됩니다. <hash of 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