LVS简介及LVS-NAT负载均衡群集的搭建(要像记得回家的路一样记得理想和远方)

news2024/11/28 14:18:48

文章目录

  • 一、LVS群集的简介
    • 1.群集的含义和应用场景
    • 2.性能扩展方式
    • 群集的分类
      • 负载均衡(LB)
      • 高可用(HA)
      • 高性能运算(HPC)
  • 二、LVS负载均衡群集简介及搭建
    • 1.负载均衡群集架构
      • 第一层,负载调度器(Load Balancer或Director)
      • 第二层,服务器池(Server Pool)
      • 第三层,共享存储(Share Storage)
    • 2.三种工作模式
      • NAT(地址转换)
      • DR(直接路由)
      • TUN(IP隧道)
    • 3.启用LVS虚拟服务
    • 4.LVS的调度算法
      • (1)固定调度算法
      • (2)动态调度算法
    • 5.使用ipvsadm管理工具
    • 6.部署实例
      • 实验准备
      • (1)配置nfs共享存储器
      • (2)配置节点服务器
      • (3)配置负载调度服务器

一、LVS群集的简介

1.群集的含义和应用场景

群集是为解决某个特定问题将多台计算机组合起来形成的单个系统,由多台主机构成,但对外只表现为一个整体,相当于一台大型计算机提供服务。

互联网应用中,随着站点对硬件性能、响应速度、服务稳定性、数据可靠性等要求越来越高,单台服务器已经无法满足负载均衡及高可用的要求,所有产生了LVS群集技术提供稳定高效服务。

2.性能扩展方式

  • 纵向扩展:对服务器的CPU、内存、硬盘等硬件进行升级或者扩容来实现,但存在性能上线会有瓶颈,成本昂贵,收效比不高等问题
  • 横向扩展:通过增加服务器主机数量来应对高并发的场景

群集的分类

负载均衡(LB)

提高应用系统的响应效率,处理更多的访问请求,减少延迟,提高并发和负载能力

LB的负载分配依赖于主节点的分流算法,将来自客户机的访问请求分担给多个服务器节点,从而缓解整个系统的负载压力。例如“DNS轮询”,“反向代理”等。

高可用(HA)

提高应用系统的可靠性,减少服务中断时间,确保服务的连续性。

HA的工作方式包括双工和主从两种模式,双工即所有节点同时在线,主从则只有主节点在线,但当出现故障时从节点能自动切换为主节点。例如“故障切换”,“双机热备”等。

高性能运算(HPC)

以提高应用系统的CPU运算速度、扩展硬件资源和分析能力为目标,获得相当于大型、超级计算机的高性能运算能力。

高性能依赖于“分布式运算”、“并行计算”,通过专用硬件和软件将多个服务器的CPU、内存等资源整合在一起,实现只有大型、超级计算机才具备的计算能力。例如,“云计算”,“网格计算”等。

二、LVS负载均衡群集简介及搭建

负载均衡群集是目前企业中用的最多的群集类型

1.负载均衡群集架构

第一层,负载调度器(Load Balancer或Director)

访问整个群集系统的唯一入口,对外使用所有服务器共有的VIP地址,也称为群集IP地址。通常会配置主、备两台调度器实现热备份,当主调度器失效以后能够平滑替换至备用调度器,确保高可用性。

第二层,服务器池(Server Pool)

群集所提供的应用服务、由服务器池承担,其中每个节点具有独立的RIP地址(真实IP),只处理调度器分发过来的客户机请求。当某个节点暂时失效时,负载调度器的容错机制会将其隔离,等待错误排除以后再重新纳入服务器池。

第三层,共享存储(Share Storage)

为服务器池中的所有节点提供稳定、一致的文件存取服务,确保整个群集的统一性。共享存储可以使用NAS设备,或者提供NFS共享服务的专用服务器。
在这里插入图片描述

2.三种工作模式

NAT(地址转换)

调度器作为所有节点服务器的网关,既作客户端的访问入口,也作节点服务器响应的访问出口,也就意味着调度器将成为整个集群系统的瓶颈。
由于再转发过程中做了地址转发,对于节点服务器的安全性比其它模式较好。
调度器至少要有2个网卡,一个承载VIP用于接收客户端的请求,另一个用于使用私有IP在同一个局域网中与节点服务器相互通信。

DR(直接路由)

调度器只负责接收客户端的请求,并根据调度算法转发给节点服务器;节点服务器在处理完请求后是直接响应返回给客户端,响应的数据包不经过调度器。
性能比NAT模式高。
调度器和节点服务器使用私有IP在同一个局域网中与节点服务器相互通信。

TUN(IP隧道)

架构与DR相类似,但是节点服务器分散在互联网各个位置,都具有独立的公网IP,通过专用IP隧道与调度器相互通信。

3.启用LVS虚拟服务

LVS现在已成为Linux内核的一部分,默认编译为ip_vs模块,必要时能够自动调用。在CentOS 7系统中,以下操作可以手动加载ip_vs模块,并查看当前系统中ip_vs模块的版本信息。
在这里插入图片描述

4.LVS的调度算法

(1)固定调度算法

轮询调度(rr):将请求依次分配给不同的RS节点,即RS节点中均摊分配。适合于RS所有节点处理性能接近的情况。

加权轮询调度(wrr):依据不同RS的权值分配任务。权值较高的RS将优先获得任务,并且分配到的连接数将比权值低的RS更多。相同权值的RS得到相同数目的连接数。

目的地址哈希调度(dh):以目的地址为关键字查找一个静态hash表来获得所需RS。

源地址哈希调度(sh):以源地址为关键字查找一个静态hash表来获得需要的RS。

(2)动态调度算法

最小连接数调度(lc):IPVS表存储了所有活动的连接。LB会比较将连接请求发送到当前连接最少的RS。

加权最小连接数调度(wlc):假设各台RS的权值依次为x,当前tcp连接数依次为y,依次去y/x为最小的RS作为下一个分配的RS。

基于地址的最小连接数调度(lblc):将来自同一个目的地址的请求分配给同一台RS,此时这台服务器是尚未满负荷的。否则就将这个请求分配给连接数最小的RS,并以它作为下次分配的首先考虑。

5.使用ipvsadm管理工具

ipvsadm [选项]

常用选项
在这里插入图片描述

6.部署实例

实验准备

负载调度器:内网关 ens33:192.168.116.1,外网关 ens36:12.0.0.1
Web节点服务器1:192.168.116.10
Web节点服务器2:192.168.116.20
NFS服务器:192.168.116.50
客户端:12.0.0.12

(1)配置nfs共享存储器

#关闭防火墙和selinux
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
 
#下载nfs服务
yum install nfs-utils rpcbind -y
systemctl start rpcbind.service
systemctl start nfs.service
systemctl enable nfs.service
systemctl enable rpcbind.service
 
#创建两个共享目录
cd /opt/
mkdir abc def
chmod 777 abc/ def/
echo 'welcome to abc.com!' > abc/index.html
echo 'welcome to def.com!' > def/index.html
 
#修改nfs发布策略
vim /etc/exports
/usr/share *(ro,sync)
/opt/abc 192.168.116.0/24(rw,sync)
/opt/def 192.168.116.0/24(rw,sync)
 
#在线发布
exportfs -rv

在这里插入图片描述

(2)配置节点服务器

首先需要节点服务器提供web服务(apache、nginx等都可以)
在这里插入图片描述
在这里插入图片描述
将网页根目录挂载到共享存储服务器

web服务器1(nginx)

#启动nfs服务并共享
systemctl start rpcbind nfs
mount 192.168.116.50:/opt/abc /usr/local/nginx/html/

在这里插入图片描述
web服务器2(apache)

#启动nfs服务并共享
systemctl start rpcbind nfs
mount 192.168.116.50:/opt/def /var/www/html/
 

在这里插入图片描述

(3)配置负载调度服务器

配置网卡

在这里插入图片描述

#关闭防火墙和selinux
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
 
#添加ip转发功能
echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf
sysctl -p
 
#设置SNAT地址转发
iptables -F
iptables -t nat -F
iptables -t nat -A POSTROUTING -s 192.168.116.0/24 -o ens33 -j SNAT --to-source 12.0.0.1
 
#下载ipvsdam并加载ip_vs通用模块
yum -y install ipvsadm
modprobe ip_vs
 
#添加并启动ipvsadm
ipvsadm-save > /etc/sysconfig/ipvsadm
systemctl start ipvsadm.service
systemctl enable ipvsadm.service
 
#添加lvs策略
ipvsadm -A -t 12.0.0.1:80 -s rr -p 5
ipvsadm -a -t 12.0.0.1:80 -r 192.168.116.10:80 -m -w 1
ipvsadm -a -t 12.0.0.1:80 -r 192.168.116.20:80 -m -w 1
 
