当前位置: 首页 > news >正文

LVS-NAT模式

LVS负载均衡群集

群集的定义

Cluster,集群(也称群集)由多台主机构成,但对外只表现为一一个整体,只提供一-个访问入口(域名或IP地址), 相当于一台大型计算机。

群集的作用

对于企业服务的的性能提升一般会有两种方式:

纵向扩展: 对服务器的CPU 内存 硬盘 等硬件进行升级或者扩容来实现的 性能上限会有瓶颈,成本昂贵,收效比不高等问题。

横向扩展:通过增加服务器主机数量来应该高并发的场景。

群集的目的

提高性能:计算密集应用。如天气预报,核试验模拟。 降低成本:相对百万美元的超级计算机,价格便宜。 提高可扩展性:只要增加集群节点即可。 增强可靠性:多个节点完成相同功能,避免单点失败。

企业级群集的类型

负载均衡(LB):提高应用系统的响应效率,处理更多的访问请求,减少延迟,提高并发和负载能力。 同时也是如今企业运用最多的群集类型。

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

高性能运算(HPC):将多台主机的硬件计算资源整合到一起实现分布式运用,比如 云计算

LVS的相关话术:

DS:Director Server。指的是前端负载均衡器。

RS:Real Server。节点服务器,后端真实的工作服务器。

VIP:向外部直接面向用户请求,作为用户请求的目标的IP地址。

DIP:Director Server IP,主要用于和内部主机通讯的IP地址。

RIP:Real Server IP,后端服务器的IP地址。

CIP:Client IP,访问客户端的IP地址。

LVS的基本原理

1.当用户向负载均衡器(Director Server)发起请求,调度器将请求发送至内核空间。

2.Prerouting链首先会接收到用户请求,判断目标IP确定是本机IP,将数据包发送到INPUT链。

3.IPVS是工作在INPUT链上的,当用户请求到达INPUT时,IPVS会将用户请求和自己已经定义好的集群服务进行对比,如果用户请求的就是定义的集群服务,那么此时IPVS会强行修改数据包里的目标IP地址及端口,并将新的数据包发送到POSTROUTING链。

4.POSTROUTING链接收数据包后发现目标IP地址刚好是自己的后端服务器,那么此时通过选路,将数据包最终发送到后端的服务器。

LVS负载均衡的三种模式

群集的负载调度技术有三种工作模式:地址转换(NAT模式) ,直接路由(DR模式),IP隧道(IP-TUN)。对于商用来说,最常用是NAT模式和DR模式。

NAT(地址转换)
  • Network Address Translation,简称NAT模式

  • 类似于防火墙的私有网络结构,负载调度器作为所有服务器节点的网关,即作为客户机 的访问入口,也是各节点回应客户机的访问出口。

  • 服务器节点使用私有IP地址,与负载调度器位于同一个物理网络,安全性要优于其他两 种方式。

  • 缺点:由于NAT的负载均衡器既作为用户的访问请求入口,也作为节点服务器响应请求的出口,承载两个方向的压力,调度器的性能会成为整个集群的瓶颈。

DR模式(直接路由)
  • Direct Routing,简称DR模式。
  • 采用半开放式的网络结构,与TUN模式的结构类似,负载调度器仅作为客户机的访问入口,各节点通过各自的Internet连接直接回应客户机,而不再经过负载调度器。承载的压力比NAT小。
  • 但各节点并不是分散在各地,而是与调度器位于同一个物理网络。
  • 负载调度器与各节点服务器通过本地网络连接,不需要建立专用的IP隧道。

LVS的负载调度算法

rr:轮询算法(Round Robin)

  • 将请求依次分配给不同的RS节点,即RS节点中均摊分配。适合于RS所有节点处理性能接近的情况。
  • 将收到的访问请求安装顺序轮流分配给群集指定各节点(真实服务器),均等地对待每一台服务器,而不管服务器实际的连接数和系统负载。

wrr:加权轮询调度(Weighted Round Robin)

  • 依据不同RS的权重值分配任务。权重值较高的RS将优先获得任务,并且分配到的连接数将比权值低的RS更多。相同权值的RS得到相同数目的连接数。
  • 保证性能强的服务器承担更多的访问流量。

dh:目的地址哈希调度(destination hashing)

  • 以目的地址为关键字查找一个静态hash表来获得所需RS。

