码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2018-05-12 02:46:48      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:Lvs-DR   keepalived   

我们搭建好的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   

原文地址:http://blog.51cto.com/13434336/2115423

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!