#启用策略
ipvsadm
 
#保存策略(恢复可使用 ipvsadm-restore < /etc/sysconfig/ipvsadm)
ipvsadm-save > /etc/sysconfig/ipvsadm
 

在这里插入图片描述
使用外网客户端访问测试(等待连接保持失效后刷新,都能访问到则实现负载均衡)
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/620384.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux - sudo:/etc/sudoers 可被任何人写

错误如下&#xff1a; sudo: /etc/sudoers 可被任何人写 sudo: 没有找到有效的 sudoers 资源&#xff0c;退出 sudo: 无法初始化策略插件 需求就是除了root账号&#xff0c;别的账号也能执行mkdir等命令 1. 先用root把 chmod 777 /etc/sudoers 设置可修改 2. 添加一条 xxx…

JIRA维护记——使用原实例位置恢复数据

一、出现问题 昨天下班了&#xff0c;同事反馈Jira又不能使用了。想都不用想&#xff0c;肯定是磁盘空间不足了&#xff0c;因为已经出现过几次了。之前都是清理一下磁盘空间即可&#xff0c;都不用重启Jira。 今天一上班就开始清理磁盘空间&#xff0c;把一些日志啊&#xf…

数据在内存中的存储(打入“内部”深度剖析哦)

前面的文章介绍中&#xff0c;只对整数在内存中的存储进行了简单介绍&#xff0c;可是只了解这么一点点是远远不够的呢&#xff0c;这篇文章呢就对数据在内存中的存储的几个重难点进行了详细的介绍哦&#xff0c;希望对爱学习的小伙伴们有所帮助&#xff5e; 目录 一.数据类型…

【Protobuf速成指南】Message中如何定义“数组”?

文章目录 2.0一、字段规则1.1 规则1.2 改进1.3 消息类型作为字段类型 二、repeated字段使用方式三、Contact2.01.write.cc2.read.cc3. 查看二进制信息①hexdump② --decode选项 2.0 本系列文章将通过对通讯录项目的不断完善&#xff0c;带大家由浅入深的学习Protobuf的使用。这…

win10的另一种美化字体的方式,使用noMeiryoUI

目录 1. 前提2. 字体选择3. 查看已经安装的字体并查看效果4. 安装软件修改系统字体5. 修改浏览器字体 1. 前提 21年的时候写了一篇文章&#xff0c;《Windows10下美化字体&#xff0c;达到类似mac的效果》&#xff0c;当时还很迷恋macType这个软件的使用&#xff0c;觉得好牛逼…

Linux——安装VMwaretools实现文件共享功能

作为一个Linux初学者&#xff0c;应该熟悉相关的文件下载和安装以及简单的配置命令&#xff0c;下面通过安装一个VMwaretools来实现window环境和Linux环境下文件的共享功能的实现。 一、安装VMwaretools 点击重新安装后&#xff0c;会在桌面上看到有一个光盘&#xff0c;则代表…

单片机的基础知识和原理

单片机是一种集成了中央处理器&#xff08;CPU&#xff09;、内存、输入/输出&#xff08;I/O&#xff09;端口和其他外设的小型计算机系统。它通常用于嵌入式系统&#xff0c;如家电、汽车电子、工业控制等领域。 下面是单片机的基础知识和原理的概述&#xff1a; 架构&…

Linux系统安装——VMware15.5安装centos7.6 (附资料下载+联网配置+踩坑总结)

一、安装虚拟机VMware15.5 VMware虚拟机安装Win10&#xff0c;安装包秘钥/系统镜像/激活工具如下&#xff1a;(主要这个地址不限速&#xff0c;方便&#xff01;) https://www.123pan.com/s/g520Vv-Dg2id (遇到会拦截下载任务的浏览器&#xff0c;直接换浏览器下载即可&#xf…

【LVS负载均衡群集】

目录 一、企业群集应用概述1、群集的含义2、企业群集分类3、负载均衡群集架构1、负载均衡的结构2、负载均衡群集工作模式分析 二、LVS的三种工作模式1、NAT 模式地址转换 2、TUN模式IP隧道 3、DR模式直接路由 三、实战NAT模式 LVS负载均衡群集部署1.部署共享存储&#xff08;NF…

将安全性置于首位:考试系统源码的安全漏洞和防护措施

