简单的主备切换方案

 主备切换是很多高可用性系统都必须解决的问题,方法有很多,象基于ZooKeeper的主备切换就是一个很好的选择。

 
在这里提供一种更简单但不完美的主备切换方法:
1) 假设A和B是集群中的主控(Master)节点
2) 1~7是工作节点(如HDFS中的DataNode)
3) 在每个工作节点上,都同时配置了A和B的IP,而且是对等的,无主备之分
 
所谓主:是指提供服务的主控,而备是指不提供服务的主控,当主故障时,由备接管其它服务,但因网络原因,可能主和备都未故障,这个是解决主备切换的关键问题所在。
 
选择A或B作为主的过程:
1) 未连接之前,如图1所示,A和B都不是主
2) 1~7随机选择连接到A或B
3) 这个时候可能会出现如图2所示的情况
4) (关键点)在指定的时间内(如1秒),不管是A还是B,发现到自己的连接数小于50%(这个值可修改)就主动切断连接,这个时候会将本来和自己建立连接的节点赶往另一边
5) 当A或B发现到自己的连接数超过60%(这个值可修改)时,就认为自己是主了,并保持连接
6) 这样当A或B有一个挂掉时,最终肯定会有一个满足作为主的条件
 
如果是网络原因,而不是A或B本身故障,则会出现一些可以连接到A但不能连接到B,而另一些可以连接到B但不能连接到A,甚至还有些可以同时连接A和B,但总是只有满足超过50%的才提供服务,这样就不会出现同时存在两个主的情况。所以,如果恰好是一半一半,那就无法提供服务,需要人工干预了,比如工作节点,平均分配在两个不同IDC,由于两个IDC间网络故障,问题就会出现。

简单的主备切换方案

图1

简单的主备切换方案

图2

简单的主备切换方案

图3
 
 
会不会导致A和B都是40%或50%了?这个会,但会触发重新竞争分配,只需要做一些策略调整,就可以解决这个问题,比如A是每1秒算一个间隔,B为2秒一个间隔。
更多相关文章
  • 负载均衡热备模式下服务器网卡的主备切换问题
    今天讨论拓扑中负载均衡部署在冗余网络结构下,服务器双网卡的切换问题.图一图一拓扑中四台服务器与负载均衡直接相连,每台服务器双网卡各连接一台负载均衡,负载均衡热备模式部署,服务器双网卡也绑定为主备模式.当负载均衡发生主备切换时,服务器的主备网卡也跟随切换.其实这样的应用需求非常的普遍,但实际网络拓扑更 ...
  • 主备切换MSN警告    当主备机发生故障切换时,会发MSN消息给警报给管理员,此警报消息是由keepalived上的bash脚本将参数通过crul命令传给PHP接口程序(也就是拓扑中的WEB),由PHP接口程序来完成发送MSN消息.    在WEB主机上安装php-mcrypt和php-bcmat ...
  • Spark系列(五)Master主备切换机制
    Spark Master主备切换主要有两种机制,之中是基于文件系统,一种是基于Zookeeper.基于文件系统的主备切换机制需要在Active Master挂掉后手动切换到Standby Master上,而基于Zookeeper的主备切换机制可以实现自动切换Master. 切换流程图 流程说明: S ...
  • DRBD主备切换在系统维护的时候,或者在高可用群集中,当主用节点出现故障的时候,就需要将主备节点的角色互换,主备节点切换有两种形式,分别是停止DRBD服务切换和正常切换(1) 停止DRBD服务切换关闭主用节点服务,此时挂载的DRBD分区就自动在主用节点卸载了,操作如下,/etc/init.d/drb ...
  • https://community.emc.com/community/support/chinese/storagehw/blog/2013/10/21/celerravnx-file-data-mover-%E4%B8%BB%E5%A4%87%E5%88%87%E6%8D%A2%E7%9A%84 ...
  • mysql互为主从设置 && 主备切换配置需求说明:1.公司架构一直是一台单独的mysql在线上跑,虽然一直没有出现什么宕机事件,但是出于一个高可用的考虑,提出主从备份.主备切换的需求:2.实现这个需求的前一段时间只是在做数据库备份的时候实现了主从热备,为了实现主备切换功能,继续操作 ...
  • --1 环境信息PostgreSQL 版本: PostgreSQL 9.1beta3 OS : Red Hat Enterprise Linux Server release 5.5硬件环境 : 笔记本上的两台虚拟机主库 IP : 192.168.1.25 主库 PORT : 1921备库 IP : ...
  • 主库磁盘问题,导致主库宕机,因为归档还没有应用,导致备库无法转为主库先查看一下备库当前的信息:SQL> select * from v$version; BANNER --------------------------------------------------------------- ...
一周排行