什么是高可用
1 |
一般是指2台机器启动着完全相同的业务系统,当有一台机器down机了,另外一台服务器就能快速的接管,对于访问的用户是无感知的。 |
高可用使用的工具
1 2 3 4 |
1.硬件: F5 2.软件: keepalived |
keepalived是如何实现高可用的
1 2 3 |
keepalived是基于VRRP协议实现的 如何才能做到出现故障自动转移,此时VRRP就出现了,我们的VRRP其实是通过软件或者硬件的形式在Master和Backup外面增加一个虚拟的MAC地址(VMAC)与虚拟IP地址(VIP),那么在这种情况下,PC请求VIP的时候,无论是Master处理还是Backup处理,PC仅会在ARP缓存表中记录VMAC与VIP的信息 |
高可用的使用场景
1 |
通常业务系统需要保证7×24小时不DOWN机,比如公司内部的OA系统,每天公司人员都需要使用,则不允许Down机,作为业务系统来说随时都可用 |
高可用keepalived核心概念
1 2 3 |
1.如何确定谁是主节点谁是背节点(选举投票,优先级) 2.如果Master故障,Backup自动接管,那么Master恢复后会夺权吗(抢占式、非抢占式) 3.如果两台服务器都认为自己是Master会出现什么问题(脑裂) |
环境准备
主机 | IP | 身份 |
---|---|---|
web01 | 172.16.1.7 | |
web03 | 172.16.1.9 | |
nfs | 172.16.1.31 | |
db01 | 172.16.1.51 | |
lb01 | 172.16.1.4 | master |
lb02 | 172.16.1.5 | backup |
10.0.0.3 | VIP |
安装keepalived
1 2 |
[root@lb01 ~]# yum install -y keepalived [root@lb02 ~]# yum install -y keepalived |
配置keepalived主节点
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
#查找配置文件 [root@lb01 ~]# rpm -qc keepalived /etc/keepalived/keepalived.conf [root@lb01 ~]# vim /etc/keepalived/keepalived.conf global_defs { #全局配置 router_id lb01 #身份识别(唯一) } vrrp_instance VI_1 { #VRPP协议配置 state MASTER #告诉你一开始这台机器是主 interface eth0 #绑定的网卡 virtual_router_id 51 #虚拟路由标识,就是编组,将master和backup分为一组 priority 100 #优先级(真正判断是主还是备的条件) advert_int 1 #检测心跳的时间间隔 authentication { #认证相关 auth_type PASS #以密码的形式认证 auth_pass 1111 #密码 } virtual_ipaddress { #指定VIP地址 10.0.0.3 } } |
配置keepalived备节点
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
[root@lb02 ~]# vim /etc/keepalived/keepalived.conf global_defs { router_id lb02 } vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 51 priority 90 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 10.0.0.3 } } |
主备节点配置区别
区别 | master主节点 | backup备节点 |
---|---|---|
router_id(唯一标识符) | lb01 | lb02 |
state(角色状态) | MASTER | BACKUP |
priority(优先级) | 100 | 90 |
启动服务
1 2 3 4 5 |
[root@lb02 ~]# systemctl start keepalived.service [root@lb02 ~]# tail -f /var/log/messages [root@lb01 ~]# systemctl start keepalived.service [root@lb02 ~]# tail -f /var/log/messages |
配置keepalived日志
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#配置keepalived [root@lb02 ~]# vim /etc/sysconfig/keepalived KEEPALIVED_OPTIONS="-D -d -S 0" #配置rsyslog [root@lb02 ~]# vim /etc/rsyslog.conf local0.* /var/log/keepalived.log #重启服务 [root@lb02 ~]# systemctl restart rsyslog [root@lb02 ~]# systemctl restart keepalived #查看日志 [root@lb02 ~]# tail -f /var/log/keepalived.log |