高可用keepalived

21.高可用之keepalived            
    keepalived实现wrrp热网关备份:
        配置网关上的keepalived,配置文件如下
            主:
                ! Configuration File for keepalived

global_defs {
  notification_email {
    acassen@firewall.loc
    failover@firewall.loc
    sysadmin@firewall.loc
  }
  notification_email_from root@node1.com     //管理员邮箱
  smtp_server 127.0.0.1            //邮箱服务器
  smtp_connect_timeout 30          //邮箱连接超时
  router_id CentOS7-node1          //本地主机名
  vrrp_mcast_vgroup4 224.0.100.9     //进行心跳测试的组播地址
}

vrrp_instance vr {     //定义一个网络名字vr
   state MASTER            //此设备状态为MASTER
   interface enp0s3         //端口
   virtual_router_id 51     //定义一个唯一的标识缟号
   priority 100             //定义此设备的优先级
   advert_int      //每一次进行组播的时间间隔
   authentication {    //认证方式
       auth_type PASS   //认证类型
       auth_pass 1111    //认证字符串
   } 
   virtual_ipaddress {    //虚拟地址
       172.18.35.111/16 dev enp0s3    虚拟地址与设备
   }
}
            备:
                ! Configuration File for keepalived

global_defs {
  notification_email {
    acassen@firewall.loc
    failover@firewall.loc
    sysadmin@firewall.loc高可用之keepalived            
    keepalived实现wrrp热网关备份:
        配置网关上的keepalived,配置文件如下
            主:
                ! Configuration File for keepalived

global_defs {
  notification_email {
    acassen@f
  }
  notification_email_from root@node2.com
  smtp_server 127.0.0.1
  smtp_connect_timeout 30
  router_id CentOS6-node2
  vrrp_mcast_vgroup4 224.0.100.9
}

vrrp_instance vr {
   state BACKUP
   interface eth0
   virtual_router_id 51
   priority 98
   advert_int 1
   authentication {
       auth_type PASS
       auth_pass 1111
   }
   virtual_ipaddress {
       172.18.35.111/16 dev eth0
   }
} 配置含意同上
    keepalived的双主模式:
        ! Configuration File for keepalived

global_defs {
  notification_email {
    acassen@firewall.loc
    failover@firewall.loc
    sysadmin@firewall.loc
  }
  notification_email_from root@node1.com
  smtp_server 127.0.0.1
  smtp_connect_timeout 30
  router_id CentOS7-node1
  vrrp_mcast_vgroup4 224.0.100.9
}

vrrp_instance vr {    //第一个vr主
   state MASTER
   interface enp0
   virtual_router_id 51   //第一个主的唯一缟号
   priority 100            //第一个主的优先级
   advert_int 1      //组播间隔时间
   authentication {
       auth_type PASS
       auth_pass 1111
   }
   virtual_ipaddress {
       172.18.35.111/16 dev enp0s3    //第一个热备的地址与接口
   }
}

vrrp_instance vr1 {    //第二个从vr1
   state BACKUP     //定义了备
   interface enp0s3     //定义接口
   virtual_router_id 52   //定义第二个唯一值
   priority 98    //定义备份服务器的优先级
   advert_int 1    //定义组播广播间隔时间
   authentication {
       auth_type PASS
       auth_pass 1235    //定义了第二个热备的认证字符
   }
   virtual_ipaddress {
       172.18.35.112/16 dev enp0s3   //定义了第二个热备的地址与接口
       }
}
keepalived实现LVS的高可用性

        拓扑图:

        高可用keepalived

            keepalived_LVS_HA.png
        配置RS脚本:

!/bin/bash

VIP=”172.18.35.103″
Device=”lo:0″
MASK=”255.255.255.255″
case $1 in
start)
   echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
   echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
   echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
   echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
   ifconfig $Device $VIP netmask $MASK broadcast $VIP up
   route add -host $VIP dev $Device
   ;;
stop)
   echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore
   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_announce
   ifconfig $Device down
   route del -host $VIP dev $Device
   ;;
*)
   echo “Usage $(basename $0) {start|stop}”;;
esac
        配置VS的keepalived:配置文件内容如下
            keepalived主服务器配置 
           ! Configuration File for keepalived

