DR+keepalived实现web群集的负载均衡和高可用性

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DR+keepalived实现web群集的负载均衡和高可用性相关的知识,希望对你有一定的参考价值。

我们搭建好的Lvs-DR群集是有一台lvs调度器的,生产环境中如果调度器出现故障,整个群集将瘫痪。通过keepalived做lvs调度器的双机热备就可以很好的解决这个问题。keepalived采用VRRP虚拟路由冗余协议,以软件的方式实现Linux服务器的多机热备功能。
案列拓扑:本次lvs+keepalived群集搭建需要两台nginx做的网站服务器和两台LVS负载均衡调度器。如下图
技术分享图片
IP地址规划:两台nginx分别使用172.16.16.177和172.16.16.178;两台调度器分别使用172.16.16.21和172.16.16.22作为地址。
操作步骤:1、部署nginx作为群集的web服务器
1)nginx的安装部署可参考以下文http://blog.51cto.com/13434336/
2102925
2)为nginx配置VIP,此地址用作发送web响应数据包的源地址,不需要监听客户机的访问请求,所以可以配置lo:0上,并需要为本机添加一条路由记录,将访问VIP的数据限制在本地,避免通信紊乱。
技术分享图片
技术分享图片
3)调整/proc响应参数vim /etc/sysctl.conf,添加6行。然后执行sysctl -p更新
技术分享图片
4)为做区分我将第二台nginx服务器的网页做了修改
技术分享图片
(两台nginx上的配置除了网页和IP地址其余完全相同)
2、调度器配置。
1)首先为调度器的eth0网卡再配置一个地址172.16.16.172作为vip(群集地址)vim /etc/sysconfig/network-scripts/ifcfg-eth0:0(该地址用于响应群集访问,所以需要配置eth0:0)。
技术分享图片
2)调整/proc响应参数
因为lvs负载调度器和各节点需要共用vip地址,应该关闭linux内核重定向参数响应,打开vi /etc/sysctl.conf,增加三行。执行sysctl -p更新。
技术分享图片
3)挂载系统盘安装ipvsadm群集调度工具
技术分享图片
4)配置负载分配策略
技术分享图片
3、在调度器上配置keepalived。
1)安装keepalived支持软件包
技术分享图片
2)编译安装keepalived
技术分享图片
3)chkconfig命令设置keepalived开机自启动
技术分享图片
4)配置keepalived。vim /etc/keepalived/keepalived.conf
技术分享图片
技术分享图片
技术分享图片
修改完配置重启keepalived服务。
5)从调度器配置
router-id LVS2
state BACKUP
priority 99
其余配置项相同即可,修改完配置重启keepalived服务。
3、验证群集
1)登陆172.16.16.172
技术分享图片
换一台电脑登陆
技术分享图片
这就成功验证了轮询调度算法(RR)的负载均衡
2)验证lvs群集。断掉第一台nginx的网卡,然后登陆172.16.16.172。
技术分享图片
发现仍然可以登陆,不过出现的是第二台nginx的网页。
3)在优先级为100的主调度器上通过ip addr show dev eth0查看keepalived的漂移地址。
技术分享图片
断掉该调度器的网卡,再次查看。
技术分享图片
查看另一台调度器
技术分享图片
地址已经漂移到从调度器上了。再次登陆172.16.16.172。
技术分享图片
发现依然可以登陆网站。
总结:本案例中,使用Lvs-DR搭建了负载均衡的web群集;为避免负载均衡调度器故障引发的群集瘫痪,采用keepalived实现了调度器的双机热备,成功的实现了该web群集的高可用性和高并发处理性(搭建Lvs-DR可以使用多台nginx服务器)。
文档只做实验环境中使用。

以上是关于DR+keepalived实现web群集的负载均衡和高可用性的主要内容,如果未能解决你的问题,请参考以下文章

LVS负载均衡群集DR模式+Keepalived部署!

LVS负载均衡群集——keepalived+DR模式(实战!)

搭建:LVS+Keepalived高可用Web服务群集环境

基于LVS负载均衡群集来实现Keepalived的部署 技术

LVS负载均衡群集架构:DR模式群集部署

LVS负载均衡群集之DR模式+keepalived群集机构(理论+实践篇)