1

我需要设计一个在 2 个节点上运行单独实例的集群应用程序。这些节点都是在 VMware 上运行的 Linux VM。两个应用程序实例都需要访问一个数据库和一组文件。

我的意图是共享存储磁盘(两个节点外部)应该包含数据库和文件。应用程序将协调(通过类似 RPC 的机制)以确定哪个实例是主实例,哪个是从属实例。主服务器将具有对共享存储磁盘的写访问权限,而从服务器将具有只读访问权限。

我在确定共享存储设备的文件系统时遇到问题,因为它需要支持跨 2 个节点的并发访问。由于成本原因,选择专有的集群文件系统(如 GFS)不是一个可行的选择。有什么方法可以通过其他方式在 Linux (EXT3) 中完成?

期望的行为如下:

  • 实例 A 写入共享磁盘上的文件 foo
  • 实例 B 可以立即读取 A 写入文件 foo 的任何内容。

我也尝试过使用SCSI PGR3,但它不起作用。

4

5 回答 5

1

问:两个 VM 是否位于同一物理主机上?

如果是这样,为什么不使用 VMWare 共享文件夹?

否则,如果两者都位于同一个 LAN 上,那么好的旧 NFS 呢?

于 2012-09-03T05:34:50.520 回答
0

您打算从头开始编写应用程序吗?如果是这样,您可以考虑使用Zookeeper进行主从之间的协调。这会将协调逻辑完全放入应用程序代码中。

于 2012-09-03T12:06:48.827 回答
0

GPFS 本质上是一个集群文件系统。

您设置服务器以查看相同的 lun,在 lun 上构建 GPFS 文件系统并在机器上安装 GPFS 文件系统。

如果您熟悉 NFS,它看起来像 NFS,但它是 GPFS,本质上是一个集群文件系统。

如果您的其中一台 GPFS 服务器出现故障,如果您正确定义了您的环境,那么没有人更聪明,事情会继续运行。

于 2013-07-31T19:38:52.193 回答
0

尝试使用 heartbeat+pacemaker,它有几个内置选项来监控集群。也应该有一些东西可以寻找数据

于 2012-09-03T06:15:40.203 回答
0

您可能会使用“drbd+(heartbeat|pacemaker)”查看主动/被动设置..

drbd 为您提供超过 2 个节点的分布式块设备,您可以在其中部署 ext3-fs ontop ..

heartbeat|pacemaker 为您提供了一个解决方案来处理哪个节点是主动和被动的以及一些监控/修复功能..

如果您也需要在“被动”节点上进行读取访问,请尝试在节点上也配置 NAS,被动节点可能会在其中挂载它,例如 nfs|cifs ..

在网络附加存储上处理像 pgsq|mysql 这样的数据库可能不起作用..

于 2012-09-03T06:35:29.890 回答