双向文件系统透明解决方案

双向文件系统透明解决方案

我需要实现某种 HA 设置,其中 2 台服务器需要始终保持同步,无论您在哪台服务器上写入。DB 部分可以通过主-主复制设置覆盖。但是,当涉及到文件和内容时,我找不到能很好地满足这些需求的东西。我需要能够将 /var/www 从一台机器复制到另一台机器,并且能够在其中任何一台机器上写入,并且无论 http 请求发送到哪里,始终都有相同的内容可用。

  • 齐奏:易于使用,概念简单,但它更像是双向 rsync,除非您使用其重复选项运行它,否则不会自动传播文件更改。我不确定这有多可靠。我希望有一个类似守护进程的功能,可以“监视”文件夹内容的更改。
  • 集群文件系统:易于配置,一个很好的项目,似乎非常适合我的需要,但是,它似乎无法处理这种双向。
  • 文件系统:如果您想要复制,则很难配置(文档有点难以理解),并且似乎更侧重于“分布式文件系统”部分,而不是复制方面。
  • 头孢菌素:类似于 gluster,但同样,不要认为它可以处理双向复制。
  • 莫吉列夫斯:不透明,您构建的应用程序需要了解它并使用其服务来访问文件系统。我不能使用它。

所以我不确定双向复制是否是通常不做的事情,我需要重新考虑这一点,或者我对此研究不够,但我很茫然。我似乎找不到其他解决方案。

还有什么可以处理自动透明双向文件复制的东西吗?

答案1

怎么样DRBD 及其双主模式以及 OCFS2 或 GFS 等集群文件系统?

可能会效果出奇地好,特别是当您的目录树不包含大量(例如数百万或更多)频繁变化的小文件时。

答案2

如果您需要在文件系统级别进行全自动复制,那么您需要一个共享文件系统(例如 GFS)以及从两台机器访问它的某种方式(DRBD、SAN、多主机 SCSI、iSCSI)。但除了基于硬件的解决方案 IME 之外,它不是一个非常强大的解决方案。

以前,我曾使用 rsync 进行主要更新,并使用通知/轮询系统进行临时更新,但这种设置需要大量应用程序代码的智能。我还使用过 AFS(虽然不是用于这种设置),发现它非常强大且可扩展;您可能想看看它。

答案3

我已经设法使用这种设置通过 gluster 实现了这一点: http://www.howtoforge.com/high-availability-storage-cluster-with-glusterfs-on-ubuntu

关键是不要远程安装卷,而是在本地安装,并让 gluster 在两台机器上复制卷后面的文件夹,这样任何机器都可以在任何时候关闭。

答案4

Ceph 应该可以工作,这就是分布式文件系统的重点。

请注意,写入同一目录的主机越多,性能就会越差(因为它们必须非常小心同步),反之亦然。

我可能是错的,当然经过测试,我认为 Gluster 或 Ceph 都可以工作,请注意,您应该假设您在某些时候将需要使用 Ceph 进行备份(还没有用于 btrfs 的 fsck)。

运行一些测试,看看效果如何。请确保使用 md5 和之类的东西进行检查,并拔掉电源线类型恢复。

相关内容