LVS+Keepalived 高可用性负载均衡自动化配置

简介:

前言* 随着互联网飞速的发展,互联网WEB服务器,必须要保证每天7x24x365不间断服务,随着人数不断的增加,有什么好的WEB前端架构呢?既能实现高可用、负载均衡、成本有最低廉呢?答案有木有呢?LVS+Keepalived是一个非常不错的前端均衡选择。(今天来研究一下如何快速配置LVS及日常的维护,供参考!)

一、系统环境
1
2
3
4
5
LVS-Master  192.168 . 2.108
LVS-BACKUP  192.168 . 2.109
LVS-DR-VIP  192.168 . 2.100
WEB1-Realserver  192.168 . 2.79
WEB2-Realserver  192.168 . 2.80

130430677.gif

二、Keepalived安装
 

由于我们使用的是lvs+keepalived,所以这里不需要配置lvs-dr脚本,直接在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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#!/bin/sh
###脚本编写目的:自动安装lvs+keepalived
###编写时间:  2011 7 6 17 : 25 : 39
###初稿人:wugk
###定义变量
DIR1=/usr/src
DIR2=/usr/local
cat << EOF
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++Welcome to  use  Linux installed a key LVS+KEEPALIVED shells scripts
+++++++++++++++++++++*************************++++++++++++++++++++++++
EOF
if
[ $UID -ne  0  ];then
echo “This script must  use  root user ,please exit……”
sleep  2
exit  0
fi
download ()
{
cd $DIR1 && wget -c http: //www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz http://www.keepalived.org/software/keepalived-1.1.15.tar.gz
if
[ $? =  0  ];then
echo  "Download LVS Code is OK!"
else
echo  "Download LVS Code is failed,Please check!"
exit  1
fi
}
ipvsadm_install ()
{
ln -s $DIR1/kernels/ 2.6 .* $DIR1/linux
cd $DIR1 && tar xzvf ipvsadm- 1.24 .tar.gz &&cd ipvsadm- 1.24  && make && make install
if
[ $? -eq  0  ];then
echo  "Install ipvsadm success,please waiting install keepalived ..............."
else
echo  "Install ipvsadm failed ,please check !"
exit  1
fi
}
keepalived_install ()
{
cd $DIR1 && tar -xzvf keepalived- 1.1 . 15 .tar.gz &&cd keepalived- 1.1 . 15  && ./configure && make && make install
if
[ $? -eq  0  ];then
echo  "Install keepalived success,please waiting configure keepalived ..............."
else
echo  "Install keepalived failed ,please check install version !"
exit  1
fi
}
######如果以上软件包编译报错的话,请检查相关的版本跟系统版本之间的关系,然后手动下载安装.
keepalived_config ()
{
cp $DIR2/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/ && cp $DIR2/etc/sysconfig/keepalived /etc/sysconfig/ && mkdir -p /etc/keepalived &&cp $DIR2/etc/keepalived/keepalived.conf /etc/keepalived/ && cp $DIR2/sbin/keepalived /usr/sbin/
if
[ $? -eq  0  ];then
echo  "Keepalived system server config success!"
else
echo  "Keepalived system server config failed ,please check keepalived!"
exit  1
fi
}
PS3= "Please select Install Linux Packages:"
select option  in  download ipvsadm_install keepalived_install keepalived_config
do
$option
done

以上脚本分别在lvs-master和lvs-backup上执行安装。

三、Keepalived配置
也可以参考配置: http://chinaapp.sinaapp.com/download/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
41
42
43
44
45
46
47
48
49
50
51
52
53
! Configuration Filefor keepalived
global_defs {
   notification_email {
    wgkgood@ 163 .com
   }
   notification_email_from wgkgood@ 163 .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
   authentication {
     auth_type PASS
     auth_pass  1111
   }
   virtual_ipaddress {
     192.168 . 2.100
   }
}
#REAL_SERVER_1
virtual_server  192.168 . 2.100  80  {
   delay_loop  6
   lb_algo wlc
   lb_kind DR
   persistence_timeout  60
   protocol TCP
   real_server  192.168 . 2.79  80  {
     weight  100
     TCP_CHECK {
     connect_timeout  10
     nb_get_retry  3
     delay_before_retry  3
     connect_port  80
     }
}
#REAL_SERVER_2
   real_server  192.168 . 2.80  80  {
     weight  100
     TCP_CHECK {
     connect_timeout  10
     nb_get_retry  3
     delay_before_retry  3
     connect_port  80
     }
   }
}

注意***Lvs-backup端同样配置,只需要更改state MASTER为state BACKUP,修改priority 100为priority 90即可。


