基于 openEuler 构建 LVS-DR 群集

embedded/2025/2/21 7:14:53/


1. 对比 LVS 负载均衡群集的 NAT 模式和 DR 模式,比较其各自的优势 。

LVS-NAT模式的优势

  • 配置简单:NAT模式的配置相对容易,无需复杂的网络设置,适合初学者和小型网络环境。

  • 网络架构灵活:由于使用了NAT技术,LVS调度器和后端服务器可以位于不同的网段,网络架构更加灵活。

  • 安全性高:后端服务器的IP地址被隐藏,客户端无法直接访问后端服务器,增加了系统的安全性。

  • 支持端口映射:可以将一个端口的流量映射到多个后端服务器的不同端口,增加了配置的灵活性。

  • 操作系统兼容性好:后端服务器可以使用任意操作系统,无需特殊支持

LVS-DR模式的优势

  • 高性能:请求报文经过调度器,但响应报文直接从后端服务器返回客户端,减少了调度器的负载,提高了整体性能。

  • 低延迟:由于响应报文不经过调度器,减少了数据传输的路径,降低了延迟。

  • 可扩展性强:适合大规模集群和高并发场景,能够有效分散网络流量。

  • 无需地址转换:不修改报文的源IP和目标IP地址,减少了地址转换带来的性能开销。

  • 支持公网IP:后端服务器可以使用公网IP,便于直接从互联网访问。

总结

  • 适用场景

    • NAT模式适合小型集群或对安全性要求较高的场景,例如小型企业内部的负载均衡

    • DR模式更适合高并发、大规模的负载均衡需求,例如大型网站或数据中心。

  • 性能

    • NAT模式在高负载下容易成为性能瓶颈,而DR模式可以有效分散流量,提高性能。

  • 配置复杂度

    • NAT模式配置简单,适合初学者;DR模式配置相对复杂,但性能更优。

2. 基于 openEuler 构建 LVS-DR 群集。

基于openEuler构建LVS-DR集群的步骤如下,以下是详细的配置过程:

1. 环境准备

假设集群环境如下:

  • LVS调度器192.168.100.254

  • 真实服务器1192.168.100.10

  • 真实服务器2192.168.100.11

  • 虚拟IP(VIP)192.168.100.100

2. 配置LVS调度器

1. 关闭防火墙和SELinux

systemctl stop firewalld
systemctl disable firewalld
setenforce 0

2. 加载ip_vs模块

modprobe ip_vs
cat /proc/net/ip_vs

3. 安装ipvsadm工具

yum -y install ipvsadm

4. 配置VIP地址

编辑网卡配置文件,添加VIP地址:

cd /etc/sysconfig/network-scripts


cp ifcfg-ens33 ifcfg-ens33:0


vim ifcfg-ens33:0

内容如下:

NAME=ens33:0
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.100.100
NETMASK=255.255.255.255

启动网卡:

ifup ens33:0

5 .调整内核参数

编辑/etc/sysctl.conf,添加以下内容:

net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0

加载内核参数:

sysctl -p

6. 配置负载均衡规则
ipvsadm -C  
ipvsadm -A -t 192.168.100.100:80 -s rr  
ipvsadm -a -t 192.168.100.100:80 -r 192.168.100.10:80 -g  添加真实服务器1
ipvsadm -a -t 192.168.100.100:80 -r 192.168.100.11:80 -g  添加真实服务器2
ipvsadm  查看节点状态

将规则保存到文件,以便重启后生效

3. 配置真实服务器

1 .配置VIP地址

在每台真实服务器上配置VIP地址:

cd /etc/sysconfig/network-scripts
cp ifcfg-lo ifcfg-lo:0


vim ifcfg-lo:0

内容如下:

DEVICE=lo:0
IPADDR=192.168.100.100
NETMASK=255.255.255.255
ONBOOT=yes

启动VIP地址:

ifup lo:0

2 .添加主机路由

为VIP地址添加路由:

route add -host 192.168.100.100 dev lo:0

将路由配置写入开机启动脚本:

vim /etc/rc.local

添加以下内容:

route add -host 192.168.100.100 dev lo:0

确保脚本可执行:

chmod +x /etc/rc.d/rc.local

