任何人都有在AWS上实现NFS的可靠策略,使其不是SPoF (单点故障),或者至少能够在实例崩溃时迅速恢复?
我读过这个所以贴,它涉及到与多个EC2实例共享文件的能力,但它没有回答如何确保在AWS上使用NFS的问题,只是可以使用NFS。
许多在线资产都说AWS EFS是可用的,但它仍然处于预览模式,并且仅在俄勒冈州地区可用,我们的主VPC位于N.Cali.,所以不能使用此选项。
其他在线资产表示,GlusterFS是一条路可走,但经过一些研究后,由于竞争条件和性能考虑,我只是不愿意实施这个解决方案。
另一种选择是SoftNAS,但我希望避免将未知的AMI引入到严格控制的同构环境中。
这就剩下了NFS。NFS是我们在开发环境中使用的,工作很好,但是它是dev,所以如果它崩溃了,我们会得到几杯啤酒,而系统会解决这个问题,但是在生产中,这显然是不可行的。
在这一点上,我能想到的最好的解决方案是创建一个EBS和两个EC2实例。这两个实例都将按正常方式(通过木偶)进行更新,以维护堆栈对齐(内核、nfs、libs等),但只有一个实例将挂载EBS。我们在活动的NFS实例上设置了一个监视器,如果它关闭,就会收到通知,手动分离并附加到备份EC2实例。我想我们还创建了一个网络接口,它也可以被重新连接,所以我们只需要在DNS中维护一个IP。
尽管我认为我们可以通过保留和允许自动分离/重新连接的IAM策略来自动完成这个任务。
--更新--
看起来EBS卷与特定的可用性区域相关联,因此不可能重新附加到另一个AZ中的实例。我唯一能想到的其他选择是:
这里唯一的问题是,保持两个NFS服务器同步的最佳方法是什么?只是他们之间的rsync脚本?
还是说有一种我完全缺失的最佳实践?
发布于 2015-11-02 06:13:25
构建高度可用的NFS服务器有几个选项。虽然我更喜欢使用EFS或GlusterFS,因为所有这些解决方案都有各自的缺点。
( a) DRBD -可以在DRBD的帮助下同步卷。这允许您镜像您的数据。在不同的可用性区域中使用两个EC2实例来实现高可用性。缺点:配置和操作很复杂。
( b) EBS快照如果RPO超过30分钟是合理的,您可以使用定期的EBS快照来从另一个可用性区域的中断中恢复。这可以通过运行单个EC2实例的自动缩放组、用户数据脚本和用于定期EBS快照的cron作业来实现。缺点: RPO > 30 min。
c) S3同步可以将充当NFS服务器的EC2实例的状态同步到S3。备用服务器使用S3来保持最新状态。缺点:大量小文件的S3同步将花费太长时间。
我推荐你在AWS : from:https://youtu.be/xbuiIwEOCAs上看这个演讲
发布于 2015-11-02 21:10:19
AWS已经审查并批准了许多SoftNAS非盟驻苏特派团,这些都可以在AWS市场上使用。联合发布的AWS白皮书的SoftNAS体系结构提供了更多细节:
你也可以尝试一个30天的免费试用,看看它是否符合你的需要。http://softnas.com/tryaws
完全披露:我为SoftNAS工作。
https://stackoverflow.com/questions/33405069
复制相似问题