服务器双机热备时一直显示ip冲突,关于LVS的双机热备(或多机互备)情况下的状态复制问题...

诸位好,

最近在研究一种新的负载均衡方案,本来我们一直使用F5,虽然F5的可靠性已经很高了,但

仍然存在单点问题,而且这个设备的是我们无法完全控制的,想在上面增加一些自己的规则或

算法都非常困难。所以有一种可控制、可扩展的负载均衡方案做为F5的备份和补充,以致完全

取代F5的作用是很有必要的,而且这个负载均衡LB服务器最好可以双机热备或者多机互备。

双机或者多机互备的方案,我看到有HA和CARP两种,HA家都了解,通过心跳线互联的两个机

器,可以在一台出故障是由另外一台接管。而CARP是最早在OpenBSD中实现的,可用实现IP的

冗余,即多个服务器可以配置为一个虚拟IP服务,每一时刻只有一个服务器上的VIP起作用,

当这个服务器出问题后,其他服务器会马上接管这个VIP继续服务,所以CARP不仅仅能实现HA

那样的效果,还可以实现多台服务器,多个VIP之间的相互备份。

经一些考察,我发现有两种方案可选:

第一:OpenBSD + PF + PFSYNC + CARP

这种方案中,PF负责NAT或者IP转发,PFSYNC负责在几台LB之间同步和复制状态信息,CARP

负责IP冗余,当一台LB发生故障时,其他LB会马上接管这个LB上的VIP,并通过PFSYNC同步过

来的状态信息,保持客户端会话不会中断。

第二:Linux + LVS + UCARP or HA

这个方案中,LVS负责负载均衡,UCARP是CARP的另外一种实现,效果也类似,能实现IP冗余

,这里唯一不太确定就是LVS的状态同步和复制问题,即两个LVS之间如何保持状态信息的一致

,从而使UCARP的切换可以无缝的进行。

比较而言,PF没有健康检查和不同优先级的调度算法,这个都需要你自己写脚本去实现,而

LVS则已经实现了这些,所以我很希望能采用LVS来实现负载均衡。

我看过章博士写的“调度器状态同步”的文章(http://zh.linuxvirtualserver.org/node/70),

不知道这部分代码实现了吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用Keepalived实现Jar包的双机热备,需要进行以下步骤: 1. 安装和配置Java环境。 2. 下载和安装Keepalived。 3. 配置Keepalived的主从节点,确保两个节点之间可以互相通信。 4. 将Jar包复制到两个节点上,并确保两个节点上的Jar包版本相同。 5. 创建一个脚本文件,用于启动和停止Jar包。 6. 配置Keepalived的监控脚本,用于检测Jar包是否正常运行。 7. 配置Keepalived的虚拟IP地址和虚拟MAC地址,确保在主节点故障转移,虚拟IP地址能够自动切换到备节点。 具体的配置步骤如下: 1. 安装和配置Java环境。 在主节点和备节点上都需要安装Java环境,并确保JAVA_HOME和PATH环境变量已经设置。 2. 下载和安装Keepalived。 在主节点和备节点上都需要下载和安装Keepalived。可以使用以下命令在Ubuntu上安装: ``` sudo apt-get install keepalived ``` 3. 配置Keepalived的主从节点。 在主节点和备节点上都需要配置Keepalived的主从节点。可以在/etc/keepalived/keepalived.conf文件中进行配置。以下是一个示例配置文件: ``` ! Configuration File for keepalived global_defs { router_id LVS_DEVEL } vrrp_script chk_jar { script "/etc/keepalived/check_jar.sh" interval 2 weight -20 } vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 100 virtual_ipaddress { 192.168.0.100/24 dev eth0 } track_script { chk_jar } } ``` 在该配置文件中,定义了一个名为chk_jar的监控脚本,用于检测Jar包是否正常运行。vrrp_instance VI_1定义了一个虚拟IP地址(192.168.0.100),并指定了主节点的优先级为100。track_script指定了要监控的脚本。 4. 将Jar包复制到两个节点上,并确保两个节点上的Jar包版本相同。 将Jar包复制到主节点和备节点上,并确保两个节点上的Jar包版本相同。 5. 创建一个脚本文件,用于启动和停止Jar包。 创建一个名为start_jar.sh的脚本文件,并在其中编写启动Jar包的命令。例如: ``` #!/bin/bash java -jar myapp.jar > /dev/null 2>&1 & ``` 创建一个名为stop_jar.sh的脚本文件,并在其中编写停止Jar包的命令。例如: ``` #!/bin/bash killall java ``` 6. 配置Keepalived的监控脚本,用于检测Jar包是否正常运行。 在/etc/keepalived/check_jar.sh中编写检测Jar包的脚本。例如: ``` #!/bin/bash if ps ax | grep -v grep | grep myapp.jar > /dev/null then exit 0 else exit 1 fi ``` 该脚本检测系统中是否有名为myapp.jar的进程在运行。如果有,则返回0;否则返回1。 7. 配置Keepalived的虚拟IP地址和虚拟MAC地址,确保在主节点故障转移,虚拟IP地址能够自动切换到备节点。 执行以下命令,配置虚拟IP地址和虚拟MAC地址: ``` ip addr add 192.168.0.100/24 dev eth0 ip link set dev eth0 up ip link set eth0 address 00:00:5e:00:01:64 ``` 其中,eth0为网络接口名称,00:00:5e:00:01:64为虚拟MAC地址。 完成以上步骤后,启动Keepalived服务,即可实现Jar包的双机热备

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值