global_defs {
  notification_email {
    acassen@firewall.loc
  }
  notification_email_from root@node1.com
  smtp_server 127.0.0.1
  smtp_connect_timeout 30
  router_id CentOS7-node1
  vrrp_mcast_vgroup4 224.0.100.9
}

vrrp_instance vr {
   state MASTER
   interface enp0s3
   virtual_router_id 51
   priority 100
   advert_int 1
   authentication {
       auth_type PASS
       auth_pass 1111
   }
   virtual_ipaddress {
       172.18.35.103/16 dev enp0s3
   }
}

virtual_server 172.18.35.103 80 {    //配置LVS的VIP与vprot
   delay_loop 3            //延迟时间
   lb_algo wrr             //采用wrr算法
   lb_kind DR              //使用LVS的DR模型
   #persistence_timeout 30  //这个是定义长连接时间的
   protocol TCP    //使用的传输层协议,目前只支持TCP协议
   sorry_server 127.0.0.1 80    //定义的sorry服务器的地址与端口
   real_server 172.18.250.38 80 {    //定义一个RS,此处说明地址与端口
       weight 2    //服务器性能参数,权重
       HTTP_GET {     //定义健康监测,此处为应用协议
           url {
               path /     //访问的uri
               status_code 200    //反回响应状态码
           }
       }
   }
   real_server 172.18.250.24 80 {    //第二个RS
       weight 1
       HTTP_GET {
           url {
               path /
               status 200
           }
       }
   }
   connect_timeout 1
   ng_get_retry 3
   delay_before_retry 1
}
keepalived从服务器配置:
                同主的配置,只有vrrp略有差异,下面为vrrp段配置
                    vrrp_instance vr {
   state BACKUP
   interface eth0
   virtual_router_id 51
   priority 98
   advert_int 1
   authentication {
       auth_type PASS
       auth_pass 1111
   }
   virtual_ipaddress {
       172.18.35.103/16 dev eth0
   }
}
    keepalived实现LVS的双主模式
        这里贴keepalive的主配置文件,其它配置与上一示例相同,配置内容如下
            ! Configuration File for keepalived

global_defs {
  notification_email {
    acassen@firewall.loc
  }
  notification_email_from root@node1.com
  smtp_server 127.0.0.1
  smtp_connect_timeout 30
  router_id CentOS7-node1
  vrrp_mcast_vgroup4 224.0.100.9
}

vrrp_instance vr {
   state MASTER
   interface enp0s3
   virtual_router_id 51
   priority 100
   advert_int 1
   authentication {
       auth_type PASS
       auth_pass 1111
   }
   virtual_ipaddress {
       172.18.35.103/16 dev enp0s3
   }
}

vrrp_instance vr1 {
   state BACKUP
   interface enp0s3
   virtual_router_id 52
   priority 98
   advert_int 1
   authentication {
       auth_type PASS
       auth_pass 1234
   }
   virtual_ipaddress {
       172.18.35.111/16 dev enp0s3
   }
}

virtual_server 172.18.35.103 80 {
   delay_loop 3
   lb_algo wrr
   lb_kind DR
   #persistence_timeout 30
   protocol TCP
   sorry_server 127.0.0.1 80
   real_server 172.18.250.38 80 {
       weight 2
       HTTP_GET {
           url {
               path /
               status 200
           }
       }
   }
   real_server 172.18.250.24 80 {
       weight 1
       HTTP_GET {
           url {
               path /
               status 200
           }
       }
   }
   connect_timeout 1
   ng_get_retry 3
   delay_before_retry 1
}

virtual_server 172.18.35.111 80 {
   delay_loop 3
   lb_algo wrr
   lb_kind DR
   #persistence_timeout 30
   protocol TCP
   sorry_server 127.0.0.1 80
   real_server 172.18.250.38 80 {
       weight 1
       HTTP_GET {
           url {
               path /
               status 200
           }
       }
   }
   connect_timeout 1
   ng_get_retry 3
   delay_before_retry 1
}

