27.21.4.2. 스냅샷 만들기
PV의 스냅샷을 생성하려면 새 VolumeSnapshot
오브젝트를 생성합니다.
apiVersion: volumesnapshot.external-storage.k8s.io/v1 kind: VolumeSnapshot metadata: name: snapshot-demo spec: persistentVolumeClaimName: ebs-pvc
persistentVolumeClaimName
은 a PersistentVolume
에 바인딩된 PersistentVolumeClaim
의 이름입니다. 이 특정 PV는 스냅샷이 생성됩니다.
그런 다음 VolumeSnapshotData
오브젝트가 VolumeSnapshot
에 따라 자동으로 생성됩니다. VolumeSnapshot과 VolumeSnapshot
Data
간의 관계는 PersistentVolumeClaim
과 PersistentVolume
간의 관계와 유사합니다.
PV 유형에 따라 작업이 VolumeSnapshot
상태로 반영되는 여러 단계를 수행할 수 있습니다.
-
새
VolumeSnapshot
오브젝트가 생성됩니다. -
컨트롤러에서 스냅샷 작업을 시작합니다. snapshotted
PersistentVolume
을 사용하려면 애플리케이션이 일시 중지되어야 할 수 있습니다. -
스토리지 시스템은 스냅샷 생성을 완료하고(스냅샷은 "cut") snapshotted
PersistentVolume
을 일반 작업으로 돌아갈 수 있습니다. 스냅샷 자체는 아직 준비되지 않았습니다. 마지막 상태 조건은 상태 값이True
인Pending
유형입니다. 실제 스냅샷을 나타내도록 새VolumeSnapshotData
오브젝트가 생성됩니다. -
새로 만든 스냅샷이 완료되어 사용할 준비가 되었습니다. 마지막 상태 조건은 상태 값이
True
인Ready
유형입니다.
사용자의 책임은 데이터 일관성을 보장합니다(포드/애플리케이션 중지, 캐시 플러시, 파일 시스템 중지 등).
오류가 발생하는 경우 VolumeSnapshot
상태에 Error
조건이 추가됩니다.
VolumeSnapshot
상태를 표시하려면 다음을 수행합니다.
$ oc get volumesnapshot -o yaml
상태가 표시됩니다.
apiVersion: volumesnapshot.external-storage.k8s.io/v1 kind: VolumeSnapshot metadata: clusterName: "" creationTimestamp: 2017-09-19T13:58:28Z generation: 0 labels: Timestamp: "1505829508178510973" name: snapshot-demo namespace: default resourceVersion: "780" selfLink: /apis/volumesnapshot.external-storage.k8s.io/v1/namespaces/default/volumesnapshots/snapshot-demo uid: 9cc5da57-9d42-11e7-9b25-90b11c132b3f spec: persistentVolumeClaimName: ebs-pvc snapshotDataName: k8s-volume-snapshot-9cc8813e-9d42-11e7-8bed-90b11c132b3f status: conditions: - lastTransitionTime: null message: Snapshot created successfully reason: "" status: "True" type: Ready creationTimestamp: null