如何正确configuration2节点glusterfs系统?

我正在尝试使用glusterfs 3.7.6进行数据复制并将pacemaker + corosync作为资源pipe理器,使用高可用性apache制作2节点Linux服务器。 但是,我看到在特定的情况下,当两个节点都关机,其中一个首先联机的gluster问题。 即使该节点上有一块砖块,并且gluster服务正在运行,也没有砖块进程。

[root@node1 ~]# gluster volume status data Status of volume: data Gluster process TCP Port RDMA Port Online Pid ------------------------------------------------------------------------------ Brick node1:/gluster_data N/AN/ANN/A NFS Server on localhost N/AN/ANN/A NFS Server on localhost N/AN/ANN/A Task Status of Volume data ------------------------------------------------------------------------------ There are no active volume tasks 

而当我启动另一个节点时,一切似乎都奏效,我可以安装这个卷。

 [root@node1 ~]# gluster volume status data Status of volume: data Gluster process TCP Port RDMA Port Online Pid ------------------------------------------------------------------------------ Brick node1:/gluster_data 49152 0 Y 2674 Brick node2:/gluster_data 49152 0 Y 3086 NFS Server on localhost N/AN/ANN/A Self-heal Daemon on localhost N/AN/AY 2796 NFS Server on node2 N/AN/ANN/A Self-heal Daemon on node2 N/AN/AY 3085 Task Status of Volume data ------------------------------------------------------------------------------ There are no active volume tasks 

而在这一点上,如果我closuresnode2,node1砖进程保持活动,至less我可以安装和使用它。

 [root@node1 ~]# gluster volume status data Status of volume: data Gluster process TCP Port RDMA Port Online Pid ------------------------------------------------------------------------------ Brick node1:/gluster_data 49152 0 Y 2674 NFS Server on localhost N/AN/ANN/A Self-heal Daemon on localhost N/AN/AY 2796 Task Status of Volume data ------------------------------------------------------------------------------ There are no active volume tasks 

所以我的观察是,为了让gluster的音量起作用,两个节点至less需要联机一段时间,这样砖块才能启动,如果一个节点发生故障,不会影响音量的操作。 那么,如果其中一个节点从全面停电进入在线状态,我怎么能使它工作呢?

任何群集节点在完全停止时出现的问题是:

我有最新的状态吗? 如果我落后于其他节点,我不想声称latest

这就是为什么聚类通常包含某种法定机制的原因,因此现有节点可以对状态进行投票并达成共识。 两个节点集群不能使用这种机制,因为永远不会有“多数”分区。 在3.7版本中,Gluster获得了法定人数。

http://gluster.readthedocs.org/en/release-3.7.0beta1/Features/server-quorum/

在那篇文档中,他们声明2节点集群不能用于上面描述的原因。

在你的情况下,你可能要考虑在你的Gluster设置中创build一些只pipe理的节点。 这些将被probed到群集中的同行,但不主存任何存储。 他们存在的全部理由是保持群集状态。 这些可以存在于不同的机架,数据中心,电力阶段,以确保它们处于与存储砖不同的故障域。 这将增加集群中的成员数量,并且如果其中一个存储砖出现而没有另一个存储砖,则将增加进行多数分区的机会。

不幸的是,您所看到的行为是按照devise工作的,如果不向集群添加更多的服务器,则无法更改。