停机以增加AWS RDS存储吗?


22

我希望增加两个RDS实例的存储(只是分配的存储空间,而不是实例类型或其他参数)。https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PIOPS.StorageTypes.html#USER_PIOPS.ModifyingExisting上的文档建议:

您可以从标准存储更改为预配置IOPS存储,也可以从预配置IOPS更改为标准存储,并增加存储量,而停机时间很少甚至没有。

我肯定会在执行更改之前安排一个维护窗口。但是文档在这方面似乎有点含糊。对于以前可能已经做过这件事的人来说,“几乎没有停机时间”是什么?我可以期待5秒,还是5分钟呢?

2019年7月更新:

我已经将链接更新为正确和更新的AWS文档(已损坏)。较新的文档中有一个摘要,也可以帮助回答原始问题:

在大多数情况下,扩展存储不需要任何中断,也不会降低服务器的性能。修改数据库实例的存储大小后,该数据库实例的状态为“存储优化”。修改存储后,数据库实例可以完全运行。但是,您不能在六个小时内或在数据库实例状态为存储优化时(以时间较长者为准)进行进一步的存储修改。

但是,一种特殊情况是,如果您有SQL Server数据库实例并且自2017年11月以来未修改存储配置。在这种情况下,修改数据库实例以增加分配的数量时,可能会遇到几分钟的中断存储。中断后,数据库实例处于联机状态,但处于存储优化状态。在存储优化期间,性能可能会降低。

Answers:


21

首先,请注意,您可能正在查看错误的操作-您描述要更改存储大小,但是引用了描述存储类型的文档。这是一个很重要的区分:RDS建议您不会因更改存储大小而发生中断,但是会因更改存储类型而发生中断。

更改存储大小会导致性能下降,其持续时间和影响将取决于几个因素:

  • 您的RDS实例类型
  • 组态
    • 维护期间会发生这种情况吗?
    • 这些更改会首先在您的多可用区从站上发生,然后在故障转移上发生吗?
  • 当前数据库大小
  • 候选数据库大小
  • AWS可以在您请求的时间,您所请求的区域中,您所请求的区域中处理此请求的能力
  • 引擎类型(对于Amazon Aurora用户,存储的添加由RDS按需要以10 GB的增量进行管理,因此该讨论尚无定论)

考虑到这一点,您可以自己,在您的环境中以及按您的条件进行测试,从而为您提供更好的服务。尝试尝试以下方法:

  • 从现有实例的快照还原新的RDS实例,然后在新克隆上执行此操作。
  • 使用此克隆:
    • 当您希望AWS上有不同的负载时,请在一天的不同时间增加大小。
    • 增加到不同的大小。
    • 尝试使用多可用区。与不启用多可用区相比,查看您的实际停机时间是否发生了变化。
    • 在维护时段内尝试一下,并将其与立即应用更改进行比较。

这将花费更多(不必……您可以在1-3个实例小时内完成大多数操作),但是与兜售我们在各种不同的RDS中的经验相比,您得到的答案要干净得多环境。

如果您仍在寻找“解决方案”,我建议您至少在几分钟而不是几秒钟的范围内计划性能下降,这又很大程度上取决于您的环境和配置。

作为参考,我最近在周六下午(美国东部标准时间)应用了此精确操作,将40GB db.m1.small类型实例中添加了10GB。该实例保持“修改”状态约17分钟。请注意,修改状态不是描述实际的停机时间,而是描述操作被应用的持续时间。您将无法对实际实例进行其他更改(尽管您仍然可以访问数据库本身),并且这也是可以预期性能下降的持续时间。

如果您仅打算更改存储大小,则意外中断,但是请注意,如果将此更改与其他操作(例如,更改实例标识符/类或存储类型)结合进行,则可能会发生中断。


最后一段几乎是我想要的。这很有帮助。谢谢!
Andy Shinn 2014年

3
我花了一个多小时在凌晨3点向几乎没有流量的10GB m3.xlarge数据库中添加10GB。

2
再增加一个数据点,确定〜线性。将100G添加到300G DB花费了2小时50分钟。
琼·史密斯

2
在具有通用(SSD)和MultiAZ的db.t2.small上,将我从10G容量增加到100G容量仅花了23分钟。另请注意,如果由于数据库已满而增加了容量,它将一直无法工作,直到操作完成。
davur

1
在负载下(太平洋时间上午10点左右)将PIOPS存储从100GB增加到200GB,耗时约30分钟,并且不会显着影响吞吐量/延迟。(在此期间,读/写IOPS显着增加。)
Taylor Hughes,

7

由于您只是在增加存储容量,而不更改实例类型或其他任何内容,因此不应有任何停机时间,但是在执行操作时可能会导致“性能下降”。

您引用的参考内容模棱两可,因为它在讨论更改存储大小的同时讨论更改存储类型。如果您改为在此表中查看“已分配存储”:

http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.DBInstance.Modifying.html

您会看到它只显示“性能可能下降”,而与中断无关(在某些情况下,切换存储类型时会发生中断)。

作为参考,在工作日内将eu-west-1中的15GB db.m3.medium MySQL数据库更改为20GB时,我的应用程序与数据库的连接不中断。但是,在不到20分钟的时间内,读/写IOPS都增加到了400-700 / s之间,因此我认为是性能下降的参考。对于单可用区和多可用区数据库实例都报告了此情况。(实例被报告为“修改”的时间比此时间更长-大约25分钟。)

自然地,您可以先在与生产数据库相同的数据库实例上对其进行尝试,然后再在生产数据库实例上进行尝试,以便在真正进行操作之前可以安全地查看它在您的情况下的行为。


1
更改存储类型(磁性<-> gp2 /提供的IOPS)将导致中断。增大卷,更改gp2 <->预配置IOPS或调整预配置IOPS都不会导致中断。您无法缩小音量。
notpeter
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.