将多个 EBS 快照还原到单个逻辑卷中的更大卷

将多个 EBS 快照还原到单个逻辑卷中的更大卷

情况:我们在 AWS 中有一个 MySQL 服务器,它使用条带化逻辑卷中的三个 EBS 卷来保存数据库数据。逻辑卷已接近满,因此我们需要以某种方式对其进行扩展。一种选择是重新启动服务器并连接新的、更大的 EBS 卷,然后从旧服务器的现有快照中恢复。(下次我们因其他原因必须更换服务器时,我们最终需要这样做,这就是我跳过就地更改现有服务器的选项的原因。)

我的问题是:如果我们有三个(例如)50GB 的 EBS 快照组成逻辑卷,我可以将这些快照还原到具有三个更大(例如 75GB 或 100GB 或其他)的 EBS 卷的新服务器吗?或者这是灾难的根源?我需要采取什么特殊步骤来接管我们当前的流程吗?如果我想添加第四个 50GB 的 EBS 卷,我可以将三个快照还原到新的四卷组吗?

答案1

您可以简单地增加当前卷的大小更多详细信息请点击此处)。我知道您说过您不考虑该选项,因为您需要一个新实例,但您可以轻松地将这些相同的卷安装到新实例上。如果您需要新旧实例同时无中断地工作(您没有说),那么这将行不通。

注意:我明确不会将大型网页复制到这里。AWS 文档相当稳定,并且定期更新,我不希望过时的答案造成问题。

替代解决方案

只需将快照恢复到三个新卷,将它们安装到新实例并使用它们。

答案2

因为它是 LVM逻辑卷可以通过简单地添加更多磁盘来扩展(物理卷= EBS 卷)到卷组

  1. 创建 AMI从您当前的服务器,这样如果出现问题,您就可以返回。
  2. 创建 3 个新的 EBS 卷(例如 3x 50GB)
  3. 在每个分区上创建 LVM 分区,pvcreate然后
  4. 将卷添加到卷组使用vgextend
  5. 扩展 MySQL逻辑卷然后lvresize扩展文件系统(取决于你的fs类型,例如resize2fs)。
  6. 完毕。

您可以尝试扩展当前的 EBS 卷,而不是添加 3 个新卷,但随后您将仍然必须扩展所有分区、更新 VG、扩展 LV 并调整文件系统大小。这更容易出错,但应该可以正常工作。

使用多个 EBS 卷的好处是 IOPS 带宽是按卷计算的。也就是说,更多的卷会给你更多的 IO 带宽。如果你的 MySQL 服务器负载很轻,这可能无关紧要,但还是值得了解的。

或者使用 Amazon Aurora

如果我是你我会将你的数据库迁移到亚马逊 Aurora这是一个与 MySQL 兼容的托管数据库。除非您执行非常非常特殊的操作,否则几乎不需要在 EC2 上运行自我管理的 MySQL。使用 Aurora,您将获得:

  • 自动磁盘空间管理(不再出现空间不足的情况,不再需要管理 EBS 卷)
  • 自动修补操作系统和 MySQL
  • 在底层物理主机发生故障时自动进行故障转移(您如何在当前实例上处理该问题?)
  • 具有时间点恢复的自动备份(如果您不小心备份了,这很有用TRUNCATE wrong_table_oops;;)
  • 同时提供与标准 MySQL 几乎 100% 的兼容性

我已经将许多 MySQL 数据库迁移到 Aurora,在几乎所有情况下,它都很简单,只需mysqldump从旧数据库加载到 Aurora 中即可(或者使用AWS DMS) 并在应用程序中更改数据库主机名。就这么简单,而且将为您节省大量的 MySQL 管理开销。

希望有帮助:)

相关内容