![具有 RAID0(条带化)和恢复快照的 EBS](https://linux22.com/image/498856/%E5%85%B7%E6%9C%89%20RAID0%EF%BC%88%E6%9D%A1%E5%B8%A6%E5%8C%96%EF%BC%89%E5%92%8C%E6%81%A2%E5%A4%8D%E5%BF%AB%E7%85%A7%E7%9A%84%20EBS.png)
我们在 EC2 上有一个 MySQL 数据库,正在查看那里的磁盘 IO 性能。目前,我们有一个带有 XFS 的 EBS 卷,并拍摄快照进行备份。似乎很多人通过使用软件 RAID 在多个 EBS 卷上进行条带化,获得了显著的性能提升。如果这样做了,如何拍摄快照并确保文件系统的一致性?在我看来,从多个快照恢复文件系统可能很棘手。
答案1
一定要添加 RAID。EBS 卷很快就会成为瓶颈。我们有 8 个驱动器,运气不错 - 可管理性和性能之间取得了良好的平衡。我最近对 m1.large 实例进行了一些测试,发现 8 个驱动器之后性能下降了。
我使用 ec2-consistent-snapshot 来制作快照:http://alestic.com/2009/09/ec2-consistent-snapshot
这是处理多个卷的最佳方法。它自动执行 Hugh Perkins 概述的流程。它会刷新表、锁定文件系统、启动快照,然后再次恢复一切。我发现在我们的系统中,数据库通常被锁定不到 1 秒。我们在主机和从机上都这样做。
答案2
如果您想要对实时系统 EBS 卷进行快照:
- 使用 xfs 可以在快照期间冻结文件系统
- 通过打开 mysql 会话并发出“使用读锁刷新表”来在快照期间锁定表,并保持该会话打开,直到每个卷的 ec2-create-snapshot 返回。
看使用弹性块存储在 Amazon EC2 上运行 MySql了解有关该过程的更多详细信息。
或者,您可以考虑:
- 将数据复制到另一台机器,并对其进行快照,这可能是一项简单的任务,并避免影响主机。
- 将整个数据库转储到转储文件中,并将其保存到 s3 或保存到不同的 ebs 卷