zoukankan      html  css  js  c++  java
  • lvs + keepalived + httpd 高可用集群(转)

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

    ServerName Ipaddress information
    LVSMaster 172.16.100.10/24
    LVSBackup 172.16.100.11/24
    VIP 172.16100.200/24
    RealServer1 172.16.100.100/24
    RealServer2 172.16.100.101/24

    wKioL1RLqDST_kLeAAFvI0MNi8U637.jpg

    1. 配置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.sh  start

    1. 访问验证:

      1.任意关闭一台web服务器,服务都可以正常访问
      2.任意关闭一台lvs,服务都可以正常访问

    本文出自 “Sword Slave” 博客,请务必保留此出处http://diudiu.blog.51cto.com/6371183/1568003

  • 相关阅读:
    EyeWitness
    中间件解析漏洞
    反思
    【转载】python的logging模块
    RobotFramework中使用Exit For Loop If退出For循环
    python使用ssl的单向认证和双向认证的客户端代码
    使用iptables监测端口流量
    打开GUI面板通过可视化的形式来创建Vue项目
    C#程序设计: 猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒。
    递归算法
  • 原文地址:https://www.cnblogs.com/fatt/p/4424620.html
Copyright © 2011-2022 走看看