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

[经验分享] linux之LVS的DR模式搭建以及配置高可用管理LVS(heartbeat,keepalive)

[复制链接]

尚未签到

发表于 2019-1-4 09:42:36 | 显示全部楼层 |阅读模式
  LVS/DR
  Realserver:
  172.25.44.6
  172.25.44.7
  Virtualserver:
  VR3:172.25.44.3
  VR5:172.25.44.5
  Vip:172.25.44.100
  Lvs和realserver必须在同一网段
  ########################
  Virtualserver:
  ip addr add 172.25.44.100/24 dev eth0   ##添加vip
  ip addr show
  yum install ipvsadm -y
  ipvsadm -A -t 172.25.44.100:80 -s wlc   ##-A:添加一个虚拟服务; -t:tcp 服务;-s:算法
  ipvsadm -a -t 172.25.44.100:80 -r 172.25.44.6:80 -g  ##g:gate
  ipvsadm -a -t 172.25.44.100:80 -r 172.25.44.7:80 -g
  ipvsadm -l

/etc/init.d/ipvsadm start
  
  realserver:
  rs6和rs7都进行下列配置
  
  yum install httpd -y
  vim /var/www/html/index.html  ##两个服务端写不同内容以便测试
  /etc/init.d/httpd start
  yum install arptables_jf -y
  arptables -A IN -d 172.25.44.100 -j DROP
  arptables -A OUT -s 172.25.44.100 -j mangle  --mangle-ip-s 172.25.44.6
  arp协议不在对外广播RS上有vip,目的是让客户机Client访问VR上的vip。
  
  测试;
  物理机上用 arp -an |grep 172.25.44.100 检查vip运行的服务器
  浏览器访问 172.25.44.100 反复刷新网页,每次出现的网页不同则表示成功。
  Lvs不具备健康检查,当把一个RS6上的httpd服务停掉后,VR3仍会显示两个RS的策略,客户在访问的时候会仍会访问到发生错误的RS6上.
  如下图在物理机上测试访问vip:

  那么lvs需要配置健康检查,防止客户访问到错误的页面
  VR3需要下载软件包
  ldirectord-3.9.5-3.1.x86_64.rpm
  cp /usr/share/doc/ldirectord-3.9.5/ldirectord.cf /etc/ha.d/
  vim /etc/ha.d/ldirectord.cf

  fallback指的是当两个RS都坏掉后,就直接指向本地的http服务,所以一般指向本地后网页页面应为错误提示,提示用户停止继续访问。
  ipvsadm -C  ##清除策略
  ipvsadm -l  ##显示策略信息
  
  /etc/init.d/ldirectord start
  ipvsadm -l  ##检查是否显示策略
  测试:
  关闭RS7上的httpd服务
  ipvsadm -l

  策略只显示RS6,那么客户机在访问时是否VR只将数据包扔给RS6,进行数据处理。
  
  但是现在VR服务器只有一个,当VR发生问题时,则需要配置高可用集群管理
  现有两种高可用集群管理模式:heartbeatkeepalive
  配置方法如下所述:
  
  LVS/DR+HEARTBEAT
  添加一台VR5服务器,配置好heartbeats服务
  VR3:172.25.44.3
  VR5:172.25.44.5
  VR3和VR5的heartbeat服务需要配置好(两台服务器本身不需要绑定vip)(heartbeat配置详见上一文档)
  现在只需要改动
  /etc/ha.d/haresources

  server5.example.com IPaddr::172.25.44.100/24/eth1 httpd ldirectord(实验以server5作为主机,server3作为备机)
  Heartbeat服务开启时就可以自动开启 httpd ldirectord服务所以ldirectord服务和httpd在实验前处于关闭状态。现在集群配置完成
  
  测试:
  两边都打开heartbeat服务
  /etc/init.d/heartbeat start
  资源应先开启在主节点server5上,查看vip,ldirectord开启状态,并看策略文件。

  关闭server5结点上的heartbeat服务
  查看资源是否在server3上开启,并查看服务是否正常运行。手动打开server5上的heartbeat服务,测试资源是否会回到server5上。
  在测试过程中用arp -an | grep 172.25.44.100指令(在物理机上执行此指令)观察vip的运行点是否与server3或server5匹配(mac地址)
  
  Keepalives+LVS
  (heartbeat,ldirtoctty都停止)
  在node3和node5上配置keepalives
  
  Node5:
  编译原码keepalived服务
  tar zxf keepalived-1.2.24.tar.gz
  yum install gcc openssl-devel -y ##安装依赖软件
  cd keepalived-1.2.24
  ./configure --prefix=/usr/local/keepalived
  make && make install
  
  ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
  ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
  ln -s /usr/local/keepalived/etc/keepalived/ /etc/
  ln -s /usr/local/keepalived/sbin/keepalived /usr/sbin
  ##建立软连接
  
  vim /etc/keepalived/keepalived.conf

    3   global_defs {
    4    notification_email {
    5    root@localhost
    6 }
    7    notification_email_from keepalive@server5.example.com
    8    smtp_server 127.0.0.1
  
   17   vrrp_instance VI_1 {
   18     state MASTER
   19     interface eth1
   20     virtual_router_id 51    ##取值0-255
  
   27     virtual_ipaddress {
   28         172.25.44.100
   29     }
   30 }

  32 virtual_server 172.25.44.100 80 {
  34     lb_algo wlc    ##wlc算法
  35     lb_kind DR     ##DR模式
  36     #persistence_timeout 50
   37     protocol TCP
   39     real_server 172.25.44.6 80 {
   40         weight 1
   41         TCP_CHECK {
   42             connect_timeout 3
   43             nb_get_retry 3
   44             delay_before_retry 3
   45         }
   46     }
   47     real_server 172.25.44.7 80 {
   48         weight 1
   49         TCP_CHECK {
   50             connect_timeout 3
   51             nb_get_retry 3
   52             delay_before_retry 3
   53         }
   54     }
   55
   56 }   ##56行以下内容全部删除
  ~
  
  
  chmod +x /usr/local/keepalived/etc/rc.d/init.d/keepalived  ###添加执行权限
  scp -r /usr/local/keepalived/ 172.25.44.3:/usr/local   ##将编译后的配置文件传送到node3,node3上不必再进编译工作
  Node3:
  ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
  ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
  ln -s /usr/local/keepalived/etc/keepalived/ /etc/
  ln -s /usr/local/keepalived/sbin/keepalived /usr/sbin
  chmod +x /usr/local/keepalived/etc/rc.d/init.d/keepalived
  
  vim /etc/keepalived/keepalived.conf  ##只需要修改部分内容
   7    notification_email_from keepalive@server3.example.com
  18     state BACKUP
  
   两个节点都把keepalived配置好后,启动服务
  /etc/init.d/keepalived start        ##测试能否成功启动
  成功启动后,测试:
  1. 高可用测试:停止 master 上的 keepalived 服务,看 backup 是否接管。
  2. 负载均衡测试:访问 http://172.25.44.100,看到页面在两个 realserver 上切换表示成功!
  你也可以通过 ipvsadm -Lnc 查看详细连接情况!
  3. 故障切换测试:任意关闭 realserver 上的 httpd 服务,Keepalived 监控模块是否能及时发现(keepalived具备健康检查),然后屏蔽故障节点,同时将服务转移到正常节点来执行。
  
  
  
  
  
  
  
  




运维网声明 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-659188-1-1.html 上篇帖子: 使用LVS+heartbeat构建高可用web集群 下篇帖子: Heartbeat+Ldirectord+LVS+httpd集群部署
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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