LVS(Linux Virtual Server)集群,(1)NAT模式

Cluster:集群,为了解决某个特定问题将多台计算机组合起来形成的单个系统。

集群分为三种类型:

LB(Load Balancing),负载均衡,多个主机组成,每个主机只承担一部分访问请求

HA(High Availiablity),高可用,避免单点故障

HPC(High-performance computing),高性能

LVS一共有三种工作模式:DR,Tunnel,NAT

轮询(Round Robin):将收到的访问请求按照顺序轮流分配给群集中的各节点。

加权轮询(Weighted Round Robin):根据调度器设置的权重值来分发请求,权重值越高,越优先获得任务并且分配的请求越多。

最少连接(Least Connections):根据真实服务器已建立的连接数进行分配,将收到的访问请求优先分配给连接数最少的节点。

加权最少连接数(Weighted Least Connections):在服务器节点的性能差异较大的情况下,调度器根据节点服务器负载自动调整权重。

集群:同一个业务系统,部署在多台服务器上。

集群设计原则:

可扩展性—集群的横向扩展能力

可用性—无故障时间

性能—访问响应时间

容量—单位时间内的最大并发吞吐量

软件:

lvs:阿里四层SLB使用四层的nginx负载均衡软件,内核中的功能性能强,功能少,百万级别的并发。

nginx:支持七层调度,阿里七层SLB使用Tengine,4层,3-6w并发

haproxy:支持七层调度,反向,十万级别(不太会用到)

LVS:调度器,负载均衡软件,类似于nginx,4层协议的代理

IPVS sheduler调度算法

LVS,负载调度器,内核集成。阿里的四层SLB是基于LVS+keepalived实现。

LVS集群中的术语:

VS(Virtual Server,VS)代理服务器,DS(Director Server),Dispatcher调度器

RS(real Server,RS)真实服务器:upstream server(nginx),backend server(paproxy),真实服务器

CIP(Client IP):客户机IP

VIP(Virtual Server IP):代理服务器的IP,外网IP

DIP(Director IP)VS内网的IP,代理服务器的IP

RIP(Real server IP):真实服务器的IP地址

LVS调度算法,调度算法分为两种,静态方法和动态方法。

静态方法就是不管后端真实服务器的状态,根据自身算法进行调度。

动态方法是会根据后端服务器的状态来进行调度。

仅根据算法本身进行调度。

静态:

RR:RoundRobin,轮询,常用
WRR:加权轮询,常用,先算总权重,再用自己的权重去除以总权重

SH,实现session sticky,源IP地址hash,将来自于同一个IP地址的请求始终发往第一次挑中的RS,从而实现会话绑定

DH,目的地址哈希,第一次轮询调度至RS

动态:

一个参考值来确定服务器是否忙,值越小代表服务器越空闲,就会优先调度个空闲的服务器
根据RS当前的负载状态及调度算法进行调度Overhead=value值,小的值被调度

1.LC:适用于长连接应用,最小连接数,不考虑权重

公式:Overhead=activeconns*256+inactiveconns

值=活动连接*256+非活动连接。没有权重

2.WLC:带权重的,weight,默认调度,加权最小连接数,第一轮不合理,都是一样的优先级

公式:Overhead=(activeconns*256+inactiveconns)/weight

值=(活动连接*256+非活动连接)/权重。有权重

3.SED:初始连接高权重优先,只检查活动连接,而不考虑非活动连接,权重小的,空闲的
公式:Overhead=(activeconns+1)*256/weight

值=(活动连接+1)*256/权重。

4.NQ:第一轮均匀分配,后续SED

ipvsadm 工具,选项说明

-A:添加虚拟服务器

-D:删除整个虚拟服务器

-s:指定负载调度算法

-a:添加真实服务器(节点服务器)

-d:删除某一个节点

-t:指定VIP地址及TCP端口

-r:指定RIP地址及TCP端口

-m:表示使用NAT群集模式


ipvsadm -C #清空

ipvsadm -R #重载
ipvsadm -A -t 12.0.0.1:80 -s rr   #添加虚拟服务器,代理服务器

#添加真实服务器

ipvsadm -a -t 12.0.0.1:80 -r 192.168.114.20:80 -m

ipvsadm -a -t 12.0.0.1:80 -r 192.168.114.30:80 -m

通过yum安装:
yum install ipvsadm -y
 

NAT模式,LVS负载均衡部署

需要四台机子

7-1作为LVS是调度服务器,7-2作为真实服务器1,7-3作为真实服务器2,7-4作为客户端。

一次访问可能是192.168.114.20,那么下一次可能是192.168.114.30

systemctl stop firewalld

setenforce 0

在7-2和7-3真实服务器上配置httpd,准备主页文件。和指定网关

[root@Node3 ~]#:yum install -y httpd

[root@Node3 ~]#:systemctl start httpd
[root@Node3 ~]#:echo "7-3" > /var/www/html/index.html

7-2同理:

