博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
构建高可用服务器之五 Keepalive冗余LVS
阅读量:6414 次
发布时间:2019-06-23

本文共 4378 字,大约阅读时间需要 14 分钟。

    LVS只是做一个负载均衡,通过访问VIP来访问后端的网站程序,一旦LVS宕机,整个网站就访问不了,这就出现了单点。所以要结合keepalive这种高可用软件来保证整个网站的高可用。本文将介绍如何利用keepalive来实现LVS的高可用(LVSDR模式为例,生产环境后台的real server 网站内容是一致的,为了看到实验效果,这里是两个不同的页面)。 

一、环境介绍

VIP192.168.1.188

RIP1(Web1): 192.168.1.2

RIP2(Web2): 192.168.1.5

LVS1 :192.168.1.6

LVS2: 192.168.1.7

web1页面

web2页面

二、配置realserver

分别在web1web2上执行lvs_rserver.sh

1
2
3
4
5
6
[root@web1 ~]
# ./lvs_rserver.sh  start
RealServer Start OK
[root@web1 ~]
#
[root@web2 ~]
# ./lvs_rserver.sh  start
RealServer Start OK
[root@web2 ~]
#

lvs_rserver.sh脚本内容如下:

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
[root@web1 ~]
# cat lvs_rserver.sh
#!/bin/sh
#LVS Client Server
VIP=192.168.1.188
case 
$1  
in                                                                                                                                                                                                                                                   
start)                                                                                                                                                                                                                                           
   
ifconfig 
lo:0  $VIP  netmask  255.255.255.255  broadcast  $VIP
   
/sbin/route  
add –host  $VIP  dev lo:0
   
echo 
"1" 
>
/proc/sys/net/ipv4/conf/lo/arp_ignore
   
echo 
"2" 
>
/proc/sys/net/ipv4/conf/lo/arp_announce
   
echo 
"1" 
>
/proc/sys/net/ipv4/conf/all/arp_ignore
   
echo 
"2" 
>
/proc/sys/net/ipv4/conf/all/arp_announce
   
sysctl -p >
/dev/null 
2>&1
   
echo 
"RealServer Start OK"
   
exit 
0
;;                                                                                                                                                                                                                                        
stop)
   
ifconfig 
lo:0 down
   
route del $VIP >
/dev/null 
2>&1
   
echo 
"0" 
>
/proc/sys/net/ipv4/conf/lo/arp_ignore
    
echo 
"0"
>
/proc/sys/net/ipv4/conf/lo/arp_announce
   
echo 
"0" 
>
/proc/sys/net/ipv4/conf/all/arp_ignore
   
echo 
"0" 
>
/proc/sys/net/ipv4/conf/all/arp_announce
   
echo 
"RealServer Stoped OK"
   
exit 
1
;;
*)
   
echo 
"Usage: $0 {start|stop}"
;;
esac
[root@web2 ~]
#

 

三、安装配置lvskeepalive

分别在lvs1lvs2上安装lvskeepalive

lvs及keppalive的安装见 

lvs1lvs2上配置VIP并加载相关模块

1
2
3
4
5
[root@lvs1 ~]
# ifconfig eth0:0192.168.1.188 netmask 255.255.255.0
[root@lvs1 ~]
# modprobe ip_vs
[root@lvs1 ~]
# modprobe ip_vs_rr
[root@lvs1 ~]
# modprobe ip_vs_wrr
[root@lvs1 ~]
#

 

1
2
3
4
5
[root@lvs2 ~]
# ifconfig eth0:0192.168.1.188 netmask 255.255.255.0
[root@lvs2 ~]
# modprobe ip_vs
[root@lvs2 ~]
# modprobe ip_vs_rr
[root@lvs2 ~]
# modprobe ip_vs_wrr
[root@lvs2 ~]
#

lvs1上修改keepalive.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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
[root@lvs1 ~]
# vim/etc/keepalived/keepalived.conf
[root@lvs1 ~]
# cat/etc/keepalived/keepalived.conf
! Configuration File 
for 
keepalived
  
global_defs {
   
notification_email {
     
654001593@qq.com
   
}
  
notification_email_from 654001593@qq.com
  
smtp_server 127.0.0.1
  
smtp_connect_timeout 30
  
router_id LVS_DEVEL
}
  
