如何在2个节点之间实现并发文件访问的共享存储(Linux)

时间:2012-09-03 05:29:29

标签: linux storage ext3

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

我的意图是共享存储磁盘(两个节点外部)应包含数据库&文件。应用程序将协调(通过类似RPC的机制)以确定哪个实例是主要的&哪一个是奴隶。主设备可以对共享存储磁盘进行写访问。从站将具有只读访问权限。

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

所需行为如下:

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

我也尝试使用SCSI PGR3,但它没有用。

5 个答案:

答案 0 :(得分:1)

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

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

否则,如果两者共同位于同一个局域网上,那么老旧的NFS呢?

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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

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

如果您也需要“被动”节点上的读访问权限,请尝试在节点上配置NAS,其中被动节点可以安装它,例如nfs | cifs ..

在网络附加存储上处理像pgsq | mysql这样的数据库可能无效..

答案 3 :(得分:0)

您打算从头开始编写应用程序吗?如果是这样,您可以考虑使用Zookeeper来实现主站和从站之间的协调。这将把协调逻辑纯粹地放入应用程序代码中。

答案 4 :(得分:0)

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

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

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

如果您的某个GPFS服务器出现故障,如果您正确定义了您的环境,则没有人会更聪明,并且事情会继续运行。