2011-06-24 75 views
22

我正在为我们的EBS卷每天备份一个自动化机制。亚马逊EBS,快照作为增量备份

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

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

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

不幸的是,我一直没能在亚马逊的文档中找到这些信息。

有没有人有快照和它的计费经验?

我会感谢任何帮助,谢谢!

回答

37

我不认为你会找到关于如何实现快照的详细文档;这不是我遇到的。他们确实有"Projecting Costs".的文档。不过,我认为如果你知道它是如何工作的,你可以直觉这个账单,并且对它感到更放心。

请注意,这些快照是而不是“增量”,因为我们可能在DOS操作系统中理解该术语的方式。在DOS中,当文件被修改时,“归档”位被设置,而“增量”备份仅拷贝被设置为“归档”位的文件。备份过程将清除存档属性,因此,以后对该文件的编辑会使其再次“增量”备份。

使用快照时,卷的每个块都会被标记(如果已修改)。它不是逐个文件地完成的。在第一个快照之后,只有被标记为已修改的块才会备份,就像DOS中的“增量”备份一样。但是这就是相似之处的结束,因为每个块它不需要复制它不只是跳过它,而是写一个指向数据最后(不变)拷贝的位置的指针。

您对卷创建的第一个快照将数据分解为块。来自亚马逊:“在传输到Amazon S3之前,卷数据被分解为数据块,虽然未来优化可能会改变数据块的大小,但数量可以通过将数据大小因为由4MB。

所做的一个快照包括已改变了只有那些数据块,和指针那些尚未更改的块的最后一个快照改变。这些指针指向上一个快照中的数据块。通过记录自上一个快照(n-1)以来改变的每个块的数据以及自从上一个快照(n-1)以来未改变的块的指针,形成下一个快照(n)。这些指针指向上一个快照中相应的块,其中可能包含数据,或指向上一个快照的另一个指针。最终,每个指针都会在一个实际数据块中结束,(自从创建快照后,这些数据没有改变)。

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

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

+0

我觉得你的评论非常有用。我对这个过程非常感兴趣和好奇,但它似乎没有公开记录。 迄今为止,我的Google搜索还没有那么幸运,正如您所说的详细文档不易获取。你知道关于这件事的任何有用的链接吗? 主要问题是,我们每周快照几卷,不想在下一张账单中太害怕。 非常感谢 – xuuso

+2

我仍然不认为你会找到详细的文档,我并不坚持;我还没有见过。我的理解是从研究数据结构,特别是双链表中综合而来的。 无需担心下一个账单。每小时测试一次小容量的快照。在亚马逊,点击“帐户”(位于控制台上方菜单最右侧),然后从左侧菜单中选择“使用情况报告”。对于服务,请选择“Amazon Elastic Compute Cloud”。对于使用类型,请选择“所有使用类型”。对于操作,请选择“SnapShotPutUsage”或“SnapShotUsage”。 [走出房间。 :)] –

+0

你是对的,我可以看到法案,才会太迟。然而,它找到一些适当的文件是有用的:(亚马逊令我失望的一点点。再次感谢你的所有帮助!! – xuuso