LVS+Keepalived 负载均衡

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
EMR Serverless StarRocks,5000CU*H 48000GB*H
简介: LVS+Keepalived 负载均衡

LVS 简介及工作原理

LVS 是 Linux Virtual Server 的简写,意即 Linux 虚拟服务器,是一个虚拟的服务器集群系统。本项目在 1998 年 5 月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。LVS 简单工作原理:用户请求 LVS VIP,LVS 根据转发方式和算法,将请求转发给后端服务器,后端服务器接受到请求,返回给用户。对于用户来说,看不到 WEB 后端具体的应用。

LVS 转发方式有三种,分别是 NAT、DR、TUN 模式,常用算法:RR、LC、WRR、WLC 模式等(RR 为轮询模式,LC 为最少连接模式)LVS NAT 原理:用户请求 LVS 到达 director,director 将请求的报文的目标地址改成后端的 realserver 地址,同时将报文的目标端口也改成后端选定的 realserver 相应端口,最后将报文发送到 realserver,realserver 将数据返给 director,director 再把数据发送给用户。(两次请求都经过 director,所以访问大的话,director 会成为瓶颈)LVS DR 原理:用户请求 LVS 到达 director,director 将请求的报文的目标 MAC 地址改成后端的 realserver MAC 地址,目标 IP 为 VIP(不变),源 IP 为用户 IP 地址(保持不变),然后 Director 将报文发送到 realserver,realserver 检测到目标为自己本地 IP,如果在同一个网段,然后将请

求直接返给用户。如果用户跟 realserver 不在一个网段,则通过网关返回用户。(此种转发效率最高)LVS TUN 原理:跟 LVS DR 类似,也是改变封装 MAC 地址,多了一

层隧道加密。实施环境复杂,比 LVS DR 模式效率略低。

 LVS 环境安装配置

下载 LVS 所需软件 ipvsadm-1.2.4.tar.gz 软件,编译安装:

wget -c  

http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.

gz

ln -s /usr/src/kernels/2.6.* /usr/src/linux //IPVS 模块编译进内核里,

需要做软连接

tar xzvf ipvsadm-1.24.tar.gz &&cd ipvsadm-1.24 && make && make  

install

LVS 安装完毕之后,需要进行配置,配置的步骤有两步,第一步为定

义端口服务,第二步为添加 realserver 后端服务。

ipvsadm -A -t 192.168.149.129:80 -s rr

ipvsadm -a -t 192.168.149.129:80 -r 192.168.149.130 -m -w 2

ipvsadm -a -t 192.168.149.129:80 -r 192.168.149.131 -m -w 2

参数说明:

-A 增加一台虚拟服务器地址。

-t 虚拟服务器提供的是 tcp 服务。

-s 使用的调度算法。

-a 在虚拟服务器中增加一台后端真实服务器。-r 指定真实服务器地址。

-m 设置当前转发方式为 NAT 模式;-g 为直接路由模式;-i 模式为

隧道模式。

-w 后端真实服务器的权重。

查看 LVS 转发列表命令为:ipvsadm –Ln

image.png

如果这台 LVS 发生突发情况,down 机了,那后端所

有的应用程序都访问不了。如何避免这种问题呢,这里需要用到故障

切换,也就是如果有一台备用的 LVS 就好了,主 down 了,自动切换

到从,怎么实现这个需求,接下来讲解的 keepalived 软件就是专门用

来做故障检测及切换的。

Keepalived 基于三层检测(IP 层,TCP 层,及应用层),主要用于

检测 web 服务器的状态,如果有一台 web 服务器死机,或工作出现

故障,Keepalived 检测到并将有故障的 web 服务器从系统中剔除;

当 web 服务器工作正常后 Keepalived 自动将 web 服务器加入到服

务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的

只是修复故障的 web 服务器。

需要注意一点,如果使用了 keepalived.conf 配置,就不需要再执

行 ipvs –A 命令去添加均衡的 realserver 命令了,所有的配置都会在

keepalived.conf 里面,一个配置文件搞定所有,即只需要安装 ipvs 模块。

 Keepalived 安装配置

官方下载 keepalived 相应稳定版本:

cd /usr/src ;wget -c  

http://www.keepalived.org/software/keepalived-1.1.15.tar.gz

tar -xzvf keepalived-1.1.15.tar.gz &&cd keepalived-1.1.15 && ./configure  

&& make && make install

安装完毕,配置 keepalived 服务为系统服务。

DIR=/usr/local/  

