networking文件系统与故障转移

基本上我正在寻找“多pathnfs”。 我想要一个经典的networking文件系统,但是在客户机上安装了多个服务器到一个安装点,并且它应该处理服务器故障,并在服务器之间进行透明的故障切换,而不会有任何延迟。 负载平衡和性能不是问题。 服务器之间的同步可以在这个解决scheme之外完成,它甚至可以通过这个接口对普通客户端是只读的。

我更喜欢避免GFS,Lustre,AFS,IP循环和“复杂”的事情。

你知道这个问题的一个简单的解决scheme吗?

编辑:我刚才看到你想避免光泽。 GlusterFS对我来说不在同一个空间,因为它不需要任何内核的摆弄。 这纯粹是用户空间。

GlusterFS做到了这一点。 这是一个用户空间的实现,因此有点慢。 但是我个人认为,大多数networking文件系统都将networking作为瓶颈。

抛开个人的东西:

使用GlusterFS集群,您可以安装任何节点。 如果此节点closures,那么客户端实现足够智能以检测该节点,并继续与群集中的另一个节点一起工作。

我不太确定POSIX的兼容性,所以你可能不想运行PostgreSQL / MySQL / Oracle。 但是从GlusterFS提供静态文件是非常好的。 请注意:提供静态文件并不一定意味着它必须是一个networking服务器。 🙂

诀窍就是让客户支持这种非标准的操作。 也就是说,你可以使服务器高度可用。 把两个NFS服务器放在一个Heartbeat集群中,你至less有故障切换,虽然locking不会传输。 你会有一些宕机,因为集群发现一切都不正确,并启动故障转移,但它应该是非常快的; 远低于30秒。

您所要求的通常是存储区域networking(SAN)的devise要解决的问题。

您的解决scheme可能使用OCFS2: http : //www.oracle.com/us/technologies/linux/025995.htm

您可以部署跨任意数量的系统共享的iSCSI LUN,并使用OCFS2configuration这些LUN。 您将获得一个可共享的文件系统,不pipe您是将它用于集群还是其他目的都不是真正相关的。 使用NFS你可以做的事情有限。 但是,通过使用NFS,您可以通过pipe理networking层的冗余并将链路聚合与交叉堆栈以太通道相结合来提高可用性。 当然,你受到一个单一的IP与NFS绑定,但在两端聚合,理论上可以有一个相当冗余的解决scheme。 Nexenta的许多客户都采用与此类似的解决scheme。 很显然,你可能会变得非常疯狂,build立多个聚合体来提高整体吞吐量,并且可以使用类似于IPMP的解决scheme,这就是我们在NexentaStor系统上提供的解决scheme。

老实说,你不会find一个“简单”的解决scheme,因为这不是一个“简单”的问题。 这就是说,为了鲁棒性和简单性,我发现最差的选项是NFS over DRBD。 这并不简单,但比GFS / OCFS2 / Lustre要好很多。 考虑到你已经得到了与SAN相当的DRBD(假设你想使用它),如果你想要故障转移,NFS +心跳是真正的最终目标。