sh:源地址哈希调度(source hashing)

  • 以源地址为关键字查找--个静态hash表来获得需要的RS。

(2)动态调度算法: wlc,lc,1blc

lc:最小连接数调度( Least Connections)

  • ipvs表存储了所有活动的连接。LB会比较将连接请求发送到当前连接最少的RS。
  • 根据真实服务器已建立的连接数进行分配,将收到的访问请求优先分配给连接数最少的节点。

wlc:加权最小连接数调度(Weighted Least Connections)

  • 假设各台RS的权值依次为Wi,当前tcp连接数依次为Ti,依次取Ti/Wi为最小的RS作为下一个分配的RS。
  • 在服务器节点的性能差异较大时,可以为真实服务器自动调整权重。
  • 性能较高的节点将承担更大比例的活动连接负载。

lblc:基于地址的最小连接数调度(locality-based least-connection)

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

LVS-NAT模式实例

NFS服务器 7-5 192.168.222.105

#关闭防火墙

systemctl stop firewalld

setenforce 0

#安装nfs服务

yum install nfs-utils rpcbind -y

#新建目录,并创建站点文件

cd /opt/

mkdir zhao qian

echo "zhaoqiansunli" >zhao/index.html

echo "zhouwuzhengwang" >qian/index.html

#开启服务

systemctl start rpcbind

systemctl start nfs

#授权

chmod 777 zhao/ qian/

#设置共享策略

vim /etc/exports /opt/fl

192.168.222.0/24(rw,sync) /opt/dl

192.168.222.0/24(rw,sync)

#发布服务

systemctl restart nfs

exportfs -rv

节点服务器1 7-4 192.168.222.104

#关闭防火墙

systemctl stop firewalld
setenforce 0

#安装httpd

yum install -y httpd

#查看nfs服务

showmount -e 192.168.222.105

#挂载站点

#法一:临时挂载
df

mount 192.168.222.105:/opt/zhao /var/www/html/

cat /var/www/html/index.html
#法二:永久挂载
vim /etc/fstab
192.168.222.105:/opt/zhao/  /var/www/html/        nfs     defaults,_netdev 0 0 
mount -a

#开启httpd服务

systemctl start httpd

#指定网关

vim /etc/sysconfig/network-scripts/ifcfg-ens33 
GATEWAY=192.168.222.100
#DNS1=8.8.8.8

#重启网络服务

systemctl restart network

节点服务器2 7-3 192.168.222.103【和7-4操作相同】

负载调度器 7-2 192.168.222.100 需要两块网卡

#关闭防火墙

systemctl stop firewalld

setenforce 0

#安装ipvsadm

yum install -y ipvsadm*

#添加一块网卡,配置网卡,重启网络

cd /etc/sysconfig/network-scripts/

cp ifcfg-ens33 ifcfg-ens35

vim ifcfg-ens35 去掉网关、UUID、修改IP

vim ifcfg-ens33 去掉网关

systemctl restart network

#打开路由转发功能

vim /etc/sysctl.conf

net.ipv4.ip_forward = 1

sysctl -p

#防火墙做策略

#查看策略

iptables -nL -t nat

#清空策略

iptables -F

#添加策略

iptables -t nat -A POSTROUTING -s 192.168.222.0/24 -o ens35 -j SNAT --to 12.0.0.1

#查看策略

iptables -nL -t nat

#加载LVS内核模块

modprobe ip_vs

cat /proc/net/ip_vs

#开启ipvsadm服务

ipvsadm-save >/etc/sysconfig/ipvsadm

systemctl start ipvsadm.service

#清空策略

ipvsadm -C

#制定策略

#指定IP地址 外网的入口 -s rr 轮询 ipvsadm -A -t 12.0.0.1:80 -s rr

#先指定虚拟服务器再添加真实服务器地址,-r:真实服务器地址 -m指定nat模式

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

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

#开启服务 ipvsadm

#查看策略

ipvsadm -ln

客户端主机

修改ip

访问12.0.0.1

相关文章:

LVS-NAT模式

LVS负载均衡群集 群集的定义 Cluster,集群(也称群集)由多台主机构成,但对外只表现为一一个整体,只提供一-个访问入口(域名或IP地址), 相当于一台大型计算机。 群集的作用 对于企业服务的的性能提升一般…...

