设为首页 收藏本站
查看: 1812|回复: 0

[经验分享] LVS+Keepalived(DR模式)学习笔记

[复制链接]

尚未签到

发表于 2015-9-4 12:14:48 | 显示全部楼层 |阅读模式
  1.简述
  在互联网的中型项目中,单服务器往往已经无法满足业务本身的性能要求,这时候就会平行扩展,把负载分摊到数台服务器上(集群)。一般实现集群有DNS轮询,LVS,nginx负载均衡。
  集群主要目的包括如下三点:高可用、可扩展、负载均衡。
  一个完整的集群架构,则需要包含如下三个功能:负载均衡、故障隔离、失败切换
  负载均衡:根据设定的算法,通过负载均衡器(Director)把外部请求转发到各个集群中的服务器上(Real server)
  故障隔离:当集群中一个或多个服务器(Real server)发生故障或无法提供服务时,集群能够把它们从转发队列中移除出去,以确保用户访问不会被错误转发到无法提供的服务器(Real server)处理。而当故障的服务器(Real server)重新恢复正常时候,又能够重新加入到集群的转发队列中。
  失败切换:失败切换主(Master)要就是去除负载均衡器(Director)的单点问题,一旦负载均衡器(Director)发生故障,备机(Slave)能够替代主(Master)负载均衡器(Director)接受用户请求,而当主负载均衡器(Director)恢复正常时,能够重新接管用户请求(根据配置而定)
  LVS是Linux Virtual Linux的缩写,即Linux虚拟服务器,是一个常用的服务器集群系统,该功能已经广泛集成在Linux内核中。
  Keepalived则是一个服务器检测状态软件,能够为集群提供故障隔离和失败切换功能
  ipvsadm则是LVS的管理工具,能够添加,修改,删除,查看当前集群的配置和转发状态等
  在使用Keepalived的方案中,只要系统安装有ipvsadm命令,只需要通过Keepalived的配置文件即可实现集群的所有配置。
  此次主要介绍DR模式下的集群配置,DR直接路由,负载均衡器(Director)只负转发用户请求,请求响应由服务器(Real server)直接提供。
  以下为简单的架构图
DSC0000.png
  2.安装
  2.1.ipvsadm安装



yum install ipvsadm
  2.2.Keepalived安装



yum install keepalived
  2.3.LVS支持情况查看



uname -r
# 查看linux内核版本,2.4后已经集成,2.4前请重新编译内核(现在都没有2.4之前的了)
  
  3.配置
  预设环境:
  负载均衡器A:
  ip地址: 192.168.1.12
  集群VIP:192.168.1.100
  真实服务器B:
  ip地址:192.168.1.13
  组播地址:192.168.1.100
  真实服务器C:
  ip地址:192.168.1.14
  组播地址:192.168.1.100
  
  真实服务器配置:
  真实服务器无需安装任何软件,只需像普通非集群服务器配置即可



# 可以把以下命令写入shell脚本,并在/etc/rc.local中配置为每次开机自动执行
# 注意:必须绑定在环回网卡(lo)
# down是为了让脚本可重复执行
ifconfig lo:0 192.168.1.130 broadcast 192.168.1.130 netmask 255.255.255.255 down
ifconfig lo:0 192.168.1.130 broadcast 192.168.1.130 netmask 255.255.255.255 up
# 此步骤十分重要,在实际应用中集群的多台真实服务器均使用同一组播地址,因此需要抑制ARP广播
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
  执行成功后,输入ifconfig应该会见到如下结果:



lo:0: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
inet 192.168.1.100  netmask 255.255.255.255
loop  txqueuelen 0  (Local Loopback)
  由于抑制了ARP广播,输入ping 192.168.1.100应为如下结果:



PING 192.168.1.100 (192.168.1.100) 56(84) bytes of data.
--- 192.168.1.100 ping statistics ---
6 packets transmitted, 0 received, 100% packet loss, time 5042ms
  无法ping通
  
  负载均衡器配置
  Keepalived默认配置文件位置/etc/keepalived/keepalived.conf
  配置如下:



virtual_server 192.168.1.100 80 {
delay_loop 6
lb_algo rr # rr即为轮询
lb_kind DR # DR模式
nat_mask 255.255.255.255
#persistence_timeout 600 #会话保持时间
protocol TCP
real_server 192.168.1.13 80 {
#weight 100 #在wlc负载均衡算法时生效
# 真实服务器状态检查
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.1.14 80 {
#weight 100 #在wlc负载均衡算法时生效
# 真实服务器状态检查
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
  输入keepalived -D命令启动keeplived
  查看keepalived运行状态(正常启动为三个进程)



ps aux | grep "keepalived"
  查看keepalived运行日志



tail /var/log/message
  检查配置结果(正常情况下能够见到配置的信息已经被正确加载)



ipvsadm -L
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-109360-1-1.html 上篇帖子: nginx+keepalived用rpm安装 下篇帖子: 基于keepalived的redis通信链接数测试
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表