只有两台服务器的情况下如何搭建高可用集群

120 天前
 tangzhiyong

只有两台服务器的情况下如何搭建高可用集群?两台服务器放在不同的市。 场景:个人使用,搭建的服务主要是 github 上的一些开源项目和自己开发的小项目。主要是 docker 镜像。 chatgpt 说搭建高可用集群至少需要 3 台服务器以上。但我只有两个物理地点,如果在其中一个物理地点放置两台服务器,一个地点放置一台服务器。万一其中一个物理地点停电断网,有机会两个管理节点都关闭,集群也无法正常。 所以想请教,只有两台服务器的情况下,如何实现高可用集群?

3379 次点击
所在节点    Linux
37 条回复
MrYELiex
120 天前
看你的需求应该是需要主从数据库 数据库自动同步 容器无状态
bzj
120 天前
@yinmin 谁跟你说的集群必须在一个地方?
brant2ai
120 天前
@tangzhiyong #18 能理解你害怕一边服务器挂掉采取两地服务器。
brant2ai
120 天前
@tangzhiyong #18 MPP 架构一般至少需要 3 个节点,这就意味着至少虚拟出一个节点出来,数据同步在 MPP 架构中是自带的,基本上写入的过程中会同时向多个数据库写。
newbeelity
120 天前
无状态的话稍简单,用一些 dns 全局流量管理,GTM
有状态则要考虑数据一致性,所以看你描述,不太可能了
Dogtler
120 天前
即使是两台,一台控制 一台节点,照样可以上 k8s 。在 k8s 里面做高可用集群,ha operator
Emiya1208
120 天前
十年运维老司机和你说。2 个节点,不可能有最佳的做法,你自己看一下下面然后权衡考虑吧。

以目前的产品来说。

1. 完全依靠标准的 RAFT 算法实现的高可用不可能在 2 个节点的情况下完成高可用,即便两个节点可以使用 RAFT 算法工作,但是挂了一个另一个也不能用。

2. 依靠仲裁机制实现的代表作是 ZK ,同样不能在两个节点下完成仲裁,同样无法高可用。

3. 依靠宽松的同步复制实现的双节点高可用,其依赖日志与信号的同步处理,一旦通信或是其中一个挂了另外一个可以独立运行,但是数据可能不是最新的,一定会造成脑裂,注意是一定。

4. 存在称为 "Active Failover" 的机制的产品可以依靠组合拳在引入多个角色上实现优先资源并尽可能的高可用和数据一致性。但是并不完全能避免数据脑裂。

PS:以上不考虑你怎么处理网络的可用性。
UN2758
120 天前
个人用,负载也不大吧?追求高可用那就 keepalived 呗
Maboroshii
120 天前
个人用,挂了就上去重启呗,一台机器用作另一台的数据备份 ,简单又稳。 别弄复杂了
wantstark
120 天前
没有分布式场景的话,simple ping / DNS 一层负载即可
niubee1
120 天前
两台基本来即使做到了,也会有很大的问题和局限性。 一句话就是:穷鬼不配
mark2025
120 天前
两台服务器谈什么高可用呢
ltkun
119 天前
千万别搞这种事情 可靠性需要的代价不是两台个人电脑能提供的
XinPingQiHe
119 天前
各类容器或者虚拟机系统,需要做高可用的话,都是至少 3 台物理服务器,实际配置中可能还要多 1-2 台。这是最小规模
liuliancao
119 天前
保证两个机器是一样的(动作都执行下或者是搞主从) 然后在你家里的电脑里面加一些探测和动作~
liuliancao
119 天前
@liuliancao 另外如果用云的 dns 有的云可以自动做探活和替换
tangzhiyong
118 天前
@Emiya1208 谢谢🙏

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1066019

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX