Amazon EBS,快照作为增量备份

时间:2011-06-24 14:52:33

标签: amazon-web-services amazon-ec2 backup snapshot amazon-ebs

我正在研究一种自动机制,以便每天备份我们的EBS卷。

我非常清楚创建新快照的步骤。显然,这一切都非常简单,你有一个可以快照的EBS卷,你可以随时恢复快照。细

但我担心的是快照的大小,我知道这些快照在S3中存储了压缩,我们将根据快照的大小收费。如果我们有大量数据,我们会为每个备份的发票大幅增加。

然而,根据亚马逊的网页,这些快照是增量的。这解决了我的问题,因为每日备份只会上传自上次快照以来已更改的数据。但这引出了我的下一个问题:如果备份是增量备份而我们只上传修改后的数据,那么原始数据存储在哪里? (即显然无法逐步完成的第一个快照......)

不幸的是,我无法在整个亚马逊的文档中找到这些信息。

是否有人有快照及其结算的经验?

感谢任何帮助,谢谢!

1 个答案:

答案 0 :(得分:37)

我认为您不会找到有关如何实施快照的详细文档;这不是我遇到的事情。他们确实有"Projecting Costs".的文档。但是,我想如果你知道它是如何工作的,你可以直接了解这个账单,并对它感到更放心。

请注意,这些快照“增量”,就像我们在DOS操作系统中理解该术语一样。在DOS中,文件被修改时设置了“存档”位,“增量”备份仅复制了设置了“存档”位的文件。备份过程将清除归档属性,因此将来对文件的编辑将导致它再次“逐步”备份。

对于快照,如果修改了卷的每个块,则会对其进行标记。它不是基于文件完成的。在第一个快照之后,仅备份已标记为已修改的块,就像在DOS中的“增量”备份一样。但这就是相似性结束的地方,因为每个块它不需要复制它不只是跳过它,它会写一个指向最后(未更改)数据副本的位置

您对卷创建的第一个快照,数据被分解为块。来自亚马逊:“卷数据在传输到Amazon S3之前被分解为块。虽然块的大小可能会因未来的优化而改变,但可以通过除以数据大小来估算数量[...]自上次快照以来已经改变了4MB。

您创建的下一个快照仅包含已更改的块的数据,和指针到未更改的块的数据。这些指针指向上一个快照中的数据块。

下一个快照(n)是通过记录自上一个快照(n-1)以来改变的每个块的数据,以及自上一个快照(n-1)以来没有改变的块的指针。这些指针指向上一个快照中的相应块,这些块可能包含数据,或指向上一个快照的另一个指针。最终,每个指针最终都会出现在一个真实数据块中(自创建该快照以来,该指针没有发生变化)。

现在假设您决定删除快照(x)。快照(x)具有在它之前(x-1)和之后(x + 1)创建的快照。亚马逊用快照(x)中的指针和数据替换快照(x + 1)中的指针(被删除的指针)。因此,快照(x)中的任何实际数据都将复制到快照(x + 1),除非它拥有该块的更新近期数据的副本。

这是快照的工作方式,数据的存储位置以及快照大小可管理的原因。您可以从中了解删除快照的方法只会破坏您在创建快照时恢复卷的能力,而不会破坏使用其他快照的能力。与不使用指针的简单传统“增量”备份不同,未删除的快照会根据需要进行更新,以便在删除其中一个从属快照时保持其有用性。这就是为什么亚马逊为智能快照存储收取的费用比简单的EBS卷副本更有意义。最后,可以理解的是,很难预测快照存储的成本是多少,因为它非常动态。