忘记密码   免费注册 查看新帖 | 论坛精华区

ChinaUnix.net

  平台 论坛 博客 认证专区 大话IT HPC论坛 徽章 文库 沙龙 自测 下载 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
12下一页
最近访问板块 发新帖
查看: 2005 | 回复: 14

keepalived+appserver双主机方案测试(已解决) [复制链接]

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 10:16:53
发表于 2017-08-18 09:54 |显示全部楼层
本帖最后由 夏织风 于 2017-08-21 16:04 编辑

之前在网上看到一篇文章,讲述了双机部署keepalived+appserver会造成死锁的原因。
部分摘录如下:
当客户端发送数据包给 VIP .比如我们的 Director1 (Master 主)这个接口正在工作,这时 LVS 能接收到这个包,然后根据 keepalived 的配置进行 load balance .这时 Director1 会使用 LVS-DR 的功能给包路由给自己或者 Director2 (Backup).
这时有个问题.在这个例子中因为我们使用了 keepalived .这时 Director2 这台是一台 VIP 的备份服务器.这时 keepalived 默认会立即启动使用 ipvsadm 的规则来配置这台服务器怎么样做备份的处理.来使得更快的故障转移.所以这时这些规则这台备份的 Director2 主机都会存在.
这就有问题了.当从 Director1 (Master 主),比如使用 rr .会转发大约 50% 的包从 Director1 到  Director2 (Backup)的 3306 的端口.这时因为 Director2 因为这些 LVS-DR 的配置规则会接着给这些包,在做一次 load balance .又发回去给 Director1.这时会产生一个死的循环.
随着时间的推移,不但不能正常的处理连接,您的服务器也会崩溃,在他们中间或后端不断的反复连接
-----------------------------------------分割线---------------------------------------------------------
针对这个问题,我采用了与文章不同的解决方案,因为文章中给防火墙添加规则屏蔽双方的mac地址实际上是人为关闭lvs的功能。
我想即保留HA又使用lvs功能,所以我采用了这个方法:
创建子网卡并使让子网卡和主网卡在同一网段:ifconfig eth0:0 ip地址 netmask 掩码位 up
在keepalived.conf文件中的配置信息中:
采用的是rr轮询方式
VRRPD配置中的interface使用的是主网卡eth0(注,不能使用子网卡,会报错)
LVS˜配置中的realserver的ip是子网卡的ip地址
-------------------------------------------分割线--------------------------------------------------------
我绑定了8080端口,然后测试了一下,没有产生死锁。

我这个方案是基于一个假设:我猜想keepalived是通过VRRPD配置中的interface,来获取本机的ip地址,我只要不向这个地址发送请求,应该可以避免死锁的产生。

不过,由于我现有的环境没有loadrunner或者其他的压力测试服务器,不知道在压力测试情况下,会不会保证稳定。
希望各位大神和同行,如果有兴趣的话,可以测试一下我的方案,把问题和结果告诉我一下,欢迎讨论。

---------------------------------------------分割线-------------------------------------------------------
我用loadrunner测试了一下,会有死锁产生,看来keepalived应该是监听eth端口的包,我打算测试双网卡的情况,看看会不会避免死锁

论坛徽章:
31
荣誉会员
日期:2011-11-23 16:44:17丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17天蝎座
日期:2014-08-21 17:18:48丑牛
日期:2014-08-29 16:06:45天秤座
日期:2014-08-29 10:12:18天秤座
日期:2014-08-26 16:18:20双子座
日期:2014-07-30 11:38:27寅虎
日期:2014-08-04 10:24:12IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:00
发表于 2017-08-26 11:52 |显示全部楼层
回复 1# 夏织风

keepalived 不是 配置 HA 的?
怎么还配置成了RR ?

还有这种操作?

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 10:16:53
发表于 2017-08-28 18:01 |显示全部楼层
回复 2# q1208c

确实两台机器无法构建HA+RR模式,除非RR是由应用层程序进行分发。

论坛徽章:
31
荣誉会员
日期:2011-11-23 16:44:17丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17天蝎座
日期:2014-08-21 17:18:48丑牛
日期:2014-08-29 16:06:45天秤座
日期:2014-08-29 10:12:18天秤座
日期:2014-08-26 16:18:20双子座
日期:2014-07-30 11:38:27寅虎
日期:2014-08-04 10:24:12IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:00
发表于 2017-08-28 20:31 |显示全部楼层
回复 3# 夏织风

keepalived 的 VIP 同是一时刻只在一台机器上, 怎么做到RR呢?

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 10:16:53
发表于 2017-08-28 20:45 |显示全部楼层
回复 4# q1208c

不使用IPVS,通过应用程序使用自定义的规则进行转发。

论坛徽章:
31
荣誉会员
日期:2011-11-23 16:44:17丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17天蝎座
日期:2014-08-21 17:18:48丑牛
日期:2014-08-29 16:06:45天秤座
日期:2014-08-29 10:12:18天秤座
日期:2014-08-26 16:18:20双子座
日期:2014-07-30 11:38:27寅虎
日期:2014-08-04 10:24:12IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:00
发表于 2017-08-28 21:05 |显示全部楼层
回复 5# 夏织风

那你的客户端要怎么知道访问哪一台呢?
两台一起连?然后自己处理RR?

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 10:16:53
发表于 2017-08-29 10:26 |显示全部楼层
回复 6# q1208c

客户端连接只需知道VIP就可以,具体业务由上层进行转发,不通过二层进行转发,这样的效率肯定是比较慢,但是不会冲突

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 10:16:53
发表于 2017-08-29 10:28 |显示全部楼层
回复 6# q1208c

HA+RR不是全部由keepalived完成,keepalived只负责HA,自己开发的软件在上层负责RR。

论坛徽章:
31
荣誉会员
日期:2011-11-23 16:44:17丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17天蝎座
日期:2014-08-21 17:18:48丑牛
日期:2014-08-29 16:06:45天秤座
日期:2014-08-29 10:12:18天秤座
日期:2014-08-26 16:18:20双子座
日期:2014-07-30 11:38:27寅虎
日期:2014-08-04 10:24:12IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:00
发表于 2017-08-29 21:09 |显示全部楼层
回复 7# 夏织风

通用一点的做法是使用三层的代理结构。

lvs -> haproxy -> application

lvs 完成 ha
haproxy 完成 rr

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 10:16:53
发表于 2017-08-29 23:01 |显示全部楼层
回复 9# q1208c

ok!我测试一下。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

SACC2017购票8.8折优惠进行时

2017中国系统架构师大会(SACC2017)将于10月19-21日在北京新云南皇冠假日酒店震撼来袭。今年,大会以“云智未来”为主题,云集国内外顶级专家,围绕云计算、人工智能、大数据、移动互联网、产业应用等热点领域展开技术探讨与交流。本届大会共设置2大主会场,18个技术专场;邀请来自互联网、金融、制造业、电商等多个领域,100余位技术专家及行业领袖来分享他们的经验;并将吸引4000+人次的系统运维、架构师及IT决策人士参会,为他们提供最具价值的交流平台。
----------------------------------------
优惠时间:2017年8月2日前

活动链接>>
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802020122
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP