ECS快照原理

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,内容安全 1000次 1年
对象存储 OSS,恶意文件检测 1000次 1年
简介: 云盘快照原理包括全量和增量快照。首次快照为全量,备份所有数据块;后续快照仅备份变化部分。快照存储在OSS中,同城冗余或本地冗余根据地域不同而定。删除快照时,按数据块引用关系释放空间。快照容量基于快照链统计,全量快照加所有增量大小。快照不占用云盘空间,但产生存储费用。

创建快照原理

您可以根据需要为云盘手动或自动创建快照。具体操作,请参见创建快照创建自动快照策略

原理说明

快照分为全量快照和增量快照。云盘创建的第一份快照是创建时间点云盘上所有数据块的全量快照,不备份空数据块。后续创建的快照均是增量快照,仅备份上一个快照以来有变化的数据块。全量快照和增量快照的元信息中均会存储全量的数据块信息,因此在通过任一快照回滚云盘时,均可以恢复对应历史时间点的所有云盘数据。

说明

云盘初始化后会在逻辑块地址LBA(Logical Block Address)的基础上划分数据块(Block)作为快照数据备份的最小粒度,一旦数据块有业务数据写入,就将参与计量。云盘的数据写入和修改不会对已创建的快照造成影响,快照也不会影响原云盘的数据。

快照创建完成后,将存储在对象存储OSS中。

  • 在OSS支持同城冗余的地域,将默认使用同城冗余OSS来存储您的快照数据,以最大程度保证您快照数据的冗余性。
  • 在OSS暂不支持同城冗余的地域,将使用本地冗余OSS来存储您的快照数据。如果您的业务可用性要求较高,建议您使用复制快照来进一步备份数据。
  • 出于数据安全性考虑,您不能选择使用自己创建的OSS Bucket来存储快照数据。

有关对象存储OSS支持同城冗余的地域信息,请参见存储冗余概述创建同城冗余存储Bucket

使用快照创建云盘或回滚云盘后,需要把快照数据从OSS加载到云盘中,云盘被读取的数据会优先加载。这个过程的持续时间受快照数据量的影响,需要几分钟到几小时。在快照数据被全部加载到云盘之前,云盘的读访问时延将会增加。一旦快照的所有数据块都被加载到云盘中,后续的读访问将会恢复到正常的性能水平。

示例说明

假设ECS实例的某块云盘分别在10:00和11:00有新的业务数据写入,那么该云盘快照的原理说明如下:

  1. 9:00时,云盘的数据块为A、B和C,此时创建第一份快照1,快照1中就备份了数据块A、B和C。快照1为全量快照,备份了该云盘上在创建快照1时的所有数据。
  2. 云盘继续写入数据,修改数据块A为A1、修改数据块B为B1、新增数据块D。在10:00时创建第二份快照2,快照2仅备份有变化的数据块A1、B1和D,快照2为增量快照。快照2的元信息中会记录云盘全量的数据块A1、B1、C和D,其中数据块C来源于快照1。
  3. 云盘继续写入数据,修改数据块C为C1、新增数据块E,在11:00时创建第三份快照3,快照3仅备份有变化的数据块C1和E,快照3为增量快照。快照3的元信息中会记录云盘全量的数据块A1、B1、C1、D和E,其中数据块A1、B1和D来源于快照2。
  4. 以此类推。

删除快照原理

当您不再需要某份快照或者快照个数超出额度时,您可以删除一部分快照释放空间。具体操作,请参见删除快照

说明

每块云盘最多只能创建256份手动快照以及1,000份自动快照。更多信息,请参见快照使用限制

原理说明

与创建快照相反,在删除快照时,需要根据快照包含的数据块以及数据块的引用关系来进行空间的释放。当云盘的第一个快照删除后,全量快照的属性会顺延到后面的第一个增量快照。如果此时云盘没有创建快照,在云盘下次创建新快照时也为全量快照,会备份云盘创建以来所有写入的数据块。

示例说明

