5.3.5. 볼륨 스냅샷 생성
VolumeSnapshot
오브젝트를 생성할 때 OpenShift Container Platform은 볼륨 스냅샷을 생성합니다.
사전 요구 사항
- 실행 중인 OpenShift Container Platform 클러스터에 로그인합니다.
-
VolumeSnapshot
오브젝트를 지원하는 CSI 드라이버를 사용하여 생성된 PVC입니다. - 스토리지 백엔드를 프로비저닝하는 스토리지 클래스입니다.
스냅샷을 사용하려는 PVC(영구 볼륨 클레임)를 사용하는 Pod가 없습니다.
참고Pod가 이를 사용하는 경우 PVC의 볼륨 스냅샷을 생성하지 마십시오. 그러면 PVC가 quiesced(일시 중지됨)되지 않기 때문에 데이터 손상이 발생할 수 있습니다. 일관된 스냅샷을 유지하기 위해 실행 중인 Pod를 먼저 제거해야 합니다.
절차
볼륨 스냅샷을 동적으로 생성하려면 다음을 수행합니다.
다음 YAML로 설명된
VolumeSnapshotClass
오브젝트로 파일을 생성합니다.volumesnapshotclass.yaml
apiVersion: snapshot.storage.k8s.io kind: VolumeSnapshotClass 1 metadata: name: csi-hostpath-snap driver: hostpath.csi.k8s.io deletionPolicy: Delete
- 1
- 볼륨 스냅샷에 속하는 다른 속성을 지정할 수 있습니다.
다음 명령을 입력하여 이전 단계에서 저장한 오브젝트를 생성합니다.
$ oc create -f volumesnapshotclass.yaml
VolumeSnapshot
오브젝트를 생성합니다.volumesnapshot-dynamic.yaml
apiVersion: snapshot.storage.k8s.io kind: VolumeSnapshot metadata: name: mysnap spec: volumeSnapshotClassName: csi-hostpath-snap 1 source: persistentVolumeClaimName: myclaim 2
다음 명령을 입력하여 이전 단계에서 저장한 오브젝트를 생성합니다.
$ oc create -f volumesnapshot-dynamic.yaml
스냅샷을 수동으로 프로비저닝하려면 다음을 수행합니다.
위에서 설명한 볼륨 스냅샷 클래스를 정의하는 것 외에도
volumeSnapshotContentName
매개변수 값을 스냅샷의 소스로 제공해야 합니다.volumesnapshot-manual.yaml
apiVersion: snapshot.storage.k8s.io kind: VolumeSnapshot metadata: name: snapshot-demo spec: source: volumeSnapshotContentName: mycontent 1
- 1
- 사전 프로비저닝된 스냅샷에는
volumeSnapshotContentName
매개변수가 필요합니다.
다음 명령을 입력하여 이전 단계에서 저장한 오브젝트를 생성합니다.
$ oc create -f volumesnapshot-manual.yaml
검증
클러스터에서 스냅샷을 생성한 후 스냅샷에 대한 추가 세부 정보를 사용할 수 있습니다.
생성된 볼륨 스냅샷에 대한 세부 정보를 표시하려면 다음 명령을 입력합니다.
$ oc describe volumesnapshot mysnap
다음 예시는
mysnap
볼륨 스냅샷에 대한 세부 정보를 표시합니다.volumesnapshot.yaml
apiVersion: snapshot.storage.k8s.io kind: VolumeSnapshot metadata: name: mysnap spec: source: persistentVolumeClaimName: myclaim volumeSnapshotClassName: csi-hostpath-snap status: boundVolumeSnapshotContentName: snapcontent-1af4989e-a365-4286-96f8-d5dcd65d78d6 1 creationTime: "2020-01-29T12:24:30Z" 2 readyToUse: true 3 restoreSize: 500Mi
- 1
- 컨트롤러가 생성한 실제 스토리지 콘텐츠의 포인터입니다.
- 2
- 스냅샷이 생성된 시간입니다. 스냅샷에는 이 표시된 시점에서 사용 가능한 볼륨 내용이 포함되어 있습니다.
- 3
- 값을
true
로 설정하면 스냅샷을 사용하여 새 PVC로 복원할 수 있습니다.
값을false
로 설정하면 스냅샷이 생성됩니다. 하지만 스토리지 백엔드는 스냅샷을 사용할 수 있도록 추가 작업을 수행하여 새 볼륨으로 복원해야 합니다. 예를 들어, Amazon Elastic Block Store 데이터를 다른 저렴한 위치로 이동할 수 있으며, 이 작업에는 몇 분이 걸릴 수 있습니다.
볼륨 스냅샷이 생성되었는지 확인하려면 다음 명령을 입력합니다.
$ oc get volumesnapshotcontent
실제 컨텐츠에 대한 포인터가 표시됩니다.
boundVolumeSnapshotContentName
필드가 입력된 경우VolumeSnapshotContent
오브젝트가 존재하고 스냅샷이 생성된 것입니다.-
스냅샷이 준비되었는지 확인하려면
VolumeSnapshot
오브젝트에readyToUse: true
가 있는지 확인합니다.