linux – 如何正确配置2节点glusterfs系统?

我正在尝试使用glusterfs 3.7.6进行数据复制和起搏器corosync作为资源管理器,制作具有高可用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/A       N/A        N       N/A  
NFS Server on localhost                     N/A       N/A        N       N/A  
NFS Server on localhost                     N/A       N/A        N       N/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/A       N/A        N       N/A  
Self-heal Daemon on localhost               N/A       N/A        Y       2796 
NFS Server on node2                         N/A       N/A        N       N/A  
Self-heal Daemon on node2                   N/A       N/A        Y       3085 

Task Status of Volume data
------------------------------------------------------------------------------
There are no active volume tasks

此时,如果我关闭node2,node1 brick进程仍然处于活动状态,所以至少我可以挂载并使用它.

[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/A       N/A        N       N/A  
Self-heal Daemon on localhost               N/A       N/A        Y       2796 

Task Status of Volume data
------------------------------------------------------------------------------
There are no active volume tasks

所以我的观察是,为了使gluster卷工作,两个节点需要至少在线一段时间以便砖块可以启动,然后如果一个节点发生故障,它将不会影响卷操作.那么,当其中一个节点从全面停电中上线时,如何才能使其工作?

解决方法

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

Do I have the latest state,or not? I don’t want to claim latest if I’m behind the other down nodes.

这就是为什么聚类经常包含某种仲裁机制,因此现有节点可以对状态进行投票并收敛于共识.两个节点集群不能使用此机制,因为永远不会有“多数”分区.在3.7版本中,gluster获得了法定人数功能.

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

在该文档中,他们声明2节点集群不能使用它,原因如上所述.

在您的情况下,您可能需要考虑在gluster设置中创建一些仅管理节点.这些将是探测到群集的对等体,但不承载任何存储.他们存在的全部理由是维持集群状态.这些可以存在于不同的机架,数据中心,电源阶段,以尝试确保它们与存储砖处于不同的故障域中.这将增加集群中的成员数量,并且如果其中一个存储块没有另一个存储块,则将提高您进行多数分区的机会.

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

相关文章

1、安装Apache。 1)执行如下命令,安装Apache服务及其扩展包...
一、先说一下用ansible批量采集机器信息的实现办法: 1、先把...
安装配置 1. 安装vsftpd 检查是否安装了vsftpd # rpm -qa | ...
如何抑制stable_secret读取关键的“net.ipv6.conf.all.stabl...
1 删除0字节文件 find -type f -size 0 -exec rm -rf {} ...
## 步骤 1:安装必要的软件包 首先,需要确保系统已安装 `dh...