Ani*_*dya 5 linux glusterfs centos7
我正在尝试使用 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
Run Code Online (Sandbox Code Playgroud)
当我启动另一个节点时,似乎一切正常,我可以挂载该卷。
[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
Run Code Online (Sandbox Code Playgroud)
此时,如果我关闭 node2,node1 砖进程仍处于活动状态,因此至少我可以安装和使用它。
[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
Run Code Online (Sandbox Code Playgroud)
所以我的观察是,要使 gluster 卷工作,两个节点至少需要在线一段时间,以便砖可以启动,然后如果一个节点出现故障,它不会影响卷操作。那么,当其中一个节点因完全停电而上线时,我该如何使其工作?
sys*_*138 12
任何集群节点在从句号出现时都存在的问题是:
我有最新的状态吗?
latest
如果我落后于其他停机节点,我不想声明。
这就是为什么集群经常包含某种仲裁机制,因此现有节点可以对状态进行投票并收敛于共识。两个节点集群不能使用这种机制,因为永远不会有“多数”分区。在 3.7 版本中,Gluster 获得了仲裁功能。
http://gluster.readthedocs.org/en/release-3.7.0beta1/Features/server-quorum/
在该文档中,他们声明 2 节点集群由于我上面描述的原因而无法使用它。
在您的情况下,您可能需要考虑在 Gluster 设置中创建一些仅管理节点。这些将是probed
集群中的对等点,但不托管任何存储。它们存在的全部原因是维护集群状态。这些可以存在于不同的机架、数据中心、电源阶段,以尝试确保它们与存储砖位于不同的故障域中。这将增加集群中的成员数量,并且如果其中一个存储块出现而另一个存储块出现时,将提高您拥有多数分区的机会。
不幸的是,您看到的行为是按设计工作的,如果不向集群添加更多服务器,就无法更改。
归档时间: |
|
查看次数: |
7721 次 |
最近记录: |