27.21.4.2. 创建快照


要生成 PV 的快照,请创建一个新的 VolumeSnapshot 对象:

apiVersion: volumesnapshot.external-storage.k8s.io/v1
kind: VolumeSnapshot
metadata:
  name: snapshot-demo
spec:
  persistentVolumeClaimName: ebs-pvc

persistentVolumeClaimName 是绑定到 PersistentVolumePersistentVolumeClaim 的名称。已为此特定 PV 创建了快照。

然后会根据 VolumeSnapshot 自动创建 VolumeSnapshotData 对象。VolumeSnapshotVolumeSnapshotData 之间的关系与 PersistentVolumeClaimPersistentVolume 之间的关系类似。

根据 PV 类型,操作可能会经历几个阶段,由 VolumeSnapshot 状态来反映:

  1. 新的 VolumeSnapshot 对象已创建。
  2. 控制器启动快照操作。可能需要冻结快照的 PersistentVolume,并暂停应用程序。
  3. 存储系统完成创建快照(快照为"cut"),且快照的 PersistentVolume 可能会返回正常操作。快照本身尚未就绪。最后的状态条件是 Pending 类型,状态为 True。创建一个新的 VolumeSnapshotData 对象来代表实际快照。
  4. 新创建的快照已完成并可使用。最后的状态条件是 Ready 类型,状态为 True
重要

用户负责确保数据一致性(停止 Pod/应用程序,清除缓存,以及冻结文件系统等)。

注意

如果出现错误,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
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.