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

[经验分享] IPvs的高可用性+LVS的DR模式+ldirectord

[复制链接]

尚未签到

发表于 2019-1-5 10:54:03 | 显示全部楼层 |阅读模式
  ldirectord简介:为了从主Director将LVS负载均衡资源故障转移到备用Director,并从集群中自动移除节点,我们需要使用ldirectord程序,这个程序在启动时动建立IPVS表,然后监视集群节点的健康情况,在发现失效节点时将其自动从IPVS表中移除。
  ldirectord监视集群(真实服务器):ldirectord守护进程通过向每台真实服务器真实IP(RIP)上的集群资源发送访问请求来实现对真实服务器的监控,这对所有类型的LVS集群都是成立的:LVS-DR,LVS-NAT和LVS-TUN。正常情况下,为每个Director上的VIP地址运行一个ldirectord守护进程,当真实服务器不响应运行在Director上的ldirectord守护进程时,ldirectord守护进程运行适当的ipvsadm命令将VIP地址从IPVS表中移除。(以后,当真实服务器回到在线状时,ldirectord使用适当的ipvsadm命令将真实服务器重新添加到IPVS表中)
  案例:在前端架设两台director主机,互为备份,实现ipvs群集的高可用性。后端架设两台web服务器实现负载均衡LB,在realserver上使用DR模式
  ip地址规划:
  VIP:192.168.145.101
  director1:eth0:192.168.145.99
                 eth1:192.168.10.1 (心跳线)
  director2:eth0:192.168.145.100
                 eth1:192.168.10.2(心跳线)
  realserver1:eth0:192.168.145.200
  realserver2:eth0:192.168.145.201
  拓扑方案:

  配置director1部分:
  一:修改director1的主机名:
  [root@node1 ~]# vim /etc/sysconfig/network
  
  二:给director1配置静态ip地址
  
  
  三:编译本地yum:
  [root@node1 ~]# vim /etc/yum.repos.d/rhel-debuginfo.repo
  
  四:安装相关关键包:
  [root@node1 ~]# mkdir /mnt/cdrom
  [root@node1 ~]# mount /dev/cdrom /mnt/cdrom/       #挂载光盘,在使用
  yum localinstall中需要用到光盘上的软件包
  [root@node1 ~]# yum localinstall -y heartbeat-2.1.4-9.el5.i386.rpm heartbeat-pils-2.1.4-10.el5.i386.rpm heartbeat-stonith-2.1.4-
  10.el5.i386.rpm  libnet-1.1.4-3.el5.i386.rpm perl-MailTools-1.77-1.el5.noarch.rpm  --nogpgcheck   #使用localinstall可以安装外部软件包以及调用系统光盘软件包,—nogpgcheck取消签名测
  五:安装ipvs的管理工具ipvsadm:
  [root@node1 ~]# yum install ipvsadm -y
  [root@node1 ~]# ipvsadm -A -t 192.168.145.101:80 -s rr #定义群集,rr表示
  采用轮询调度,监听httpd服务的80端口
  [root@node1 ~]# ipvsadm -a -t 192.168.145.101:80 -r 192.168.145.200 –g
  #当监听到有访问80端口的,转换到真实的ip地址上,-g表示DR模型
  [root@node1 ~]# ipvsadm -a -t 192.168.145.101:80 -r 192.168.145.201 –g
  #当监听到有访问80端口的,转换到真实的ip地址上,-g表示DR模型
  [root@node1 ~]# service ipvsadm save #保存配置的规则
  [root@node1 ~]# service ipvsadm stop #将ipvsadm停止
  六:编辑配置心跳参数,群集资源等文件
  [root@node1 ~]# cd /usr/share/doc/heartbeat-2.1.4/      
  [root@node1 heartbeat-2.1.4]# cp ha.cf /etc/ha.d/#将ha.cf调整心跳探测参数
  [root@node1 heartbeat-2.1.4]# cp haresources /etc/ha.d/      #haresources
  文件定义群集资源的资源管理器
  [root@node1 heartbeat-2.1.4]# cp authkeys /etc/ha.d/       #authkeys实现
  心跳线双方的身份验证
  [root@node1 heartbeat-2.1.4]# cp /etc/init.d/ipvsadm /etc/ha.d/resource.d/    #将ipvsadm的控制脚本拷贝到resource.d目录下
  [root@node1 heartbeat-2.1.4]# cd /etc/ha.d/
  [root@node1 ha.d]# vim ha.cf        #编辑定义心跳探测参数的文件
  
  
  [root@node1 ha.d]# dd if=/dev/random bs=512 count=1 |openssl md5      #利用随机文件random产生一段字符,一块512字节,数量是1,通过md5加密后输出
  
  [root@node1 ha.d]# vim authkeys        #编辑心跳双方的身份验证文件
  
  
  [root@node1 ha.d]# chmod 600 authkeys        #根据文件内提示将authkeys的
  权限改为600
  [root@node1 ha.d]# vim haresources       #定义群集的抢夺资源
  
  [root@node1 ha.d]# service heartbeat start      #启动heartbeat服务
  [root@node1 ha.d]# chkconfig heartbeat on      #将该服务设置为开机自动启动
  [root@node1 ha.d]# ifconfig      #使用该命令查看ip地址情况
  
  配置director2部分:
  一:修改director2的主机名:
  [root@node2 ~]# vim /etc/sysconfig/network
  
  二:给director2配置静态ip地址:
  
  
  三:编辑本地yum:
  [root@node2 ~]# vim /etc/yum.repos.d/rhel-debuginfo.repo
  
  四:安装相关软件包:
  [root@node2 ~]# mkdir /mnt/cdrom
  [root@node2 ~]# mount /dev/cdrom /mnt/cdrom/     #挂载光盘,在下一步中需要使用自带的光盘软件,解决依赖性问题
  [root@node2 ~]# yum localinstall heartbeat-2.1.4-9.el5.i386.rpm heartbeat-pils-2.1.4-10.el5.i386.rpm heartbeat-stonith-2.1.4-10.el5.i386.rpm
  libnet-1.1.4-3.el5.i386.rpm perl-MailTools-1.77-1.el5.noarch.rpm -y –nogpgcheck       #使用localinstall可以安装外部软件包以及调用系统光盘软件
  包,—nogpgcheck取消签名检测
  五:安装ipvs的管理工具ipvsadm:
  [root@node2 ~]# yum install ipvsadm -y
  [root@node2 ~]# ipvsadm -A -t 192.168.145.101:80 -s rr #定义群集,rr表示采用轮询调度,监听httpd服务的80端口
  [root@node2 ~]# ipvsadm -a -t 192.168.145.101:80 -r 192.168.145.200 –g #当监听到有访问80端口的,转换到真实的ip地址上,-g表示DR模型
  [root@node2 ~]# ipvsadm -a -t 192.168.145.101:80 -r 192.168.145.201 –g #当监听到有访问80端口的,转换到真实的ip地址上,-g表示DR模型
  [root@node2 ~]# service ipvsadm save #保存配置的规则
  [root@node2 ~]# service ipvsadm stop #将ipvsadm停止
  六:编辑配置心跳参数,群集资源等文件
  [root@node2 ~]# cd /usr/share/doc/heartbeat-2.1.4/
  [root@node2 heartbeat-2.1.4]# cp ha.cf /etc/ha.d/       #将ha.cf调整心跳探测参数
  [root@node2 heartbeat-2.1.4]# cp haresources /etc/ha.d/       #haresources文件定义群集资源的资源管理器
  [root@node2 heartbeat-2.1.4]# cp authkeys /etc/ha.d/         #authkeys实现心跳线双方的身份验证
  [root@node2 heartbeat-2.1.4]# cp  /etc/init.d/ipvsadm   /etc/ha.d/resource.d/     #将ipvsadm的控制脚本拷贝到resource.d目录下
  [root@node2 heartbeat-2.1.4]# cd  /etc/ha.d/
  [root@node2 ha.d]# vim ha.cf       #编辑心跳探测的配置文件
  
  
  [root@node2 ha.d]# vim authkeys        #心跳双方的身份验证文件
  
  
  [root@node2 ha.d]# chmod 600 authkeys #根据文件内提示将authkeys的权限改为600
  [root@node2 ha.d]# vim haresources       #定义群集的抢夺资源
  
  [root@node2 ha.d]# service heartbeat start
  [root@node2 ha.d]# chkconfig heartbeat on       #将该服务设置为开机自动启动
  [root@node2 ha.d]# ifconfig       #使用该命令并没有查看到抢占的VIP
  配置realserver 1:
  一:配置内核参数:
  
  [root@lyt ~]# echo "net.ipv4.conf.eth0.arp_announce = 2">>/etc/sysctl.conf
  [root@lyt ~]# echo "net.ipv4.conf.all.arp_announce = 2">>/etc/sysctl.conf
  [root@lyt ~]# echo "net.ipv4.conf.eth0.arp_ignore = 1">>/etc/sysctl.conf
  [root@lyt ~]# echo "net.ipv4.conf.all.arp_ignore = 1">>/etc/sysctl.conf
  [root@lyt ~]# sysctl –p       #使新编辑的内核文件生效
  
  
  
  [root@lyt ~]# service network restart     #重启网络服务
  [root@lyt ~]# route add -host 192.168.145.101 dev lo:0      #添加一条路由,保证数据包返回时使用VIP地址192.168.145.101,出口是lo:0
  二:安装web服务器:
  [root@lyt ~]# mkdir /mnt/cdrom
  [root@lyt ~]# mount /dev/cdrom /mnt/cdrom/
  [root@lyt ~]# cd /mnt/cdrom/Server/
  [root@lyt Server]# rpm -ivh httpd-2.2.3-31.el5.i386.rpm     #安装httpd
  [root@lyt Server]# service httpd start
  [root@lyt Server]# chkconfig httpd on
  [root@lyt Server]# echo "realserver1 web1">/var/www/html/index.html      #编辑网页文件index.html
  配置realserver 2:
  一:配置内核参数:
  
  [root@localhost ~]# echo "net.ipv4.conf.eth0.arp_announce = 2">>/etc/sysctl.conf
  [root@localhost ~]# echo "net.ipv4.conf.all.arp_announce = 2">>/etc/sysctl.conf  
  [root@localhost ~]# echo "net.ipv4.conf.eth0.arp_ignore = 1">>/etc/sysctl.conf
  [root@localhost ~]# echo "net.ipv4.conf.all.arp_ignore = 1">>/etc/sysctl.conf
  [root@localhost ~]# sysctl –p      #使刚配置的内核参数生效
  
  
  
  [root@localhost ~]# service network restart
  [root@localhost ~]# route add -host 192.168.145.101 dev lo:0     #添加一条路由,使返回的数据包从VIP—192.168.145.101出去,出口是lo:0
  二:安装web服务器
  [root@localhost ~]# mkdir /mnt/cdrom
  [root@localhost ~]# mount /dev/cdrom /mnt/cdrom/
  [root@localhost ~]# cd /mnt/cdrom/Server/
  [root@localhost Server]# rpm -ivh httpd-2.2.3-31.el5.i386.rpm     #安装httpd服务器
  [root@localhost Server]# service httpd start      #启动httpd
  [root@localhost Server]# chkconfig httpd on      #开机自动启动
  [root@localhost Server]# echo "realserver2 web2">/var/www/html/index.html       #编辑网页文件
  测试:
  
  在director1上查看:
  [root@node1 ha.d]# ipvsadm –ln
  
  在director2上查看:
  
  [root@node1 ha.d]# cd /usr/lib/heartbeat/     #在node1.a.com上切换目录
  [root@node1 heartbeat]# ./hb_standby       #将node1.a.com设置为备份
  在director1上查看:
  
  在director2上查看:
  
  [root@node1 heartbeat]# ./hb_takeover       #将node1.a.com设置为主节点
  在director1上查看:
  
  在director2上查看:
  
  在上个案例中实现的手工方式建立ipvs表,也可以使用ldirectord自动创建ipvs表,当节点失效时,自动清除ipvs表。在上个案例中,如果要实现ldirectord,可以作如下修改:
  节点一node1.a.com
  [root@node1 ~]# yum localinstall heartbeat-ldirectord-2.1.4-9.el5.i386.rpm -y --nogpgcheck   #安装ldirectord
  [root@node1 ~]# rpm -ql heartbeat-ldirectord    #查看安装路径
  
  [root@node1 ~]# cp /usr/share/doc/heartbeat-ldirectord-2.1.4/ldirectord.cf /etc/ha.d/
  [root@node1 ~]# cd /etc/ha.d/
  [root@node1 ha.d]# vim ldirectord.cf       #编辑资源
  
  
  
  [root@node1 ha.d]# vim haresources
  
  节点二:node.a.com
  [root@node2 ~]# yum localinstall heartbeat-ldirectord-2.1.4-9.el5.i386.rpm  -y --nogpgcheck
  [root@node2 ~]# cp /usr/share/doc/heartbeat-ldirectord-2.1.4/ldirectord.cf  /etc/ha.d/
  [root@node2 ~]# cd /etc/ha.d/
  [root@node2 ha.d]# vim haresources      
  
  [root@node2 ha.d]# vim ldirectord.cf      #编辑资源
  
  
  




运维网声明 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-659588-1-1.html 上篇帖子: LVS负载均衡之负载算法(算法篇) 下篇帖子: LVS学习笔记之三种模式的特点概括
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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