virtual_server 172.18.35.111 80 {
   delay_loop 3
   lb_algo wrr
   lb_kind DR
   #persistence_timeout 30
   protocol TCP
   sorry_server 127.0.0.1 80
   real_server 172.18.250.38 80 {
       weight 1
       HTTP_GET {
           url {
               path /
               status 200
           }
       }
   }
   real_server 172.18.250.24 80 {
       weight 1
       HTTP_GET {
           url {
               path /
               status 200
           }
       }
   }
   connect_timeout 1
   ng_get_retry 3
   delay_before_retry 1
}
        注:由于这个双主需要的是两VIP,所以备RS上必须建立两个回环地址也就是lo:0与lo:1,两次配置一样,也需要添加路由
    使用keepalived配置nginx负载均衡的高可用性
        配置nginx,在http段加入如下内容,将所有的server全部注释掉,两个nginx配置相同
            upstream websrvs{
       ip_hash;
       server 172.18.250.38 weight=1;
       server 172.18.250.24 weight=2;
   }
   server {
       listen *:80;
       location / {
           proxy_pass http://websrvs;
       }
   }
        在master上配置keepalived
      ! Configuration File for keepalived

global_defs {
  notification_email {
    acassen@firewall.loc
 }
  notification_email_from root@node1.com
  smtp_server 127.0.0.1
  smtp_connect_timeout 30
  router_id CentOS7-node1
  vrrp_mcast_vgroup4 224.0.100.9
}

vrrp_script nginx_check {
   script “killall -0 nginx && exit 0 || exit 1”
   interval 1
   weight 5
   full 2
   rise 1
}

vrrp_instance vr {
   state MASTER
   interface enp0s3
   virtual_router_id 51
   priority 100
   advert_int 1
   authentication {
       auth_type PASS
       auth_pass 1111
   }
   track_script {
       nginx_check
   }
   virtual_ipaddress {
       172.18.35.103/16 dev enp0s3
   }

原创文章,作者:gaomei,如若转载,请注明出处:http://www.178linux.com/75748

(0)
gaomeigaomei
上一篇 2017-05-15 15:46
下一篇 2017-05-15 16:18

相关推荐

  • N25第六周总结:vim编辑器详解

    vim编辑器 一、      大纲 1、   什么是vim编辑器 2、   为什么要使用vim编辑器 3、   vim编辑器能实现哪些功能 4、   vim编辑器详解   二、   &nbs…

    Linux干货 2017-01-12
  • 第二周博客作业

    1.Linux上的文件管理类命令都有那些,其常用的使用方法及其相关示例演示。
    2.Bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。
    3.请使用命令行展开功能来完成以下的练习。
    4.文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
    5.如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?
    6.显示/var目录下所有以1开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其他字符)的文件或目录。
    7.显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
    8.显示/etc目录下,以非字母开头,后面跟了一个字母以及其他任意长度任意字符的文件或目录。
    9.在/tmp目录下创建以tgile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22
    10.复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
    11.复制/etc目录下所有以.d结尾的文件或目录到/tmp/mytest2目录中。
    12.复制/etc目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。

    2018-03-22
  • 第十二周作业

      1、描述一次完整的http请求处理过程 简介 一次完整的HTTP请求过程从TCP三次握手建立连接成功后开始,客户端按照指定的格式开始向服务端发送HTTP请求,服务端接收请求后,解析HTTP请求,处理完业务逻辑,最后返回一个HTTP的响应给客户端,HTTP的响应内容同样有标准的格式。无论是什么客户端或者是什么服务端,大家只要按照HTTP的协议标准…

    2017-11-12
  • 2、文件通配符,文件创建、复制等操作

    1:bash特性之状态返回值 变量$?,用于保存命令执行成功与否的状态,0表示成功,1-255表示失败,以命令ls为例: 执行成功 [root@localhost ~]# ls /usr/     bin  etc  games &nbsp…

    Linux干货 2016-09-19
  • IP地址与网络配置方式

    IP 地址 它们可唯一标识IP网络中的每台设备 每台主机(计算机、网络设备、外围设备)必须具有唯一的地址 IP地址由两部分组成: (总共32位) 网络ID: 标识网络 每个网段分配一个网络ID 主机 ID: 标识单个主机 由组织分配给各设备   IP 地址分类 32位IP=网络ID+主机ID A 类: 前8位是网络ID位,后24位是主机ID位 00…

    2017-05-07
  • Linux文件查找之find命令

    前言:        Linux文件种类繁多,难免在维护Linux中会忘记文件的路径。所有在维护Linux中学好查找命令是非常必要的。     Linux查找命令有很多,比如 whereis,type,which,locate,find(重点)。  &nbsp…

    Linux干货 2015-06-15