我认为您不会找到有关如何实现快照的详细文档。这不是我遇到的事情。他们确实有“预测成本”的文档。 但是,我认为如果您知道它是如何工作的,您就可以凭直觉知道帐单,并且对此感到更放心。
请注意,这些快照并不是我们在 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 卷的简单副本的原因。最后,很难预测快照存储的成本是可以理解的,因为它是如此动态。