keepalive高可用
问题
1、LVS会挂,单点故障,所有业务下线
2、RS会挂,一部分用户会请求异常(因为LVS还有这个RS的负载记录)
解决单点故障:一变多
解决多点问题的2个思路:
1、主备:本文讨论主备实现;
2、主主:VIP必须全局唯一,不能配多个主,必须才有其他技术,如动态DNS等。
主备和主从不是同一个概念
主备:备机平时不干活
主从:从机平时干活,同时主机也会存在单点问题,所以需要对主机进行主备
主备模型
如何确定主机的状态?(方向性)
1、备机定时轮询主机状态,主机会有 较大压力
2、备机被动观察,主机周期性的向往发送广播包
如何选主?(效率性)
备机有一个权重值,通过推让制可以最快选出主机来
paxos理论
解决RS故障
如何确定RS故障?
通过访问(本质上验证的是应用层的http协议)
keepalived实现高可用(HA)
高可用:当有一台服务器挂了,会有其他的服务器(通过选主)快速的顶上来 keepalived是通过vrrp协议来实现HA的 在网络层(三层):通过ICMP协议向服务器集群中的每一个节点发送一个ICMP数据包,如果某个节点没有返回响应数据包,那么认为该节点发生了故障,Keepalived将报告这个节点失效,并从服务器集群中剔除故障节点。 在网络层(四层):利用了TCP协议的端口连接和扫描技术来判断集群节点的端口是否正常 在应用层(五层):可以运行FTP,TELNET,SMTP,DNS等各种不同类型的高层协议
keepalived的作用
1、监控自己的服务 2、Master通告自己还活着,backup监听Master状态;一旦Master挂了,会由一堆backup推举出新的Master 3、配置VIP,配置ipvs的配置 4、对后端的RS做健康检查
keepalived实验
主机: node01~node04
---------------------------
node01:
ipvsadm -C
ifconfig eth0:8 down
----------------------------
node01,node04:
yum install keepalived ipvsadm -y
配置:
cd /etc/keepalived/
cp keepalived.conf keepalived.conf.bak
vi keepalived.conf
node01:
vrrp:虚拟路由冗余协议!
-----------------配置vrrp协议,即配置VIP-----------------
vrrp_instance VI_1 {
state MASTER // node04 BACKUP
interface eth0
virtual_router_id 51
priority 100 // node04 50
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.150.100/24 dev eth0 label eth0:3
}
}
--------------------配置ipvs---------------------------
virtual_server 192.168.150.100 80 {
delay_loop 6
lb_algo rr
lb_kind DR
nat_mask 255.255.255.0
persistence_timeout 0
protocol TCP
real_server 192.168.150.12 80 {
weight 1
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.150.13 80 {
weight 1
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
scp ./keepalived.conf root@node04:`pwd`
|