[root@Node2 ~]#:yum install -y httpd

[root@Node2 ~]#:systemctl start httpd
[root@Node2 ~]#:echo "7-2" > /var/www/html/index.html

这里,网页主页就配置好了,还需要修改两台的网关,设置为调度服务器的ens33网卡的地址

[root@Node3 ~]#:vim /etc/sysconfig/network-scripts/ifcfg-ens33

IPADDR=192.168.114.30
NETMASK=255.255.255.0
GATEWAY=192.168.114.10

[root@Node3 ~]#:systemctl restart network

7-2同理:

[root@Node2 ~]#:vim /etc/sysconfig/network-scripts/ifcfg-ens33

IPADDR=192.168.114.20
NETMASK=255.255.255.0
GATEWAY=192.168.114.10

[root@Node2 ~]#:systemctl restart network

总结:httpd服务,主页面配置。网络配置,指定网关。

7-1上LVS调度服务器

添加一块网卡,设为仅主机模式

修改ens36网卡:(刚添加的网卡,我这里叫ens36)

[root@Node1 ~]#:cd /etc/sysconfig/network-scripts/

[root@Node1 network-scripts]#:cp ifcfg-ens33 ifcfg-ens36 -a

[root@Node1 network-scripts]#:vim ifcfg-ens36

#把UUID删了,修改网卡名称为ens36
IPADDR=12.0.0.1
NETMASK=255.255.255.0
GATEWAY=12.0.0.1

[root@Node1 network-scripts]#:systemctl restart network

#开启路由转发:

[root@Node1 network-scripts]#:vim /etc/sysctl.conf

net.ipv4.ip_forward = 1

sysctl -p[root@Node1 network-scripts]#:sysctl -p
net.ipv4.ip_forward = 1


#添加真实服务器和虚拟服务器(节点服务器)

[root@Node1 ~]#:yum install -y ipvsadm

[root@Node1 ~]#:systemctl start ipvsadm
Job for ipvsadm.service failed because the control process exited with error code. See "systemctl status ipvsadm.service" and "journalctl -xe" for details.

#需要这个文件目录
[root@Node1 ~]#:ipvsadm-save > /etc/sysconfig/ipvsadm 
[root@Node1 ~]#:systemctl start ipvsadm

#添加虚拟服务器:

[root@Node1 ~]#:ipvsadm -A -t 12.0.0.1:80 -s rr

#添加两个真实服务器:

[root@Node1 ~]#:ipvsadm -a -t 12.0.0.1:80 -r 192.168.114.20:80 -m
[root@Node1 ~]#:ipvsadm -a -t 12.0.0.1:80 -r 192.168.114.30:80 -m

7-4作为客户端

改成主机模式:点确定

[root@Node4 ~]#:vim /etc/sysconfig/network-scripts/ifcfg-ens33

IPADDR=12.0.0.100
NETMASK=255.255.255.0
GATEWAY=12.0.0.1

#重启网络

[root@Node4 ~]#:systemctl restart network

测试:

实现NAT模式LVS负载均衡

------end------

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

深入浅出Git原理与Gitflow流程

1 Git原理 版本控制系统在软件开发和团队协作中扮演着至关重要的角色。它们帮助开发人员跟踪和管理代码的变化,协调多人同时编辑同一代码库,回溯历史版本,并解决代码冲突等问题。Git作为当今最流行的分布式版本控制系统,为开发人…

“网安之夜”院校领导座谈会举行:共谋实战网络安全人才产教融合培养之道

6月15日,由网安世纪科技有限公司主办的“网安之夜”院校领导座谈会在河北省唐山市圆满举行。本次活动旨在汇聚教育界与产业界智慧,共同构建紧密协作机制,搭建产教融合、校企合作平台,探索网络安全人才培养新模式,培养具…

植物神经紊乱,如何寻回内心的宁静

🌸在这个快节奏的时代,许多朋友都可能遭遇植物神经紊乱的困扰,它如同一个隐形的小恶魔,悄悄偷走我们的安宁与快乐。那么,面对这样的挑战,我们又该如何放松心情,寻回那份久违的宁静呢&#xff1f…

Pytorch构建vgg16模型

VGG-16 1. 导入工具包 import torch.optim as optim import torch import torch.nn as nn import torch.utils.data import torchvision.transforms as transforms import torchvision.datasets as datasets from torch.utils.data import DataLoader import torch.optim.lr_…

git中的多人协作开发场景

✨前言✨ 📘 博客主页:to Keep博客主页 🙆欢迎关注,👍点赞,📝留言评论 ⏳首发时间:2024年6月20日 📨 博主码云地址:博主码云地址 📕参考书籍&…

如何使用SQL工具批量执行SQL文件?(以MySQL和SQLynx为例)

