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

[经验分享] keepalived+LVS高可用Director Server

[复制链接]

尚未签到

发表于 2018-10-23 07:17:26 | 显示全部楼层 |阅读模式
  RHEL6.6_x86_64
  主要软件:
  keepalived-1.2.16.tar.gz
  ipvsadm-1.26-4.el6.x86_64.rpm
  Keepalived是一种高性能的服务器高可用解决方案,架构不同于corosync和heartbeat。Keepalived的实现是基于VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议),VRRP是一种容错协议。一个网络内的所有主机都设置有一条默认路由,这样,主机发出的目的地址不在本网段的报文将通过默认路由发送往RouterA,从而实现主机与外网通信。当RouterA挂掉,本网段中所有以RouterA为默认路由下一跳的主机将不能与外网通信。VRRP就是解决这一问题而出现的。
  VRRP将局域网的(两台或以上)路由器虚拟成一个设备,对外提供虚拟路由器IP,在路由器组内部,若实际拥有这个对外IP的路由器工作正常的话就是MASTER,MASTER实现针对虚拟路由器IP的各种网络功能,如ARP请求,ICMP,数据转发等。其他设备不拥有该IP,则是BACKUP,BACKUP只接收MASTER的VRRP状态通告信息。当MASTER宕掉,BACKUP接管MASTER的网络功能。
DSC0000.jpg

  在这个结构图里,处于下端的是内核空间,它包括 ipvs 和 NETLINK 两个部分。netlink 提供高级路由及其他相关的网络功能,如果我们在负载均衡器上启用 netfilter/iptable,将会直接影响它的性能。出于图形上方的组件为用户空间,
  1、 WatchDog 负责监控 checkers 和 VRRP 进程的状况。
  2、 Checkers 负责真实服务器的健康检查 healthchecking,是 keepalived 最主要的功能。
  3、 VRRP Stack 负责负载均衡器之间的失败切换 FailOver. 如果只用一个负载均衡器,则VRRP 不是必须的。
  4、 IPVS wrapper 用来发送设定的规则到内核 ipvs 代码。
  5、 Netlink Reflector 用来设定 vrrp 的 vip 地址等。
  Master_DS : 192.168.1.5
  Backup_DS : 192.168.1.8
  RS1:192.168.1.6
  RS2: 192.168.1.7
  VIP: 192.168.1.10
  编译安装keepalived
  # tar xf keepalived-1.2.16.tar.gz
  # cd keepalived-1.2.16
  # ./configure --prefix=/usr/local/keepalived --sysconfdir=/etc
  # make
  # make install
  配置keepalived
  vim /etc/keepalived/keepalived.conf
  ! Configuration File for keepalived
  global_defs {
  notification_email {    #keepalived状态切换时通知email出现故障,邮件报警
  root@localhost
  }
  notification_email_from keepalived@localhost #指定发件人
  smtp_server 127.0.0.1  #smtp服务器地址
  smtp_connect_timeout 30 #smtp连接超时时间
  router_id LVS_DEVEL    #运行keepalived机器的一个标识
  }
  vrrp_instance VI_1 {
  state MASTER         #配置为主
  interface eth1       #通讯网卡
  virtual_router_id 51 #路由标识
  priority 100         #优先级
  advert_int 1         #通告时间间隔:发送通告报文的时间间隔。在VRRPVersion2中单位为秒,默认值为1秒。
  authentication {
  auth_type PASS
  auth_pass 1111  #验证密码,通讯主机间验证
  }
  virtual_ipaddress {  #虚拟IP地址
  192.168.1.10/24 dev eth1 label eth1:0
  }
  }
  virtual_server 192.168.1.10 80 {
  delay_loop 6
  lb_algo rr    # rr调度算法, 有rr|wrr|lblc|sh|sh
  lb_kind DR    # DR模型
  nat_mask 255.255.255.0
  #persistence_timeout 50
  protocol TCP
  sorry_server 127.0.0.1 80  #所有RS故障,重定向到本机
  real_server 192.168.1.6 80 {
  weight 1    #权重,0为失效
  TCP_CHECK {
  connect_timeout 3    #连接超时时间
  nb_get_retry 3       #重试次数
  delay_before_retry 3#重试时间间隔
  }
  }
  real_server 192.168.1.7 80 {
  weight 1
  TCP_CHECK {
  connect_timeout 3
  nb_get_retry 3
  delay_before_retry 3
  }
  }
  }
  # yum install ivsadm
  192.168.1.8主机中
  安装keepalived同192.168.1.5
  配置文件中:
  将“state MASTER" 改为 ”state BACKUP"
  将"priority 100"改为比100小的值,这里改为“priority 70".
  # yum install ipvsadm
  配置Real server
  编写Real Server脚本
  #/bin/bash
  # Author xiaoming
  # mail: xiaoming.linux@gmail.com
  VIP=192.168.1.10
  . /etc/init.d/functions
  case "$1" in
  start)
  echo "Start Real Server "
  /sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
  route add -host $VIP dev lo:0
  echo 1 > /proc/sys/net/ipv4/conf/eth1/arp_ignore
  echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
  echo 2 > /proc/sys/net/ipv4/conf/eth1/arp_announce
  echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
  ;;
  stop)
  echo "Stop Real Server"
  /sbin/ifconfig lo:0 down
  route del $VIP
  echo 0 > /proc/sys/net/ipv4/conf/eth1/arp_ignore
  echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore
  echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce
  echo 0 > /proc/sys/net/ipv4/conf/eth1/arp_announce
  ;;
  *)
  echo "Usage: $0 {start|stop}"
  exit 1
  esac
  分别在Real Server1和Real Server2上执行此脚本
  配置完毕,分别在director server上启动keepalived服务,
  # service keepalivedstart
  查看LVS路由表信息
  # ipvsadm -Ln
  IP Virtual Server version 1.2.1 (size=4096)
  Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
  TCP  192.168.1.10:80 rr
  -> 192.168.1.6:80               Route   1      0          0
  -> 192.168.1.7:80               Route   1      0          0


运维网声明 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-625138-1-1.html 上篇帖子: no-sql数据库适用情况,特点 下篇帖子: SQL注入中的WAF绕过技术
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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