AWS EBS 快照问题

AWS EBS snapshots questions

我写这篇文章是因为我对负责拍摄 EBS 快照的机制感到非常困惑。

  1. 首先,据我了解“备份”和“快照”之间的区别 - 备份是卷块一对一的完整副本,其中快照是“增量”方法,其中仅更改正在复制块吗?

  2. 如果这个定义是正确的,那么我可以假设拍摄 EBS 快照应该被称为备份——因为我们通常对构建特定 EBS 的所有块进行完整复制。

  3. 几乎在 AWS 网站的每个文档中,我都可以读到 EBS 快照是增量拍摄的(第一个是完整的,然后只是之前“状态”之间的差异)。但是在 AWS 控制台上进行小练习后,我无法看到它的实际效果。

我对我的 EBS 卷 (50GB) 做了快照,快照的大小正好是 50GB。比我做了另一个快照 - 大小再次 50GB。这让我难以置信的困惑:///

  1. 我所有的经验/测试都是使用根卷(首先附加到 EC2 实例)进行的。现在我想知道我是否在仅附加根卷的 EC2 上安装了数据库 (postgreSQL),制作 EBS 快照(作为我的数据库的安全备份)是否安全,因为机器是 运行?或者不幸的是,我应该定期使整个实例脱机,而不是备份我的数据库卷?

EBS 快照是这样工作的:

在您的初始快照上,它将在后台在 S3 上创建您的卷的块级副本。在后续快照中,它仅将自上次快照以来已更改的块保存到 S3,其余部分将跟踪指向原始块的指针。第三个快照的工作方式与第二个快照类似,它再次存储自第二个快照以来更改的块并添加指向其他块的指针。

如果您还原第二个快照,它将创建一个新卷并查看其元数据存储,哪些指针属于该快照,然后从 S3 中检索这些指向的块。

如果删除快照二,它将删除指向属于快照二的块的指针。如果 S3 上的任何块没有指针,即不再属于快照,它将被删除。

对于作为客户的您整个过程是透明的 - 您可以删除或恢复您喜欢的任何快照,EBS 将在后台处理具体细节。

如果您对幕后细节更感兴趣,我可以推荐这篇文章:The Jellyfish-inspired database under AWS Block Storage