Amazon EBS,快照作为增量备份

xuu*_*uso 22 backup snapshot amazon-ec2 amazon-ebs amazon-web-services

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

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

但我关心的是快照的大小,我知道这些快照在S3中存储了压缩,我们将根据快照的大小来收费.如果我们拥有大量数据,那么我们每次备份的发票都会大幅增加.

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

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

有没有人有快照及其账单的经验?

我很感激任何帮助,谢谢!

Joh*_*aff 37

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

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

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

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

您创建的下一个快照仅包含已更改的块的数据,以及指向未更改的块的指针.这些指针指向前一个快照中的数据块.

下一个快照(n)是通过记录自上一个快照(n-1)以来改变的每个块的数据以及自前一个快照(n-1)以来没有改变的块的指针来完成的.这些指针指向前一个快照中的相应块,这些块可能包含数据或指向先前快照的另一个指针.最终,每个指针都以实际数据块结束(自创建快照以来没有改变).

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

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

  • 我仍然认为你不会找到详细的文件,我也不会坚持; 我还没见过.我的理解是通过数据结构的研究,特别是双链表来综合的.无需担心下一个账单.每小时测试一些较小的卷.在亚马逊中,单击"帐户"(位于控制台上方菜单最右侧),然后从左侧菜单中选择"使用情况报告".对于服务,请选择"Amazon Elastic Compute Cloud".对于使用类型,请选择"所有使用类型".对于Operations,请选择"SnapShotPutUsage"或"SnapShotUsage".[房间外面.:)] (2认同)