目录 1. 配置MySQL数据源 2. 打开 SQL 文件 3. 执行 SQL 文件 4. 检查执行结果 5. SQL文件示例 6. 注意事项 7. 总结 在现代数据库管理和操作中,批量执行 SQL 文件在 MySQL 中显现出其巨大的价值和不可替代的作用。通过将多个 SQL 语句集成在一个文件中进行批…

粉尘螨虫满天飞?教你一招解决,推荐好用的空气净化器品牌

“家中无尘,心中无事”,这是每个家庭的理想状态。然而,灰尘和螨虫无处不在,即使每天打扫,也难以彻底消除。传统的清洁手段,比如扫地和擦灰,并不能从根本上解决问题。这时候,除尘空气…

一款Wordpress网站导航主题,带昼夜切换功能

Wordpress网站导航主题,带昼夜切换功能。 基于wordpress,部署和使用都比较方便。 界面比较简洁大方。后台管理功能也比较全面,值得一试。 这款主题界面、功能都非常简洁。 作者把这款定位为简约导航主题,所以这款wordpress导航…

如何获得一个Oracle 23ai数据库(vagrant box)

准确的说,是Oracle 23ai Free Developer版,因为企业版目前只在云上(OCI和Azure)和ECC上提供。 前面我博客介绍了3种方法: Virtual ApplianceRPM安装Docker 今天介绍最近新出的一种方法,也是我最为推荐的…

Python 基础:异常

目录 一、异常概念二、处理异常2.1 抛出异常2.2 使用 try-except 代码块2.3 使用 try-except-else 代码块2.4 静默失败 三、总结 遇到看不明白的地方,欢迎在评论中留言呐,一起讨论,一起进步! 本文参考:《Python编程&a…

记一次某单位的内网渗透测试

0x01 web打点 访问漏洞url:http://www.xx.xx.com进入某医疗系统 使用越权加文件上传拿到shell 0x02 内网渗透 192.168.xx.x 管理员 通过哥斯拉上线msf 上线后进行信息收集: 网卡信息、补丁信息、杀毒进程、用户在线情况、是否存在域、翻文件查找数据库密码、浏览器保存密码…

数据结构和算法之复杂度比较

数据结构和算法之复杂度比较 参考如下网址:https://www.bigocheatsheet.com/ 方便快速查询 1. 复杂度比较 2. 常见数据结构复杂度 3. 常见算法复杂度

强化学习和Q-Learning的综合研究

目录 一、说明 二、什么是强化学习? 三、监督学习、无监督学习和强化学习之间的区别。 四、强化学习中使用的术语。 五、强化学习中的智能体-环境交互:一个迷宫示例。 六、贝尔曼方程。 七、马尔可夫决策过程 (MDP) 八、马尔可夫决…

活动 | 华院计算受邀参加同心知联汇,走进“模速空间”

6月17日,由市知联会先导产业专委会、市知联会经济与金融专委会、市经信系统知联会、上海市人工智能行业协会主办,上海创智合力信息科技有限公司、上海大模型生态发展有限公司承办的同心知联汇,走进“模速空间”活动在上海大模型创新生态社区成…

SQLite 3 优化批量数据存储操作---事务transaction机制

0、事务操作 事务的目的是为了保证数据的一致性和完整性。 事务(Transaction)具有以下四个标准属性,通常根据首字母缩写为 ACID: 原子性(Atomicity):确保工作单位内的所有操作都成功完成&…

wps要会员才能把pdf分开,这不纯属智商税吗

我有一个文档 然后 我给你们写好了一个代码 from PyPDF2 import PdfReader, PdfWriterdef split_pdf(file_path, ranges, output_names):# Open the input PDF filewith open(file_path, rb) as pdf_file:reader = PdfReader(pdf_file)total_pages = len(reader.pages)if len…

Day14—基于Langchain-chatchat搭建本地智能

一、基于Langchain-chatchat搭建本地智能 知识问答系统 1、项目介绍 基于 ChatGLM 等大语言模型与 Langchain 等应用框架实现,开一种利用 langchain 思想实现的基于本地知识库的问答应用,目标期望建立一套对中文场景与开源模型支持友好、可离线运行的知…

vue3 antdv Select 实现输入关键词,通过服务器去查询数据,并显示到表格中的实现思路。

实现思路: 1)输入关键词,通过Select的查询事件(onSearch)来到服务器查询数据。 2)根据查询到的数据显示到表格中,然后通过表格的(cellClickEvent)事件来选择相关的用户…

大润发超市购物卡怎么用?

收到大润发超市的礼品卡以后,我才发现,最近的大润发也得十来公里 为了100块的大润发打车也太不划算了 叫外送也不在配送范围内 最后没办法,在收卡云上出掉了,还好最近价格不错,也不亏,收卡云的到账速度也…

关于圆的方程

关于圆的方程 flyfish 几何定义 圆是平面上所有到一个固定点(圆心)距离相等的点的集合。 解析几何描述 设圆心位于点 ( h , k ) (h, k) (h,k),半径为 r r r,那么对于圆上的任意一点 ( x , y ) (x, y) (x,y),它…