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

[经验分享] L8.1 lvs+heartbeat

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2019-1-5 09:55:27 | 显示全部楼层 |阅读模式
lvs+heartbeat-ldirectord实现高可用负载均衡

  拓扑:
  

  
  IPVS规则与heartbeat

  ipvs规则不再使用ipvsadm配置,而是依靠heartbeat的包工具ldirectord去生成规则
  并且ldirectord有检测后端RS健康状况的机制(利用权重,非常正常剔除(w=0),正常后添加)。
  

  删除之前 heartbeat v2 crm lamp配置的约束和资源
  
  节点分别停止heartbeat:/etc/init.d/heartbeat stop

  

  规划
  ipvs-ld节点: 192.168.0.190  node1
  ipvs-ld点: 192.168.0.201 node2
  RS: 192.168.0.193 node3 ,192.168.0.202 node4
  lvs vip 192.168.0.199
  

  ldirectord依赖于自己的配置文件生成ipvs规则,因此,定义集群服务,添加RS都在配置文件中指定,而无需手动执行ipvsadm命令;
  ldirectord能对各RS的健康状态做检测,并能实现按需添加或者删除各RS。
  

  1,两个节点安装 heartbeat-ldirectord-2.1.4-12.el6.x86_64.rpm
  [root@node2 heartbeat2]# rpm -ivh heartbeat-ldirectord-2.1.4-12.el6.x86_64.rpm
error: Failed dependencies:
ipvsadm is needed by heartbeat-ldirectord-2.1.4-12.el6.x86_64
perl(LWP::Debug) is needed by heartbeat-ldirectord-2.1.4-12.el6.x86_64
perl(LWP::UserAgent) is needed by heartbeat-ldirectord-2.1.4-12.el6.x86_64
perl(Mail::Send) is needed by heartbeat-ldirectord-2.1.4-12.el6.x86_64

  [root@node2 heartbeat2]#yum install heartbeat-ldirectord-2.1.4-12.el6.x86_64.rpm -y
  依赖包如下:

  2,LVS,DR模式配置
  配置RS
  node3 ,node4主机分别同样配置主机:
  echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
  echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
  echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
   echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
  ifconfig eth0:0 192.168.0.199 broadcast 192.168.0.199 netmask 255.255.255.255
  sysctl -p
  route add -host 192.168.0.199 dev eth0:0
  /etc/init.d/httpd start
  curl 192.168.0.194
  配置DR主机ipvs
  ifconfig eth0:0 192.168.0.199 broadcast 192.168.0.199 netmask 255.255.255.255
  route add -host 192.168.0.199 dev eth0:0
  [root@node1 ~]# ipvsadm -A -t 192.168.0.199:80 -s rr
[
root@node1 ~]# ipvsadm -a -t 192.168.0.199:80 -r 192.168.0.202 -g -w 1
[
root@node1 ~]# ipvsadm -a -t 192.168.0.199:80 -r 192.168.0.194 -g -w 1

  访问测试成功:
  

  3,测试出成功后,删除ipvs规则;
  [root@node1 ~]# ipvsadm -C
[
root@node1 ~]# ipvsadm -L
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
[
root@node1 ~]# route del -host 192.168.0.199

  [root@node1 ~]# ifconfig eth0:0 down
  4,使用ldirectord文件配置规则
   cd /usr/share/doc/heartbeat-ldirectord-2.1.4/
  cp ldirectord.cf /etc/ha.d/
  配置文件说明:
  

  # Global Directives
checktimeout=3  #超时时间间隔
checkinterval=1 #向后端检查的时间,即每1秒检查一次,3秒超时。
#fallback=127.0.0.1:80 #sorry page
autoreload=yes  #自己不用做reload,文件改变后自动装载。
logfile="/var/log/ldirectord.log"       #自己的日志
#logfile="local0"
#emailalert="
admin@x.y.z"
#emailalertfreq=3600
#emailalertstatus=all
quiescent=yes

  ...
  

  以ftp为列说明:

  #virtual=192.168.6.240:21    #vip
#       real=192.168.16.3:21 masq    #rs
#       real=192.168.16.5:21 masq    #rs
#       fallback=127.0.0.1:21            #sorry page
#       service=ftp                            #表示用ftp协议检查
#       checkport=21                        #表示检查21号端口,在tcp层
#       scheduler=wlc                        #调度算法
#       scheduler=rr                            #调度算法
#       #persistent=600                #持久连接时间为600秒。注视表示没开启持久连接
#       #netmask=255.255.255.255
#       protocol=tcp                            #集群服务协议类型
#       checktype=negotiate                #协商类型检查,表示下面的登录和密码
#       login="anonymous"                #用anonymous登录
#       passwd="ldirectord@localhost"    #密码
#       request="welcome.msg"            #请求获取到welcome.msg文件
#       receive="test"                            #回答test字符串


  以http说明:
  virtual=192.168.6.240:80
        real=192.168.6.2:80 gate
        real=192.168.6.3:80 gate
        real=192.168.6.6:80 gate
        fallback=127.0.0.1:80 gate
        service=http
        request="index.html"   #请求哪个页面
        receive="Test Page"        #必须返回哪个字符串,RS才算是正常的
        virtualhost=some.domain.com.au    #对虚拟主机单独检测
        scheduler=rr
        #persistent=600
        #netmask=255.255.255.255
        protocol=tcp
        checktype=negotiate
        checkport=80
        request="index.html"
        receive="Test Page"
        virtualhost=www.x.y.z

  

  常用的检测类型:
  checktype = connect|external|negotiate|off|on|ping|checktimeoutN
  ip层:connect: syn ,ack就行了
  网络层:ping
  应用层:negotiate
  

  配置文件修改:
  # Sample for an http virtual service
  virtual=192.168.0.199:80
          real=192.168.0.194:80 gate
          real=192.168.0.202:80 gate
          fallback=127.0.0.1:80 gate
          protocol=tcp
          checkport=80
          checktype=negotiate
          service=http
          request=".health.html"
          receive="OK"
          scheduler=rr
          #persistent=600
          #netmask=255.255.255.255
  将配置文件复制到node2节点
  [root@node1 ha.d]# scp ldirectord.cf node2:/etc/ha.d/

  两台DR添加sorry page:
  vim /var/www/html/index.html
  node1 sorry server
  两台RS 添加.health.html
  vim /var/www/html/.health.html
  测试网页都能访问。
  5,配置hb_gui crm
  定义组ipvs
      定义集群ip clusterip
      定义 ipvs规则 ipsrules  (使用ldirectord定义)
  启动组






  6,测试
  注意:两个HA-DR应该开机自动启动httpd,sorry page页面展示
  sorry server页面,两台RS,httpd都stop,HA-LVS权重Weight 为1
  通过设置权重为0来剔除RS。


  





运维网声明 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-659546-1-1.html 上篇帖子: lvs+heartbeat 做负载均衡(二) 下篇帖子: LVS ipvsadm+heartbeat+ldirecrtord安装配置指南{未验证}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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