假设ECS实例的某块云盘创建了快照1、快照2和快照3,各快照包含的数据块示例如下:

  • 快照1:包含数据块A、B和C。
  • 快照2:包含数据块A1(数据块A修改为A1)、B1(数据块B修改为B1)、C(数据块C无变化)和D(新增数据块),其中数据块C来源于快照1。
  • 快照3:包含数据块A1(数据块A1无变化)、B1(数据块B1无变化)、C1(数据块C修改为C1)、D(数据块D无变化)和E(新增数据块),其中数据块A1、B1和D来源于快照2。

那么删除该云盘快照的原理说明如下:

  1. 假设14:00时删除快照1,快照1包含的数据块A和B无引用关系会直接删除,由于数据块C被快照2引用,因此会保留。此时快照2变为全量快照,快照2包含数据块A1、B1、C、D,快照3仍为增量快照。
  2. 15:00时删除快照2,快照2包含的数据块C无引用关系会直接删除,由于数据块A1、B1、D均被快照3引用,因此会保留。此时快照3变为全量快照,包含了数据块A1、B1、C1、D和E。
  3. 16:00删除快照3,此时数据块无引用关系,快照中的所有数据块均会被删除。

快照容量计算原理

原理说明

云盘的快照总容量以快照链(一块云盘中所有快照组成的关系链)为粒度进行统计,统计当前云盘所有快照的数据块占用的存储空间。快照容量涉及的概念说明如下:

  • 快照全量大小:单个快照所有数据块占用的存储空间大小。
  • 快照增量大小:当前快照与同一快照链中上一份快照之间不同的数据块占用的存储空间大小。
  • 快照总容量:第一份快照(即全量快照)的全量大小与后续所有增量快照的增量大小之和。
    说明
    快照不保存在云盘中,不会占用云盘空间,会按照快照容量收取快照存储费用(分地域计费)。更多信息,请参见快照计费

您可以在ECS控制台上通过快照链查看快照容量的大小。具体操作,请参见根据快照链查看快照容量

示例说明

假设ECS实例的某块云盘分别在10:00和11:00有新的业务数据写入,那么该快照容量计算示例说明如下:

  1. 假设云盘的数据块为A(2 MB)、数据块B(2 MB)和数据块C(2 MB),在9:00时创建第一份快照1,快照1中就会备份数据块A、数据块B和数据块C。快照1为全量快照。
    快照1容量=数据块A容量+数据块B容量+数据块C容量=6 MB
  2. 云盘继续写入数据块A1(2 MB)、B1(2 MB)和D(2 MB),在10:00时创建第二份快照2,快照2仅备份自快照1以来有变化的数据块A1、数据块B1和数据块D。快照2为增量快照。
    快照2容量=数据块A1容量+数据块B1容量+数据块D容量=6 MB
  3. 云盘继续写入数据块C1(2 MB)和数据块E(2 MB),在11:00时创建第三份快照3,快照3仅备份自快照2以来有变化的数据块C1和数据块E。快照3为增量快照。
    快照3容量=数据块C1容量+数据块E容量=4 MB
  4. 该云盘的3个快照总容量=快照1容量+快照2容量+快照3容量=16 MB

快照容量与云盘容量的关系

云盘的单个快照容量不会超过云盘容量,但是随着快照的增加,云盘容量可能会小于所有快照的总容量大小。

假设您创建了一个40 GB的云盘,第一次写入了20 GB的数据,那么此时创建的快照容量是20 GB。然后继续写入10 GB数据,云盘容量仍然是40 GB,但此时快照总容量就是30 GB,以此类推。您可以通过快照链查看快照容量的大小。具体操作,请参见根据快照链查看快照容量

如下图所示,①是云盘容量大小,②是当前云盘包含的所有快照容量大小。

