首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >集群中的最小节点数是多少?

集群中的最小节点数是多少?
EN

Stack Overflow用户
提问于 2014-11-07 21:12:48
回答 2查看 1.3K关注 0票数 3

文档中说的是集群needs at least three nodes。我们能够在两台主机上运行,并且故障转移测试似乎可以正常工作。

我们在一个集群中设置了两个主机(A,B),每个主机都有一个林。A上的森林是主森林。B上的林是副本林。我们将林A附加到一个数据库。此时,林"A“的状态为”开放“,而"B”的状态为“同步复制”。

然后,我们关闭了主机A。林B的状态变为“打开”。

即使我们在集群中只有两台主机,故障转移似乎也能正常工作。这是预期的行为吗?

EN

回答 2

Stack Overflow用户

发布于 2014-11-07 21:56:59

要更好地理解这个问题,请尝试这个。让主机B复制所有数据库,包括Security DB。(在B上放置一个林,它是A上匹配林的副本)。您的描述与所谓的“本地磁盘故障切换”相符。

https://docs.marklogic.com/guide/cluster/failover#id_65543

(这个术语有误导性,磁盘不需要是“本地”的,它们可以在SAN上,也可以是物理上远程的--这个术语意味着每个主机只能看到自己的磁盘,而不是共享磁盘)。

测试您可以在A或B上可靠地登录和执行操作,并且两者都可以看到结果。

理想情况下,可以通过创建一个简单的应用程序来模拟现实世界的用例,比如每次单击按钮都会更新文档的应用程序。或者使用REST服务进行测试,您可以在两台主机上执行相同的操作。

现在断开A和B之间的网络连接(拔出电缆或禁用网络更改路由器设置,只要是最简单的)。

现在,在两台主机上尝试您的应用程序。分别转到每台主机的管理控制台,查看它认为自己和另一台主机的状态。您希望状态显示什么?

A和B都无法通信,因此它们都认为另一台主机发生了故障。如果没有第三个主机来仲裁...您期望或希望得到的结果是什么?两台主机都应该停止工作吗?还是应该让两台主机都继续工作?或者应该只运行一种?哪一个?他们将如何决定?“故障转移”主机是否应该接管主服务器,因为它认为主服务器发生了故障?或者,主服务器是否应该确定故障转移主机发生了故障?这两个选择都是正确的-在不知道其他情况的情况下,您希望集群继续运行。

现在尝试使用应用程序在两个系统上添加或修改文档。它会起作用吗?对每个主机上的同一文档进行不同的更改。

您期望每个应用程序都能继续运行吗?应该是这样的,这就是故障转移的目的。但每个人都认为对方已经死了,所以他们不会试图复制,相反,他们都充当主控(或者他们都失败了-他们无法区分,所以没有办法选择哪个更好)

现在,在A和B都有不同的更改后,重新连接网络。您预计会发生什么?A和B的哪些更改将被复制?B会放弃自己的主控地位,把它的修改交给A吗?或者A会意识到B刚刚恢复并将其更改发送给B吗?两个文档都更改了怎么办?

另一个(更复杂但很有启发性的)实验是在你和集群之间设置一个负载均衡器。这将随着时间的推移向两个主机发送请求。

现在断开主机之间的网络,但不要断开负载均衡器和每个主机之间的网络。运行你的应用...它仍然会像以前一样相信自己只是在与“一个主机”对话。但更改将发送到A和B,具体取决于负载均衡器。您期望的用户体验是什么?如果请求1更新A,则请求2从B获取文档...用户(和应用程序)将得到不一致的结果-如果有的话。这真是不太好。

发生故障转移...但系统作为一个整体是不一致的,并且没有意识到这一点。它将在您尝试的实验中工作,因为您知道只与A对话,但这不是故障转移的目的。您可以使用RAID或分布式文件系统或简单的连续备份来实现这一点...

故障转移是指能够处理系统脱机或彼此断开连接,并且无论您将请求发送到哪台主机,群集作为一个整体仍可正常工作并保持一致。

对于3台主机,它可以从所有3台主机工作到所有3台完全离线或断开连接,它不会以不一致的方式运行。对任何主机的请求要么会成功并与其余主机保持一致,要么会失败(因为主机离线或已确定它不再是集群的一部分)。

对于2台主机(或任意偶数),您无法同时可靠地实现一致性和复制的“故障转移”。

您可以在集群之间进行“复制”(请参阅数据库复制和灵活复制),甚至可以在1个节点的集群之间进行复制。但这并不等同于“故障转移”复制是单向的。主节点将数据发送到副本服务器。如果其中一个失败,您可以决定将流量发送到另一个...但在这一点上,您需要稍后进行手动干预,以尝试使数据恢复同步。

您可以看到https://docs.marklogic.com/guide/database-replication中的差异

票数 2
EN

Stack Overflow用户

发布于 2014-11-08 01:01:46

要使故障转移正常工作,群集至少需要三台主机。在只有两台主机的情况下,存在"split brain“问题的危险,例如,如果网络链路出现故障。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26802068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档