澳门新萄京官方网站-www.8455.com-澳门新萄京赌场网址

keepalived搭建主从架构,Keepalived学习笔记

2019-05-03 作者:澳门新萄京官方网站   |   浏览(157)

实例拓扑图:


LVS(Linux Virtual Server):Linux虚拟服务器,这里透过keepalived作为负载均衡器
HavalS(Real Server):真实服务器
VLX570RP(Virtual Router Redundancy Protocol): 虚拟路由冗余合计, 化解局域网中配置静态网关出现单点失效现象的路由协议
澳门新萄京官方网站 1


LVS(Linux Virtual Server):Linux虚拟服务器,这里通过keepalived作为负载均衡器
PRADOS(Real Server):真实服务器
VCR-VRP(Virtual Router Redundancy Protocol): 虚拟路由冗余合计, 消除局域网中配置静态网关出现单点失效现象的路由协议
澳门新萄京官方网站 2

Keepalived学习笔记,


LVS(Linux Virtual Server):Linux虚拟服务器,这里通过keepalived作为负载均衡器
RubiconS(Real Server):真实服务器
V帕杰罗RP(Virtual Router Redundancy Protocol): 虚拟路由冗余商业事务, 消除局域网中配置静态网关出现单点失效现象的路由协议
澳门新萄京官方网站 3

 

一 Keepalived是何许,有何效益?
1.1 Keepalived的定义
Keepalived 是多少个依照V宝马X5RP协议来落成的LVS高可用方案
1.2 Keepalived的作用
一.二.一 通过IP漂移完毕高可用
主副LVS共享3个虚拟IP,同一时半刻间只有3个LVS据有VIP并对外提供劳务,若该LVS不可用,则VIP漂移至另一台LVS并对外提供劳动;
1.2.2 对昂CoraS集群举行情形监察和控制
若凯雷德S不可用,则keepalived将其从集群中摘除,若CRUISERS复苏,则keepalived将其重新出席集群中。
二 Keepalived有三种方式,各种情势的一样点和区别点是什么样?
2.一 Keepalived的形式连串
Keepalived有3种形式:NAT(地址调换);D翼虎(直接路由);TUN(隧道)
②.2 Keepalived的种种情势的介绍
2.2.1 NAT
可取:集群中的WranglerS可以利用此外补助TCP/IP操作系统,奥迪Q7S能够分配Internet的保留私有地址,只有LVS必要三个合法的IP地址。
缺陷:扩张性有限。当RAV4S节点增加到二13个或越多时,LVS将改成一体类其余瓶颈,因为具有的伸托特包和回应包都急需通过LVS再生。
2.2.2 TUN
笔者们开掘,诸多Internet服务(举个例子WEB服务器)的伸托特包比相当短小,而应答包经常非常的大。
亮点:LVS只负担将请求包分发给猎豹CS陆S,而凯雷德S将回应包直接发给用户。所以,LVS能管理很巨大的请求量,那种措施,一台载荷均衡能为超过100台的路虎极光S服务,LVS不再是系统的瓶颈。
缺陷:但是,那种艺术亟待有所的服务器辅助"IP Tunneling"(IP Encapsulation)协议,小编仅在Linux系统上达成了这些。
2.2.3 DR
可取:和TUN同样,LVS也只是散发请求,应答包通过独立的路由方法再次回到给客户端。与TUN相比较,DTiggo那种达成方式无需隧道结构,由此能够动用大多数操作系统做为汉兰达S。
相差:供给LVS的网卡必须与TiggoS的网卡在三个网段上
三 差异形式的陈设格局,验证办法分别是怎么着?
三.一 基本的条件供给
需要2台LVS和n(n>=2)台RS
3.1.1 LVS
设置ipvsadm(LVS管理工科具)和keepalived;
开启路由转载成效:
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
验证:
sysctl -p
net.ipv4.ip_forward = 1
3.1.2 RS
设置httpd(用于最后测试)
三.2 NAT方式配置
三.二.一 情状概述
操作系统 负载均衡格局 VIP NVIP
RHEL7.4 NAT 193.168.140.80 192.168.102.165

LVS1 LVS2 RS1 RS2
ens3:192.168.102.161 ens3:192.168.102.162 ens3:192.168.102.163 ens3:192.168.102.164
ens4:193.168.140.79 ens4:193.168.140.83 网关:192.168.102.165 网关:192.168.102.165

