基于LVS的Keepalived的简单实现

简介:

1、理论部分

基于lvs的负载均衡无法检测Real Server的状态,当Real Server的服务单点故障,Director照样把请求转发给故障的机器,造成请求无法得到正常的服务。

所以就需要引入一种检测机制来弥补缺陷,这就需要Keepalived来实现,他不但可以检测Real Server的状态,同时也可以检测Director的状态,达到Failover的目的。

2、实验部分

2.1、实验基础

LVS均衡负载基础:

http://cmdschool.blog.51cto.com/2420395/1702421

以上基础并增加一台副Director主机

2.2、主机信息

Dr1:

director ipaddress=10.168.0.89

vip ipaddress=10.168.0.91

hostname=dr1

Dr2:

director ipaddress=10.168.0.90

vip ipaddress=10.168.0.91

hostname=dr2

Rs1:

real ipaddress=10.168.0.94

vip-lo ipaddress=10.168.0.91

hostname=rs1

Rs2:

real ipaddress=10.168.0.95

vip-lo ipaddress=10.168.0.91

hostname=rs2

2.3、yum源安装

In Director

1
yum  install  -y keepalived

2.4、设置配置文件

2.4.1、step1

IN DR1

vim编辑/etc/keepalived/keepalived.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
vrrp_instance VI_1 {
     state MASTER    #备用服务器上为 BACKUP
     interface eth0
     virtual_router_id 51
     priority 100   #备用服务器上为90
     advert_int 1
     authentication {
         auth_type PASS
         auth_pass 1111
     }
     virtual_ipaddress {
         10.168.0.91
     }
}
virtual_server 10.168.0.91 80 {
     delay_loop 6                   #(每隔10秒查询realserver状态)
     lb_algo wlc                   #(lvs 算法)
     lb_kind DR                   #(Direct Route)
     persistence_timeout 60         #(同一IP的连接60秒内被分配到同一台realserver)
     protocol TCP                 #(用TCP协议检查realserver状态)
 
     real_server 10.168.0.92 80 {
         weight 100                #(权重)
         TCP_CHECK {
         connect_timeout 10        #(10秒无响应超时)
         nb_get_retry 3
         delay_before_retry 3
         connect_port 80
         }
     }
real_server 10.168.0.93 80 {
         weight 100
         TCP_CHECK {
         connect_timeout 10
         nb_get_retry 3
         delay_before_retry 3
         connect_port 80
         }
      }
}

IN DR2

vim编辑/etc/keepalived/keepalived.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
vrrp_instance VI_1 {
     state BACKUP    #主服务器上为 MASTER
     interface eth0
     virtual_router_id 51
     priority 90   #主服务器上为100
     advert_int 1
     authentication {
         auth_type PASS
         auth_pass 1111
     }
     virtual_ipaddress {
         10.168.0.91
     }
}
virtual_server 10.168.0.91 80 {
     delay_loop 6                   #(每隔10秒查询realserver状态)
     lb_algo wlc                   #(lvs 算法)
     lb_kind DR                   #(Direct Route)
     persistence_timeout 60         #(同一IP的连接60秒内被分配到同一台realserver)
     protocol TCP                 #(用TCP协议检查realserver状态)
 
     real_server 10.168.0.92 80 {
         weight 100                #(权重)
         TCP_CHECK {
         connect_timeout 10        #(10秒无响应超时)
         nb_get_retry 3
         delay_before_retry 3
         connect_port 80
         }
     }
real_server 10.168.0.93 80 {
         weight 100
         TCP_CHECK {
         connect_timeout 10
         nb_get_retry 3
         delay_before_retry 3
         connect_port 80
         }
      }
}
1
<br>

注意,DR1&DR2差异仅如下:

state MASTER <-> state BACKUP

priority 100 <-> priority 90

2.4.2、step2

IN DR1&DR2

开启端口转发:

1
echo  1 >  /proc/sys/net/ipv4/ip_forward

2.4.3、step3

IN RS1&RS2

启动脚本:

1
/usr/local/sbin/lvs_dr_rs .sh

2.4.4、step4

IN DR1&DR2

启动keeplive服务:

1
/etc/init .d /keepalived  start

注意:

以下脚本不需要再像在LVS实验中那样执行“/usr/local/sbin/lvs_dr.sh”









本文转自 tanzhenchao 51CTO博客,原文链接:http://blog.51cto.com/cmdschool/1702499,如需转载请自行联系原作者

相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
目录
相关文章
|
5月前
|
负载均衡 应用服务中间件 Linux
Nginx系列教程(14) - LVS+KeepAlived+Nginx实现高性能负载均衡集群
Nginx系列教程(14) - LVS+KeepAlived+Nginx实现高性能负载均衡集群
186 0
|
4天前
|
负载均衡 监控 Linux
CentOS6.5高可用集群LVS+Keepalived(DR模式)
CentOS6.5高可用集群LVS+Keepalived(DR模式)
|
4月前
|
负载均衡 监控 调度
Keepalived+Lvs(dr)调度器主备配置小实验
Keepalived和LVS(Linux Virtual Server)是两个常用的开源软件,通常结合使用以提供高可用性和负载均衡的解决方案。 Keepalived是一种用于实现高可用性的软件,它可以监控服务器的健康状态,并在主服务器出现故障时自动切换到备份服务器。
98 2
|
4月前
|
负载均衡 网络协议 Linux
小白带你学习linux的keepalived+lvs和keepalived双机热备(三十七)
小白带你学习linux的keepalived+lvs和keepalived双机热备(三十七)
77 0
|
5月前
|
负载均衡 算法 网络协议
Keepalived+LVS搭建高可用负载均衡
Keepalived+LVS搭建高可用负载均衡
185 1
|
7月前
|
负载均衡 监控 Linux
LVS + keepalived
LVS + keepalived
65 1
|
7月前
|
负载均衡 测试技术
LVS+KeepAlived构建高可用集群
LVS+KeepAlived构建高可用集群
55 0
|
7月前
|
缓存 负载均衡 网络协议
LVS+KeepAlived快速入门2
LVS+KeepAlived快速入门2
92 0
|
7月前
|
负载均衡 算法 网络协议
LVS+KeepAlived快速入门1
LVS+KeepAlived快速入门2
71 0
|
7月前
|
域名解析 负载均衡 网络协议
keepalived+vip+lvs高可用负载均衡服务演化
keepalived+vip+lvs高可用负载均衡服务演化
329 0