【神印王座】龙皓晨竟然上了头版头条!内容违背,新闻真实性原则

Hello,小伙伴们,我是小郑继续为大家深度解析神印王座国漫。 大家有没有发现,当龙皓晨他们从驱魔关回到圣城时,有这么一幕,一个卖报小孩边走边说:驱魔关大捷,少年英雄龙皓晨操控守护与怜悯之神印王座&#x…...

C++之类和函数权限访问总结(二百二十七)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…...

手动部署 OceanBase 集群

手动部署一个 OB 单副本集群,包括一个 OBProxy 节点 部署环境 服务器信息 IP地址 192.168.0.26 网卡名 ifcfg-enp1s0 OS Kylin Linux Advanced Server release V10 CPU 8C 内存 32G 磁盘1 本地盘 /data/1 磁盘2 本地盘 /data/log1 机器和角色划分 …...

【操作系统笔记十二】Linux常用基础命令

Linux 常用快捷键 Tab 命令或路径等的补全键,特别常用的快捷键Ctrl insert 复制命令行内容(常用可提高效率)Shift insert 粘贴命令行内容(常用可提高效率)Ctrl C 中断当前任务(退出)Ctrl Z…...

Compose LazyColumn 对比 RecyclerView ,谁的性能更好?

LazyColumn 是 compose 中用来实现类似 RecyclerView 效果的控件 ,但是大家都说LazyColumn性能比RecyclerView差太多,毕竟 RecyclerView google优化了十多年了,比RecyclerView差一点也正常,今天我们就用实际数据来对比LazyColumn和…...

[python 刷题] 49 Group Anagrams

[python 刷题] 49 Group Anagrams 题目: Given an array of strings strs, group the anagrams together. You can return the answer in any order. An Anagram is a word or phrase formed by rearranging the letters of a different word or phrase, typically…...

vue+element plus 使用table组件,清空用户的选择项

<el-table ref"tableRef"> .... </el-table> <script lang"ts" setup> import { onMounted, reactive, ref, nextTick } from vue const clearBtn () > {console.log(清空用户的选择项)tableRef.value.clearSelection() } </scr…...

改写软件-怎么选择改写软件

什么是改写软件&#xff1f;改写软件是基于自然语言处理技术的工具&#xff0c;它们可以分析一段文字&#xff0c;并将其重新表达&#xff0c;以保持原始意义&#xff0c;但使用不同的词汇和结构。这种技术可用于减少内容的重复&#xff0c;增加多样性&#xff0c;或者简化复杂…...

gateway之跨域处理

文章目录 什么是跨域跨域带来的问题 gateway解决跨域解决跨域的其他方式比较代码示例 总结提升 什么是跨域 跨域&#xff08;Cross-Origin&#xff09;是指在浏览器中&#xff0c;当一个Web应用程序试图访问与其所属页面不同的源&#xff08;origin&#xff09;的资源时&#…...

uniapp 实现不同用户展示不同的tabbar(底部导航栏)

一、背景 最近在做一个uniapp开发的小程序遇到一个需求&#xff0c;希望不同用户登录后展示不同的tabbar页面&#xff0c;但是uniapp项目中的pages.json是只有一个list数组的&#xff0c;并且是不能写成动态效果&#xff0c;为了实现这个需求&#xff0c;便自定义了tabbar组件 …...

线性归一化是什么,用python实现数据的线性归一化

线性归一化&#xff08;Linear Normalization&#xff09;是一种常见的数据预处理方法&#xff0c;也被称为 Min-Max 归一化。它通过对原始数据进行线性变换&#xff0c;将其缩放到特定的范围内&#xff0c;常用的是将数据缩放到 [0, 1] 或 [-1, 1] 范围内。 具体来说&#xff…...

超级好用绘图工具(Draw.io+Github)

超级好用绘图工具&#xff08;Draw.ioGithub&#xff09; 方案简介 绘图工具&#xff1a;Draw.io 存储方式&#xff1a; Github 1 Draw.io 1.2 简介 ​ 是一款免费开源的在线流程图绘制软件&#xff0c;可以用于创建流程图、组织结构图、网络图、UML图等各种类型的图表。…...

全国职业技能大赛云计算--高职组赛题卷③(私有云)