四、WEB服务端配置
如下的VIP1指的是lvs-dr-vip地址,及对外提供访问的虚拟ip:
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
#!/bin/sh
PS3= "Please Choose whether or not to start a realserver VIP1 configuration:"
select i  in "start" "stop"
do
case "$i" in
start)
read -p  "Please enter the virtual server IP address:"  VIP1
ifconfig lo: 0  $VIP1 netmask  255.255 . 255.255  broadcast $VIP1
/sbin/route add -host $VIP1 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 $VIP1 >/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"
exit  1
;;
*)
echo  "Usage: $0 {start|stop}"
exit  2
esac
done
脚本会提示是否启动,按1即启动,然后输入vip地址 192.168.2.100 ,用ifconfig你会看到:lo:0的ip即表示配置ip成功。
1
2
3
lo: 0   Link encap:Local Loopback
    inet addr: 192.168 . 2.100  Mask: 255.255 . 255.255
    UP LOOPBACK RUNNING MTU: 16436  Metric: 1
五、测试LVS+keepalived
1
2
3
4
5
/etc/init.d/keepalived restart 查看lvs-master日志:
在浏览器里面访问 http: //192.168.2.100/ 即可!当你宕掉lvs-master后,lvs-backup会接管变成lvs-master提供服务,当lvs-master故障恢复后,lvs-backup又会变成原来的状态!
所安装的脚本可以在这里下载:
在lvs-master和lvs-backup上执行http: //chinaapp.sinaapp.com/download/lvs-keepalived.sh
在web服务器端执行http: //chinaapp.sinaapp.com/download/realserver.sh

六、实战建议

1
2
3
4
为了解决脑裂问题,需要把主MASTER和备BACKUP各自的keepalived.conf配置文件里面的state 状态都改成BACKUP,优先级分别设置 100 90
我们常听说脑裂问题,到底什么是脑裂问题呢?
在集群配置中的split-brain现象是指,主从之间互相检测不到心跳,同时抢占资源,导致
服务无法正常访问的情况。所以我们还需要在主备keepalived.conf添加nopreempt 指令!

附realserver.sh脚本文件:


本文转自 wgkgood 51CTO博客,原文链接:http://blog.51cto.com/wgkgood/605322

相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
5天前
|
运维 关系型数据库 MySQL
Ansible自动化运维工具主机清单配置
Ansible自动化运维工具主机清单配置
|
7天前
|
Web App开发 JSON 数据格式
一键自动化博客发布工具,chrome和firfox详细配置
blog-auto-publishing-tools博客自动发布工具现在已经可以同时支持chrome和firefox了.
一键自动化博客发布工具,chrome和firfox详细配置
|
11天前
|
弹性计算 运维 Shell
|
11天前
|
弹性计算 运维 Shell
自动化安装并配置自定义服务
【4月更文挑战第30天】
8 0
|
11天前
|
负载均衡 网络协议 应用服务中间件
【亮剑】在Linux中构建高可用性和高性能网络服务的负载均衡工具HAProxy、Nginx和Keepalived。
【4月更文挑战第30天】本文介绍了在Linux中构建高可用性和高性能网络服务的负载均衡工具HAProxy、Nginx和Keepalived。HAProxy是一个高性能的开源TCP和HTTP负载均衡器,适合处理大量并发连接;Nginx是一个多功能Web服务器和反向代理,支持HTTP、HTTPS和TCP负载均衡,同时提供缓存和SSL功能;Keepalived用于监控和故障切换,通过VRRP实现IP热备份,保证服务连续性。文中详细阐述了如何配置这三个工具实现负载均衡,包括安装、配置文件修改和启动服务,为构建可靠的负载均衡系统提供了指导。
|
11天前
|
负载均衡 应用服务中间件 nginx
服务器架构、分布式系统、负载均衡、微服务、高可用性
**分布式系统取代单体架构,以微服务实现高扩展性和灵活性。通过负载均衡技术增强性能,防止单点故障,结合冗余备份与故障切换保障高可用性,这种架构是支撑大规模在线业务的关键。**
46 3
|
13天前
|
运维 负载均衡 Cloud Native
Serverless 应用引擎产品使用之在Serverless 应用引擎中,使用云原生网关的情况下,SLB(负载均衡器)和证书配置如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
21 1
|
13天前
|
负载均衡 算法 网络协议
【专栏】网络高可用性和负载均衡关键在于VRRP、VGMP和HRP协议
【4月更文挑战第28天】网络高可用性和负载均衡关键在于VRRP、VGMP和HRP协议。VRRP实现路由器冗余,保证流量转发;VGMP优化多播流量传输,适合多媒体服务;HRP提供无缝故障转移,适用于电信级网络。选择需考虑网络环境和业务需求,VRRP简单易部署,VGMP处理多播流量,HRP适合高稳定性场景。理解协议特点,确保网络最佳性能和可用性。
|
13天前
|
运维 负载均衡 监控
keepalived+LVS实现高可用性集群
通过结合keepalived和LVS,你可以创建一个高可用性的负载均衡集群,确保服务器的稳定性和性能。这对于托管Web服务、应用服务器等关键服务的服务器集群非常有用。
25 1
|
15天前
|
前端开发 JavaScript 数据可视化
前端vite+vue3——自动化配置路由布局
前端vite+vue3——自动化配置路由布局
31 0

热门文章

最新文章