DR模式下的LVS高可用

我们在用LVS做负载均衡的时候因该要考虑到如果我们的调度器挂掉,那岂不是整个服务器都瘫痪掉了,那么此时我们就因该给它加上一个高可用来放置单点故障

高可用的LVS(DR模式)(HA+LB)

在这里我们要用的高可用软件是keepalived
keeplived:

keepalived是集群管理中保证高可用的一个服务软件,用来防止单点故障,这种故障切换是通过VRRP协议来实现的,主节点 在一定的时间间隔中发送心跳信息的广播包,告诉自己的存活状态信息,当主节点发生故障时,各从节点在一段时间内收到广 播包,从而判断主节点是否发生了故障,因此会调用自己的接管程序来接管主节点的IP资源和服务,当主节点恢复时,备节点 会主动释放资源,恢复到接管前状态,从而实现主备故障切换。

VRRP( Virtual Router Redundancy Protocol )协议:

网络在设计的时候必须考虑到冗余容灾,包括线路冗余,设备冗余等,防止网络存在单点故障,那在路由器或三层交换机处实现冗余就显得尤为重要,在网络里面有个协议就是来做这事的,这个协议就是VRRP协议,Keepalived就是巧用VRRP协议来实现高可用性(HA)的。
1.用于实现路由器冗余的协议
2.解决静态路由单点故障问题
3.通过一种竞选(election)协议来实现虚拟路由器的功能

LVS高可用配置

1.我们再上一个实验的基础上再机爱能力一个虚拟机server4,使他成为备份调度器

在这里插入图片描述
2.我们在server1上安装keepalived

在这里插入图片描述
安装一个依赖性

在这里插入图片描述
进行源码编译

./configure --prefix=/usr/local/keepalived --with-init=SYSV
make (默认makefile文件)
make install

在这里插入图片描述
在这里插入图片描述
3.制作软连接方便keepalived的管理与设置,并给它执行权限

ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
ln -s /usr/local/keepalived/etc/keepalived/ /etc/
ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
ln -s /usr/local/keepalived/sbin/keepalived /sbin/
chmod +x /usr/local/keepalived/etc/rc.d/init.d/keepalived

在这里插入图片描述
4.把server1中源码编译好的keepalived发送给server4,在server4中做同样的软连接
在这里插入图片描述
在这里插入图片描述
5.关闭ldictord并删除eth0上的vip
在这里插入图片描述
6.在server1(主)中配置keepalived

Keepalived的所有配置都在一个配置文件里面设置,支持的配置项主要分三类: 
1. 全局配置(Global Configuration):作用于整个keepalived服务
2.VRRPD配置:keepalived的核心
3. 虚拟服务配置:指定服务与负载均衡 
配置文件都是以块(block)形式组织的,每个块都在{ }包围的范围内 ,#和!开头的行都是注释

\

 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的机器的一个标识
   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       #设置验证信息,两个节点需一致
    priority 100              # 主节点的优先级,数值在1~254,注意从节点必须比主节点的	优先级别低
    advert_int 1              #组播信息发送间隔,两个节点需一致
    authentication {
    auth_type PASS
    auth_pass 1111
}
   virtual_ipaddress {
    172.25.77.100          #指定虚拟IP,两个节点需设置一样
}
}


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

virtual_server 172.25.77.100 80 {
delay_loop 3              #指定检查间隔
lb_algo rr                #指定lvs算法
lb_kind DR                #指定lvs模式为DR
#persistence_timeout 50   #持久连接设置,会话保持时间,在此处需要注释
protocol TCP              #指定转发协议为TCP协议
#后端实际TCP服务配置
real_server 172.25.77.2 80 {
    weight 1
    TCP_CHECK {
        connect_timeout 3
        retry 3
        delay_before_retry 3
    }
}
real_server 172.25.77.3 80 {
    weight 1
    TCP_CHECK {
        connect_timeout 3
        retry 3
        delay_before_retry 3
    }
}
}	

在这里插入图片描述
在这里插入图片描述
7.在server4上配置keepalived
在这里插入图片描述
在这里插入图片描述
9.server1开启keepalived
在这里插入图片描述
我们发现在启动keepalived后需要等一会儿才会将vip加上
10.我们安装一个邮件查看器
在这里插入图片描述
11.server4同样开启keepalived
在这里插入图片描述
12.真机测试负载均衡
在这里插入图片描述
13.server1关闭keepalived
在这里插入图片描述
14.真机测试负载均衡并查看server4的ip
在这里插入图片描述
在这里插入图片描述
我们可以很清晰的看到当我们挂掉server1后,负载均衡仍然可以,这是因为我们的调度器现在是备份服务器server4
15.我们可以通过查看邮件的形式查看高可用
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42446031/article/details/89398310