全国职业技能大赛云计算--高职组赛题卷③&#xff08;私有云&#xff09; 第一场次题目&#xff1a;OpenStack平台部署与运维任务1 基础运维任务&#xff08;5分&#xff09;任务2 OpenStack搭建任务&#xff08;15分&#xff09;任务3 OpenStack云平台运维&#xff08;15分&am…...

Redis SCAN命令操作实战(详细)

目录 SCAN 介绍 SCAN 命令基本用法 MATCH 选项用法 COUNT 选项用法 TYPE 选项用法 补充 并发执行多个迭代 中途停止迭代 使用错误的游标进行增量式迭代 迭代终结的保证 SCAN 介绍 SCAN cursor [MATCH pattern] [COUNT count][TYPE type]&#xff1a;SCAN 命令及其相…...

计网第五章(运输层)(六)(TCP可靠传输的实现)

目录 一、基本概述 二、具体实现 1.前后沿&#xff1a; 2.利用指针描述发送窗口的状态 3.有差错情况 之前在数据链路层时已经讨论过可靠传输&#xff08;计网第三章&#xff08;数据链路层&#xff09;&#xff08;二&#xff09;&#xff08;可靠传输&#xff09;&#x…...

酒店外卖小程序商城的作用是什么

随着线上餐品销售属性增强&#xff0c;传统酒店除了承接到店客户&#xff0c;外送也成为生意的一部分&#xff0c;但传统打电话、微信发送的方式无法实现餐品全面呈现和客户随时订购需求&#xff0c;在配送方面也无法规范化。 除此之外&#xff0c;还需要完善营销、会员管理、…...

居家养老一键通的功能

居家养老一键通的功能 居家养老一键通是指为老年人提供全方位的居家养老服务的平台或系统。它通过整合各种资源和服务&#xff0c;为老年人提供便捷、安全、舒适的居家养老环境&#xff0c;帮助他们解决生活中的各种难题。 居家养老一键通的功能通常包括以下几个方面&#xff…...

海外代理IP是什么?如何使用?

一、海外代理IP是什么&#xff1f; 首先&#xff0c;代理服务器是在用户和互联网之间提供网关的系统或路由器。它是一个服务器&#xff0c;被称为“中介”&#xff0c;因为它位于最终用户和他们在线访问的网页之间。 海外IP代理是就是指从海外地区获取的IP地址&#xff0c;用…...

mmdetection v3避坑

命令&#xff1a; python tools/test.py projects/DiffusionDet/configs/diffusiondet_r50_fpn_500-proposals_1-step_crop-ms-480-800-450k_coco.py /data/zhangrui/mmdetection-master/checkpoints/diffusiondet_r50_fpn_500-proposals_1-step_crop-ms-480-800-450k_coco_202…...

备份服务器数据库并保存到Git仓库

备份项目及数据库脚本 #!/bin/bash # MySQL数据库信息 DB_HOST"localhost" DB_USER"root" DB_PASS"************" DB_NAME"my-space" # 导出文件目录 EXPORT_PATH"/home/MySpace/mysql" # 获取当前时间并格式…...

尚硅谷wepack课程学习笔记

为什么需要使用打包工具&#xff1f; 开发时使用的框架、es6 语法 、less 等浏览器无法识别。 需要经过编译成浏览器能识别的css、js才可以运行。 打包工具可以帮我们编译&#xff0c;号可以做代码压缩、兼容处理、性能优化。 常见的打包工具有什么&#xff1f; vite、webpac…...

c++模版元编程-可变参数模版

在 C 中&#xff0c;我们可以使用模板参数包&#xff08;Template Parameter Pack&#xff09;和展开表达式&#xff08;Expanding Expression&#xff09;来定义可变参数模板。 模板参数包 模板参数包是一种特殊的语法&#xff0c;用于表示接受多个模板类型参数或非类型参数…...

pcl--第十节 点云曲面重建

曲面重建技术在逆向工程、数据可视化、机器视觉、虚拟现实、医疗技术等领域中得到了广泛的应用 。 例如&#xff0c;在汽车、航空等工业领域中&#xff0c;复杂外形产品的设计仍需要根据手工模型&#xff0c;采用逆向工程的手段建立产品的数字化模型&#xff0c;根据测量数据建…...

【力扣-每日一题】2560. 打家劫舍 IV

