注册 登录
  • 欢迎访问"运维那点事",推荐使用Google浏览器访问,可以扫码关注本站的"微信公众号"。
  • 如果您觉得本站对你有帮助,那么可以扫码捐助以帮助本站更好地发展。

LVS负载均衡—基于Keepalived做高可用

集群和存储 彭东稳 6699次浏览 已收录 0个评论

Lvs+Keepalived高可用实践

先看看:高可用软件keepalived详解

Lvs+Keepalived的基本使用架构如下图如下:

LVS负载均衡—基于Keepalived做高可用

当然,我们这里就没有必要一整套都实现下来,我们主要做的就是LVS+Keepalived实验,所以我们只需要2台LVS+Keepalived(DR模式),2台WEB即可测试即可,基本信息如下:

Lvs+Keepalived Master的IP地址为:172.29.32.200

Lvs+Keepalived Backup的IP地址为:172.29.32.201

Lvs+Keepalived VIP地址为:172.29.32.210

WEB01的IP地址为:172.29.32.202

WEB02的IP地址为:172.29.32.204

1)Lvs+Keepalived Master配置

配置DIP。

先需要安装keepalived和ipvsadm。

配置Keepalived。

把同样的配置复制一份到BACKUP主机,只需要改两个参数即可:

2)Lvs+Keepalived Slave配置

配置DIP。

先需要安装keepalived和ipvsadm。

配置Keepalived,只需要把Master的配置复制一份到BACKUP主机,只需要改两个参数即可:

3)WEB01(RealServer)配置

设置RIP地址。

调整网卡响应机制(目标地址不是ETH0接口地址统统拒绝响应)。

在loopback上设置VIP地址只用于响应数据包。

设置路由策略如果目标地址访问的是VIP那么响应地址就设为lo:0的地址。

安装nginx

4)WEB02(RealServer)配置

设置RIP地址。

调整网卡响应机制(目标地址不是ETH0接口地址统统拒绝响应)。

在loopback上设置VIP地址只用于响应数据包。

设置路由策略如果目标地址访问的是VIP那么响应地址就设为lo:0的地址。

安装nginx

5)测试效果

可以使用客户端访问172.16.16.1查看轮询访问变化,如下:

或者使用ab压力测试访问172.16.16.1查看加权轮询变化。

查看当前连接数

通过当前连接数,可以看出连接协议,以及tcp keepalive的剩余时间和状态信息。还有源和目标IP以及虚拟IP。

查看统计信息

由于是NAT模式,所以当访问几次之后,可以看到,指标Conns、InPkts、OutPkts、InBytes、OutBytes都有数据才正确,因为进出数据包都经过调度器,所以任何一个参数值为空都是不正确的。而DR模式则不然。

最后,还可以更改RealServer的权重,再使用AB压力测试一下,看看统计信息是否跟权重调整的对比。

PS:你在测试过程中,当LVS调度算法使用轮询或加权轮询默认时,如果你使用浏览器(同一个IP)访问VIP,可能会出现跟你想象的轮询调度不一样的结果,那就是一直刷新网页却无法轮询,每次都需要等待2分钟才有轮询效果。而如果你使用curl这种工具进行访问VIP则可以每次都轮询,主要因为浏览器默认使用了keepalive,而curl没有使用,当然这是LVS的默认特性,详情请看LVS负载均衡—tcp keepalive问题分析?


如果您觉得本站对你有帮助,那么可以支付宝扫码捐助以帮助本站更好地发展,在此谢过。
喜欢 (2)or分享 (0)
关于作者:

您必须 登录 才能发表评论!