创建快照时 AWS 如何处理更改(EBS 和 EC2 实例)?

How AWS handle the changes while snapshot is being created (both EBS and EC2 instance)?

在 AWS 控制台上创建快照时。单击创建快照后,需要一段时间才能完成。假设 5-10 分钟。

  1. 它会捕获在那段时间发生的任何变化吗window?
  2. 如果它不捕获这些变化,AWS 如何实现这一点,因为资源不断变化,它如何知道变化发生之前资源的状态?

一个 Amazon EBS 卷是 'virtual disk'。它不是实际的物理磁盘。相反,Amazon EBS 是一种类似于 SAN 的存储服务,其中每个块都是单独分配和存储的。所有块都有一个索引指向它们的存储位置。因此,它可以跟踪哪些块已使用、未使用和已更改。

创建 Amazon EBS 快照时,它会查看 'index' 以确定当前正在使用哪些块。然后它将这些块复制到快照存储中。 (这非常聪明——仅复制自上次快照以来添加或更改的块。)快照启动后更改的任何块将不会包含在快照中。 EBS 服务可以跟踪所有这些块,并知道哪些块是在什么时间创建的。万一发生故障,块甚至会在设备之间复制。

底线:不要将传统的磁盘概念应用于 Amazon EBS。相信它会尽职尽责。

Will it captures any changes that happened during that time window?

If it doesn't capture those changes, how does AWS achieve that since the resources keep changing and how does it know the state of the resource before change happens?

没有。这里提到AWS doc.

“当您基于快照创建 EBS 卷时,新卷作为用于创建快照的原始卷的精确副本开始。复制的卷在后台加载数据,以便您可以立即开始使用它。

因此之后的任何更改都将在主 EBS 卷中,而不是在后台复制的那个。