我有兴趣在Amazon EC2上构build两个具有故障转移function的容错/冗余NFS服务器。 我熟悉DRBD,Heartbeat等工具/技术。亚马逊是否提供了通过他们的平台实现这一目标的具体方式?
一个合适的例子可能是文件保存在一个单独的冗余EBS上 – 如果发生故障,将从预先构build的AMI自动启动一个新实例,安装EBS卷,并且无缝地转换IP地址。
这可能吗? 有没有比亚马逊更好的平台? 你能给我一个关于我们正在讨论的基础架构的广泛的概念吗?
在AWS上,使用带有Elastic Load Balancer的GlusterFS和自动扩展EC2实例应该可以实现您想要的function。 我不能评论任何其他的IaaS。
亚马逊提供了一些你需要达到你的目标 – 并允许你实现其余的。
亚马逊的EC2服务器基本上是VPS – 你可以设置Heartbeat / Corosync / Pacemaker等(虽然上次我检查了,你不能在他们的networking上使用广播 – 你可以使用unicast,但是 – udpu)。
您提到亚马逊(有点)分别提出两个想法:容错和冗余。
在EC2上没有内置的冗余机制,虽然取决于你在找什么,但有一些方法来实现它。
另一方面,亚马逊平台更好地提供容错function:
除上述之外,还可以将自定义parameter passing给新启动的实例,或者相当容易地检索有关当前正在运行的实例的信息 – 这可能允许您编写一些设置脚本(当然,AWS确实有一个API将允许您脚本提供的所有操作 – 包括重新映射弹性IP地址,启动新实例,分离/附加EBS卷等)。
您所描述的'文件保存在一个单独的,冗余的EBS上(然后被挂载)“。 首先,在EC2上,EBS卷一次只能附加到一个实例(所以要复制数据,EBS卷需要被附加)。 维护冗余(您可以设置EBS设备的RAIDarrays,或者做其他任何事情)由您决定。 但问题是,有时EBS卷在某个实例崩溃时不会被分离 – 您可以强制将它们分离(它有一个更好的,但不是完美的成功率),并且可以快照EBS卷,即使在使用中那么你可以创build一个新的EBS卷,并使用AMI启动)。 尽pipe如此,更好(恢复时间更短,更灵活等)是为了在多个实例中维护数据的副本,而不是跨同一实例中的多个EBS卷。
另一种select是使用Zadara Storage,即NFS作为服务。 因为这是一个服务,所以不需要pipe理NFS服务器堆栈,默认情况下是HA。 你甚至不需要为NFS服务器实例付费。 您可以使用标准NFS将所有EC2机器连接到您的共享。
披露:我在Zadara存储。