在当今数字化时代&#xff0c;考试系统源码的安全性已经成为了一个至关重要的问题。随着更多人开始远程学习和在线考试&#xff0c;考试系统的安全漏洞也越来越容易被利用。因此&#xff0c;在开发和使用考试系统源码应用程序时&#xff0c;保护用户数据和系统资源免受攻击是至…

思维导图整理,100个好看实用的模板分享

思维导图是一款有效提升工作和生活效率的生产力工具&#xff0c;受到全球千万用户的喜爱。 它帮助我们将所需的信息以图形的形式呈现&#xff0c;更加便于我们的记忆。头脑风暴帮助我们捕捉灵感&#xff0c;激发 我们更多的想象力。 它可以应用在我们生活以及工作的方方面面。项…

卡尔曼滤波与组合导航原理(七)平方根Kalman滤波:Potter平方根滤波、SVD分解滤波、UD分解滤波、平方根信息滤波SRIKF

文章目录 一、平方根滤波基本形式二、Potter平方根滤波1、方差阵的量测更新2、方差阵的时间更新3、Potter平方根滤波流程4、向量量测情况下的方差阵量测更新 三、奇异值&#xff08;SVD&#xff09;分解滤波1、时间更新方差方程的SVD分解2、量测更新方差方程的SVD分解3、SVD分解…

西电网课雨课堂《书法鉴赏》全部课后答案

声明&#xff1a;本文CSDN作者原创投稿文章&#xff0c;未经许可禁止任何形式的转载&#xff0c;原文链接 如果图片挂了&#xff0c;可以移步至我的博客西电网课雨课堂《书法鉴赏》答案 - 小木槌 文章目录 绪论--解惑初学书法者&#xff08;上&#xff09;绪论--解惑初学书法者…

Es elasticsearch 十八 Logstash 数据抽取工具

目录 基础 启动命令 简单配置文件 控制台输入输出打印 input从log文件获取数据-如分布式日志收集 监听端口 filter过滤器 Grok 正则捕获 Output 输出到es 文件输入 es输出 获取日志中字段 level 基础 从原数据 获取数据 发送到 某地方 Input{} filter{} output{} …

JMeter 常用的几种断言方法,你会几种呢?

在使用Jmeter进行性能测试或者接口自动化测试工作中&#xff0c;经常会用到的一个功能&#xff0c;就是断言。断言是在请求的返回层面增加一层判断机制。因为请求成功了&#xff0c;并不代表结果一定正确&#xff0c;因此需要判断机制提高测试准确性。本文 主要介绍3种常用的断…

【LSTM】读取时间序列数据 | 时间序列数据的小批量划分方法

由于序列数据本质上是连续的&#xff0c;因此我们在处理数据时需要解决这个问题。当序列过长而不能被模型一次性全部处理时&#xff0c;我们希望能拆分这样的序列以便模型方便读取。 Q&#xff1a;怎样随机生成一个具有n个时间步的mini batch的特征和标签&#xff1f; A&…

4.2 Spark SQL数据源 - 基本操作

一、默认数据源 案例演示读取Parquet文件 查看Spark的样例数据文件users.parquet 1、在Spark Shell中演示 启动Spark Shell 查看数据帧内容 查看数据帧模式 对数据帧指定列进行查询&#xff0c;查询结果依然是数据帧&#xff0c;然后通过write成员的save()方法写入HDF…

还在为开发难度发愁?这个低代码平台能让你轻松搞定!

随着数字技术的不断发展&#xff0c;数字化也越来越深入人们的日常生活中&#xff0c;在这样的时代背景下&#xff0c;企业是需要通过不断创新来满足用户日益增长的业务需求。 使用背景 对企业而言&#xff0c;随着组织规模的扩大&#xff0c;各种业务流程系统需要持续而快速地…

浮点数的存储方式和取值范围

一、有符号整型的编码方式 1. 真值 把用""、"-"表示符号&#xff0c;数值部分用绝对值的编码的表示方式称为真值。 如3用4bit真值表示为0011&#xff0c;-1用真值表示为-0011。 2. 原码 符号位为0表示正数&#xff0c;符号位为1表示负数&#xff0c;数…

网络安全的究竟如何自学?

以十五派9年信息安全教育经验以及数千名学生摸索实践可以得知&#xff0c;在知乎上能够搜索到这个问题的人不外乎三种人&#xff1a; 第一种人在找网络安全入门的捷径&#xff1b; 第二种人想自己的方向进而获得认同感&#xff1b; 第三种人是已经在自学网络安全但是过程中碰…