keepalived给LVS带来了什么
1》Keepalived简介
Keepalived是Linux下一个轻量级别的高可用解决方案,高可用(High Avalilability,HA),其实两种不同的含义:广义来讲,是指整个系统的高可用行,狭义的来讲就是之主机的冗余和接管,它与HeartBeat RoseHA 实现相同类似的功能,都可以实现服务或者网络的高可用,但是又有差别,HeartBeat是一个专业的、功能完善的高可用软件,它提供了HA 软件所需的基本功能,比如:心跳检测、资源接管,检测集群中的服务,在集群节点转移共享IP地址的所有者等等。HeartBeat功能强大,但是部署和使用相对比较麻烦,与HeartBeat相比,Keepalived主要是通过虚拟路由冗余来实现高可用功能,虽然它没有HeartBeat功能强大,但是Keepalived部署和使用非常的简单,所有配置只需要一个配置文件即可以完成;
Keepalived起初是为LVS设计的,专门用来监控集群系统中各个服务节点的状态,它根据TCP/IP参考模型的第三、第四层、第五层交换机制检测每个服务节点的状态,如果某个服务器节点出现异常,或者工作出现故障,Keepalived将检测到,并将出现的故障的服务器节点从集群系统中剔除,这些工作全部是自动完成的,不需要人工干涉,需要人工完成的只是修复出现故障的服务节点,Keepalived又加入了VRRP的功能,VRRP(Vritrual Router Redundancy Protocol,虚拟路由冗余协议)出现的目的是解决静态路由出现的单点故障问题,通过VRRP可以实现网络不间断稳定运行,因此Keepalvied 一方面具有服务器状态检测和故障隔离功能,另外一方面也有HA cluster功能,下面介绍一下VRRP协议实现的过程;
2》VRRP协议与工作原理
在现实的网络环境中,主机之间的通信都是通过配置静态路由或者(默认网关)来完成的,而主机之间的路由器一旦发生故障,通信就会失效,因此这种通信模式当中,路由器就成了一个单点瓶颈,为了解决这个问题,就引入了VRRP协议,熟悉网络的学员对VRRP协议应该不陌生,它是一种主备模式的协议,通过VRRP可以在网络发生故障时透明的进行设备切换而不影响主机之间的数据通信,这其中涉及到两个概念:物理路由器和虚拟路由器;
VRRP可以将两台或者多台物理路由器设备虚拟成一个虚拟路由,这个虚拟路由器通过虚拟IP(一个或者多个)对外提供服务,而在虚拟路由器内部十多个物理路由器协同工作,同一时间只有一台物理路由器对外提供服务,这台物理路由设备被成为:主路由器(Master角色),一般情况下Master是由选举算法产生,它 拥有对外服务的虚拟IP,提供各种网络功能,如:ARP请求,ICMP 数据转发等,而且其它的物理路由器不拥有对外的虚拟IP,也不提供对外网络功能,仅仅接收MASTER的VRRP状态通告信息,这些路由器被统称为“BACKUP的角色”,当主路由器失败时,处于BACKUP角色的备份路由器将重新进行选举,产生一个新的主路由器进入MASTER角色,继续提供对外服务,整个切换对用户来说是完全透明的;
每个虚拟路由器都有一个唯一的标识号,称为VRID,一个VRID与一组IP地址构成一个虚拟路由器,在VRRP协议中,所有的报文都是通过IP多播方式发送的,而在一个虚拟路由器中,只有处于Master角色的路由器会一直发送VRRP数据包,处于BACKUP角色的路由器只会接受Master角色发送过来的报文信息,用来监控Master运行状态,一般不会发生BACKUP抢占的情况,除非它的优先级更高,而当MASTER不可用时,BACKUP也就无法收到Master发过来的信息,于是就认定Master出现故障,接着多台BAKCUP就会进行选举,优先级最高的BACKUP将称为新的MASTER,这种选举角色切换非常之快,因而保证了服务的持续可用性;
3》Keepalvied的工作原理
上面我们介绍了Keepalived通过VRRP实现高可用性的工作原理,而Keepalived作为一个高性能集群软件,它还能实现对集群中服务器运行状态的监控以及故障隔离,下面我们介绍一下Keepalived对服务器运行状态和故障隔离的工作原理;
Keepalived工作在TCP/IP 参考模型的 三层、四层、五层,也就是分别为:网络层,传输层和应用层,根据TCP、IP参数模型隔层所能实现的功能,Keepalived运行机制如下:
在网络层: 我们知道运行这4个重要的协议,互联网络IP协议,互联网络可控制报文协议ICMP、地址转换协议ARP、反向地址转换协议RARP,在网络层Keepalived在网络层采用最常见的工作方式是通过ICMP协议向服务器集群中的每一个节点发送一个ICMP数据包(有点类似与Ping的功能),如果某个节点没有返回响应数据包,那么认为该节点发生了故障,Keepalived将报告这个节点失效,并从服务器集群中剔除故障节点;
在传输层: 提供了两个主要的协议:传输控制协议TCP和用户数据协议UDP,传输控制协议TCP可以提供可靠的数据输出服务、IP地址和端口,代表TCP 的一个连接端,要获得TCP服务,需要在发送机的一个端口和接收机的一个端口上建立连接,而Keepalived在传输层里利用了TCP协议的端口连接和扫描技术来判断集群节点的端口是否正常,比如对于常见的WEB服务器80端口。或者SSH服务22端口,Keepalived一旦在传输层探测到这些端口号没有数据响应和数据返回,就认为这些端口发生异常,然后强制将这些端口所对应的节点从服务器集群中剔除掉;
在应用层:可以运行FTP,TELNET,SMTP,DNS等各种不同类型的高层协议,Keepalived的运行方式也更加全面化和复杂化,用户可以通过自定义Keepalived工作方式,例如:可以通过编写程序或者脚本来运行Keepalived,而Keepalived将根据用户的设定参数检测各种程序或者服务是否允许正常,如果Keepalived的检测结果和用户设定的不一致时,Keepalived将把对应的服务器从服务器集群中剔除;
Keepalived 是运行在lvs 之上,它的主要功能是实现真实机的故障隔离及负载均衡器间的失败 切换,提高系统的可用性;
4》Keepalived体系结构
Keepalived起初是为LVS设计的,由于Keeplalived可以实现对集群节点的状态检测,而IPVS可以实现负载均衡功能,因此,Keepalived借助于第三方模块IPVS就可以很方便地搭建一套负载均衡系统,在这里有个误区,由于Keepalived可以和IPVS一起很好的工作,很多学员都以为Keepalived就是一个负载均衡软件,这种理解是错误,在Keepalived当中IPVS模块是可配置的,如果需要负载均衡功能,可以在编译Keepalived时开打负载均衡功能,也可以通过编译参数关闭, NetLINK模块主要用于实现一些高级路由框架和一些相关参数的网络功能,完成用户空间层Netlink Reflector模块发来的各种网络请求,这个图我们可以看到用户空间层,是建立在内核空间层之上的,
用户空间层,主要有4个部分:
Scheduler I/O Multiplexer 是一个I/O复用分发调度器,它负载安排Keepalived所有内部的任务请求;
Memory Mngt 是一个内存管理机制,这个框架提供了访问内存的一些通用方法;
Control Plane 是keepalived的控制版面,可以实现对配置文件编译和解析;
Core componets 这部分主要保护了5个部分:
Watchdog:是计算机可靠领域中极为简单又非常有效的检测工具,Keepalived正是通过它监控Checkers和VRRP进程的;
Checkers: 这是Keepalived最基础的功能,也是最主要的功能,可以实现对服务器运行状态检测和故障隔离;
VRRP Stack: 这时keepalived后来引用VRRP功能,可以实现HA集群中失败切换功能;
IPVS wrapper: 这个是IPVS功能的一个实现,IPVS warrper模块将可以设置好的IPVS规则发送的内核空间并且提供给IPVS模块,最终实现IPVS模块的负载功能;
Netlink Reflector:用来实现高可用集群Failover时虚拟IP(VIP)的设置和切换 ;
Netlink Reflector的所有请求最后都发送到内核空间层的NETLINK 模块来完成;
5》负载均衡技术
1>使 用负载均衡技术的理由:
假如我们有一个咨询类的网站,之允许100个用户同时在线访问,网站上线初期,由于知名度比较小,通常只有几个用户经常上线,后期知名度提高 了,百度和谷歌又收录了我们的网站,于是同时在线的用户量直线上升,很快达到了上千人,于是,网站负荷加重了,经常会“反应迟钝”,这时用户开始抱怨,为了不影响用户对我们的信心,就一定要想办法解决这个一个问题,那么我们想想,如果有几台或者几十台相同配置的机器,前端放一个转发器,轮流转发客户对网站的请求,每台机器将用户数控制在100以内,那么网站的反应速度就会大大提高,即使其中的某台服务器因为硬件故障了导致宕机了,也不会影响用户的访问,那么其中,这个神奇的转发器就是负载均衡(Director);
那么什么是负载均衡呢?负载均衡建立在现有的网络结构之上,它提供了一种廉价、有效、透明的方法来扩大网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力,以及提高网络的灵活性和可用性,通过负载均衡器,我们可以实现N台廉价的Linux服务器并行处理,从而达到小型机或者大型机计算能力,这也是为何负载均衡如此流行的原因;
Scale on: 向上扩展
所谓的向上扩展,就是把当前的服务器进行硬件升级,硬件升级带来的效果不是线性的,如果架构设计不好,那么性能不但不能提升,而且还会下降;
Scale OUT:向外扩展
所谓的向外扩展,那么我们可以做Load Balancing:LB (负载均衡技术)
Ø 系统高可用性
Ø 系统可扩展性
Ø 负载均衡能力
LVS+keepalived能很好的实现以上的要求,LVS提 供负载均衡,keepalived提供健康检查,故障转移,提高系统的可用性!采用这样的架构以后 很容易对现有系统进行扩展,只要在后端添加或者减少realserver,只要更改lvs的 配置文件,并能实现无缝配置变更!
6》Lvs模式介绍
LVS是一个开源的软件,可以实现LINUX平台下的简单负载均衡,LVS是Linux Virtual Server的缩写,意思是Linux虚拟服务器,目前有三种IP负载均衡技 术(VS/NAT、VS/TUN和VS/DR);八种调度算法(rr,wrr,lc,wlc,lblc,lblcr,dh,sh):
1>NAT负载模式
NAT用法本来是因为网络IP地址不足而把内部保留IP地址通过映射转换成公网地址的一种上网方式(原地址NAT)。
如果把NAT的过程稍微变化,就可以 成为负载均衡的一种方式。原理其实就是把从客户端发来的IP包的IP头目的地址在DR上换成其中一台REALSERVER的IP地址并发至此 REALSERVER,而REALSERVER则在处理完成后把数据经过DR主机发回给客户端,DR在这个时候再把数据包的原IP地址改为DR接口上的 IP地址即可。期间,无论是进来的流量,还是出去的流量,都必须经DR,DR压力比较大;
NAT模式:
集群节点跟Direcator 必须在同一个IP网络中;
RIP通常是私有地址,仅仅用于个集群之间通信;
director位于Client和real server之间,并负责处理进出的所有通信;
realservet必须将网关指向DIP,同时也支持端口影射;
Realserver可以使用任意OS;
在较大应用规模当中,单个Director会出现瓶颈;
大概可以带10个左右的SERVER就会出现瓶颈。
2>直接路由模式(DR)
直接路由模式比较特别,很难说和什么方面相似,前NAT和TUN种模式基本上都是工作在网络层上(三层),而直接路由模式则应该是工作在数据链路层上(二层)。其原理 为,DR和REALSERVER都使用同一个IP对外服务。但只有DR对ARP请求进行响应,所有REALSERVER对本身这个IP的ARP请求保持静 默。也就是说,网关会把对这个服务IP的请求全部定向给DR,而DR收到数据包后根据调度算法,找出对应的REALSERVER,把目的MAC地址改为 REALSERVER的MAC并发给这台REALSERVER。这时REALSERVER收到这个数据包,则等于直接从客户端收到这个数据包无异,处理后 直接返回给
客户端。由于DR要对二层包头进行改换,所以DR和REALSERVER之间必须在一个广播域,也可以简单的理解为在同一台交换机上;
DR模式:
每个集群节点跟dr必须在同一个物理网络(局域网)当中(dr和web不能隔了有路由器);
VIP可以使用公网地址,实现远程管理和监控;
director只负责处理进站请求,响应的请求封装后直接由Relserver发给客户端;
Realserver不能将Direc当中网关。只能选择前当网关;
Direc不能支持端口映射。VIP的端口必须和WEB服务端口一致;
大多数的操作系统都可以应用在relserver上;
Direc性能必NAT要好很多。处理速度提高N倍;
3>TUN负载模式 IP隧道模式
隧道模式则类似于VPN的方式,使用网络分层的原理,在从客户端发来的数据包的基础上,封装一个新的IP头标记(不完整的IP头,只有目的IP部)发给 REALSERVER,REALSERVER收到后,先把DR发过来的数据包的头给解开,还原其数据包原样,处理后,直接返回给客户端,而不需要再经过 DR。需要注意的是,由于REALSERVER需要对DR发过来的数据包进行还原,也就是说必须支持IPTUNNEL协议。所以,在REALSERVER 的内核中,必须编译支持 IPTUNNEL这个选项。IPTUNNEL也在Net working
options里面;
TUN模式:
集群节点可以跨越互联网;
Relserver的RIP必须是公网地址(真实环境中);
Director紧处理进站请求;
由Relserver直接响应客户端;
OS必须支持隧道协议,不支持端口映射;
7》LVS负载均衡的八种调度算法
RR算法:
LVS负载均衡算法1.轮叫调度(Round-RobinScheduling)
WRR算法:
LVS负载均衡算法2.加权轮叫调度(WeightedRound-RobinScheduling)
LC算法:
LVS负载均衡算法3.最小连接调度(Least-ConnectionScheduling)
WLC算法:
LVS负载均衡算法4.加权最小连接调度(WeightedLeast-ConnectionScheduling)
LBLC算法:
LVS负载均衡算法5.基于局部性的最少链接(Locality-BasedLeastConnectionsScheduling)
LBLCR算法:
LVS负载均衡算法6.带复制的基于局部性最少链接(Locality-BasedLeastConnectionswithReplicationScheduling)
DH算法:
LVS负载均衡算法7.目标地址散列调度(DestinationHashingScheduling)
SH算法:
LVS负载均衡算法8.源地址散列调度(SourceHashingScheduling)
8》lvs+keepalived架构图
9》lvs持久性连接
对于电子商务网站来说,用户在挑选商品的时候使用的是80端口来浏览的,当付款的时候则是通过443的ssl加密的方式,当然当用户挑选完商品付款的时 候,我们当然不希望https的443跳转到另外一台REAL SERVER上,很显然应该是同一REAL
SERVER才对,这时候就要用到基于防火墙标记的持久连接,通过定义端口的姻亲关系来实现。在生产环
境中用的最多的也是PNMP即基于防火墙标记的持久 连接,好了引子就说到这下面我们就来详细说说LVS的持久连接;
1>PPC(Persistent Port Connections):将来自于同一个客户端对同一个集群服务的请求,始终定向至此前选定的RS;(持久端口连接)
例如:client---->LVS(80)---->RS1 或 client---->LVS(23)---->RS2
缺陷:期望访问不同的端口到同一台RS上,无法实现。
配置:
ipvsadm -A -t 172.16.100.1:80 -s rr -p 3600
ipvsadm -a -t 172.16.100.1:80 -r 172.16.100.10 -g -w 2
ipvsadm -a -t 172.16.100.1:80 -r 172.16.100.11 -g -w 2
2>PCC(Persistent Client Connections):将来自于同一个客户端对所有端口的请求,始终定向至此前选定的RS;(持久客户端连接)
说明:PCC是一个虚拟服务没有端口号(或者端口号为0),以"-p" 来标识服务。
缺陷:定向所有服务,期望访问不同的Real Server无法实现。
配置:
ipvsadm -A -t 172.16.100.1:0 -s rr -p 3600
ipvsadm -a -t 172.16.100.1:0 -r 172.16.100.10 -g -w 2
ipvsadm -a -t 172.16.100.1:0 -r 172.16.100.11 -g -w 2
3>PNMPP(Persistent Netfilter Marked Packet
Persistence):持久防火墙标记连接,根据iptables 的规则,将对于某类服务几个不同端口的访问定义为一类;
先对某一特定类型的数据包打上标记,然后再将基于某一类标记的服务送到后台的 Real Server上去,后台的Real
Server 并不识别这些标记。将持久和防火墙标记结合起来就能够实现端口姻亲功能,只要是来自某一客户端的对某一特定服务(需要不同的端口)的访问都定义到同一台 Real Server上去。
案例:一个用户在访问购物网站时同时使用HTTP(80)和HTTPS(443)两种协议,我们需要将其定义到同一台Real Server上,而其他的服务不受限制。
配置:
iptables -t mangle -A PREROUTING -d 172.16.100.1 -i eth0 -p tcp --dport 80 -j MARK --set-mark 8
iptables -t mangle -A PREROUTING -d 172.16.100.1 -i eth0 -p tcp --dport 443 -j MARK --set-mark 8
ipvsadm -A -f 8 -s rr -p 600
ipvsadm -a -f 8 -r 172.16.100.10 -g -w 2
ipvsadm -a -f 8 -r 172.16.100.11 -g -w 1
4>持久连接命令
1.ipvsadm -A|E … -p timeout
2.选项
3.-p timeout 指定持久连接时长,默认为360秒,单位是秒,即6分钟
http://www.it165.net/admin/html/201307/1565.html
10》LVS+ Keppalived的安装
1>环境描述
LVS server1 (Master):10.0.0.202-à虚拟IP为:10.0.0.210
LVS server2 ( Slave ) :10.0.0.203à虚拟IP为:10.0.0.210
WEB server1: 10.0.0.201 网关为:10.0.0.254
WEB server2; 10.0.0.204 网关为:10.0.0.254
注意:所有集群服务器时间要一致
2>安装LVS
注意此动作,否则MAKE直接报错;
如果没有/2.6.32-279.el6.x86_64 这个目录,请安装内核开发包
# yum -y install kernel-devel
# ln -s /usr/src/kernels/2.6.32-279.el6.x86_64/ /usr/src/linux
# tar -xvf ipvsadm-1.24.tar.gz
# cd ipvsadm-1.24
#make && make install
# ipvsadm –L
3>安装Keepalived
# tar –xvf keepalived-1.2.12.tar.gz
#./configure --sysconf=/etc/ --with-kernel-dir=/usr/src/kernels/2.6.32-279.el6.x86_64/
Keepalived version : 1.2.12
Compiler : gcc
Compiler flags : -g -O2
Extra Lib : -lssl -lcrypto -lcrypt
Use IPVS Framework : Yes 表示使用ipvs框架,也是代表启动IPVS功能
IPVS sync daemon support : Yes 表示启动ipvs的同步功能,--disabled-lvs-sysncd此参数可以关闭。
IPVS use libnl : No 表示使用新的libn1版本,如果想使用新的版本,需要重新安装libn1的包
Use VRRP Framework : Yes 表示使用VRRP框架,这个实现keepalived高可用的必须功能
Use VRRP VMAC : Yes 表示使用基础VMAC接口的xmit VRRP包
SNMP support : No
SHA1 support : No
Use Debug flags : No
# make && make install
# cp /soft/keepalived-1.2.12/bin/keepalived /usr/bin/
ERRR: yum install -y openssl openssl-devel
!!! OpenSSL is not properly installed on your system. !!!
!!! Can not include OpenSSL headers files. !!!
4>主(master)配置Keepalived配置文件
! Configuration File for keepalived
global_defs { #全局定义
notification_email { #定义邮件
alvin@126.com #定义邮件地址
}
notification_email_from alvin@126.com #定义邮件地址
smtp_server mail.126.com #邮件服务器
smtp_connect_timeout 30 #邮件超时时间
router_id LVS_DEVEL #route_id标识
}
vrrp_instance VI_1 { #定义VRR组,
state MASTER #定义为MASTER主
interface eth1 #对外访问的网络接口
virtual_router_id 100 #虚拟路由标识。注意主从要一致
priority 100 #主从优先级,主的优先级要高于从。注意
advert_int 1 #:广播周期秒数
authentication {
auth_type PASS
auth_pass 2209
}
virtual_ipaddress {
10.0.0.210 #:虚拟VIP地址,真实环境这里应该是公网IP
}
}
virtual_server 10.0.0.210 80 { #:虚拟VIP地址 与 端口,DR架构WEB端口要和虚拟端口监听一致。否则将无法访问
delay_loop 6 #健康检查时间间隔,单位是秒
lb_algo rr #调用算法为RR
lb_kind DR #调用架构模式为DR
persistence_timeout 0 #:同一IP 50秒内的请求都发到同个real server
protocol TCP #使用TCP协议
real_server 10.0.0.201 80 {#:真实WEB服务器地址与端口
weight 1 #:转发伐值,越高调用的越多
TCP_CHECK {
connect_timeout 10 #:连接超时为10秒
nb_get_retry 3
delay_before_retry 3
connect_port 80 #连接端口为80,要和上面的保持一致
}
}
real_server 10.0.0.204 80 {
weight 1
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
5>从(Slave)配置Keepalived配置文件
主从配置区别:
state BACKUP #状态改成BACKUP
priority 90 #优先级要低于主
interface eth1 #网络接口注意和本机对应,
其它的配置文件内容和主的一样
6>配置WEBserver,所有的WEB脚本都一样
# vim
如下:
#!/bin/bash
# Written by NetSeek
# description: Config realserver lo and apply noarp
WEB_VIP="10.0.0.210" #:修改VIP,其它的地方不动,
. /etc/rc.d/init.d/functions
case "$1" in
start)
ifconfig lo:0 $WEB_VIP netmask 255.255.255.255 broadcast $WEB_VIP
/sbin/route add -host $WEB_VIP dev lo:0
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
sysctl -p >/dev/null 2>&1
echo "RealServer Start OK"
;;
stop)
ifconfig lo:0 down
route del $WEB_VIP >/dev/null 2>&1
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
echo "RealServer Stoped"
;;
status)
# Status of LVS-DR real server.
islothere=`/sbin/ifconfig lo:0 | grep $WEB_VIP`
isrothere=`netstat -rn | grep "lo:0" | grep $web_VIP`
if [ ! "$islothere" -o ! "isrothere" ]
then
echo "LVS-DR real server Stopped."
else
echo "LVS-DR Running."
fi
;;
*)
# Invalid entry.
echo "$0: Usage: $0 {start|status|stop}"
exit 1
;;
esac
exit 0
11》启动WEB server的脚本
# ./ realserver.sh start
# ip add list
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet 10.0.0.210/32 brd 10.0.0.210 scope global lo:0 是否有VIP?
inet6 ::1/128 scope host
12》启动LVS
在LVS主从服务器上启动LVS
# /etc/init.d/keepalived start
在MASTER服务器上会看到VIP,当MASTER挂了之后。VIP将自动切换到SLAVE(从),
# /etc/init.d/keepalived start
eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:8c:4c:ec brd ff:ff:ff:ff:ff:ff
inet 10.0.0.202/16 brd 10.0.255.255 scope global eth1
inet 10.0.0.210/32 scope global eth1 是否有VIP? 有则OK
inet6 fe80::20c:29ff:fe8c:4cec/64 scope link
valid_lft forever preferred_lft forever
13》访问测试
是否可以看到WEBIP
# ipvsadm -L
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 10.0.0.210:http rr
-> 10.0.0.204:http Route 1 0 0
-> 10.0.0.201:http Route 1 0 0
然后通过浏览器访问:http://10.0.0.210 看看是否可以访问?
配置文件里面设置了同一IP,50秒内定为一台WEBserver保证数据的完整连接;
本文转载自:https://www.cnblogs.com/xiaocheche/p/7689432.html
keepalived给LVS带来了什么的更多相关文章
- MySQL HA方案之MySQL半复制+MHA+Keepalived+Atlas+LVS[转]
MySQL HA方案之MySQL半复制+MHA+Keepalived+Atlas+LVS 简介 目前Mysql高可用的方案有好多,比如MMM,heartbeat+drbd,Cluster等,还有per ...
- 实战--Keepalived和LVS实现负载高可用
显然,只有上一篇的操作,在WEB运维技术中,只能承担一半的角色. 想像一下,如何LVS本身倒了,肿么办?后端的NGINX再多,也只能是干着急,请求过来不呀! 所以,在本篇时,我们来实现LVS永不倒, ...
- 基于Keepalived实现LVS双主高可用集群
Reference: https://mp.weixin.qq.com/s?src=3×tamp=1512896424&ver=1&signature=L1C7us ...
- Linux-利用keepalived实现lvs的高可用性
单主模型IPVS示例 配置keepalive 高可用的ipvs集群示例:修改keepalived配置文件 修改主机:192.168.234.27的keepalived配置文件 [root@234c27 ...
- 使用Keepalived构建LVS高可用集群
LVS的DR模型配置+Keepalive部署 介绍 下图为DR模型的通信过程,图中的IP不要被扑结构中的IP迷惑,图里只是为了说明DR的通信原理,应用到本例中的拓扑上其工作原理不变. 拓扑结构 服务器 ...
- 003.Keepalived搭建LVS高可用集群
一 基础环境 1.1 IP规划 OS:CentOS 6.8 64位 节点类型 IP规划 主机名 类型 主 Director Server eth0:172.24.8.10 DR1 公共IP eth1: ...
- keepalived heartbeat lvs haproxy
一, keeplived @ 01,keeplived 是什么? Keepalived起初是为LVS设计的,专门用来监控集群系统中各个服务节点的状态,它根据TCP/IP参考模型的第三.第四层.第五层交 ...
- Linux keepalived与lvs的深入分析
一)概述 在本篇文章里,我们会涉及两部份内容,一个是LVS,另一个则是keepalived. 即我们用LVS和keepalived实现了负载均衡及高可用的服务器. LVS有实现三种IP负载均衡技术 ...
- [LVS] 用keepalived实现LVS NAT模式高可用性
默认前提是LVS已经可以正常工作了. 因为是NAT模式,RS的路由要指向LVS的接口地址,所以需要一个统一的后台浮动地址,使得RS都指向这个浮动IP.否则在切换时,会导致RS回包到DOWN掉的LVS上 ...
随机推荐
- 手游开发之lua的class函数详解
众所周知,lua没有类这个概念但其通过table实现了面向对象的“类”.在cocos2dx引擎下提供了class(className, ...)函数方法名,因为在脚本开发中这个接口基本都会用来创建一个 ...
- 第一次博客作业 <西北师范大学| 周安伟>
1.助教博客链接:https://home.cnblogs.com/u/zaw-315/ 2.本周点评的作业数:3份,有留言互动. 3.本周点评有困难的地方: https://www.cnblogs ...
- 远程过程调用(RPC)
在第二篇教程中我们介绍了如何使用工作队列(work queue)在多个工作者(woker)中间分发耗时的任务. 可是如果我们需要将一个函数运行在远程计算机上并且等待从那儿获取结果时,该怎么办呢?这就是 ...
- LAB7 REST
r需要初始化才能赋值. 不要盲目抄doGet方法,要理解题目的意思
- [leetcode]92. Reverse Linked List II反转链表2
Reverse a linked list from position m to n. Do it in one-pass. Note: 1 ≤ m ≤ n ≤ length of list. Exa ...
- 理解javascript中的立即执行函数(function(){})()
之前看了好多代码,都有用到这种函数的写法,但是都没认真的去想为什么会这样写,今天开始想学习下jquery的源码,发现jquery也是使用这种方式,用(function(window, undefine ...
- UML图之时序图
时序图(Sequence Diagram)是显示对象之间交互的图,这些对象是按时间顺序排列的.顺序图中显示的是参与交互的对象及其对象之间消息交互的顺序.时序图中包括的建模元素主要有:角色(Actor) ...
- vue 打包后本地先自己启动服务 anywhere 非常好用
:)nodejs服务器Anywhere Anywhere是一个随启随用的静态服务器,它可以随时随地将你的当前目录变成一个静态文件服务器的根目录. 一,安装node 在nodejs官网下载,安装后打开c ...
- JavaScript并发模型与Event Loop (转载)
并发模型可视化描述 model.svg 如上图所示,Javascript执行引擎的主线程运行的时候,产生堆(heap)和栈(stack),程序中代码依次进入栈中等待执行, 若执行时遇到异步方法,该异步 ...
- EasyPR源码剖析(7):车牌判断之SVM
前面的文章中我们主要介绍了车牌定位的相关技术,但是定位出来的相关区域可能并非是真实的车牌区域,EasyPR通过SVM支持向量机,一种机器学习算法来判定截取的图块是否是真的“车牌”,本节主要对相关的技术 ...