码迷,mamicode.com
首页 > 其他好文 > 详细

LVS+Keepalived高可用群集

时间:2018-01-28 13:46:03      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:管理服务器   stat   工具   一个   out   /etc/   ret   email   address   

  • keeplived是专门针对LVS设计的一款辅助工具,主要功能是实现故障切换,类似HSRP热备份路由协议,HSRP是思科的私有协议,而VRRP是通用协议,都是为了实现故障切换,当一台路由器发生故障的时候,另一台马上接替工作,用户感觉不到服务器发生了问题,而且不会中断服务。
  • 双机热备是就是利用了VRRP虚拟路由冗余协议,和HRSP一样都拥有一个虚拟的ip地址对外提供服务,而不是真正的服务器ip地址,也拥有一台主服务器和多台备份服务器,优先级高的做主路由器,备份服务器处于冗余状态,当主服务器发生故障的时候,从服务器会变成主服务器,当主服务器修好之后,会重新成为主路由器。这里和HSRP不同的是,HSRP需要配置占先权,而这里不用配置,默认都有占先权。
  • .

    • keepalived的热备方式
      VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)
      一主 + 多备,共用同一个IP地址,但优先级不同
      .技术分享图片
    • 安装及服务控制
      先安装支持软件:
      kernel-devel、openssl-devel、popt-devel、ipvsadm
      再编译安装keepalived,需指定内核路径
      --prefix、--with-kernel-dir=
      使用Keepalived服务
      .
    • 配置文件keepalived.conf
      全局设置:global_defs { ... }
      热备设置:vrrp_instance 实例名称 { ... }
      样例文件位于:/etc/keepalived/samples/
      .

    .

    • 主服务器配置
      state:设置本节点状态,MASTER、BACKUP
      priority:设置竞选优先级,数值越大优先级越高
      virtual_ipaddress { ... }:设置漂移IP地址
      ……
    • 备用服务器配置
      router_id设为自有名称
      state设为BACKUP
      priority值低于主服务器
      —— 其余所有配置均与主服务器相同
      .
    • 负载均衡+高可用群集
      针对LVS调度器实现双机热备
      能够管理服务器池,自动隔离失效节点
      .
      LVS与keepalived的结合
      .
    • 主、从调度器配置要点
      DR模式必须调整 /proc参数(方法同第5章)
      清除VIP地址、清除ipvsadm策略
      配置keepalived双机热备,并添加服务器池设置
    • Web节点注意事项
      DR模式必须调整/proc参数、添加VIP地址及路由
      —— 具体方法见第5章
      .
    • LVS+HA群集的测试
      访问 http://172.16.16.172/,正常显示Web页面
      主、从调度器其中一台失效,站点访问及负载仍然正常
      只要保持至少一个Web节点有效,整个站点依然可用

    .
    LVS+Keepalived高可用群集
    技术分享图片
    .
    配置LVS+Keepalived高可用群集,LVS具体操作可看上篇文章,除了lvs的虚拟地址不需要配和nat不用做其他都相同,所以本篇LVS不在详解
    .
    配置主调度器
    .
    安装支持软件

     [root@centos1 /]# yum -y install kernel-devel openssl-devel popt-devel  
     [root@centos1 /]#  umount /dev/cdrom /media/
     [root@centos1 /]#  mount /dev/cdrom /media/
     [root@centos1 /]#  cd /media/
     [root@centos1 /]# ls
     [root@centos1 /]#  tar zxf keepalived-1.2.13.tar.gz -C /usr/src/

    .
    编译安装Keepalived

     [root@centos1 /]# cd /usr/src/keepalived-1.2.13/
     [root@centos1 /]#  ./configure --prefix=/ --with-kernel-dir=/usr/src/kernels/2.6.32-431.el6.x86_64/ && make && make install

    .

    使用Keepalived服务

     [root@centos1 /]#  chkconfig --add keepalived
     [root@centos1 /]#  chkconfig leepalived on
     [root@centos1 /]#  chkconfig keepalived on

    .
    配置主调度器

     [root@centos1 /]#  vim /etc/keepalived/keepalived.conf 
    
    ! Configuration File for keepalived
    
    global_defs {
       notification_email {     //接收邮件的地址,需要postfix,这里可不写
         acassen@firewall.loc
         failover@firewall.loc
         sysadmin@firewall.loc
       }
       notification_email_from Alexandre.Cassen@firewall.loc
       smtp_server 127.0.0.1    //邮件服务器地址,这里填本机
       smtp_connect_timeout 30
       router_id R1         //主调度器名称,与从调度器名称不能相同
    }
    
    vrrp_instance VI_1 {
        state MASTER        //主服务器MASTER,从服务器填BACKUP
        interface eth0      //外网卡名称不一定是eth0
        virtual_router_id 1     //虚拟路由器ID主从要一致
        priority 100        //优先级100,主要比从大
        advert_int 1        //心跳频率1秒
        authentication {
            auth_type PASS
            auth_pass 1111      //主从密码要一致
        }
        virtual_ipaddress {
            172.16.16.172       //群及地址
        }
    }
    
    virtual_server 172.16.16.172 80 {   //虚拟服务器地址端口
        delay_loop 6        //健康检查时间6秒
        lb_algo rr          //轮训调度算法rr
        lb_kind DR          //路由模式DR
        persistence_timeout 50  //保持时间50秒
        protocol TCP        //协议tcp
    
        real_server 172.16.16.177 80 {  //web节点A的地址端口
        weight 1        //权重 1
        TCP_CHECK {
            connect_port 80
            connect_timeout 3   //连接超时3秒
            nb_get_retry 3      //重复3次
            delay_before_retry 3    //重复间隔3秒
        }
        }
    
        real_server 172.16.16.178 80 {
            weight 1
        TCP_CHECK {
            connect_port 80
            connect_timeout 3   
            nb_get_retry 3      
            delay_before_retry 3    
        }
        }
        }

    .
    重启keepalived服务

     [root@centos1 /]#  service keepalived start
    
     [root@centos1 /]#  ip addr show dev eth0
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP
    qlen 1000
        link/ether 00:0c:29:7d:92:43 brd ff:ff:ff:ff:ff:ff
        inet 172.16.16.173/16 brd 172.16.255.255 scope global eth0
        inet 172.16.16.172/32 scope global eth0 //虚拟地址
        inet6 fe80::20c:29ff:fe7d:9243/64 scope link 
           valid_lft forever preferred_lft forever

    .
    从调度服务器的配置
    首先安装keepalived,和主服务器一样,在配置的时候主要有三个地方不一样:优先级99,调度器名称R2,热备状态为BACKUP
    .
    另一台lvs安装完可用[root@centos1 /]# scp root@(IP):/远程路径 /本地路径
    .
    在从调度器查看 [root@centos1 /]# ip addr show dev eth0
    则不会出现虚拟地址

    route_id R2
    state BACKUP
    priority 99
    .
    测试访在客户端访问
    技术分享图片
    .
    断开一个lvs再次测试
    .
    技术分享图片

    LVS+Keepalived高可用群集

    标签:管理服务器   stat   工具   一个   out   /etc/   ret   email   address   

    原文地址:http://blog.51cto.com/13555423/2065959

    (0)
    (0)
       
    举报
    评论 一句话评论(0
    登录后才能评论!
    © 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
    迷上了代码!