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

[经验分享] Centos6.3 上实现LVS+Keepalive实现http服务的双机热备

[复制链接]

尚未签到

发表于 2019-1-5 08:45:52 | 显示全部楼层 |阅读模式
  一、初始环境部署
  两台centos 6.3 均最小欢安装,初始化系统环境
  主机配置   master: 192.168.0.250 24
  backup: 192.168.0.249 24
  vip   : 192.168.0.66  24
  测试端: 192.168.0.252 24
  在两台主上均以下操作,配置本地yum源
  cd /etc/yum.repos.d/
  mv CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Vault.repo /root/
  vi CentOS-Media.repo
  [c6-media]
  name=CentOS-$releasever - Media
  baseurl=file:///mnt/
  file:///media/cdrom/
  file:///media/cdrecorder/
  gpgcheck=0
      enabled=1
      mount /dev/cdrom /mnt/
      安装基本编译工具,以及其他工具包
     
  yum -y install make gcc openssl-devel
  yum -y install lrzsz ipvsadm sendmail httpd
  二、安装lVS 和 keepalived 软件包
  查看内核是否支持lvs
  modprobe -l |grep ipvs
  kernel/net/netfilter/ipvs/ip_vs.ko
  kernel/net/netfilter/ipvs/ip_vs_rr.ko
  kernel/net/netfilter/ipvs/ip_vs_wrr.ko
  kernel/net/netfilter/ipvs/ip_vs_lc.ko
  kernel/net/netfilter/ipvs/ip_vs_wlc.ko
  kernel/net/netfilter/ipvs/ip_vs_lblc.ko
  kernel/net/netfilter/ipvs/ip_vs_lblcr.ko
  kernel/net/netfilter/ipvs/ip_vs_dh.ko
  kernel/net/netfilter/ipvs/ip_vs_sh.ko
  kernel/net/netfilter/ipvs/ip_vs_sed.ko
  kernel/net/netfilter/ipvs/ip_vs_nq.ko
  kernel/net/netfilter/ipvs/ip_vs_ftp.ko
  出现以上信息表示支持,kernel2.6 以后支持
  在www.keepalived.org 下载keepalived-1.2.15.tar.gz
  tar -zxvf keepalived-1.2.15.tar.gz
  cd keepalived-1.2.15
  ./configure --sysconf=/etc --with-kernel-dir=/usr/src/kernels/2.6.32-279.el6.x86_64
  make && make install
  ln -s /usr/local/sbin/keepalived /sbin/   (将keepalived指向/sbin/)
  vi /etc/keepalived/keepalived.conf
  ! Configuration File for keepalived
  

  global_defs {
  notification_email {
  18792525964@139.com     (这里是发送报警邮件地址)
  acassen@firewall.loc
  failover@firewall.loc
  sysadmin@firewall.loc
  }
  notification_email_from Alexandre.Cassen@firewall.loc
  smtp_server 192.168.0.250(这是邮件服务器地址)
  smtp_connect_timeout 30  (连接smtp服务超时时间)
  router_id LVS_DEVEL
  }
  

  vrrp_instance VI_1 {
  state MASTER              (制定服务器角色)
  interface eth0
  virtual_router_id 51      (虚拟路由id,一个集群id必须一样)
  priority 100              (角色优先级,数值越大优先级越高)
  advert_int 1              (master与backup同步检查的时间间隔,单位秒)
  authentication {
  auth_type PASS         (验证类型,有PASS和AH)
  auth_pass 1111         (验证密钥,两台机器必须一致)
  }
  virtual_ipaddress {
  192.168.0.66            (虚拟IP地址)
  }
  }
  

  virtual_server 192.168.0.66 80 {
  delay_loop 6               (运行情况检查时间间隔)
  lb_algo rr                 (设置负载调度算法)
  lb_kind DR                 (负载均衡机制,设置DR,还有NAT和TUN模式)
  nat_mask 255.255.255.0
  persistence_timeout 50
  protocol TCP               (设置传输协议为TCP)
  

  real_server 192.168.0.250 80 {
  weight 1                (服务器权值设置)
  TCP_CHECK {
  connect_timeout 3   (表示3秒无响应超市)
  nb_get_retry 3      (重试次数3次)
  delay_before_retry 3(重试时间间隔3秒)
  }
  }
  

  

  real_server 192.168.0.249 80 {
  weight 1
  TCP_CHECK {
  connect_timeout 3
  nb_get_retry 3
  delay_before_retry 3
  }
  }
  

  }
      在master主机上配置如上,在backup主机祝需要修改
      state BACKUP
      priority 90
      vi /etc/init.d/lvsrs  (编写realserver启动脚本)
     
  #!/bin/bash
  NS_VIP=192.168.0.66
  

  /etc/rc.d/init.d/functions
  

  case "$1" in
  start)
  /sbin/ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP up
  /sbin/route add -host $SNS_VIP dev lo:0
  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
  syscty -p > /dev/null 2>&1
  echo "RealServer Start Ok"
  ;;
  stop)
  ifconfig lo:0 down
  route del $SNS_VIP >/dev/null 2>&1
  echo "0" > /proc/sys/net/ipv4/conf/lo/arp_ignore
  echo "0" > /proc/sys/net/ipv4/conf/lo/arp_announce
  echo "0" > /proc/sys/net/ipv4/conf/all/arp_ignore
  echo "0" > /proc/sys/net/ipv4/conf/all/arp_announce
  echo "RealServer Stoped"
  ;;
  *)
  echo "Usage: $0 {start|stop}"
  exit 1
  esac
  exit 0
  

  chmod 755 /etc/init.d/lvsrs
  /etc/init.d/keepalived start
  /etc/init.d/lvsrs start
  三、测试配置正确
  在master上执行
  echo "This is master" > /var/www/html/index.html
  service httpd start
  在backup上执行
  echo "This is backup" > /var/www/html/index.html
  service httpd start
  两台机器均关闭防火墙
  service iptables stop
  在测试端浏览器输入http://192.168.0.66

  接着停掉master上的httpd服务
  service httpd stop

  我们可看到已经切换到backup服务器,检查backup的日志
  tail -f /var/log/messages
  Mar 12 03:35:22 backup Keepalived_healthcheckers[3123]: Removing service [192.168.0.249]:80 from VS [192.168.0.66]:80
  Mar 12 03:35:22 backup Keepalived_healthcheckers[3123]: SMTP connection ERROR to [192.168.0.250]:25.
  Mar 12 03:39:46 backup Keepalived_healthcheckers[3123]: TCP connection to [192.168.0.249]:80 success.
  Mar 12 03:39:46 backup Keepalived_healthcheckers[3123]: Adding service [192.168.0.249]:80 to VS [192.168.0.66]:80
  Mar 12 03:39:46 backup Keepalived_healthcheckers[3123]: Remote SMTP server [192.168.0.250]:25 connected.
  Mar 12 03:39:46 backup Keepalived_healthcheckers[3123]: Error reading data from remote SMTP server [192.168.0.250]:25.
  Mar 12 03:39:55 backup Keepalived_healthcheckers[3123]: TCP connection to [192.168.0.250]:80 failed !!!
  Mar 12 03:39:55 backup Keepalived_healthcheckers[3123]: Removing service [192.168.0.250]:80 from VS [192.168.0.66]:80
  Mar 12 03:39:55 backup Keepalived_healthcheckers[3123]: Remote SMTP server [192.168.0.250]:25 connected.
  Mar 12 03:39:55 backup Keepalived_healthcheckers[3123]: Error reading data from remote SMTP server [192.168.0.250]:25.
  注意:这里master宕机backup接管,master恢复backup依然提供服务,当backup宕机master才会接管服务!不是master恢复 服务又从backup切回master!
  双机热备功能已实现,你会了吗?
  





运维网声明 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-659502-1-1.html 上篇帖子: LVS之NET与DR模型的实现 下篇帖子: 构建高可用服务器之五 Keepalive冗余LVS
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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