【问题标题】:AWS EBS snapshots questionsAWS EBS 快照问题
【发布时间】:2021-03-07 13:43:13
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

  • 从不显示快照的“大小”。它只显示被快照的卷的大小。您可以拍摄一个空的 50GB 卷的快照,它仍然会显示为 50GB。 EBS 快照“按原样”获取磁盘的副本。这不是备份某些应用程序(例如数据库)的好方法,因为它们通常具有“正在运行”的信息。从快照恢复类似于在没有正确关机的情况下关闭计算机。数据库需要对数据文件进行一些“修复”。如果您正在运行数据库,我建议您使用 Amazon RDS 而不是 EC2。

标签: amazon-web-services snapshot amazon-ebs


【解决方案1】:

EBS 快照的工作方式如下:

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

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

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

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

如果你对引擎盖下的细节更感兴趣,我可以推荐这篇文章:The Jellyfish-inspired database under AWS Block Storage

【讨论】:

    猜你喜欢
    • 2017-10-22
    • 2020-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多