LVS+Keepalived高可用群集
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LVS+Keepalived高可用群集相关的知识,希望对你有一定的参考价值。
- keeplived是专门针对LVS设计的一款辅助工具,主要功能是实现故障切换,类似HSRP热备份路由协议,HSRP是思科的私有协议,而VRRP是通用协议,都是为了实现故障切换,当一台路由器发生故障的时候,另一台马上接替工作,用户感觉不到服务器发生了问题,而且不会中断服务。
- 双机热备是就是利用了VRRP虚拟路由冗余协议,和HRSP一样都拥有一个虚拟的ip地址对外提供服务,而不是真正的服务器ip地址,也拥有一台主服务器和多台备份服务器,优先级高的做主路由器,备份服务器处于冗余状态,当主服务器发生故障的时候,从服务器会变成主服务器,当主服务器修好之后,会重新成为主路由器。这里和HSRP不同的是,HSRP需要配置占先权,而这里不用配置,默认都有占先权。
.
- keepalived的热备方式
VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)
一主 + 多备,共用同一个IP地址,但优先级不同
. - 安装及服务控制
先安装支持软件:
kernel-devel、openssl-devel、popt-devel、ipvsadm
再编译安装keepalived,需指定内核路径
--prefix、--with-kernel-dir=
使用Keepalived服务
. - 配置文件keepalived.conf
全局设置:global_defs { ... }
热备设置:vrrp_instance 实例名称 { ... }
样例文件位于:/etc/keepalived/samples/
.
.
- 主服务器配置
state:设置本节点状态,MASTER、BACKUP
priority:设置竞选优先级,数值越大优先级越高
virtual_ipaddress { ... }:设置漂移IP地址
…… - 备用服务器配置
router_id设为自有名称
state设为BACKUP
priority值低于主服务器
—— 其余所有配置均与主服务器相同
. - 负载均衡+高可用群集
针对LVS调度器实现双机热备
能够管理服务器池,自动隔离失效节点
.
LVS与keepalived的结合
. - 主、从调度器配置要点
DR模式必须调整 /proc参数(方法同第5章)
清除VIP地址、清除ipvsadm策略
配置keepalived双机热备,并添加服务器池设置 - Web节点注意事项
DR模式必须调整/proc参数、添加VIP地址及路由
—— 具体方法见第5章
. - LVS+HA群集的测试
访问 http://172.16.16.172/,正常显示Web页面
主、从调度器其中一台失效,站点访问及负载仍然正常
只要保持至少一个Web节点有效,整个站点依然可用
.
LVS+Keepalived高可用群集
.
配置LVS+Keepalived高可用群集,LVS具体操作可看上篇文章,除了lvs的虚拟地址不需要配和nat不用做其他都相同,所以本篇LVS不在详解
.
配置主调度器
.
安装支持软件
[[email protected] /]# yum -y install kernel-devel openssl-devel popt-devel
[[email protected] /]# umount /dev/cdrom /media/
[[email protected] /]# mount /dev/cdrom /media/
[[email protected] /]# cd /media/
[[email protected] /]# ls
[[email protected] /]# tar zxf keepalived-1.2.13.tar.gz -C /usr/src/
.
编译安装Keepalived
[[email protected] /]# cd /usr/src/keepalived-1.2.13/
[[email protected] /]# ./configure --prefix=/ --with-kernel-dir=/usr/src/kernels/2.6.32-431.el6.x86_64/ && make && make install
.
使用Keepalived服务
[[email protected] /]# chkconfig --add keepalived
[[email protected] /]# chkconfig leepalived on
[[email protected] /]# chkconfig keepalived on
.
配置主调度器
[[email protected] /]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email { //接收邮件的地址,需要postfix,这里可不写
[email protected].loc
[email protected]
[email protected]
}
notification_email_from [email protected]
smtp_server 127.0.0.1 //邮件服务器地址,这里填本机
smtp_connect_timeout 30
router_id R1 //主调度器名称,与从调度器名称不能相同
}
vrrp_instance VI_1 {
state MASTER //主服务器MASTER,从服务器填BACKUP
interface eth0 //外网卡名称不一定是eth0
virtual_router_id 1 //虚拟路由器ID主从要一致
priority 100 //优先级100,主要比从大
advert_int 1 //心跳频率1秒
authentication {
auth_type PASS
auth_pass 1111 //主从密码要一致
}
virtual_ipaddress {
172.16.16.172 //群及地址
}
}
virtual_server 172.16.16.172 80 { //虚拟服务器地址端口
delay_loop 6 //健康检查时间6秒
lb_algo rr //轮训调度算法rr
lb_kind DR //路由模式DR
persistence_timeout 50 //保持时间50秒
protocol TCP //协议tcp
real_server 172.16.16.177 80 { //web节点A的地址端口
weight 1 //权重 1
TCP_CHECK {
connect_port 80
connect_timeout 3 //连接超时3秒
nb_get_retry 3 //重复3次
delay_before_retry 3 //重复间隔3秒
}
}
real_server 172.16.16.178 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
.
重启keepalived服务
[[email protected] /]# service keepalived start
[[email protected] /]# ip addr show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP
qlen 1000
link/ether 00:0c:29:7d:92:43 brd ff:ff:ff:ff:ff:ff
inet 172.16.16.173/16 brd 172.16.255.255 scope global eth0
inet 172.16.16.172/32 scope global eth0 //虚拟地址
inet6 fe80::20c:29ff:fe7d:9243/64 scope link
valid_lft forever preferred_lft forever
.
从调度服务器的配置
首先安装keepalived,和主服务器一样,在配置的时候主要有三个地方不一样:优先级99,调度器名称R2,热备状态为BACKUP
.
另一台lvs安装完可用[[email protected] /]# scp [email protected](IP):/远程路径 /本地路径
.
在从调度器查看 [[email protected] /]# ip addr show dev eth0
则不会出现虚拟地址
route_id R2
state BACKUP
priority 99
.
测试访在客户端访问
.
断开一个lvs再次测试
.
以上是关于LVS+Keepalived高可用群集的主要内容,如果未能解决你的问题,请参考以下文章
Centos 7搭建LVS+Keepalived高可用Web服务群集