21

我正在为我们的 EBS 卷每天备份一个自动化机制。

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

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

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

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

有人对快照及其计费有经验吗?

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

4

1 回答 1

37

我认为您不会找到有关如何实现快照的详细文档。这不是我遇到的事情。他们确实有“预测成本”的文档。 但是,我认为如果您知道它是如何工作的,您就可以凭直觉知道帐单,并且对此感到更放心。

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

使用快照,卷的每个块在被修改时都会被标记。它不是在逐个文件的基础上完成的。在第一个快照之后,仅备份已标记为已修改的块,就像 DOS 中的“增量”备份一样。但这就是相似之处的结束,因为对于不必复制的每个块,它不仅会跳过它,还会写入指向数据的最后一个(未更改的)副本所在位置的指针。

您制作的第一个卷快照,数据被分解成块。来自 Amazon:“卷数据在传输到 Amazon S3 之前被分解为块。虽然块的大小可能会通过未来的优化而改变,但可以通过除以已更改的数据大小来估计数量 [...]距离上次快照 4MB。

您制作的下一个快照仅包含那些已更改的块的数据,以及指向未更改的块的指针。这些指针指向前一个快照中的数据块。

下一个快照 (n) 是通过记录自上一个快照 (n-1) 以来更改的每个块的数据以及自上一个快照 (n-1) 以来未更改的块的指针来制作的。这些指针指向前一个快照中的相应块,其中可能包含数据,或者指向前一个快照的另一个指针。最终,每个指针最终都指向一个真实数据块(自创建快照以来一直没有改变)。

现在假设您决定删除快照 (x)。快照 (x) 在它之前 (x-1) 和之后 (x+1) 制作了快照。Amazon 将快照 (x+1) 中的指针替换为快照 (x) 中的指针和数据(被删除的那个)。因此,快照 (x) 中的任何实际数据都将复制到快照 (x+1) 中,除非它在那里拥有该块的更新数据的自己的副本。

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

于 2011-06-25T02:37:05.907 回答