快照容量与系统容量的差异

  • 快照容量会以固定大小的数据块(Block)作为快照数据备份的最小粒度,以此来计算快照容量大小。
  • 当用户在云盘内进行删除文件操作时,系统显示的容量会减少,但通常对于操作系统的文件系统来说,删除文件仅是标记文件为删除,并不会真正地物理删除该文件对应的数据,所以对于云盘来说,删除文件也是一个写入操作,并不会减少云盘真正的数据占用空间,相应地如果此时创建快照,快照依然会包含该删除文件对应的数据块。除非操作系统内的文件系统真正执行了文件删除,您可以详细了解文件系统的TRIM机制。
  • 用户无主动写入系统盘的行为,但快照容量依然可能增长。操作系统在运行时会产生系统文件,同样会写入云盘,并备份在快照中。
  • 一份快照的容量大小可能略大于云盘写入数据的大小。因为文件系统的一些元数据信息会占用云盘空间,快照的数据块会包含该元数据信息及用户写入的真实数据信息。例如,用户只在云盘中创建1 MB的文本文件,快照备份的数据大小因为有文件系统元数据的存在会略大于文本文件的大小,即快照容量会大于1 MB。
相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7月前
|
存储 弹性计算 对象存储
ECS快照原理
ECS快照原理
118 1
|
7月前
|
弹性计算 运维 测试技术
ECS快照
云盘快照是在特定时间点对云盘数据状态的备份,首次快照为全量备份,之后的快照仅保存变化数据。快照功能包括手动和自动创建,可用于数据恢复、系统回滚、创建自定义镜像等场景。阿里云提供了多种快照操作,如创建、回滚、复制到其他地域等,并有不同的计费模式。在使用快照时,需要注意相关限制和配额。此外,阿里云还设有用户服务群,提供技术支持。
|
2月前
|
分布式计算 监控 Hadoop
Hadoop-29 ZooKeeper集群 Watcher机制 工作原理 与 ZK基本命令 测试集群效果 3台公网云服务器
Hadoop-29 ZooKeeper集群 Watcher机制 工作原理 与 ZK基本命令 测试集群效果 3台公网云服务器
43 1
|
2月前
|
存储 网络协议 Unix
docker的底层原理一:客户端-服务器架构
本文详细解释了Docker的客户端-服务器架构,包括常驻后台的Docker守护进程、通过命令行接口发送请求的Docker客户端、以及它们之间通过Unix socket或网络接口进行的通信。
25 0
|
4月前
|
Shell Linux Perl
linux服务器自动生成本地快照
【8月更文挑战第28天】本文介绍了在Linux服务器上通过两种常见方式创建本地快照的方法:Btrfs文件系统与LVM。Btrfs原生支持快照功能,操作简单快捷;LVM则提供了灵活的逻辑卷管理,可在不影响原始数据的情况下创建快照。文章详细列出了创建、查看、挂载及清理快照的具体步骤,并提供了一个自动化的Shell脚本示例,便于用户根据需求定期创建快照并清理过期快照。
98 3
|
4月前
|
域名解析 存储 缓存
域名服务器 (DNS):工作原理及其优势
【8月更文挑战第19天】
480 0
|
6月前
|
Java 数据安全/隐私保护
深入剖析:Java Socket编程原理及客户端-服务器通信机制
【6月更文挑战第21天】Java Socket编程用于构建网络通信,如在线聊天室。服务器通过`ServerSocket`监听,接收客户端`Socket`连接请求。客户端使用`Socket`连接服务器,双方通过`PrintWriter`和`BufferedReader`交换数据。案例展示了服务器如何处理每个新连接并广播消息,以及客户端如何发送和接收消息。此基础为理解更复杂的网络应用奠定了基础。
78 13
|
6月前
|
缓存 小程序 前端开发
Java服务器端技术探秘:Servlet与JSP的核心原理
【6月更文挑战第23天】Java Web开发中的Servlet和JSP详解:Servlet是服务器端的Java小程序,处理HTTP请求并响应。生命周期含初始化、服务和销毁。创建Servlet示例代码展示了`doGet()`方法的覆盖。JSP则侧重视图,动态HTML生成,通过JSP脚本元素、声明和表达式嵌入Java代码。Servlet常作为控制器,JSP处理视图,遵循MVC模式。优化策略涉及缓存、分页和安全措施。这些技术是Java服务器端开发的基础。
67 9
|
5月前
|
缓存 搜索推荐 Java
Java中的服务器端渲染(SSR)原理与实现
Java中的服务器端渲染(SSR)原理与实现
|
6月前
|
域名解析 存储 弹性计算
云服务器 ECS产品使用问题之快照服务如何设置定时备份以及定时删除
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。