2216609207 发表于 2015-9-4 09:24:41

lvs + keepalived + httpd 高可用集群(转)

  实验信息和拓扑:
备注:Centos 6.5 selinux –disabled iptables off
ServerNameIpaddress informationLVSMaster172.16.100.10/24LVSBackup172.16.100.11/24VIP172.16100.200/24RealServer1172.16.100.100/24RealServer2172.16.100.101/24

[*]  配置lvs Master & lvs Backup
  # yum install popt popt-devel popt-static libnl-devel libnl–y
  # mkdir -p mkdir /usr/local/src/lvs
  # cd /usr/local/src/lvs/
  安装ipvsadm
  # wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.26.tar.gz
  # tar zxvf ipvsadm-1.26.tar.gz
  # make && make install && echo"install LVS ok"
  安装keepalived
  # wget http://www.keepalived.org/software/keepalived-1.2.13.tar.gz
  # tar zxvf keepalived-1.2.13.tar.gz
  # cd keepalived-1.2.13
  # ./configure && make && make install && echo "installkeepalived ok" || echo "install keepalived is failed"
  配置keepalived为启动脚本:
  # cp /usr/local/etc/rc.d/init.d/keepalived/etc/init.d/
  # cp /usr/local/etc/sysconfig/keepalived/etc/sysconfig/
  # mkdir /etc/keepalived
  # cp /usr/local/etc/keepalived/keepalived.conf/etc/keepalived/
  # cp /usr/local/sbin/keepalived/usr/sbin/
  LVS Backup 配置同上
  Master keepalived.conf配置文件:
  !Configuration File for keepalived
  global_defs{
  notification_email {
  mengtao10@163.com
  }
  notification_email_from mengtao10@163.com
  smtp_server 127.0.0.1
  router_id LVS_DEVEL
  }
  vrrp_instanceVI_1 {
  state MASTER            
  interface eth0
  virtual_router_id 51
  priority 100   
  advert_int 1
  authentication {
  auth_type PASS
  auth_pass 1q2w3e4r5t6y
  }
  virtual_ipaddress {
  172.16.100.200
  }
  }
  virtual_server172.16.100.200 80 {
  delay_loop 6                  
  lb_algo wrr                  
  lb_kind DR                  
  persistence_timeout 60         
  protocol TCP               
  real_server 172.16.100.100 80 {
  weight 3               
  TCP_CHECK {
  connect_timeout 10      
  nb_get_retry 3
  delay_before_retry 3
  connect_port 80
  }
  }
  real_server 172.16.100.101 80 {
  weight 3
  TCP_CHECK {
  connect_timeout 10
  nb_get_retry 3
  delay_before_retry 3
  connect_port 80
  }
  }
  }
  Lvs Backup配置文件:
  ! Configuration File for keepalived
  global_defs{
  notification_email {
  mengtao10@163.com
  }
  notification_email_from mengtao10@163.com
  smtp_server 127.0.0.1
  router_id LVS_DEVEL
  }
  vrrp_instanceVI_1 {
  state BACKUP            
  interface eth0
  virtual_router_id 51
  priority 99   
  advert_int 1
  authentication {
  auth_type PASS
  auth_pass 1q2w3e4r5t6y
  }
  virtual_ipaddress {
  172.16.100.200
  }
  }
  virtual_server172.16.100.200 80 {
  delay_loop 6                  
  lb_algo wrr                  
  lb_kind DR                  
  persistence_timeout 60         
  protocol TCP               
  real_server 172.16.100.100 80 {
  weight 3               
  TCP_CHECK {
  connect_timeout 10      
  nb_get_retry 3
  delay_before_retry 3
  connect_port 80
  }
  }
  real_server 172.16.100.101 80 {
  weight 3
  TCP_CHECK {
  connect_timeout 10
  nb_get_retry 3
  delay_before_retry 3
  connect_port 80
  }
  }
  }
  两台realserver配置脚本如下:
  
  #!/bin/bash
  #
  # Script to start LVS DR real server.
  # description: LVS DR real server
  #
  . /etc/rc.d/init.d/functions
  
  VIP=172.16.100.200
  host=`/bin/hostname`
  
  case "$1" in
  start)
  # Start LVS-DR real server on this machine.
  /sbin/ifconfig lo down
  /sbin/ifconfig lo up
  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
  
  /sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
  /sbin/route add -host $VIP dev lo:0
  
  ;;
  stop)
  
  # Stop LVS-DR real server loopback device(s).
  /sbin/ifconfig lo:0 down
  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
  
  ;;
  status)
  
  # Status of LVS-DR real server.
  islothere=`/sbin/ifconfig lo:0 | grep $VIP`
  isrothere=`netstat -rn | grep "lo:0" | grep $VIP`
  if [ ! "$islothere" -o !"isrothere" ];then
  # Either the route or the lo:0 device
  # not found.
  echo "LVS-DR real server Stopped."
  else
  echo "LVS-DR real server Running."
  fi
  ;;
  *)
  # Invalid entry.
  echo "$0: Usage: $0 {start|status|stop}"
  exit 1
  ;;
  esac
  
  # sh realserver.shstart
  

[*]  访问验证:
  1.任意关闭一台web服务器,服务都可以正常访问
2.任意关闭一台lvs,服务都可以正常访问
  
  本文出自 “Sword Slave” 博客,请务必保留此出处http://diudiu.blog.iyunv.com/6371183/1568003
页: [1]
查看完整版本: lvs + keepalived + httpd 高可用集群(转)