LVS+Keepalived 负载均衡

简介: 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 主备配置完毕

目录
相关文章
|
9天前
|
弹性计算 人工智能 架构师
阿里云携手Altair共拓云上工业仿真新机遇
2024年9月12日,「2024 Altair 技术大会杭州站」成功召开,阿里云弹性计算产品运营与生态负责人何川,与Altair中国技术总监赵阳在会上联合发布了最新的“云上CAE一体机”。
阿里云携手Altair共拓云上工业仿真新机遇
|
5天前
|
机器学习/深度学习 算法 大数据
【BetterBench博士】2024 “华为杯”第二十一届中国研究生数学建模竞赛 选题分析
2024“华为杯”数学建模竞赛,对ABCDEF每个题进行详细的分析,涵盖风电场功率优化、WLAN网络吞吐量、磁性元件损耗建模、地理环境问题、高速公路应急车道启用和X射线脉冲星建模等多领域问题,解析了问题类型、专业和技能的需要。
2491 14
【BetterBench博士】2024 “华为杯”第二十一届中国研究生数学建模竞赛 选题分析
|
5天前
|
机器学习/深度学习 算法 数据可视化
【BetterBench博士】2024年中国研究生数学建模竞赛 C题:数据驱动下磁性元件的磁芯损耗建模 问题分析、数学模型、python 代码
2024年中国研究生数学建模竞赛C题聚焦磁性元件磁芯损耗建模。题目背景介绍了电能变换技术的发展与应用,强调磁性元件在功率变换器中的重要性。磁芯损耗受多种因素影响,现有模型难以精确预测。题目要求通过数据分析建立高精度磁芯损耗模型。具体任务包括励磁波形分类、修正斯坦麦茨方程、分析影响因素、构建预测模型及优化设计条件。涉及数据预处理、特征提取、机器学习及优化算法等技术。适合电气、材料、计算机等多个专业学生参与。
1510 14
【BetterBench博士】2024年中国研究生数学建模竞赛 C题:数据驱动下磁性元件的磁芯损耗建模 问题分析、数学模型、python 代码
|
1月前
|
运维 Cloud Native Devops
一线实战:运维人少,我们从 0 到 1 实践 DevOps 和云原生
上海经证科技有限公司为有效推进软件项目管理和开发工作,选择了阿里云云效作为 DevOps 解决方案。通过云效,实现了从 0 开始,到现在近百个微服务、数百条流水线与应用交付的全面覆盖,有效支撑了敏捷开发流程。
19280 30
|
7天前
|
编解码 JSON 自然语言处理
通义千问重磅开源Qwen2.5,性能超越Llama
击败Meta,阿里Qwen2.5再登全球开源大模型王座
463 11
|
1月前
|
人工智能 自然语言处理 搜索推荐
阿里云Elasticsearch AI搜索实践
本文介绍了阿里云 Elasticsearch 在AI 搜索方面的技术实践与探索。
18829 20
|
1月前
|
Rust Apache 对象存储
Apache Paimon V0.9最新进展
Apache Paimon V0.9 版本即将发布,此版本带来了多项新特性并解决了关键挑战。Paimon自2022年从Flink社区诞生以来迅速成长,已成为Apache顶级项目,并广泛应用于阿里集团内外的多家企业。
17521 13
Apache Paimon V0.9最新进展
|
1月前
|
存储 人工智能 前端开发
AI 网关零代码解决 AI 幻觉问题
本文主要介绍了 AI Agent 的背景,概念,探讨了 AI Agent 网关插件的使用方法,效果以及实现原理。
18699 16
|
4天前
|
SQL 监控 druid
Druid连接池学习
Druid学习笔记,使用Druid进行密码加密。参考文档:https://github.com/alibaba/druid
204 82
|
7天前
|
人工智能 自动驾驶 机器人
吴泳铭:AI最大的想象力不在手机屏幕,而是改变物理世界
过去22个月,AI发展速度超过任何历史时期,但我们依然还处于AGI变革的早期。生成式AI最大的想象力,绝不是在手机屏幕上做一两个新的超级app,而是接管数字世界,改变物理世界。
422 46
吴泳铭:AI最大的想象力不在手机屏幕,而是改变物理世界