我正在定期拍摄 1TB EBS(亚马逊网络服务弹性块存储)卷的快照作为备份。在整个 AZ(可用区)变得不可用的情况下,我的灾难恢复计划是从同一区域的另一个 AZ 中的最新快照创建一个新的 EBS 卷。
如何确定创建新 EBS 卷需要多长时间?我的 RTO(恢复时间目标)为 6 小时。我可以用这种方法来满足它吗?
它可能不应该/没有任何区别,但我在 ap-southeast-2 地区(即悉尼)。
我正在定期拍摄 1TB EBS(亚马逊网络服务弹性块存储)卷的快照作为备份。在整个 AZ(可用区)变得不可用的情况下,我的灾难恢复计划是从同一区域的另一个 AZ 中的最新快照创建一个新的 EBS 卷。
如何确定创建新 EBS 卷需要多长时间?我的 RTO(恢复时间目标)为 6 小时。我可以用这种方法来满足它吗?
它可能不应该/没有任何区别,但我在 ap-southeast-2 地区(即悉尼)。
创建一个。
然后,尝试使用它。在几个小时和几天内继续使用它,并记下您观察到的内容。
你的问题的第一个答案是它实际上只需要几秒钟。
该答案的问题在于它并不能说明整个故事:
但是,您必须在这里理解“立即”一词的含义。立即并不意味着音量最初和最终一样快。请记住:微秒和毫秒之间的差异在直觉上似乎很小,但它仍然是 1,000 倍。
这是我的观点,上面——创建卷只需要几秒钟,此时它是可用的,但速度很慢。
EBS 卷是逻辑实体。从快照恢复卷时,卷上的每个块在新卷可用时逻辑上都存在并且逻辑上可用,但在您第一次尝试读取它时不一定物理上存在于卷上。
总体而言,加载块的延迟对于卷上任何特定块的即时可用性来说是一个很小的代价,但影响可能很大,其重要性部分取决于卷的使用方式。
dd
上面的链接继续解释了如何使用或加快预热过程fio
。文档忽略的事实是,您可以在已安装卷的只读模式下使用其中任何一种,并在准备卷以执行操作时获得即时可用性的好处。这将对初始随机访问产生进一步的负面影响,但痛苦会比你什么都不做更快结束,因此它可能是你最好的选择......但你必须通过你的 DR 场景它的步伐,观察它的运作,并相应地调整你的策略。迈克尔一如既往地为您的问题提供了很好的答案。您还可以预热您的音量,这需要一些时间,但会更快地将所有模块带入,因此您可以提前获得性能。在另一个 AZ 中启动一个实例可能需要一些事件、lambda 和 CloudFormation 或 Opsworks 的组合来编写脚本,尽管这需要一些实验。不过,这不是通常在 AWS 中完成的方式。
根据您的用例和预算,另一个可能更好的选择是使用具有自动缩放功能和多个较小实例的弹性负载均衡器,将您的流量分散到两个或更多可用区。这意味着如果您的 AZ 发生故障,您的其他实例将继续提供流量,并且您的 ELB/AS 将自动在工作 AZ 中创建更多实例。一旦第一个 AZ 恢复正常,它最终将再次平衡所有 AZ 的负载。
如果您的应用程序在两个较小的实例上的运行效果与在一个大型实例上的效果一样好,那么 ELB 将花费您更多的成本,而 RTO 为零。如果价格比可用性更重要,那么您可能希望使用原始 RTO 遵循您的原始计划。
请注意,快照存在于跨 AZ 的区域中。如果整个区域出局,您将无法从另一个区域访问它们。
创建 EBS 快照主要取决于卷、磁盘上发生的读/写、网络延迟(影响较小)。由于操作系统问题,我个人不建议将 EBS 根卷快照作为备份。如果卷是数据磁盘,是的,您可以使用快照作为备份。
我相信您的 RTO 应该足以恢复音量。