有奖征文:轻量对象存储LighthouseCOS用户实践> HOT
您可参考以下视频及文档,创建快照以保存云硬盘指定时刻的数据:


操作场景

您可以为云硬盘创建快照,从而保存指定时刻的云硬盘数据。腾讯云使用增量的方式创建快照,即仅创建与上一次快照相比新更改的数据,因此在数据量改动不大的情况下能够在较快的时间内完成快照的创建。尽管快照是以增量方式创建,但删除快照不会影响您使用任何快照数据,未删除的快照均能将云硬盘恢复至该快照状态。 您可以在云硬盘的任何状态下创建快照,但快照只能保存当前时间点已完成写入的数据。若应用程序或进程正在写入数据,这部分数据可能无法被保存至该时间点创建的快照。根据实际业务情况,您可以选择暂时停止所有写入并及时创建快照,或者先将该云硬盘从云服务器中 卸载,创建快照后再重新 挂载,以便获得数据完整的快照。

前提条件

您已经成功 创建云硬盘
当前地域内您的快照个数和总容量未达最大值,详细信息请参见 快照使用限制

注意事项

创建的快照大小可能会比硬盘的实际数据量大,具体原因请参见 为什么在文件系统下查看磁盘的使用量和快照大小不一致?
快照仅保留硬盘上该时刻已经写入的数据,不会保留该时刻在内存中未写入硬盘的数据(例如,Linux 系统 /run 目录下的文件)。强烈建议您在创建快照前关机或确保内存数据已写入硬盘并暂停硬盘读写,并从以下两方面进行操作。

数据库层面

对于数据库类型业务,建议先将数据库中所有表锁定为只读状态,防止在创建快照时有新数据写入,造成新数据无法被快照捕获的情况。本文以 MySQL 数据库为例,进行如下操作:
1. 执行 FLUSH TABLES WITH READ LOCK 命令关闭所有打开的表,并使用全局读锁锁定所有数据库的所有表。如下图所示:


2. 对云硬盘创建快照。
3. 执行 UNLOCK TABLES 命令解除锁定。如下图所示:



系统层面

从系统角度而言,数据在处理过程中通常先存放在内存缓冲区,等到适当的时候再写入云硬盘,以提高系统的运行效率。因此,在创建快照时,存在缓冲区中尚未写入云硬盘的数据将无法被写入快照以及从快照中恢复,会对数据一致性产生影响。 您可以执行 sync 命令,将文件系统内存缓冲区中的数据强制立刻写入云硬盘内,且在创建快照前避免写入新数据。执行命令后无错误信息返回,即表示缓存中的数据已写入云硬盘内。如下图所示:



操作步骤

使用控制台创建快照

1. 登录 云硬盘控制台
2. 单击目标云硬盘所在行操作列的创建快照。如下图所示:

3. 在弹出的创建快照对话框中,输入快照名称,并单击确定




使用 API 创建快照

您可以使用 CreateSnapshot 接口创建快照,具体操作请参见 创建快照(CreateSnapshot)