cp $DIR/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/ && cp  

$DIR/etc/sysconfig/keepalived /etc/sysconfig/ && mkdir -p  

/etc/keepalived && cp $DIR/sbin/keepalived /usr/sbin/

在 MASTER 上/etc/keepalived/目录创建 keepalived.conf 配置文件,并

写入如下内容:

! 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 30router_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.149.129

}

}

#REAL_SERVER_1

virtual_server 192.168.149.129 80 {

delay_loop 6

lb_algo wlclb_kind DR

persistence_timeout 60

protocol TCP

real_server 192.168.149.130 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.149.131 80 {

weight 100

TCP_CHECK {

connect_timeout 10

nb_get_retry 3

delay_before_retry 3

connect_port 80

}

}}

如上配置文件,红色标记的地方需要注意,state 状态主服务器设置

MASTER,从设置为 BACKUP,优先级备机设置比 MASTER 小,例如设

置 90,使用 TCP 端口检测。

在 LVS BACKUP 服务器写入如下配置,需要注意的是客户端的配置要

修改优先级及状态:

! 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 BACKUP

interface eth0

lvs_sync_daemon_inteface eth0

virtual_router_id 51priority 90

advert_int 5

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

192.168.149.129

}

}

#REAL_SERVER_1

virtual_server 192.168.149.129 80 {

delay_loop 6

lb_algo wlc

lb_kind DR

persistence_timeout 60

protocol TCP

real_server 192.168.149.130 80 {

weight 100

TCP_CHECK {

connect_timeout 10

nb_get_retry 3delay_before_retry 3

connect_port 80

}

}

#REAL_SERVER_2

real_server 192.168.149.131 80 {

weight 100

TCP_CHECK {

connect_timeout 10

nb_get_retry 3

delay_before_retry 3

connect_port 80

}

}

}

如上设置,LVS 主备配置完毕

相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
目录
相关文章
|
2月前
|
域名解析 运维 负载均衡
LVS+Keepalived 负载均衡(二)28-1
【8月更文挑战第28天】LVS+Keepalived 负载均衡 配置 LVS VIP
63 5
|
6月前
|
负载均衡 网络协议 算法
LVS 负载均衡部署的三种模式 与搭建dr模式具体步骤
LVS 负载均衡部署的三种模式 与搭建dr模式具体步骤
|
3月前
|
负载均衡 网络协议
使用LVS搭建集群实现负载均衡(二)安装使用
【8月更文挑战第8天】使用LVS搭建集群实现负载均衡(二)安装使用
65 5
|
3月前
|
存储 负载均衡 算法
使用LVS搭建集群实现负载均衡(一)
【8月更文挑战第8天】使用LVS搭建集群实现负载均衡
143 5
|
3月前
|
缓存 负载均衡 算法
在Linux中, LVS负载均衡有哪些策略?
在Linux中, LVS负载均衡有哪些策略?
|
4月前
|
负载均衡 网络协议 算法
使用IPVSADM配置LVS负载均衡
使用IPVSADM配置LVS负载均衡
|
6月前
|
负载均衡 网络协议
NAT模式 LVS负载均衡部署
NAT模式 LVS负载均衡部署
|
6月前
|
运维 负载均衡 监控
keepalived+LVS实现高可用性集群
通过结合keepalived和LVS,你可以创建一个高可用性的负载均衡集群,确保服务器的稳定性和性能。这对于托管Web服务、应用服务器等关键服务的服务器集群非常有用。
119 1
|
6月前
|
负载均衡 算法 网络协议
LVS、Nginx和HAProxy负载均衡器对比总结
LVS、Nginx和HAProxy负载均衡器对比总结
|
6月前
|
负载均衡 网络协议 应用服务中间件
【亮剑】在Linux中构建高可用性和高性能网络服务的负载均衡工具HAProxy、Nginx和Keepalived。
【4月更文挑战第30天】本文介绍了在Linux中构建高可用性和高性能网络服务的负载均衡工具HAProxy、Nginx和Keepalived。HAProxy是一个高性能的开源TCP和HTTP负载均衡器,适合处理大量并发连接;Nginx是一个多功能Web服务器和反向代理,支持HTTP、HTTPS和TCP负载均衡,同时提供缓存和SSL功能;Keepalived用于监控和故障切换,通过VRRP实现IP热备份,保证服务连续性。文中详细阐述了如何配置这三个工具实现负载均衡,包括安装、配置文件修改和启动服务,为构建可靠的负载均衡系统提供了指导。
155 0