- 简介.Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器
工作原理
- Layer3,4,5工作在IP/TCP协议栈的IP层,TCP层,及应用层,原理分别如下:
Layer3:Keepalived使用Layer3的方式工作式时,Keepalived会定期向服务器群中的服务器发送一个ICMP的数据包(既我们平时用的Ping程序),如果发现某台服务的IP地址没有激活,Keepalived便报告这台服务器失效,并将它从服务器群中剔除,这种情况的典型例子是某台服务器被非法关机。Layer3的方式是以服务器的IP地址是否有效作为服务器工作正常与否的标准。
Layer4:如果您理解了Layer3的方式,Layer4就容易了。Layer4主要以TCP端口的状态来决定服务器工作正常与否。如web
server的服务端口一般是80,如果Keepalived检测到80端口没有启动,则Keepalived将把这台服务器从服务器群中剔除。
Layer5:Layer5对指定的URL执行HTTP GET。然后使用MD5算法对HTTP
GET结果进行求和。如果这个总数与预期值不符,那么测试是错误的,服务器将从服务器池中移除。该模块对同一服务实施多URL获取检查。如果您使用承载多个应用程序服务器的服务器,则此功能很有用。此功能使您能够检查应用程序服务器是否正常工作。MD5摘要是使用genhash实用程序(包含在keepalived软件包中)生成的。
SSL_GET与HTTP_GET相同,但使用SSL连接到远程Web服务器。
MISC_CHECK:此检查允许用户定义的脚本作为运行状况检查程序运行。结果必须是0或1.该脚本在导演盒上运行,这是测试内部应用程序的理想方式。可以使用完整路径(即/path_to_script/script.sh)调用可以不带参数运行的脚本。那些需要参数的需要用双引号括起来(即“/path_to_script/script.sh
arg 1 … arg n”)
keepalived
1、keepalived的作用和特点
1)keepalived的作用
是一个故障转移群集工具
2)keepalived的特点
支持故障转移换功能
故障转移群集节点状态检查
工作在应用层
基于VRRP虚拟路由器冗余协议实现高可用
2、keepalived的角色
1)Master
主角色
默认对外提供服务
VIP地址在Master角色上
Master角色优先级最高
2)Backup
备份角色
默认监听Master状态
优先级比Master低
可以配置多个Backup角色
3、安装keepalived
1)安装keepalived
[root@centos04~]#yum -y install ipvsadm keepalived
2)设置服务开机自动启动
[root@centos04~]#chkconfig --level 35 keepalived on
3)启动keepalived服务
[root@centos04~]#systemctl start keepalived
4、keepalived配置文件和主配置文件常见的选项
1)主配置文件位置
/etc/keepalived/keepalived.conf
2)keepalived主配置文件常见的选项
global_defs 全局配置文件
vrrp_instance VI_1 热备份设置
authentication 设置主从节点通信验证
virtual_ipaddress 配置VIP地址
virtual_server 配置服务器池
real_server 添加web服务器节点
安装keepalived
(1)安装keepalived
[root@centos04 ~]# yum -y install ipvsadm
keepalived
(2)设置服务开机自动启动
[root@centos04 ~]# chkconfig --level 35
keepalived on
(3)启动keepalived服务
[root@centos04 ~]# systemctl start
keepalived
备份主配置文件
[root@centos04~]#cp /etc/keepalived/keepalived.conf
/etc/keepalived/keepalived.conf.bak
2. 配置双击热备
(1)配置双机热备主节点
[root@centos04 ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id LVS_HA_Master
}
vrrp_instance VI_1 {
state MASTER
interface ens32
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.100.253
}
}
virtual_server 192.168.100.253 80 {
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 50
protocol TCP
real_server 192.168.100.10 80 {
weight 1
TCP_CHECK
{
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.100.20 80 {
weight 1
TCP_CHECK
{
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
重启keeaplived服务
[root@centos04 ~]# systemctl restart
keepalived
3.配置双机热备备份节点
(1)安装软件包
[root@centos05 ~]# yum -y install ipvsadm keepalived
(2)配置备份服务器
[root@centos05~]#scp root@192.168.100.40:/etc/keepalived/keepalived.conf /etc/keepalived/
(2)修改备份主配置文件
[root@centos05 ~]# vim /etc/keepalived/keepalived.conf
global_defs {
router_id LVS_HA_Backup
}
vrrp_instance VI_1 {
state
BACKUP
interface ens32
virtual_router_id 51
priority
99
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.100.253
}
}
删除第二块网卡,重启网卡服务
[root@centos04 ~]# cd /etc/sysconfig/network-scripts/
[root@centos04 network-scripts]# rm -rf ifcfg-ens32:0
[root@centos04 ~]# systemctl restart network
重启keeaplived服务
[root@centos04 ~]# systemctl restart keepalived
Ip -a查看添加的VIP地址
停止主节点服务模拟故障,备份节点服务器接替
[root@centos04 ~]# systemctl stop keepalived
使用Ip -a查看添加的VIP地址
动态监听正确日志访问记录
[root@centos02 ~]# tail -f /var/log/httpd/access_log
模拟主节点故障,客户端继续访问测试
[root@centos04 ~]# systemctl stop keepalived
重启网站服务器验证开机自动挂载
[root@centos01 ~]# cat /var/www/html/index.html
www.nfs.com
客户端访问测试