3 调整ARP参数

vim /etc/sysctl.conf

添加以下内容:

net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2

加载内核参数:

sysctl -p

4. 测试集群

在客户端访问VIP地址192.168.100.100:80,观察请求是否被正确分发到真实服务器

访问VIP地址: 在客户端(可以是另一台机器或本地机器)上,通过浏览器或curl命令访问VIP地址:curl http://192.168.100.100:80

或者直接在浏览器中输入http://192.168.100.100

可以通过在真实服务器上部署不同的页面内容,来直观地观察请求是否被分发到不同的服务器

关闭一台真实服务器(例如192.168.100.10),再次访问VIP地址,观察请求是否被自动转发到另一台真实服务器(192.168.100.11)。

如果配置正确,请求应该能够正常响应,且不会出现访问失败的情况。

测试负载均衡效果

同时访问VIP地址多次,观察请求是否按照配置的负载均衡算法(如轮询、最少连接等)被分发到不同的真实服务器。

可以通过访问日志或监控工具来验证负载均衡的效果

5. 可选:使用Keepalived实现高可用

为了实现LVS调度器的高可用,可以结合Keepalived进行配置

作用:可以实现LVS-DR集群的高可用性,确保在调度器故障时,服务能够无缝切换到备用调度器。

(不做详细说明)

Thank you!!!


http://www.ppmy.cn/embedded/162527.html

相关文章

spring学习(spring-DI(setter注入、构造器注入、自动装配方式))

目录 前言 setter注入 使用步骤 demo(案例) 构造器注入 使用步骤 demo(案例) 自动装配 byName byType 前言 在spring 框架中 loc 容器 帮助我们创建对象,dl 依赖注入主要则是帮助我们具体的使用 创建的对象。我们清楚 对象被使用的…

【安全测试】0基础新手学Web安全测试笔记(一)

文章目录 一、关于账号密码的漏洞二、关于验证码的漏洞三、Burp工具的使用四、渗透测试1. 渗透测试类型2. 脆弱性评估 五、常见的应用安全风险1. 注入2. 失效的身份认证3. 敏感数据泄露4. XML外部实体(XXE)5. 失效的访问控制6. 安全配置错误7. 跨站脚本:(XSS)8. 不安全的反序列…

小白学网络安全难吗?需要具备哪些条件?

作为一名零基础小白,想要转行IT学习一门新技术,且上手难度低、就业前景好、薪资待遇高、入行门槛低,网络安全是最值得的选择,掌握它之后你可以获得一份收入不错的工作。那么零基础学网络安全好学吗?以下是具体内容介绍。 首先&am…

【广州大学主办,发表有保障 | IEEE出版,稳定EI检索,往届见刊后快至1个月检索】第二届电气技术与自动化工程国际学术会议 (ETAE 2025)

第二届电气技术与自动化工程国际学术会议 (ETAE 2025) The 2nd International Conference on Electrical Technology and Automation Engineering 大会官网:http://www.icetae.com/【更多详情】 会议时间:2025年4月25-27日 会议地点&#xff1a…

第P9周-Pytorch实现YOLOv5-Backbone模块

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 目标 优化代码结构了解YOLOv5-backbone模块 具体实现 (一)环境 语言环境:Python 3.10 编 译 器: PyCharm 框 架: Pytor…

【愚公系列】《Python网络爬虫从入门到精通》008-正则表达式基础

标题详情作者简介愚公搬代码头衔华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。近期荣誉2022年度…

DeepSeek-VL2 环境配置与使用指南

DeepSeek-VL2 环境配置与使用指南 DeepSeek-VL2 是由 DeepSeek 公司开发的一种高性能视觉-语言模型(VLM)。它是 DeepSeek 系列多模态模型中的一个版本,专注于提升图像和文本之间的交互能力。 本文将详细介绍如何配置 DeepSeek-VL2 的运行环…

Python与R机器学习(1)支持向量机

以下是对Python与R在支持向量机(SVM)实现上的核心区别分析及完整示例代码: 一、核心差异对比 特征Python (scikit-learn)R (e1071/kernlab)核心库sklearn.svm.SVC/SVRe1071::svm() 或 kernlab::ksvm()语法范式面向对象(先初始化模…