Keepalived+Lvs-DR高可用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Keepalived+Lvs-DR高可用相关的知识,希望对你有一定的参考价值。

Keepalived高可用
keepalived+LVS-DR模式拓扑图:
LVS:是中间件软件(即代理服务器软件),是用来实现集群的负载均衡。

                                                         +++++++++  
         +--------------------------->            +  Client      +      192.168.11.1      win7/10
         |                                               +++++++++   
         |                               ________________|_________________                                             
         |                              |             VIP eth0:1 192.168.10.100        |                   
         |         +++++++++++++++++++++               +++++++++++++++++++++                    
         |         +  Director master主    node11    +               +    Director backup备   node12   +
         |         +++++++++++++++++++++               +++++++++++++++++++++
         |          DIP 192.168.11.11  ens33网卡                     DIP  192.168.11.12  ens33网卡
         |                               |________
         |                 _________________|________________
         |                 |                                                           | 
         |           +++++++++++++++++              ++++++++++++++++++
         +--------+ RealServer A     node13  +             +   Real Server B    node14  +
                     +++++++++++++++++              ++++++++++++++++++
                          192.168.11.13/24                                192.168.11.14/24

分别在Director master、Director backup 上部署浮动资源(VIP IPVS策略)
测试2个Director在DR模式下都工作正常。测试完成后都撤掉浮动资源。

首先:在node11、node12上分别安装keepalived和ipvsadm软件包,并做keepalived相关配置。
在Director master上安装配置Keepalived

yum install keepalived ipvsadm -y

cp -av /etc/keepalived/keepalived.conf{,.bak} 备份原始配置文件

vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived
global_defs { 全局定义,说明:在实验测试环境中,以下内容可以随便写,但是master和backup的router_id必须相同
notification_email { 设置通知邮箱
[email protected] 管理员的邮箱地址
}
notification_email_from [email protected] 通知邮件的发件人邮箱
smtp_server 127.0.0.1 邮箱服务器IP地址
smtp_connect_timeout 30 邮件服务器连接超时时间为30秒
router_id dr1 路由器ID名称,同一个keepalived高可用集群中master和backup的ID名称必须相同
#vrrp_strict 一定要注释掉此行,否则无法通过VIP地址访问调度器
}

vrrp_instance VI_1 { vrrp虚拟路由冗余协议的实例设置 ,实例名称为VI_1
state MASTER 状态,主为MASTER,备为BACKUP状态
interface ens33 //心跳检测网卡接口,要根据实际情况写网卡接口名,用ip a查网卡接口名
virtual_router_id 51 //master主和backup备两边必须一样,此处是集群的群号
priority 100 //优先级,MASTER的值必须高于BACKUP的值,类似于现实生活中的竞选的票数
advert_int 1 //检查间隔,单位秒。vrrp的组播地址是224.0.0.18
authentication { 身份认证配置
auth_type PASS //认证类型为密码方式,主备要一致
auth_pass 1111 //认证密码为1111,主备要一致
}
virtual_ipaddress {
192.168.11.100 //VIP,可多个IP,每行一个IP地址
192.168.11.111
}
}

virtual_server 192.168.11.100 80 { //LVS 配置(即调度器的配置),此行等同于ipvsadm -At 192.168.11.100:80 -s wrr命令
delay_loop 3 //服务论询的时间间隔
lb_algo wrr //LVS 调度算法
lb_kind DR // LVS 集群模式
protocol TCP //指定协议为TCP协议
real_server 192.168.11.13 80 { //RS后端真实服务器的IP及端口号,等同于ipvsadm -at 192.168.11.100:80 -r 192.168.11.13:80 -g -w 1命令
weight 1
TCP_CHECK { //RS健康检查,如果RS主机上的80端口业务异常关闭了,用ipvsadm -Ln查不到此RS的IP信息
connect_timeout 3 //连接超时时间为3秒
}
}
real_server 192.168.11.14 80 {
weight 1
TCP_CHECK {
connect_timeout 3
}
}
}

cd /etc/keepalived

scp keepalived.conf 192.168.11.12:/etc/keepalived/ 将配置文件发送给node12的主机

拷贝后,修改配置文件
state BACKUP
priority 90

两个Director(调度器)上启动服务,并查看vip地址:

systemctl restart keepalived [centos 7专用命令]

service keepalived restart [centos 6和7通用命令]

ip a 在master上可以看到ens33网卡有192.168.11.100和192.168.11.111这两个VIP地址。而backup备主机上是没有VIP的。当在master上用systemctl stop keepalived后,备主机上就会有这两个VIP。

ipvsadm -Ln 查ipvs的集群配置信息

=============================
抓包:

yum install -y tcpdump

tcpdump -i ens33 -nv vrrp

-i 指定网卡
-n 以数字的方式显示(ip,port)
-v 显示详细信息
-vv 显示更详细的信息
-w 保存到文件

----
keepalived通过vrrp协议进行组播的作用:
是为了竞选出由哪台keepalived主机接管业务(使用VIP的)。谁的priority优先级高(即票数多),谁就有VIP地址。

当master和backup都在运行keepalived服务时:
node11(master)发送的组播信息:
src:192.168.11.11
dest:224.0.0.18

node12(backup)接收的组播信息:
src:192.168.11.11
dest:224.0.0.18

----
当node11这台master停止了keepalived服务:
node12发送的组播信息:
src:192.168.11.12
dest:224.0.0.18

keepalived集群中其他主机接收的组播信息:
src:192.168.11.12
dest:224.0.0.18

以上是关于Keepalived+Lvs-DR高可用的主要内容,如果未能解决你的问题,请参考以下文章

Web服务器群集——LVS-DR+Keepalived高可用集群

Keepalived+Lvs-DR高可用

LVS-DR+keepalived高可用群集

构建LVS-DR+keepalived 高可用群集

keepalived实现Lvs-dr集群的高可用

LVS-DR与Keepalived高可用群集