LVS+Keepalived群集
LVS+Keepalived群集
Keepalived案例分析
- 企业应用中,单台服务器承担应用存在单点故障的危险
- 单点故障一旦发生,企业服务发生中断,造成极大的危险
Keepalived工具介绍
- 专为LVS和HA设计的一款健康检查工具
1.支持故障自动切换(Failover)
2.支持节点健康状态检查
Keepalived实现原理剖析
- Keepalived采用VRRP热备份协议实现Linux服务器的多机热备功能
- VRRP(虚拟路由器冗余协议)是针对路由器的一种备份解决方案
1.有多台路由器组成一个热备组,通过共用的虚拟IP地址对外提供服务
2.每个热备份组内同时只有一台主路由器提供服务,其他路由器处于冗余状态
3.若当前在线的路由器失效,则其他路由器会根据设置的优先级自动接替虚拟IP地址,继续提供服务
Keepalived项目
现在nfs机上 yum安装nfs 和 rpcbind
[root@nfs ~]# rpm -qa | grep rpcbind
rpcbind-0.2.0-42.el7.x86_64
[root@nfs ~]# rpm -qa | grep nfs
nfs-utils-1.3.0-0.48.el7.x86_64
libnfsidmap-0.25-17.el7.x86_64
nfs4-acl-tools-0.3.3-15.el7.x86_64
创建两个web目录
[root@nfs ~]# mkdir /web1
[root@nfs ~]# mkdir /web2
[root@nfs ~]# echo "<h1>this is ggg 2 <h1>" > /web2/index.html
[root@nfs ~]# echo "<h1>this is ggg 1 <h1>" > /web1/index.html
web1 机上先挂载
[root@web1 ~]# mount 20.0.0.14:/web1 /var/www/html/
[root@web1 ~]# curl http://localhost
<h1>this is ggg 1 <h1>
[root@web1 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 20.0.0.2 0.0.0.0 UG 100 0 0 ens33
20.0.0.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
20.0.0.200 0.0.0.0 255.255.255.255 UH 0 0 0 lo
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
web2同上
在LVS1上
modprobe ip_vs
cat /proc/net/ip_vs
yum -y install ipvsadm
yum -y install gcc gcc-c++ make popt-devel kernel-devel openssl-devel
在解压缩包
tar zxvf keepalived-2.0.13.tar.gz
cd keepalived-2.0.13/
在编译安装
./configure --prefix=/
make && make install
cd keepalived/
cd /etc/init.d/
cp keepalived /etc/init.d/
systemctl enable keepalived.service
在修改配置文件
vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id lvs_01
}
vrrp_instance vi_1 {
state MASTER
interface ens33
virtual_router_id 51
priority 110
advert_int 1
authentication {
auth_type PASS
auth_pass 6666
}
virtual_ipaddress {
20.0.0.200
}
}
virtual_server 20.0.0.200 80 {
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 6
protocol TCP
real_server 20.0.0.12 80{
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 20.0.0.13 80{
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
LVS2同上
修改配置文件
[root@lvs2 ~]# vi /etc/keepalived/keepalived.conf
在lvs1上(主)
[root@lvs1 ~]# ip addr
当关闭主(lvs1)时 备(lvs2)就会变成主
在客户机上访问 http://20.0.0.200