通过采用VRRP(虚拟路由冗余协议)热备份协议,以软件的方式实现Linux服务器的多机热备功能
VRRP协议
就是防止单路由出现错误导致不能正常运行工作的一种主备模式的协议,实现多个路由工作,当一个路由出现故障,可以使用备用的路由来做之前路由需要做的工作,不影响集群正常工作的一种协议
VRRP选举的规则
VRRP路由器在运行过程中的三种状态:
1.Initialize状态(系统启动后就进入Initialize,此状态下路由器不对VRRP报文做任何处理)
2.Master状态(主路由器处于的状态)
3.Backup状态(备份路由器处于的状态)
VRRP通过机制3个方面来确定路由器的状态
1.虚拟IP拥有者,也就是配置了虚拟网卡地址的主机为主路由器
2.比较优先级,没有IP拥有者的情况,比较路由器优先级,范围为0~255,优先级大的为主路由器
3.比较IP地址,没有前面两项的情况下,IP地址打的作为主路由器
如下图所示
虚拟IP为192.168.1.200,没有IP地址拥有者,则比较优先级,A和B优先级一样比C大,比较IP地址B大,所以B为主路由器
Keepalived作用以及原理
Keepalived服务的三个重要功能:1.管理LVS 2.检查LVS集群节点 3.作为系统网络服务的高可用功能
keepalived原理:根据TCP/IP参考模型的第三、第四层、第五层交换机制检测每个服务节点的状态,如果某个服务器节点出现异常,或者工作出现故障,Keepalived将检测到,并将出现的故障的服务器节点从集群系统中剔除
网络层:通过ICMP协议也就是类似ping功能发送数据包,通过数据响应判断该节点是否故障
传输层:利用TCP协议的端口号,比如Web的80端口、SSH的22端口检测返回的数据响应,来判断是否故障
应用层:使用软件,通过用户设定的参数来检测各程序或服务是否允许正常,通过结果比较用户设定参数来判断是否故障
Keepalived安装配置
1.安装支持软件
yum install -y kernel-devel openssl-devel popt-devel
2.编译安装keepalived
./configure --prefix=/ --with-kernel-dir=/usr/src/kernels/2.6.32-431.el6.x86_64
编译完成之后安装make && make install
3.启动配置服务
把启动脚本放到/etc/init.d/keepalived
chkconfig --add keepalived
chkconfig keepalived on
4.配置两台主备服务器(环境如下图所示)
主服务器配置:
主配置文件位置:/etc/keepalived/keepalived.conf
global_defs {
router_id LVS_1 \\本路由器(服务器)名称
}
vrrp_instance VI_1 { \\定义热备实例
state MASTER \\热备份状态,MASTER为主服务器
interface eth0 \\承载VIP的物理接口
virtual_router_id 51 \\虚拟路由器的ID号,每个热备组保持一致
priority 100 \\优先级,越大优先级越高
advert_int 1 \\通告间隔描述
authentication { \\认证信息,同组保持一致
auth_type PASS \\认证类型
auth_pass 123456 \\密码
}
virtual_ipaddress { \\指定虚拟地址(VIP),可以有多个
192.168.1.110
}
}
实现LVS+keepalived高可用集群,服务器池配置(其他配置和双机热备配置相同)
virtual_server 192.168.1.200 80 { \\VIP及端口
delay_loop 6 \\健康检查时间
lb_algo rr \\调度算法
lb_kind DR \\工作模式
nat_mask 255.255.255.0 \\子网掩码
persistence_timeout 50 \\保持连接时间
protocol TCP \\协议
real_server 192.168.1.100 80 { \\第一个节点服务器
weight 1 \\权重
TCP_CHECK { \\健康检查方式
connect_port 80 \\端口
connetc_timeout 3 \\超时时间
nb_get_retry 4 \\重试次数
delay_before_retry 4 \\重试间隔
}
}
real_server 192.168.1.101 80 { \\第二个节点服务器
weight 1
TCP_CHECK {
connect_port 80
connetc_timeout 3
nb_get_retry 4
delay_before_retry 4
}
}
}
查看是否自动添加VIP地址:ip addr show dev eth0
备用服务器配置:
配置文件中修改下面三个参数(其他一样)
router_id LVS_2
state BACKUP
priority 99
关闭及恢复主服务的相关服务以及查看备用服务启用的情况
查看负载分配情况:ipvsadm -lnc
查看故障切换记录的文件:/var/log/messages