LVS+Keepalived:实现高效软负载均衡的利器

简介: 本文介绍了如何使用LVS(Linux Virtual Server)和Keepalived搭建高可用负载均衡集群。LVS通过不同调度算法将请求转发给后端服务器,而Keepalived基于VRRP协议实现服务高可用,避免IP单点故障。具体步骤包括环境准备、安装配置ipvsadm和Keepalived、启动服务及测试。文中还详细解释了配置文件中的关键参数,并提供了故障转移测试方法。最后,文章简要对比了软件、硬件和云负载均衡方案的特点,帮助读者选择合适的负载均衡策略。

一、概念


添加图片注释,不超过 140 字(可选)


LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统,它可以通过不同的调度算法和工作模式,将客户端的请求转发给后端的真实服务器。

Keepalived是一个基于VRRP协议来实现的服务高可用方案,可以利用其来避免IP单点故障,一般与其他负载均衡技术(如LVS、HAProxy、Nginx)一起工作来达到集群的高可用

二、环境准备

两台 CentOS 7 机器,IP 地址分别为 10.9.2.121和 10.9.2.122。

vip

10.9.2.120

虚拟出来的IP

master

10.9.2.121

master主机IP

backup

10.9.2.122

backup主机IP

三、安装

1、安装 ipvsadm keepalived

在两台机器上,执行以下命令,安装 ipvsadm keepalived 软件包:

yum install -y ipvsadm  keepalived

2、配置keepalived

在master机器上,执行以下命令,配置 Keepalived:

vim /etc/keepalived/keepalived.conf

添加以下内容:

global_defs {    router_id 1 } vrrp_instance VI_1 {     state MASTER     interface enp0s3     virtual_router_id 1     mcast_src_ip 10.9.2.121     priority 100     advert_int 1     authentication {         auth_type PASS         auth_pass 123456     }     virtual_ipaddress {         10.9.2.120     } }

在 backup机器上,执行以下命令,配置 Keepalived:

vim /etc/keepalived/keepalived.conf

添加以下内容:

global_defs {    router_id 2 } vrrp_instance VI_1 {     state BACKUP     interface enp0s3     virtual_router_id 1     mcast_src_ip 10.9.2.122     priority 90     advert_int 1     authentication {         auth_type PASS         auth_pass 123456     }     virtual_ipaddress {         10.9.2.120     } }

保存并退出。

参数说明:

global_defs {      router_id 1  # 定义 VRRP 组的 ID,主备服务器必须相同  }   authentication {   # 定义 VRRP 认证类型和密码,主备服务器必须相同         auth_type PASS       auth_pass 123456   } vrrp_instance VI_1 {   state MASTER    # 指定该节点的状态,主节点为 MASTER,备节点为 BACKUP   interface eth0    # 指定VRRP使用的网卡,换成master机器的网卡名称     virtual_router_id 1        mcast_src_ip 10.9.2.121 # 指定 VRRP 使用的组播源 IP 地址     priority 100  # 指定 VRRP 优先级,优先级越高,该节点成为主节点的概率越大     advert_int 1  # 指定 VRRP 通告间隔,单位为秒   virtual_ipaddress {    # 指定 VRRP 虚拟 IP 地址       10.9.2.120   } }


3、启动

在两台机器上,执行以下命令,启动 LVS 和 Keepalived:

systemctl start keepalived systemctl start ipvsadm

如果systemctl start ipvsadm异常

Active: failed (Result: exit-code) since Fri 2023-09-01 14:31:28 CST; 5min ago   Process: 3618 ExecStart=/bin/bash -c exec /sbin/ipvsadm-restore < /etc/sysconfig/ipvsadm (code=exited, status=1/FAILURE)

systemctl status ipvsadm.service


添加图片注释,不超过 140 字(可选)


journalctl -xe


添加图片注释,不超过 140 字(可选)


可以看到/bin/bash: /etc/sysconfig/ipvsadm: No such file or directory

ipvsadm   --save > /etc/sysconfig/ipvsadm systemctl start ipvsadm systemctl status ipvsadm.service


添加图片注释,不超过 140 字(可选)


4、测试

看看是否能ping通

ping 10.9.2.120

再在master和backup机器上都安装一个nginx或apache httpd

#master yum install -y httpd echo "Master" > /var/www/html/index.html systemctl start httpd #backup yum install -y httpd echo "Backup" > /var/www/html/index.html systemctl start httpd

在浏览器访问:http://10.9.2.120


添加图片注释,不超过 140 字(可选)


master优先级高,10.9.2.120显示的是master。

再来模拟一下故障转移测试

在 10.9.2.121 机器上,执行以下命令,停掉 LVS:

systemctl stop keepalived

如果 LVS 配置正确,Keepalived 会自动将 VIP 切换到 10.9.2.122。

再在浏览器访问:http://10.9.2.120


添加图片注释,不超过 140 字(可选)


注意事项

  • LVS 和 Keepalived 的配置文件中,virtual_ipaddress 配置的 IP 地址必须是同一网段的。
  • LVS 和 Keepalived 的配置文件中,priority 配置的值越高,该节点的优先级越高。
  • Keepalived 的配置文件中,advert_int 配置的值越小,该节点发送 VRRP 报文的频率越高


四、相关知识点

1、集群负载均衡网络方案

实现集群负载均衡网络的方案可以分为软件、硬件、云等方面:

软件负载均衡

软件负载均衡是指在现有服务器上安装负载均衡软件来实现负载均衡,其优点是成本低廉、配置简单、灵活性强,适用于中小型集群。常见的软件负载均衡方案包括:

  • DNS轮询:将所有后端服务器的IP地址添加到DNS服务器,并按照轮询的方式返回给客户端,客户端根据返回的IP地址进行访问。
  • Keepalive+LVS:在Linux操作系统上使用Keepalive机制和LVS功能来实现负载均衡。Keepalive机制用于检测后端服务器的状态,ipvs功能用于将客户端请求转发到后端服务器。
  • Keepalive+Nginx+Lua:Nginx是一个高性能的Web服务器,Lua是一个脚本语言。Nginx+Lua负载均衡方案是将Nginx作为负载均衡器,使用Lua脚本来实现负载均衡策略。

硬件负载均衡

硬件负载均衡是指使用专门的负载均衡设备来实现负载均衡,其优点是性能高、功能丰富、可靠性强,适用于大型集群。常见的硬件负载均衡方案包括:

  • F5 Big-IP:F5 Big-IP是F5 Networks公司推出的一款高性能负载均衡设备。
  • A10 Thunder:A10 Thunder是A10 Networks公司推出的一款高性能负载均衡设备。
  • Juniper SRX:Juniper SRX是Juniper Networks公司推出的一款高性能路由器,具有负载均衡功能。

云负载均衡

云负载均衡是指在云平台上使用负载均衡服务来实现负载均衡,其优点是部署简单、弹性伸缩、按需付费,适用于各种规模的集群。常见的云负载均衡方案包括:

  • 阿里云负载均衡:阿里云负载均衡提供多种类型的负载均衡服务,包括传统的四层负载均衡和七层负载均衡。
  • 腾讯云负载均衡:腾讯云负载均衡提供多种类型的负载均衡服务,包括传统的四层负载均衡和七层负载均衡。
  • AWS负载均衡:AWS负载均衡提供多种类型的负载均衡服务,包括传统的四层负载均衡和七层负载均衡。

2、LVS+Keepalived

LVS

LVS(Linux Virtual Server)是 Linux 内核中的软件负载均衡器,可以将流量分发到多个服务器。LVS 可以分为两种模式:

  • NAT 模式:LVS 将客户端的请求转换为新的 IP 地址和端口,然后将请求转发到后端服务器。
  • DR 模式:LVS 将客户端的请求直接转发到后端服务器。

LVS 是基于四层的负载均衡器,可以将流量分发到多个服务器。LVS 的核心是 LVS 转发器,LVS 转发器负责将客户端的请求转发到后端服务器。LVS 转发器可以运行在 Linux 内核中,也可以运行在用户空间。

LVS 的优点

  • 高可用性:LVS 可以实现主备切换,确保服务的持续可用性。
  • 灵活性:LVS 支持多种负载均衡算法,可以满足不同场景的需求。
  • 性能:LVS 基于 Linux 内核,具有良好的性能。

Keepalived

Keepalived 是一个基于 VRRP 协议的软件,用于监控 LVS 的健康状况。VRRP 协议是一种虚拟路由冗余协议,用于在多个路由器之间实现主备切换。

Keepalived 的主要功能是监控 LVS 主节点的状态,如果主节点出现故障,Keepalived 会自动将 LVS 的 VIP 切换到备节点。

Keepalived 的优点

  • 高可用性:Keepalived 可以实现 LVS 的主备切换,确保服务的持续可用性。
  • 灵活性:Keepalived 支持多种 VRRP 配置,可以满足不同场景的需求。
  • 性能:Keepalived 基于 Linux 内核,具有良好的性能。



如果文章对你有帮助,欢迎关注+点赞,必回关!!!

目录
相关文章
|
4天前
|
调度 云计算 芯片
云超算技术跃进,阿里云牵头制定我国首个云超算国家标准
近日,由阿里云联合中国电子技术标准化研究院主导制定的首个云超算国家标准已完成报批,不久后将正式批准发布。标准规定了云超算服务涉及的云计算基础资源、资源管理、运行和调度等方面的技术要求,为云超算服务产品的设计、实现、应用和选型提供指导,为云超算在HPC应用和用户的大范围采用奠定了基础。
179562 18
|
12天前
|
存储 运维 安全
云上金融量化策略回测方案与最佳实践
2024年11月29日,阿里云在上海举办金融量化策略回测Workshop,汇聚多位行业专家,围绕量化投资的最佳实践、数据隐私安全、量化策略回测方案等议题进行深入探讨。活动特别设计了动手实践环节,帮助参会者亲身体验阿里云产品功能,涵盖EHPC量化回测和Argo Workflows量化回测两大主题,旨在提升量化投研效率与安全性。
云上金融量化策略回测方案与最佳实践
|
13天前
|
人工智能 自然语言处理 前端开发
从0开始打造一款APP:前端+搭建本机服务,定制暖冬卫衣先到先得
通义灵码携手科技博主@玺哥超carry 打造全网第一个完整的、面向普通人的自然语言编程教程。完全使用 AI,再配合简单易懂的方法,只要你会打字,就能真正做出一个完整的应用。
9166 23
|
17天前
|
Cloud Native Apache 流计算
资料合集|Flink Forward Asia 2024 上海站
Apache Flink 年度技术盛会聚焦“回顾过去,展望未来”,涵盖流式湖仓、流批一体、Data+AI 等八大核心议题,近百家厂商参与,深入探讨前沿技术发展。小松鼠为大家整理了 FFA 2024 演讲 PPT ,可在线阅读和下载。
4853 12
资料合集|Flink Forward Asia 2024 上海站
|
17天前
|
自然语言处理 数据可视化 API
Qwen系列模型+GraphRAG/LightRAG/Kotaemon从0开始构建中医方剂大模型知识图谱问答
本文详细记录了作者在短时间内尝试构建中医药知识图谱的过程,涵盖了GraphRAG、LightRAG和Kotaemon三种图RAG架构的对比与应用。通过实际操作,作者不仅展示了如何利用这些工具构建知识图谱,还指出了每种工具的优势和局限性。尽管初步构建的知识图谱在数据处理、实体识别和关系抽取等方面存在不足,但为后续的优化和改进提供了宝贵的经验和方向。此外,文章强调了知识图谱构建不仅仅是技术问题,还需要深入整合领域知识和满足用户需求,体现了跨学科合作的重要性。
|
25天前
|
人工智能 自动驾驶 大数据
预告 | 阿里云邀您参加2024中国生成式AI大会上海站,马上报名
大会以“智能跃进 创造无限”为主题,设置主会场峰会、分会场研讨会及展览区,聚焦大模型、AI Infra等热点议题。阿里云智算集群产品解决方案负责人丛培岩将出席并发表《高性能智算集群设计思考与实践》主题演讲。观众报名现已开放。
|
13天前
|
人工智能 容器
三句话开发一个刮刮乐小游戏!暖ta一整个冬天!
本文介绍了如何利用千问开发一款情侣刮刮乐小游戏,通过三步简单指令实现从单个功能到整体框架,再到多端优化的过程,旨在为生活增添乐趣,促进情感交流。在线体验地址已提供,鼓励读者动手尝试,探索编程与AI结合的无限可能。
三句话开发一个刮刮乐小游戏!暖ta一整个冬天!
|
13天前
|
消息中间件 人工智能 运维
12月更文特别场——寻找用云高手,分享云&AI实践
我们寻找你,用云高手,欢迎分享你的真知灼见!
1002 67