# VIP1
vrrp_instance VI_1 {
   
state MASTER
   
interface eth0
   
lvs_sync_daemon_inteface eth0
   
virtual_router_id 51
   
priority 100
   
advert_int 5
   
nopreempt
   
authentication {
       
auth_type PASS
       
auth_pass 1111
    
}
   
virtual_ipaddress {
       
192.168.1.188  
    
}
}
  
virtual_server 192.168.1.188 80 {
   
delay_loop 6   
   
lb_algo wrr   
   
lb_kind DR  
#   persistence_timeout 60   
   
protocol TCP        
  
   
real_server 192.168.1.2 80 {
       
weight 100       
       
TCP_CHECK {
       
connect_timeout 10
       
nb_get_retry 3
       
delay_before_retry 3
       
connect_port 80
       
}
    
}
   
real_server 192.168.1.5 80 {
       
weight 100
       
TCP_CHECK {
       
connect_timeout 10
       
nb_get_retry 3
       
delay_before_retry 3
       
connect_port 80
        
       
}
    
}
}
  
[root@lvs1 ~]
#

lvs2上的keepalive.conf文件基本和lvs1上的一致,但是state这一项lvs1上是MASTER,而lvs2上的BACKUP;优先级prioritylvs1上为100,在lvs2上为90

lvs2上修改keepalive.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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
[root@lvs2 ~]
# cat/etc/keepalived/keepalived.conf
! Configuration File 
for 
keepalived
  
global_defs {
  
notification_email {
     
654001593@qq.com
   
}
  
notification_email_from 654001593@qq.com
  
smtp_server 127.0.0.1
  
smtp_connect_timeout 30
  
router_id LVS_DEVEL
}
  
# VIP1
vrrp_instance VI_1 {
   
state BACKUP  
   
interface eth0
   
lvs_sync_daemon_inteface eth0
   
virtual_router_id 51
     
priority 90
   
advert_int 5
   
nopreempt
   
authentication {
       
auth_type PASS
       
auth_pass 1111
    
}
   
virtual_ipaddress {
       
192.168.1.188  
    
}
}
  
virtual_server 192.168.1.188 80 {
   
delay_loop 6   
   
lb_algo wrr   
   
lb_kind DR  
#   persistence_timeout 60   
   
protocol TCP        
  
   
real_server 192.168.1.2 80 {
       
weight 100       
       
TCP_CHECK {
       
connect_timeout 10
       
nb_get_retry 3
       
delay_before_retry 3
       
connect_port 80
       
}
    
}
   
real_server 192.168.1.5 80 {
       
weight 100
       
TCP_CHECK {
       
connect_timeout 10
       
nb_get_retry 3
       
delay_before_retry 3
       
connect_port 80
        
       
}
    
}
}
  
[root@lvs2 ~]
#

四、测试

停掉lvs1的网卡

ping VIP一样一直在通信(配置有nopreempt)

通过VIP访问网站

刷新

即使lvs1宕机后又恢复,此时依旧是通过lvs2访问(由是否配置nopreempt决定)。

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

你可能感兴趣的文章
ORACLE导入遇到ORACLE错误959解决方法
查看>>
排序算法之选择排序
查看>>
区间dp括号匹配
查看>>
Python中变量的命名与使用(个人总结)
查看>>
【风马一族_SQL Server】
查看>>
python APScheduler定时任务框架
查看>>
lvs nginx HAProxy优缺点
查看>>
Laravel之认证服务
查看>>
性能测试总结(三)--工具选型篇
查看>>
免费好用的 Apple 工具(Windows 适用)
查看>>
水利行业传感器
查看>>
服务器做网页的搭建
查看>>
linux上部署ant
查看>>
arc073 F many moves(dp + 线段树)
查看>>
HT For Web 拓扑图背景设置
查看>>
长理 校赛的 一个贪心题
查看>>
vuecli3初尝试(转载)
查看>>
学习笔记:索引碎片、计划缓存、统计信息
查看>>
TSQL技巧(一) -- 子查询(subquery)
查看>>
espcms简约版的表单,提示页,搜索列表页
查看>>