3.2.2 LVS
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
[email protected] #故障接受联系人
}
notification_email_from [email protected] #故障发赠与外人
smtp_server 127.0.0.1 #本机发送邮件
smtp_connect_timeout 30
router_id LVS_MASTER #BACKUP上修改为LVS_BACKUP
}
vrrp_instance VI_1 {
state MASTER #BACKUP上修修改改为BACKUP
interface ens4
virtual_router_id 51 #虚拟路由标记,主从同样
priority 100 #BACKUP上修改为90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111 #着力认证密码必须1律
}
virtual_ipaddress {
193.168.140.80 #虚拟IP(VIP)
}
}
vrrp_instance LAN_GATEWAY { #概念网关
state MASTER #BACKUP上修修改改为BACKUP
interface ens3
virtual_router_id 62 #虚拟路由ID,主从同样
priority 100 #BACKUP上修改为90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress { #ens三网关虚拟IP
192.168.102.165
}
}
virtual_server 192.168.102.165 80 { #概念内网网关虚拟IP和端口
delay_loop 6 #检查RS时间,单位秒
lb_algo rr #设置负载调治算法,轮叫(rr)、加权轮叫(wrr)、最小连接(lc)、加权最小连接(wlc)、基于局地性最小连接(lblc)、带复制的基于局地性最少链接(lblcr)、目的地方散列(dh)和源地址散列(sh)
lb_kind NAT #设置LVS负载均衡NAT格局
persistence_timeout 50 #同1IP的连续60秒内被分配到均等台真正服务器(测试时建议改为0)
protocol TCP #行使TCP协议检查奥迪Q3S状态
real_server 192.168.102.161 80 { #先是个网关节点
weight 3 #节点权重值
TCP_CHECK { #健检格局
connect_timeout 3 #接连超时
nb_get_retry 3 #重试次数
delay_before_retry 3 #重试间隔/S
}
}
real_server 192.168.102.162 80 { #其次个网关节点
weight 3
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
virtual_server 193.168.140.80 80{ #概念虚拟IP
delay_loop 6
lb_algo rr
lb_kind NAT
persistence_timeout 50
protocol TCP
real_server 192.168.102.163 80 { #第一个RS
weight 3
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.102.164 80 { #第二个RS
weight 3
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
3.2.3 RS
为具有宝马7系S增添网关为1九二.16八.十二.1陆五:
vim /etc/sysconfig/network-scripts/ifcfg-ens3
GATEWAY=192.168.102.165
重启; 使用route –n查看是或不是成功
IPVS connection entries
pro expire state source virtual destination
TCP 01:54 FIN_WAIT 10.167.225.60:53882 193.168.140.80:80 192.168.102.163:80
TCP 00:37 NONE 10.167.225.60:0 193.168.140.80:80 192.168.102.163:80

3.三 DENCORE情势配置
三.三.壹 意况概述
操作系统 负载均衡格局 VIP
RHEL7.4 DR 193.168.140.80

LVS1 LVS2 RS1 RS2
ens4:193.168.140.79 ens4:193.168.140.83 ens4:193.168.140.152 ens4:193.168.140.224

3.3.2 LVS
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
[email protected]
}
notification_email_from [email protected]
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_MASTER
}
vrrp_instance VI_1 {
state MASTER #BACKUP上修修改改为BACKUP
interface ens4
virtual_router_id 51
priority 100 #BACKUP上改造为90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
193.168.140.80
}
}
virtual_server 193.168.140.80 80 {
delay_loop 6
lb_algo rr
lb_kind DR
nat_mask 255.255.255.255
protocol TCP
real_server 193.168.140.152 80 {
weight 10
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 193.168.140.224 80 {
weight 10
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_keepalived搭建主从架构,Keepalived学习笔记。port 80
}
}
}

3.3.3 RS
为所有RS修改sysctl.conf
net.ipv4.conf.lo.arp_ignore= 1
net.ipv4.conf.lo.arp_announce= 2
net.ipv4.conf.all.arp_ignore= 1
net.ipv4.conf.all.arp_announce= 2
net.ipv4.ip_forward= 1
执行/sbin/ifconfig lo:0 193.168.140.80 broadcast 193.168.140.80 netmask 255.255.255.255
可用route –n查看是不是中标
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 193.168.1.1 0.0.0.0 UG 100 0 0 ens4
193.168.0.0 0.0.0.0 255.255.0.0 U 100 0 0 ens4
193.168.140.80 0.0.0.0 255.255.255.255 UH 0 0 0 lo
若不成事实践/sbin/route add -host 193.16捌.140.80 dev lo:0
三.四 验证措施
3.四.一 全部机器关闭防火墙:
systemctl stop firewalld
三.肆.二 全部TiguanS写入测试页和开启httpd服务
RS1:echo “RS1″ > /var/www/html/index.html
RS2:echo “RS2″ > /var/www/html/index.html
systemctl start httpd
3.4.3 主副LVS开启keepalived服务
澳门新萄京官方网站,systemctl start keepalived
3.4.4 访问
浏览器访问
刷新会轮番呈现RAV4S1或奥迪Q5S二
三.四.五 查看当前测试机的走访请求被转化到哪些服务器
ipvsadm –lcn
IPVS connection entries
pro expire state source virtual destination
TCP 01:54 FIN_WAIT 10.167.225.60:53882 193.168.140.80:80 192.168.102.163:80
TCP 00:37 NONE 10.167.225.60:0 193.168.140.80:80 192.168.102.163:80
3.4.6 测试
依样画葫芦宕掉主LVS,服务器照常专门的学问,再宕掉Web一,那时只会议及展览示Web2,那样就落实IP负载均衡,高可用集群。当主LVS恢复生机后,会切换来主动服务器,假使Keepalived监察和控制模块检查评定web故障苏醒后,恢复生机的主机又将此节点出席集群系统中。

注 LVS(Linux Virtual Server):Linux虚拟服务器,这里通过keepalived作为负载均衡器 瑞虎S(Real Server):真实服务器 V大切诺基RP(Virtual Router Rubicon...

澳门新萄京官方网站 4

澳门新萄京官方网站 5

 

 

贯彻基于Keepalived高可用集群网址架构

D帕杰罗一和D瑞鹰贰安插keepalived和lvs作主从架构或主主框架结构,QashqaiS壹和昂CoraS二安插nginx搭建web站点。

一 Keepalived是什么样,有何样坚守?
1.1 Keepalived的定义
Keepalived 是三个依据VCRUISERRP协议来贯彻的LVS高可用方案
1.2 Keepalived的作用
1.贰.一 通过IP漂移落成高可用
主副LVS共享2个虚拟IP,同一时间唯有二个LVS据有VIP并对外提供劳动,若该LVS不可用,则VIP漂移至另壹台LVS并对外提供服务;
一.二.二 对LacrosseS集群进行情状监察和控制
若奥迪Q7S不可用,则keepalived将其从集群中摘除,若纳瓦拉S恢复生机,则keepalived将其重新加入集群中。
二 Keepalived有两种形式,各类情势的同样点和差异点是怎样?
贰.一 Keepalived的方式体系
Keepalived有3种情势:NAT(地址调换);D奇骏(直接路由);TUN(隧道)
2.二 Keepalived的逐条情势的介绍
2.2.1 NAT
可取:集群中的翼虎S能够选择任何帮衬TCP/IP操作系统,EnclaveS能够分配Internet的保存私有地址,唯有LVS供给3个法定的IP地址。
缺陷:扩展性有限。当HavalS节点增进到21个或越多时,LVS将改为全部系统的瓶颈,因为全体的请求包和回答包都须求通过LVS再生。
2.2.2 TUN
咱俩发掘,多数Internet服务(例如WEB服务器)的请求包相当短小,而应答包平时一点都不小。
亮点:LVS只担任将呼吁包分发给冠道S,而BMWX5S将回应包直接发放用户。所以,LVS能管理很巨大的请求量,那种艺术,1台载荷均衡能为超过100台的RAV4S服务,LVS不再是系统的瓶颈。
缺陷:不过,那种模式亟待具有的服务器帮助"IP Tunneling"(IP Encapsulation)协议,小编仅在Linux系统上落成了那一个。
2.2.3 DR
可取:和TUN一样,LVS也只是散发请求,应答包通过独立的路由方法重回给客户端。与TUN比较,DENVISION那种完结情势不必要隧道结构,由此得以选择大多数操作系统做为RS。
不足:供给LVS的网卡必须与EnclaveS的网卡在二个网段上
三 分化形式的布署方式,验证办法分别是何许?
3.1 基本的条件供给
需要2台LVS和n(n>=2)台RS
3.1.1 LVS
安装ipvsadm(LVS管理工科具)和keepalived;
开启路由转载功能:
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
验证:
sysctl -p
net.ipv4.ip_forward = 1
3.1.2 RS
设置httpd(用于最后测试)
叁.2 NAT形式配置
三.贰.一 情状概述
操作系统 负载均衡形式 VIP NVIP
RHEL7.4 NAT 193.168.140.80 192.168.102.165

一 Keepalived是怎么,有啥意义?
1.1 Keepalived的定义
Keepalived 是3个基于VRubiconRP协议来促成的LVS高可用方案
1.2 Keepalived的作用
一.二.1 通过IP漂移达成高可用
主副LVS共享3个虚拟IP,同临时间唯有3个LVS占领VIP并对外提供劳动,若该LVS不可用,则VIP漂移至另1台LVS并对外提供劳务;
一.2.2 对冠道S集群举行状态监察和控制
若ENCORES不可用,则keepalived将其从集群中摘除,若HighlanderS苏醒,则keepalived将其重新参加集群中。
二 Keepalived有三种情势,各类情势的一样点和分化点是怎样?
2.一 Keepalived的情势种类
Keepalived有3种形式:NAT(地址调换);D牧马人(直接路由);TUN(隧道)
二.2 Keepalived的一1形式的牵线
2.2.1 NAT
亮点:集群中的安德拉S能够应用别的支持TCP/IP操作系统,纳瓦拉S能够分配Internet的保存私有地址,唯有LVS需求贰个法定的IP地址。
症结:扩张性有限。当陆风X八S节点增加到二十个或越多时,LVS将变为任何系统的瓶颈,因为有着的伸手提包和回应包都亟需经过LVS再生。
2.2.2 TUN
大家开掘,大多Internet服务(举例WEB服务器)的伸手提包非常的短小,而应答包平时十分的大。
亮点:LVS只担负将呼吁包分发给RubiconS,而普拉多S将回应包直接发放用户。所以,LVS能处理很了不起的请求量,那种办法,一台载荷均衡能为超过100台的RubiconS服务,LVS不再是系统的瓶颈。
症结:但是,那种措施要求具备的服务器帮助"IP Tunneling"(IP Encapsulation)协议,笔者仅在Linux系统上贯彻了那几个。
2.2.3 DR
亮点:和TUN同样,LVS也只是散发请求,应答包通过独立的路由方法重回给客户端。与TUN比较,DLAND那种达成情势无需隧道结构,因而得以行使大诸多操作系统做为奥迪Q5S。
不足:必要LVS的网卡必须与奥迪Q5S的网卡在三个网段上
叁 区别方式的配置情势,验证措施分别是哪些?
三.1 基本的景况供给
需要2台LVS和n(n>=2)台RS
3.1.1 LVS
安装ipvsadm(LVS管理工科具)和keepalived;
开启路由转载功用:
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
验证:
sysctl -p
net.ipv4.ip_forward = 1
3.1.2 RS
安装httpd(用于最后测试)
3.贰 NAT情势配置
叁.二.一 碰到概述
操作系统 负载均衡情势 VIP NVIP
RHEL7.4 NAT 193.168.140.80 192.168.102.165

  景况:随着专门的职业的升高,网址的访问量越来越大,网址访问量已经从原本的一千QPS,变为三千QPS,最近业务一度通过集群LVS架构可做到随时开始展览,后端节点已经经过集群才能保险了可用性,但对从前端负载均衡器来讲,是个一点都不小的安全隐患,因为目前端负载均衡器出现故障时,整个集群就处在瘫痪状态,由此,负载均衡器的可用性也展现主要,那么怎么来缓解负载均衡器的可用性难题呢?

专注:各节点的年华必要1块(ntpdate ntp1.aliyun.com);关闭firewalld(systemctl stop firewalld.service,systemctl disable firewalld.service),设置selinux为permissive(setenforce 0);同时保险各网卡协理MULTICAST(多播)通信。

LVS1 LVS2 RS1 RS2
ens3:192.168.102.161 ens3:192.168.102.162 ens3:192.168.102.163 ens3:192.168.102.164
ens4:193.168.140.79 ens4:193.168.140.83 网关:192.168.102.165 网关:192.168.102.165

LVS1 LVS2 RS1 RS2
ens3:192.168.102.161 ens3:192.168.102.162 ens3:192.168.102.163 ens3:192.168.102.164
ens4:193.168.140.79 ens4:193.168.140.83 网关:192.168.102.165 网关:192.168.102.165

 总项目流程图,详见 

经过命令ifconfig能够查看到是还是不是打开了MULTICAST:

3.2.2 LVS
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
qingean@163.com #故障接受联系人
}
notification_email_from admin@test.com #故障发赠给别人
smtp_server 127.0.0.1 #本机发送邮件
smtp_connect_timeout 30
router_id LVS_MASTER #BACKUP上修修改改为LVS_BACKUP
}
vrrp_instance VI_1 {
state MASTER #BACKUP上修改为BACKUP
interface ens4
virtual_router_id 51 #虚拟路由标志,主从一样
priority 100 #BACKUP上退换为90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111 #着力认证密码必须一律
}
virtual_ipaddress {
193.168.140.80 #虚拟IP(VIP)
}
}
vrrp_instance LAN_GATEWAY { #概念网关
state MASTER #BACKUP上改变为BACKUP
interface ens3
virtual_router_id 62 #虚拟路由ID,主从一样
priority 100 #BACKUP上改换为90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress { #ens三网关虚拟IP
192.168.102.165
}
}
virtual_server 192.168.102.165 80 { #概念内网网关虚拟IP和端口
delay_loop 6 #检查RS时间,单位秒
lb_algo rr #设置负载调解算法,轮叫(rr)、加权轮叫(wrr)、最小连接(lc)、加权最小连接(wlc)、基于局地性最小连接(lblc)、带复制的依据局部性最少链接(lblcr)、目标地址散列(dh)和源地址散列(sh)
lb_kind NAT #安装LVS负载均衡NAT格局
persistence_timeout 50 #同一IP的连天60秒内被分配到同1台实在服务器(测试时建议改为0)
protocol TCP #使用TCP协议检查福特ExplorerS状态
real_server 192.168.102.161 80 { #第1个网关节点
weight 3 #节点权重值
TCP_CHECK { #健检方式
connect_timeout 3 #连日超时
nb_get_retry 3 #重试次数
delay_before_retry 3 #重试间隔/S
}
}
real_server 192.168.102.162 80 { #其次个网关节点
weight 3
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
virtual_server 193.168.140.80 80{ #概念虚拟IP
delay_loop 6
lb_algo rr
lb_kind NAT
persistence_timeout 50
protocol TCP
real_server 192.168.102.163 80 { #第一个RS
weight 3
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.102.164 80 { #第二个RS
weight 3
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
3.2.3 RS
为持有奥迪Q三S增添网关为1九贰.168.拾二.1陆伍:
vim /etc/sysconfig/network-scripts/ifcfg-ens3
GATEWAY=192.168.102.165
重启; 使用route –n查看是或不是中标
IPVS connection entries
pro expire state source virtual destination
TCP 01:54 FIN_WAIT 10.167.225.60:53882 193.168.140.80:80 192.168.102.163:80
TCP 00:37 NONE 10.167.225.60:0 193.168.140.80:80 192.168.102.163:80

3.2.2 LVS
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
qingean@163.com #故障接受联系人
}
notification_email_from admin@test.com #故障发赠与外人
smtp_server 127.0.0.1 #本机发送邮件
smtp_connect_timeout 30
router_id LVS_MASTER #BACKUP上修改为LVS_BACKUP
}
vrrp_instance VI_1 {
state MASTER #BACKUP上修修改改为BACKUP
interface ens4
virtual_router_id 51 #虚拟路由标志,主从一样
priority 100 #BACKUP上修改为90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111 #主导认证密码必须1致
}
virtual_ipaddress {
193.168.140.80 #虚拟IP(VIP)
}
}
vrrp_instance LAN_GATEWAY { #概念网关
state MASTER #BACKUP上修修改改为BACKUP
interface ens3
virtual_router_id 62 #虚拟路由ID,主从同样
priority 100 #BACKUP上修改为90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress { #ens三网关虚拟IP
192.168.102.165
}
}
virtual_server 192.168.102.165 80 { #概念内网网关虚拟IP和端口
delay_loop 6 #检查RS时间,单位秒
lb_algo rr #设置负载调解算法,轮叫(rr)、加权轮叫(wrr)、最小连接(lc)、加权最小连接(wlc)、基于局部性最小连接(lblc)、带复制的依靠局地性最少链接(lblcr)、目的地址散列(dh)和源地址散列(sh)
lb_kind NAT #安装LVS负载均衡NAT方式
persistence_timeout 50 #同1IP的连年60秒内被分配到均等台实在服务器(测试时提出改为0)
protocol TCP #利用TCP协议检查中华VS状态
real_server 192.168.102.161 80 { #首先个网关节点
weight 3 #节点权重值
TCP_CHECK { #健检形式
connect_timeout 3 #连接超时
nb_get_retry 3 #重试次数
delay_before_retry 3 #重试间隔/S
}
}
real_server 192.168.102.162 80 { #首个网关节点
weight 3
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
virtual_server 193.168.140.80 80{ #概念虚拟IP
delay_loop 6
lb_algo rr
lb_kind NAT
persistence_timeout 50
protocol TCP
real_server 192.168.102.163 80 { #第一个RS
weight 3
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.102.164 80 { #第二个RS
weight 3
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
3.2.3 RS
为有着普拉多S增多网关为1玖二.16捌.10二.1六五:
vim /etc/sysconfig/network-scripts/ifcfg-ens3
GATEWAY=192.168.102.165
重启; 使用route –n查看是还是不是中标
IPVS connection entries
pro expire state source virtual destination
TCP 01:54 FIN_WAIT 10.167.225.60:53882 193.168.140.80:80 192.168.102.163:80
TCP 00:37 NONE 10.167.225.60:0 193.168.140.80:80 192.168.102.163:80

试验前准备

       澳门新萄京官方网站 6

3.3 D卡宴方式配置
三.3.壹 境况概述
操作系统 负载均衡情势 VIP
RHEL7.4 DR 193.168.140.80

叁.三 DSportage形式配置
3.3.一 景况概述
操作系统 负载均衡方式 VIP
RHEL7.4 DR 193.168.140.80

一 两台服务器都使用yum 方式安装keepalived 服务

keepalived的主干架构

LVS1 LVS2 RS1 RS2
ens4:193.168.140.79 ens4:193.168.140.83 ens4:193.168.140.152 ens4:193.168.140.224

LVS1 LVS2 RS1 RS2
ens4:193.168.140.79 ens4:193.168.140.83 ens4:193.168.140.152 ens4:193.168.140.224

yum -y install keepalived

搭建RS1:

[root@RS1 ~]# yum -y install nginx   #安装nginx
[root@RS1 ~]# vim /usr/share/nginx/html/index.html   #修改主页
    <h1> 192.168.4.118 RS1 server </h1>
[root@RS1 ~]# systemctl start nginx.service   #启动nginx服务
[root@RS1 ~]# vim RS.sh   #配置lvs-dr的脚本文件
    #!/bin/bash
    #
    vip=192.168.4.120
    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/all/arp_announce
        echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
        ifconfig lo:0 $vip netmask $mask broadcast $vip up
        route add -host $vip dev lo:0
        ;;
    stop)
        ifconfig lo:0 down
        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/all/arp_announce
        echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce
        ;;
    *) 
        echo "Usage $(basename $0) start|stop"
        exit 1
        ;;
    esac
[root@RS1 ~]# bash RS.sh start

3.3.2 LVS
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
qingean@163.com
}
notification_email_from admin@test.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_MASTER
}
vrrp_instance VI_1 {
state MASTER #BACKUP上修改为BACKUP
interface ens4
virtual_router_id 51
priority 100 #BACKUP上修修改改为90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
193.168.140.80
}
}
virtual_server 193.168.140.80 80 {
delay_loop 6
lb_algo rr
lb_kind DR
nat_mask 255.255.255.255
protocol TCP
real_server 193.168.140.152 80 {
weight 10
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 193.168.140.224 80 {
weight 10
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}

3.3.2 LVS
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
qingean@163.com
}
notification_email_from admin@test.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_MASTER
}
vrrp_instance VI_1 {
state MASTER #BACKUP上改换为BACKUP
interface ens4
virtual_router_id 51
priority 100 #BACKUP上修改为90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
193.168.140.80
}
}
virtual_server 193.168.140.80 80 {
delay_loop 6
lb_algo rr
lb_kind DR
nat_mask 255.255.255.255
protocol TCP
real_server 193.168.140.152 80 {
weight 10
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 193.168.140.224 80 {
weight 10
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}

2 iptables -F && setenforing 清空防火墙计策,关闭selinux

参照TiguanS1的安插搭建汉兰达S2。

3.3.3 RS
为所有RS修改sysctl.conf
net.ipv4.conf.lo.arp_ignore= 1
net.ipv4.conf.lo.arp_announce= 2
net.ipv4.conf.all.arp_ignore= 1
net.ipv4.conf.all.arp_announce= 2
net.ipv4.ip_forward= 1
执行/sbin/ifconfig lo:0 193.168.140.80 broadcast 193.168.140.80 netmask 255.255.255.255
可用route –n查看是或不是中标
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 193.168.1.1 0.0.0.0 UG 100 0 0 ens4
193.168.0.0 0.0.0.0 255.255.0.0 U 100 0 0 ens4
193.168.140.80 0.0.0.0 255.255.255.255 UH 0 0 0 lo
若不成事实施/sbin/route add -host 1玖三.16捌.140.80 dev lo:0
3.四 验证办法
叁.四.1 全体机器关闭防火墙:
systemctl stop firewalld
三.肆.贰 全部XC90S写入测试页和开启httpd服务
RS1:echo “RS1″ > /var/www/html/index.html
RS2:echo “RS2″ > /var/www/html/index.html
systemctl start httpd
3.4.3 主副LVS开启keepalived服务
systemctl start keepalived
3.4.4 访问
浏览器访问
刷新会轮番呈现奥迪Q伍S1或BMWX叁S2
三.四.伍 查看当前测试机的走访请求被转化到哪些服务器
ipvsadm –lcn
IPVS connection entries
pro expire state source virtual destination
TCP 01:54 FIN_WAIT 10.167.225.60:53882 193.168.140.80:80 192.168.102.163:80
TCP 00:37 NONE 10.167.225.60:0 193.168.140.80:80 192.168.102.163:80
3.4.6 测试
依傍宕掉主LVS,服务器照常职业,再宕掉Web一,那时只会议及展览示Web二,那样就达成IP负载均衡,高可用集群。当主LVS苏醒后,会切换来主动服务器,假使Keepalived监察和控制模块检查实验web故障恢复生机后,苏醒的主机又将此节点参加集群系统中。

3.3.3 RS
为所有RS修改sysctl.conf
net.ipv4.conf.lo.arp_ignore= 1
net.ipv4.conf.lo.arp_announce= 2
net.ipv4.conf.all.arp_ignore= 1
net.ipv4.conf.all.arp_announce= 2
net.ipv4.ip_forward= 1
执行/sbin/ifconfig lo:0 193.168.140.80 broadcast 193.168.140.80 netmask 255.255.255.255
可用route –n查看是不是成功
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 193.168.1.1 0.0.0.0 UG 100 0 0 ens4
193.168.0.0 0.0.0.0 255.255.0.0 U 100 0 0 ens4
193.168.140.80 0.0.0.0 255.255.255.255 UH 0 0 0 lo
若不成功推行/sbin/route add -host 1九三.16八.140.80 dev lo:0
3.4 验证形式
三.四.1 全数机器关闭防火墙:
systemctl stop firewalld
叁.4.二 全数凯雷德S写入测试页和开启httpd服务
RS1:echo “RS1″ > /var/www/html/index.html
RS2:echo “RS2″ > /var/www/html/index.html
systemctl start httpd
3.4.3 主副LVS开启keepalived服务
systemctl start keepalived
3.4.4 访问
浏览器访问
刷新会交替展现本田UR-VS一或福特ExplorerS贰
3.四.5 查看当前测试机的造访请求被转接到哪个服务器
ipvsadm –lcn
IPVS connection entries
pro expire state source virtual destination
TCP 01:54 FIN_WAIT 10.167.225.60:53882 193.168.140.80:80 192.168.102.163:80
TCP 00:37 NONE 10.167.225.60:0 193.168.140.80:80 192.168.102.163:80
3.4.6 测试
仿照宕掉主LVS,服务器照常工作,再宕掉Web壹,那时只会显示Web二,那样就落成IP负载均衡,高可用集群。当主LVS复苏后,会切换来主动服务器,如若Keepalived监察和控制模块检测web故障恢复生机后,苏醒的主机又将此节点出席集群系统中。

 

搭建DR1:

[root@DR1 ~]# yum -y install ipvsadm keepalived   #安装ipvsadm和keepalived
[root@DR1 ~]# vim /etc/keepalived/keepalived.conf   #修改keepalived.conf配置文件
    global_defs {
       notification_email {
         root@localhost
       }
       notification_email_from keepalived@localhost
       smtp_server 127.0.0.1
       smtp_connect_timeout 30
       router_id 192.168.4.116
       vrrp_skip_check_adv_addr
       vrrp_mcast_group4 224.0.0.10
    }

    vrrp_instance VIP_1 {
        state MASTER
        interface eno16777736
        virtual_router_id 1
        priority 100
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass %&hhjj99
        }
        virtual_ipaddress {
          192.168.4.120/24 dev eno16777736 label eno16777736:0
        }
    }

    virtual_server 192.168.4.120 80 {
        delay_loop 6
        lb_algo rr
        lb_kind DR
        protocol TCP

        real_server 192.168.4.118 80 {
            weight 1
            HTTP_GET {
                url {
                  path /index.html
                  status_code 200
                }
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 3
            }
        }
        real_server 192.168.4.119 80 {
            weight 1
            HTTP_GET {
                url {
                  path /index.html
                  status_code 200
                }
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 3
            }
         }
    }
[root@DR1 ~]# systemctl start keepalived
[root@DR1 ~]# ifconfig
    eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 192.168.4.116  netmask 255.255.255.0  broadcast 192.168.4.255
            inet6 fe80::20c:29ff:fe93:270f  prefixlen 64  scopeid 0x20<link>
            ether 00:0c:29:93:27:0f  txqueuelen 1000  (Ethernet)
            RX packets 14604  bytes 1376647 (1.3 MiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 6722  bytes 653961 (638.6 KiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

    eno16777736:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 192.168.4.120  netmask 255.255.255.0  broadcast 0.0.0.0
            ether 00:0c:29:93:27:0f  txqueuelen 1000  (Ethernet)
[root@DR1 ~]# ipvsadm -ln
    IP Virtual Server version 1.2.1 (size=4096)
    Prot LocalAddress:Port Scheduler Flags
      -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
    TCP  192.168.4.120:80 rr
      -> 192.168.4.118:80             Route   1      0          0         
      -> 192.168.4.119:80             Route   1      0          0

实施壹:达成keepalived主从艺术高可用基于LVS-DLAND情势的施用实战:

尝试原理:

主从:1主壹从,主的在劳作,从的在休息;主的宕机了,VIP漂移到从上,由从提供劳动

D讴歌RDX贰的搭建基本同DLacrosse一,首要修改一下布局文件中/etc/keepalived/keepalived.conf的state和priority:state BACKUP、priority 90. 同时大家开掘作为backup的DSportage2未有启用eno1677773陆:0的网口:

澳门新萄京官方网站 7

一、情状筹算:

两台centos系统做DCR-V、一主一从,两台落成过基于LNMP的电子商务网址

机器名称

IP配置

服务角色

备注

lvs-server-master

VIP:172.17.100.100

DIP:172.17.1.6

负载均衡器

主服务器

开启路由功能

配置keepalived

lvs-server-backup

VIP:172.17.100.100

DIP:172.17.11.11

后端服务器

从服务器

开启路由功能

配置keepalived

rs01

RIP:172.17.1.7

后端服务器

 

rs02

RIP:172.17.22.22

后端服务器

 

  

客户端实行测试:

[root@client ~]# for i in {1..20};do curl http://192.168.4.120;done   #客户端正常访问
<h1> 192.168.4.119 RS2 server</h1>
<h1> 192.168.4.118 RS1 server </h1>
<h1> 192.168.4.119 RS2 server</h1>
<h1> 192.168.4.118 RS1 server </h1>
<h1> 192.168.4.119 RS2 server</h1>
<h1> 192.168.4.118 RS1 server </h1>
<h1> 192.168.4.119 RS2 server</h1>
<h1> 192.168.4.118 RS1 server </h1>
<h1> 192.168.4.119 RS2 server</h1>
<h1> 192.168.4.118 RS1 server </h1>
<h1> 192.168.4.119 RS2 server</h1>
<h1> 192.168.4.118 RS1 server </h1>
<h1> 192.168.4.119 RS2 server</h1>
<h1> 192.168.4.118 RS1 server </h1>
<h1> 192.168.4.119 RS2 server</h1>
<h1> 192.168.4.118 RS1 server </h1>
<h1> 192.168.4.119 RS2 server</h1>
<h1> 192.168.4.118 RS1 server </h1>
<h1> 192.168.4.119 RS2 server</h1>
<h1> 192.168.4.118 RS1 server </h1>

[root@DR1 ~]# systemctl stop keepalived.service   #关闭DR1的keepalived服务

[root@DR2 ~]# systemctl status keepalived.service   #观察DR2,可以看到DR2已经进入MASTER状态
● keepalived.service - LVS and VRRP High Availability Monitor
   Loaded: loaded (/usr/lib/systemd/system/keepalived.service; disabled; vendor preset: disabled)
   Active: active (running) since Tue 2018-09-04 11:33:04 CST; 7min ago
  Process: 12983 ExecStart=/usr/sbin/keepalived $KEEPALIVED_OPTIONS (code=exited, status=0/SUCCESS)
 Main PID: 12985 (keepalived)
   CGroup: /system.slice/keepalived.service
           ├─12985 /usr/sbin/keepalived -D
           ├─12988 /usr/sbin/keepalived -D
           └─12989 /usr/sbin/keepalived -D

Sep 04 11:37:41 happiness Keepalived_healthcheckers[12988]: SMTP alert successfully sent.
Sep 04 11:40:22 happiness Keepalived_vrrp[12989]: VRRP_Instance(VIP_1) Transition to MASTER STATE
Sep 04 11:40:23 happiness Keepalived_vrrp[12989]: VRRP_Instance(VIP_1) Entering MASTER STATE
Sep 04 11:40:23 happiness Keepalived_vrrp[12989]: VRRP_Instance(VIP_1) setting protocol VIPs.
Sep 04 11:40:23 happiness Keepalived_vrrp[12989]: Sending gratuitous ARP on eno16777736 for 192.168.4.120
Sep 04 11:40:23 happiness Keepalived_vrrp[12989]: VRRP_Instance(VIP_1) Sending/queueing gratuitous ARPs on eno16777736 for 192.168.4.120
Sep 04 11:40:23 happiness Keepalived_vrrp[12989]: Sending gratuitous ARP on eno16777736 for 192.168.4.120
Sep 04 11:40:23 happiness Keepalived_vrrp[12989]: Sending gratuitous ARP on eno16777736 for 192.168.4.120
Sep 04 11:40:23 happiness Keepalived_vrrp[12989]: Sending gratuitous ARP on eno16777736 for 192.168.4.120
Sep 04 11:40:23 happiness Keepalived_vrrp[12989]: Sending gratuitous ARP on eno16777736 for 192.168.4.120

[root@client ~]# for i in {1..20};do curl http://192.168.4.120;done   #可以看到客户端正常访问
<h1> 192.168.4.119 RS2 server</h1>
<h1> 192.168.4.118 RS1 server </h1>
<h1> 192.168.4.119 RS2 server</h1>
<h1> 192.168.4.118 RS1 server </h1>
<h1> 192.168.4.119 RS2 server</h1>
<h1> 192.168.4.118 RS1 server </h1>
<h1> 192.168.4.119 RS2 server</h1>
<h1> 192.168.4.118 RS1 server </h1>
<h1> 192.168.4.119 RS2 server</h1>
<h1> 192.168.4.118 RS1 server </h1>
<h1> 192.168.4.119 RS2 server</h1>
<h1> 192.168.4.118 RS1 server </h1>
<h1> 192.168.4.119 RS2 server</h1>
<h1> 192.168.4.118 RS1 server </h1>
<h1> 192.168.4.119 RS2 server</h1>
<h1> 192.168.4.118 RS1 server </h1>
<h1> 192.168.4.119 RS2 server</h1>
<h1> 192.168.4.118 RS1 server </h1>
<h1> 192.168.4.119 RS2 server</h1>
<h1> 192.168.4.118 RS1 server </h1>

2、在lvs-server-master 主上

修改keepalived主(lvs-server-master)配置文件贯彻 virtual_instance 实例

(①)vim /etc/keepalived/keepalived.conf 修改3段

① 全局段,故障通知邮件配置
global_defs {
   notification_email {
        root@localhost
   }
   notification_email_from root@along.com
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id keepalived_lvs
}

② 配置虚拟路由器的实例段,VI_1是自定义的实例名称,可以有多个实例段
vrrp_instance VI_1 {     #VI_1是自定义的实例名称
    state MASTER        #初始状态,MASTER|BACKUP
    interface eth1      #通告选举所用端口
    virtual_router_id 51  #虚拟路由的ID号(一般不可大于255)
    priority 100       #优先级信息 #备节点必须更低
    advert_int 1       #VRRP通告间隔,秒
    authentication {
        auth_type PASS    #认证机制
        auth_pass along   #密码(尽量使用随机)
    } 
    virtual_ipaddress {
        172.17.100.100    #vip
    }
}

③ 设置一个virtual server段
virtual_server 172.17.100.100 80 {   #设置一个virtual server:
    delay_loop 6   # service polling的delay时间,即服务轮询的时间间隔
    lb_algo wrr    #LVS调度算法:rr|wrr|lc|wlc|lblc|sh|dh
    lb_kind DR    #LVS集群模式:NAT|DR|TUN
    nat_mask 255.255.255.255  
    persistence_timeout 600  #会话保持时间(持久连接,秒),即以用户在600秒内被分配到同一个后端realserver
    protocol TCP    #健康检查用的是TCP还是UDP

④ real server设置段
    real_server 172.17.1.7 80 { #后端真实节点主机的权重等设置
        weight 1  #给每台的权重,rr无效
        HTTP_GET {  #http服务
            url {
              path /
            }
            connect_timeout 3    #连接超时时间
            nb_get_retry 3      #重连次数
            delay_before_retry 3 #重连间隔
        }
    }
    real_server 172.17.22.22 80 {
        weight 2
        HTTP_GET {
            url {
              path /
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

 

(2)开启keepalived 服务

service keepalived start

能观察网卡小名 和 负载均衡攻略已经设置好了

ipvsadm -Ln

澳门新萄京官方网站 8

 

(三)因为是基本方式,所以从上的布署和主唯有好几出入;所以能够把那些布局文件拷过去

scp /etc/keepalived/keepalived.conf @172.17.11.11:

  

keepalived的主主架构

3、在lvs-server-backup 从上

(壹)只需改二实例段,别的都不要变,保障一模同样

vrrp_instance VI_1 {
    state BACKUP
    interface eth1
    virtual_router_id 51
    priority 99
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass along
    }

 

(2)开启keepalived 服务

service keepalived start

负载均衡攻略已经安装好了,注意:主director未有宕机,从上就不会有VIP

ipvsadm -Ln 可能过1会才会显得

澳门新萄京官方网站 9

 

 修改索罗德S一和奥迪Q伍S2,增加新的VIP:

[root@RS1 ~]# cp RS.sh RS_bak.sh
[root@RS1 ~]# vim RS_bak.sh   #添加新的VIP
    #!/bin/bash
    #
    vip=192.168.4.121
    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/all/arp_announce
        echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
        ifconfig lo:1 $vip netmask $mask broadcast $vip up
        route add -host $vip dev lo:1
        ;;
    stop)
        ifconfig lo:1 down
        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/all/arp_announce
        echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce
        ;;
    *)
        echo "Usage $(basename $0) start|stop"
        exit 1
        ;;
    esac
[root@RS1 ~]# bash RS_bak.sh start
[root@RS1 ~]# ifconfig
    ...
    lo:0: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
            inet 192.168.4.120  netmask 255.255.255.255
            loop  txqueuelen 0  (Local Loopback)

    lo:1: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
            inet 192.168.4.121  netmask 255.255.255.255
            loop  txqueuelen 0  (Local Loopback) 
[root@RS1 ~]# scp RS_bak.sh root@192.168.4.119:~
root@192.168.4.119's password: 
RS_bak.sh                100%  693     0.7KB/s   00:00

[root@RS2 ~]# bash RS_bak.sh   #直接运行脚本添加新的VIP 
[root@RS2 ~]# ifconfig
    ...
    lo:0: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
            inet 192.168.4.120  netmask 255.255.255.255
            loop  txqueuelen 0  (Local Loopback)

    lo:1: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
            inet 192.168.4.121  netmask 255.255.255.255
            loop  txqueuelen 0  (Local Loopback)

4、在real server 上

(壹) 开启事前筹划好的web服务

systemctl start nginx

systemctl start mariadb

systemctl start php-fpm

 

(2)因为是DR模式,需在rs上设置

1 配置VIP到地头回环网卡lo上,并只播放本人

ifconfig lo:0 172.17.100.100 broadcast 172.17.100.100 netmask 255.255.255.255 up

安插本地回环网卡路由

route add -host 172.17.100.100 lo:0

 

② 使RS "闭嘴"

echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore

echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce

忽略ARP广播

echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore

echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce

注意:关闭arp应答

1:仅在伸手的靶子IP配置在本地主机的收纳到请求报文的接口上时,才给予响应

2:必须制止将接口音讯向非本网络开始展览通报

 

三 想恒久生效,能够写到配置文件中

vim /etc/sysctl.conf

net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

  

修改DR1和DR2:

[root@DR1 ~]# vim /etc/keepalived/keepalived.conf   #修改DR1的配置文件,添加新的实例,配置服务器组
    ...
    vrrp_instance VIP_2 {
        state BACKUP
        interface eno16777736
        virtual_router_id 2
        priority 90
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass UU**99^^
        }
        virtual_ipaddress {
            192.168.4.121/24 dev eno16777736 label eno16777736:1
        }
    }

    virtual_server_group ngxsrvs {
        192.168.4.120 80
        192.168.4.121 80
    }
    virtual_server group ngxsrvs {
        ...
    }
[root@DR1 ~]# systemctl restart keepalived.service   #重启服务
[root@DR1 ~]# ifconfig   #此时可以看到eno16777736:1,因为DR2还未配置
    eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 192.168.4.116  netmask 255.255.255.0  broadcast 192.168.4.255
            inet6 fe80::20c:29ff:fe93:270f  prefixlen 64  scopeid 0x20<link>
            ether 00:0c:29:93:27:0f  txqueuelen 1000  (Ethernet)
            RX packets 54318  bytes 5480463 (5.2 MiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 38301  bytes 3274990 (3.1 MiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

    eno16777736:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 192.168.4.120  netmask 255.255.255.0  broadcast 0.0.0.0
            ether 00:0c:29:93:27:0f  txqueuelen 1000  (Ethernet)

    eno16777736:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 192.168.4.121  netmask 255.255.255.0  broadcast 0.0.0.0
            ether 00:0c:29:93:27:0f  txqueuelen 1000  (Ethernet)
[root@DR1 ~]# ipvsadm -ln
    IP Virtual Server version 1.2.1 (size=4096)
    Prot LocalAddress:Port Scheduler Flags
      -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
    TCP  192.168.4.120:80 rr
      -> 192.168.4.118:80             Route   1      0          0         
      -> 192.168.4.119:80             Route   1      0          0         
    TCP  192.168.4.121:80 rr
      -> 192.168.4.118:80             Route   1      0          0         
      -> 192.168.4.119:80             Route   1      0          0

[root@DR2 ~]# vim /etc/keepalived/keepalived.conf   #修改DR2的配置文件,添加实例,配置服务器组
    ...
    vrrp_instance VIP_2 {
        state MASTER
        interface eno16777736
        virtual_router_id 2
        priority 100
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass UU**99^^
        }
        virtual_ipaddress {
            192.168.4.121/24 dev eno16777736 label eno16777736:1
        }
    }

    virtual_server_group ngxsrvs {
        192.168.4.120 80
        192.168.4.121 80
    }
    virtual_server group ngxsrvs {
        ...
    }
[root@DR2 ~]# systemctl restart keepalived.service   #重启服务
[root@DR2 ~]# ifconfig
    eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 192.168.4.117  netmask 255.255.255.0  broadcast 192.168.4.255
            inet6 fe80::20c:29ff:fe3d:a31b  prefixlen 64  scopeid 0x20<link>
            ether 00:0c:29:3d:a3:1b  txqueuelen 1000  (Ethernet)
            RX packets 67943  bytes 6314537 (6.0 MiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 23250  bytes 2153847 (2.0 MiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

    eno16777736:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 192.168.4.121  netmask 255.255.255.0  broadcast 0.0.0.0
            ether 00:0c:29:3d:a3:1b  txqueuelen 1000  (Ethernet)
[root@DR2 ~]# ipvsadm -ln
    IP Virtual Server version 1.2.1 (size=4096)
    Prot LocalAddress:Port Scheduler Flags
      -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
    TCP  192.168.4.120:80 rr
      -> 192.168.4.118:80             Route   1      0          0         
      -> 192.168.4.119:80             Route   1      0          0         
    TCP  192.168.4.121:80 rr
      -> 192.168.4.118:80             Route   1      0          0         
      -> 192.168.4.119:80             Route   1      0          0 

5、测试

(一)lvs负载均衡作用是还是不是开启

客户端访问

澳门新萄京官方网站 10

也得以详细测试

壹 在rs壹 上安装多少个测试一面

vim /data/web/test.html

real server 1

 

二 在rs二 上设置二个测试一面

vim /data/web/test.html

real server 2

 

叁 网页访问 发现有real server 1也有real server 2

澳门新萄京官方网站 11

 

(2)测试keepalived的着力格局

1 使keepalive 的主宕机

service keepalived stop

 

会意识服务能照常访问,然则VIP 漂移到了从上

从多了网卡外号,且地址是VIP

澳门新萄京官方网站 12

 

三 使keepalive 的主重新开启服务,因为主的事先级高,所以VIP又再次漂移到了主上

澳门新萄京官方网站 13

 

客户端测试:

[root@client ~]# for i in {1..20};do curl http://192.168.4.120;done
    <h1> 192.168.4.119 RS2 server</h1>
    <h1> 192.168.4.118 RS1 server </h1>
    <h1> 192.168.4.119 RS2 server</h1>
    <h1> 192.168.4.118 RS1 server </h1>
    <h1> 192.168.4.119 RS2 server</h1>
    <h1> 192.168.4.118 RS1 server </h1>
    <h1> 192.168.4.119 RS2 server</h1>
    <h1> 192.168.4.118 RS1 server </h1>
    <h1> 192.168.4.119 RS2 server</h1>
    <h1> 192.168.4.118 RS1 server </h1>
    <h1> 192.168.4.119 RS2 server</h1>
    <h1> 192.168.4.118 RS1 server </h1>
    <h1> 192.168.4.119 RS2 server</h1>
    <h1> 192.168.4.118 RS1 server </h1>
    <h1> 192.168.4.119 RS2 server</h1>
    <h1> 192.168.4.118 RS1 server </h1>
    <h1> 192.168.4.119 RS2 server</h1>
    <h1> 192.168.4.118 RS1 server </h1>
    <h1> 192.168.4.119 RS2 server</h1>
    <h1> 192.168.4.118 RS1 server </h1>
[root@client ~]# for i in {1..20};do curl http://192.168.4.121;done
    <h1> 192.168.4.119 RS2 server</h1>
    <h1> 192.168.4.118 RS1 server </h1>
    <h1> 192.168.4.119 RS2 server</h1>
    <h1> 192.168.4.118 RS1 server </h1>
    <h1> 192.168.4.119 RS2 server</h1>
    <h1> 192.168.4.118 RS1 server </h1>
    <h1> 192.168.4.119 RS2 server</h1>
    <h1> 192.168.4.118 RS1 server </h1>
    <h1> 192.168.4.119 RS2 server</h1>
    <h1> 192.168.4.118 RS1 server </h1>
    <h1> 192.168.4.119 RS2 server</h1>
    <h1> 192.168.4.118 RS1 server </h1>
    <h1> 192.168.4.119 RS2 server</h1>
    <h1> 192.168.4.118 RS1 server </h1>
    <h1> 192.168.4.119 RS2 server</h1>
    <h1> 192.168.4.118 RS1 server </h1>
    <h1> 192.168.4.119 RS2 server</h1>
    <h1> 192.168.4.118 RS1 server </h1>
    <h1> 192.168.4.119 RS2 server</h1>
    <h1> 192.168.4.118 RS1 server </h1>

 

试验二:落成keepalived双主方式高可用基于LVS-D本田UR-V情势的利用实战:

施行原理:

互为主题:主从都在劳作;在那之中一个宕机了,VIP漂移到另一个上,提供服务

一、实验景况,基本同上

机器名称

IP配置

服务角色

备注

lvs-server-1

VIP:172.17.100.100

DIP:172.17.1.6

负载均衡器

主服务器

开启路由功能

配置keepalived

lvs-server2

VIP:172.17.100.101

DIP:172.17.11.11

后端服务器

从服务器

开启路由功能

配置keepalived

rs01

RIP:172.17.1.7

后端服务器

 

rs02

RIP:172.17.22.22

后端服务器

 

 

贰、在lvs-server1 上,基本同上,正是加了3个实例段

修改keepalived主(lvs-server-master)配置文件落到实处 virtual_instance 实例

(1)vim /etc/keepalived/keepalived.conf

① 主的设置 VI_1

vrrp_instance VI_1 {
    state MASTER
    interface eth1
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass along
    }
    virtual_ipaddress {
        172.17.100.100
    }
}

virtual_server 172.17.100.100 80 {
    delay_loop 6
    lb_algo wrr
    lb_kind DR
    nat_mask 255.255.255.255
    persistence_timeout 600
    protocol TCP

    real_server 172.17.1.7 80 {
        weight 1
        HTTP_GET {
            url {
              path /
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
    real_server 172.17.22.22 80 {
        weight 1
        HTTP_GET {
            url {
              path /
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

 

2 从的设置 VI_2

vrrp_instance VI_2 {
    state BACKUP
    interface eth1
    virtual_router_id 52
    priority 98
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass along
    }
    virtual_ipaddress {
        172.17.100.101
    }
}

virtual_server 172.17.100.101 443 {
    delay_loop 6
    lb_algo wrr
    lb_kind DR
    nat_mask 255.255.255.255
    persistence_timeout 600
    protocol TCP

    real_server 172.17.1.7 443 {
        weight 1
        HTTP_GET {
            url {
              path /
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
    real_server 172.17.22.22 443 {
        weight 1
        HTTP_GET {
            url {
              path /
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

 

(2)开启keepalived 服务

service keepalived start

能收看网卡别名 和 负载均衡攻略已经安装好了

澳门新萄京官方网站 14

ipvsadm -Ln

澳门新萄京官方网站 15

 

(3)因为是着力形式,所以从上的布署和主唯有某个出入;所以能够把那个布局文件拷过去

scp /etc/keepalived/keepalived.conf @172.17.11.11:

 

三、在lvs-server二 上,基本同1,正是把实例的着力交换一下

(1)vim /etc/keepalived/keepalived.conf

① vrrp_instance VI_1 {
    state BACKUP
    interface eth1
    virtual_router_id 51
    priority 98
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass along
    }
    virtual_ipaddress {
        172.17.100.100
    }
}
② vrrp_instance VI_2 {
    state MASTER
    interface eth1
    virtual_router_id 52
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass along
    }
    virtual_ipaddress {
        172.17.100.101
    }
}

 

(2)开启keepalived 服务

service keepalived start

能收看网卡别称 和 负载均衡计谋已经安装好了,显示结果会等段时光再呈现

澳门新萄京官方网站 16

ipvsadm -Ln,呈现结果会等段日子再显示

澳门新萄京官方网站 17

 

4、在real server 上

(一) 开启事前图谋好的web服务

systemctl start nginx

systemctl start mariadb

systemctl start php-fpm

 

(2)因为是DR模式,需在rs上设置

壹 配置VIP到本地回环网卡lo上,并只播放自个儿

ifconfig lo:0 172.17.100.100 broadcast 172.17.100.100 netmask 255.255.255.255 up

ifconfig lo:1 172.17.100.101 broadcast 172.17.100.101 netmask 255.255.255.255 up

布局本地回环网卡路由

route add -host 172.17.100.100 lo:0

route add -host 172.17.100.101 lo:1

 

② 使RS "闭嘴"

echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore

echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce

忽略ARP广播

echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore

echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce

注意:关闭arp应答

一:仅在呼吁的目的IP配置在地方主机的收到到请求报文的接口上时,才给予响应

二:必须幸免将接口音信向非本网络举办通报

 

叁 想恒久生效,能够写到配置文件中

vim /etc/sysctl.conf

net.ipv4.conf.lo.arp_ignore = 1

net.ipv4.conf.lo.arp_announce = 2

net.ipv4.conf.all.arp_ignore = 1

net.ipv4.conf.all.arp_announce = 2

 

5、测试

(一)lvs负载均衡成效是还是不是开启

客户端访问 公网17二.一7.100.100只能访问80

澳门新萄京官方网站 18

公网172.一7.100.10一不得不访问4四三

澳门新萄京官方网站 19

也得以详细测试

一 在rs一 上安装2个测试一面

vim /data/web/test.html

real server 1

 

二 在rs二 上设置一个测试一面

vim /data/web/test.html

real server 2

 

叁 网页访问 发现有real server 1也有real server 2

澳门新萄京官方网站 20

 

(二)测试keepalived的双主方式

1 使keepalive 的任性二个宕机

service keepalived stop

 

会意识服务能照常访问,另八个机器80、4肆三都能访问,且宕机的VIP漂移到了另三个服务器上

澳门新萄京官方网站 21

  

试验三:完结keepalived主从章程高可用基于LVS-NAT方式的运用实战:

实施原理:

主从:1主一从,主的在劳作,从的在男耕女织;主的宕机了,VIP和DIP都漂移到从上,由从提供劳务,因为DIP需被rs作为网关,所以也需上浮

1、情形希图

机器名称

IP配置

服务角色

备注

vs-server-master

VIP:172.17.100.100

DIP:192.168.30.100

负载均衡器

主服务器

开启路由功能

配置keepalived

lvs-server-backup

VIP:172.17.100.100

DIP:192.168.30.100

后端服务器

从服务器

开启路由功能

配置keepalived

rs01

RIP:192.168.30.107

后端服务器

网关指向DIP

rs02

RIP:192.168.30.7

后端服务器

网关指向DIP

小心:要力保rs和DIP在一个网段,且不和VIP在三个网段

 

2、在lvs-server-master 主上

(1)vim keepalived.conf

global_defs {
   notification_email {
        root@localhost
   }
   notification_email_from root@along.com
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id keepalived_lvs
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass along
    }
    virtual_ipaddress {
       172.17.100.100
192.168.30.100
    }
}

virtual_server 172.17.100.100 80 {
    delay_loop 6
    lb_algo wrr
    lb_kind NAT
    nat_mask 255.255.255.255
    persistence_timeout 100
    protocol TCP

    real_server 192.168.30.107 80 {
        weight 1
        HTTP_GET {
            url {
              path /
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }

    real_server 192.168.30.7 80 {
        weight 2
        HTTP_GET {
            url {
              path /
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

 

(二)因为是NAT格局,所以需开启路由转载功用

vim /etc/sysctl.conf

net.ipv4.ip_forward = 1

 

sysctl -p 读一些,使参数生效

 

(3)开启keepalived 服务

service keepalived start

能来看网卡小名 和 负载均衡战术已经安装好了

澳门新萄京官方网站 22

ipvsadm -Ln

澳门新萄京官方网站 23

 

(四)因为是主导方式,所以从上的布置和主唯有几许差别;所以能够把那些布局文件拷过去

scp /etc/keepalived/keepalived.conf @172.17.11.11:

 

3、在lvs-server-backup 从上

(一)只需改2实例段,别的都不要变,保险一模同样

vrrp_instance VI_1 {
    state BACKUP
    interface eth1
    virtual_router_id 51
    priority 99
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass along
    }

 

 

(贰)因为是NAT格局,所以需开启路由转载效用

① vim /etc/sysctl.conf

net.ipv4.ip_forward = 1

2 sysctl -p 读一些,使参数生效

 

(3)开启keepalived 服务

service keepalived start

负载均衡战术已经安装好了,注意:主director未有宕机,从上就不会有VIP

ipvsadm -Ln 大概过1会才会显得

澳门新萄京官方网站 24

 

4、在real server 上

(一) 开启事前希图好的web服务

systemctl start nginx

systemctl start mariadb

systemctl start php-fpm

 

(2)因为是NAT模式,需在rs上设置

只需把网关指向DIP

route add default gw 192.168.30.100

 

5、测试

(1)lvs负载均衡功效是或不是展开

客户端访问

澳门新萄京官方网站 25

也足以详细测试

壹 在rs壹 上设置二个测试一面

vim /data/web/test.html

real server 1

 

二 在rs二 上安装三个测试一面

vim /data/web/test.html

real server 2

 

3 网页访问 发现有real server 1也有real server 2

澳门新萄京官方网站 26

 

 

(2)测试keepalived的为主格局

1 使keepalive 的主宕机

service keepalived stop

 

会意识服务能照常访问,可是VIP 和DIP 都浮动到了从上

从多了网卡别名,且地址是VIP

澳门新萄京官方网站 27

 

3 使keepalive 的主重新开启服务,因为主的预先级高,所以VIP和DIP又再次漂移到了主上

澳门新萄京官方网站 28

 

实验4:落成keeaplived 故障公告机制

一、编写好剧本

本子首要内容:检验到核心发生变化,或错误,给什么人发邮件;邮件内容是:在哪些日子,什么人发生了什么样变化

vim /etc/keepalived/notify.sh

#!/bin/bash
# Author: www.magedu.com
contact='root@localhost'
notify() {
        mailsubject="$(hostname) to be $1: vip floating"
        mailbody="$(date  '%F %H:%M:%S'): vrrp transition, $(hostname) changed to be $1"
        echo $mailbody | mail -s "$mailsubject" $contact
}
case $1 in
master) 
        notify master
        exit 0
;;
backup)
        notify backup
        exit 0
;;
fault)
        notify fault
        exit 0
;;
*)
        echo "Usage: $(basename $0) {master|backup|fault}"
        exit 1
;;
esac

剧本加权限 chmod x /etc/keepalived/notify.sh

 

贰、在keepalived 的配备文件调用脚本

在instance 实例段增多,注意脚本的路线

notify_backup "/etc/keepalived/notify.sh backup"
notify_master "/etc/keepalived/notify.sh master"
notify_fault "/etc/keepalived/notify.sh fault"

例:

澳门新萄京官方网站 29

  

实行5:落成keepaplived自定义脚本检验效率

规律:在keepalived的布置文件中能直接定义脚本,且能在instance 实例段直接调用生效

 

方案1:检查实验是或不是存在down文件,来促成基本的调解

一、在实例段上边定义八个剧本

vim keepalived.conf

vrrp_script chk_down {    #定义一个脚本,脚本名称为chk_down
   script "[[ -f /etc/keepalived/down ]] && exit 1 || exit 0"   #检查这个down文件,若存在返回值为1,keepalived会停止;不存在返回值为0,服务正常运行;这里的exit和bash脚本里的return很相似
 interval 2   #每2秒检查一次
}

贰、在instance 实例段能够直接调用那些剧本

track_script {
    chk_down
}

 

3、检测

在主上,创立一个/etc/keepalived/down 文件,主的keepalived服务及时停下,VIP漂到从上,从接上服务;

down文件一旦删除,主的keepalived服务会马上运营,若优先级高或先期级低但设置的抢占,VIP会重漂回来,接上服务。

 

方案二:检测nginx服务是不是开启,来得以达成调节基本

一、在实例段上边定义1个剧本

vrrp_script chk_nginx {
     script "killall -0 nginx" #killall -0 检测这个进程是否还活着,不存在就减权重
     interval 2 #每2秒检查一次
     fall 2 #失败2次就打上ko的标记
     rise 2 #成功2次就打上ok的标记
     weight -4 #权重,优先级-4,若为ko
}

 

二、在instance 实例段可以一贯调用那几个本子

track_script {
    chk_nginx
}

 

3、检测

若主的nginx服务未有开启,则每二秒-四的权重,当优先级小于从,VIP漂到从上,从接上服务;

若主的nginx服务开启,重读配置文件,优先级回复,VIP回到主上,主复苏服务;

  

本文由澳门新萄京官方网站发布于澳门新萄京官方网站,转载请注明出处:keepalived搭建主从架构,Keepalived学习笔记

关键词: