CCE通过云硬盘EVS服务为您提供快照功能,云硬盘快照简称快照,指云硬盘数据在某个时刻的完整拷贝或镜像,是一种重要的数据容灾手段,当数据丢失时,可通过快照将数据完整的恢复到快照时间点。
您可以创建快照,从而快速保存指定时刻云硬盘的数据。同时,您还可以通过快照创建新的云硬盘,这样云硬盘在初始状态就具有快照中的数据。
使用须知
- 快照功能仅支持v1.15及以上版本的集群,且需要安装基于CSI的Everest插件才可以使用。
- 基于快照创建的云硬盘,其子类型(普通IO/高IO/超高IO)、是否加密、磁盘模式(VBD/SCSI)、共享性(非共享/共享)、容量等都要与快照关联母盘保持一致,这些属性查询和设置出来后不能够修改。
- 只有可用或正在使用状态,且存储格式为CSI的磁盘才能创建快照。快照免费试用期间,单个磁盘最大支持创建7个快照。
- 加密磁盘的快照数据以加密方式存放,非加密磁盘的快照数据以非加密方式存放。
使用场景
快照功能可以帮助您实现以下需求:
- 日常备份数据
通过对云硬盘定期创建快照,实现数据的日常备份,可以应对由于误操作、病毒以及黑客攻击等导致数据丢失或不一致的情况。
- 快速恢复数据
更换操作系统、应用软件升级或业务数据迁移等重大操作前,您可以创建一份或多份快照,一旦升级或迁移过程中出现问题,可以通过快照及时将业务恢复到快照创建点的数据状态。
例如,当由于云主机A的系统盘 A发生故障而无法正常开机时,由于系统盘 A已经故障,因此也无法将快照数据回滚至系统盘A。此时您可以使用系统盘 A已有的快照新创建一块云硬盘 B并挂载至正常运行的云主机 B上,从而云主机 B能够通过云硬盘 B读取原系统盘 A的数据。
说明当前CCE提供的快照能力与K8S社区CSI快照功能一致:只支持基于快照创建新云硬盘,不支持将快照回滚到源云硬盘。
- 快速部署多个业务
通过同一个快照可以快速创建出多个具有相同数据的云硬盘,从而可以同时为多种业务提供数据资源。例如数据挖掘、报表查询和开发测试等业务。这种方式既保护了原始数据,又能通过快照创建的新云硬盘快速部署其他业务,满足企业对业务数据的多元化需求。
创建快照
使用控制台创建
步骤 1 登录CCE控制台。
步骤 2 单击集群名称进入集群,在左侧选择“容器存储”,在右侧选择“快照与备份”页签。
步骤 3 单击右上角“创建快照”,在弹出的窗口中设置相关参数。
- 快照名称:填写快照的名称。
- 选择存储:选择要创建快照的PVC,仅能创建云硬盘类型PVC。
步骤 4 单击“创建”。
使用YAML创建
kind: VolumeSnapshot
apiVersion: snapshot.storage.k8s.io/v1beta1
metadata:
finalizers:
- snapshot.storage.kubernetes.io/volumesnapshot-as-source-protection
- snapshot.storage.kubernetes.io/volumesnapshot-bound-protection
name: cce-disksnap-test
namespace: default
spec:
source:
persistentVolumeClaimName: pvc-evs-test # PVC的名称,仅能创建云硬盘类型PVC
volumeSnapshotClassName: csi-disk-snapclass
使用快照创建PVC
通过快照创建云硬盘PVC时,磁盘类型、磁盘模式、加密属性需和快照源云硬盘保持一致。
使用控制台创建
步骤 1 登录CCE控制台。
步骤 2 单击集群名称进入集群,在左侧选择“容器存储”,在右侧选择“快照与备份”页签。
步骤 3 找到需要创建PVC的快照,单击“创建存储卷声明”,并在弹出窗口中指定PVC的名称。
步骤 4 单击“创建”。
使用YAML创建
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc-test
namespace: default
annotations:
everest.io/disk-volume-type: SSD # 云硬盘类型,需要与快照源云硬盘保持一致
labels:
failure-domain.beta.kubernetes.io/region: cn-north-4
failure-domain.beta.kubernetes.io/zone: cn-north-4b
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: '10'
storageClassName: csi-disk
dataSource:
name: cce-disksnap-test # 快照的名称
kind: VolumeSnapshot
apiGroup: snapshot.storage.k8s.io