kjhn 发表于 2014-10-27 09:45:42

lvs + keepalived + httpd 高可用集群

实验信息和拓扑:
备注:Centos 6.5 selinux –disabled iptables off

ServerNameIpaddress information
LVSMaster172.16.100.10/24
LVSBackup172.16.100.11/24
VIP172.16100.200/24
RealServer1172.16.100.100/24
RealServer2172.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,服务都可以正常访问

页: [1]
查看完整版本: lvs + keepalived + httpd 高可用集群