class Solution { public:bool check(vector<int> &nums,int max_num,int k){//只需要计算可以偷的房间。在满足最大值为max_num下时&#xff0c;能偷的最多的房间&#xff0c;与k值比较//如果大于K&#xff0c;说明max_num还可以缩小//如果小于看&#xff0c;说明ma…...

vue简单案例----小张记事本

小张记事本 具体效果如图所示&#xff0c;这里就简单展示&#xff0c;还有很多不足的地方&#xff0c;希望大家可以对这个小项目进行改进&#xff0c;话不多说可以参考下面的代码 源代码如下 <html lang"en"><head><meta charset"UTF-8"…...

爬虫获取接口数据

上一讲讲的是获取静态网页数据的教程&#xff0c;适用于我们要爬取的数据在网页源代码中出现&#xff0c;但是还是有很多的数据是源代码中没有的&#xff0c;需要通过接口访问服务器来获得&#xff0c;下面我就来讲讲如何爬取这类数据。 以巨潮资讯网爬取比亚迪企业年报为例。…...

私域流量的变现方式,你知道多少?

私域流量的变现方式是指通过有效的管理和运营自有的用户群体&#xff0c;将流量转化为实际收益的过程。私域流量的变现方式多样&#xff0c;下面将介绍其中几种常见的方式。 1. 电商平台入驻 通过将自有流量引导到电商平台&#xff0c;开设店铺进行商品销售&#xff0c;从中获…...

Webpack配置entry修改入口文件或打包多个文件

当我们使用Webpack进行文件打包时&#xff0c;默认打包的文件是src文件下的index.js文件 一、修改Webpack打包入口 如果我们想要在其他文件下打包指定的js文件就需要在webpack.config.js文件中进行entry配置 二、将指定的多个文件打包为一个文件 现在有两个文件&#xff0c;…...

Mac mini2014(装的windows)重装回MacOS

Mac mini2014(装的windows)重装回MacOS 制作macos的启动U盘&#xff0c;我的是32G的 第一步下载你的硬件能使用的系统&#xff0c;建议最好低一个版本&#xff0c;因为我安装的时候出现问题。 下载地址&#xff1a;https://blog.csdn.net/netgc/article/details/130641479下载…...

H5网站模板修改教程/网络推广员的前景

问题描述&#xff1a;Hbuilder打包的app如果点击手机返回键&#xff0c;app会直接退出&#xff0c;返回不了上一页。 处理子页面点击返回键直接退出&#xff0c;无法返回&#xff0c;代码如下&#xff1a; //这个不是写在首页&#xff0c;写在子页面&#xff08;子页面才能返…...

印度做网站设计/怎样免费制作网页

定时任务在实际的开发中特别常见&#xff0c;比如电商平台 30 分钟后自动取消未支付的订单&#xff0c;以及凌晨的数据汇总和备份等&#xff0c;都需要借助定时任务来实现&#xff0c;那么我们本文就来看一下定时任务最简单的几种实现方式。TOP 1&#xff1a;TimerTimer 是 JDK…...

wordpress输出副标题/哪家公司做seo

为什么80%的码农都做不了架构师&#xff1f;>>> 主要用到了jsqlparser&#xff0c;前面有篇博客介绍过&#xff1a; JAVA - Sql解析工具jsqlparser简单使用 为了给Mybatis分页插件增加对sqlserver的支持&#xff0c;专门写了这样一个独立的工具&#xff0c;只依赖j…...

dreamweaver网站建设/网络营销顾问招聘

...

门户站点是什么/太原百度快照优化排名

文章目录回归问题分类问题快速搭建法保存提取批训练Optimizer优化器回归问题 建立数据集 # 建立数据集 import torch import matplotlib.pyplot as pltx torch.unsqueeze(torch.linspace(-1, 1, 100), dim1) # x data (tensor), shape(100, 1) y x.pow(2) 0.2*torch.rand…...

手机wap网站模板/上海发布最新情况

gitee产品配额说明 参考网址: https://gitee.com/help/articles/4283#article-header0 具体内容 类型说明仓库数量创建 1000 个仓库&#xff0c;不限制公私有。仓库容量Git 单仓库容量上限为 500M &#xff0c;SVN 单仓库容量上限为 400M 单文件最大 50M 用户总仓库容量为 5G…...