LVS之DR模式--Keepalived(高可用)

认识keepalived

keepalived观其名可知,保持存活,在网络里面就是保持在线了,也就是所谓的高可用或热备,用来防止单点故障(单点故障是指一旦某一点出现故障就会导致整个系统架构的不可用)的发生
主要提供 loadbalancing(负载均衡)和 high-availability(高可用)功能
负载均衡实现需要依赖Linux的虚拟服务内核模块(ipvs)
高可用是通过VRRP协议实现多台机器之间的故障转移服务
采用多进程的设计模式,每个进程负责不同的功能

VRRP 协议:

  • 用于实现路由器冗余的协议
  • 解决静态路由单点故障问题
  • 通过一种竞选(election)协议来实现虚拟路由器的功能

实验环境:

1.新建一个虚拟机server4并配置好ip和主机名

2.server1中:

tar zxf keepalive-2.0.6.tar.gz
yum install -y openssl-devel
./configure --prefix=/usr/local/keepalived --with-init=SYSV  编译keepalived的源码包
make && make install

chmod  +x /usr/local/keepalived/etc/rc.d/init.d/keepalived

 

编译好以后可以看见IPVS打开

 

 

server1和server4都需要制作如下制作软连接方便keepalived的管理与设置

 ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
 ln -s /usr/local/keepalived/etc/keepalived/keepalived.conf samples/
 ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
 ln -s /usr/local/keepalived/etc/keepalived/ /etc/
 ln -s /usr/local/keepalived/sbin/keepalived /sbin/

    在server1 中配置/keepalived的配置文件
    Keepalived配置文件详解:

    Keepalived的所有配置都在一个配置文件里面设置,支持的配置项主要分三类:

    全局配置(Global Configuration):作用于整个keepalived服务
    VRRPD配置:keepalived的核心
    虚拟服务配置:指定服务与负载均衡
    配置文件都是以块(block)形式组织的,每个块都在{ }包围的范围内

    #和!开头的行都是注释

vim /etc/keepalived/keepalived.conf

 vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

全局配置
----

global_defs {              #全局定义块
   notification_email {    #邮件通知
     sysadmin@localhost
   }
   #notification_email指定keepalived在发生事件(切换),需要发送email到的对象。可以有多个,每行一个。
   notification_email_from keepalive@localhost
   smtp_server 127.0.0.1     #smtp_*指定发送email的smtp服务器
   smtp_connect_timeout 30
   router_id LVS_DEVEL       #router_id运行keepalived的机器的一个标识,用于 email 警报
   vrrp_skip_check_adv_addr
   #vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

VRRPD配置
-------

vrrp_instance VI_1 {
##state指定instance的初始化状态,在两台router都启动后,马上会发生竞选,高priority的会竞选为Master,因而这里的state并不表示这台就一直是Master
    state MASTER              # 指定该节点为主节点,备用节点设置为BACKUP
    interface eth0            #绑定虚拟IP的网络接口
    virtual_router_id 1       #设置验证信息,两个节点需一致,取值 0-255
    priority 100              # 主节点的优先级,数值在1~254,注意从节点必须比主节点的优先级别低
    advert_int 1              #组播信息发送间隔,两个节点需一致
    authentication {
        auth_type PASS        #设置验证类型,主要有 PASS 和 AH 两种
        auth_pass 1111
    }
    ##指定漂移地址(VIP),即切换到MASTER时,这些IP会被添加,切换到BACKUP时,这些IP会被删除(传给ip addr命令),所以每台服务器可以不用绑定任何的虚拟地址。
       virtual_ipaddress {
        172.25.99.100          #指定虚拟IP,两个节点需设置一样
    }
}


虚拟服务配置
------

virtual_server 172.25.99.100 80 {
    delay_loop 3              #指定检查间隔
    lb_algo rr                #指定lvs算法
    lb_kind DR                #指定lvs模式为DR
    #persistence_timeout 50   #持久连接设置,会话保持时间,在此处需要注释
    protocol TCP              #指定转发协议类型,有 tcp 和 udp 两种
    #后端实际TCP服务配置
    real_server 172.25.99.2 80 {
        weight 1                ##默认为1,0为失效
        TCP_CHECK {          ##TCP方式的健康检查,realserve 的状态检测设置部分,单位是秒
            connect_timeout 3
            retry 3
            delay_before_retry 3
        }
    }
    real_server 172.25.99.3 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            retry 3
            delay_before_retry 3
        }
    }
}

 

将配置好的keepalived文件发送给备机(server4), 并做修改

/etc/init.d/keepalived start    
scp -r keepalived server4:/usr/local/

修改VRRPD配置如下

vrrp_instance VI_1 {
    state BACKUP      ##修改地方1
    interface eth0
    virtual_router_id 19
    priority 50       ##修改地方2

 

 

/etc/init.d/ldirectord stop    ## keepalived 可实现健康检查  所以关闭ldirectord
chkconfig ldirectord off

将server1(主)的keepalived服务关闭,则vip地址漂移到server4(备)

 

 

 

 

查看是否轮循:

curl 172.25.99.100

关掉server3的httpd服务

再次查看

再关闭server2httpd查看

server1:

mailq 查看邮件

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值