lvs介绍与应用
LVS介绍
LVS(Linux Virtual Server)是一种基于Linux操作系统的虚拟服务器技术,主要用于实现负载均衡和高可用性。它通过将客户端请求分发到多台后端服务器上,从而提高整体服务的处理能力和可靠性。lvs是基于集群的方式实现
集群和分布式
集群:多个相同的应用,部署在不同的服务器上,提供统一的服务,以及同样的功能,机器的性能大致相同
分布式:把不同的组件部署在不同的服务器上,组件之间(应用)依靠网络进行通信,实现定制化的功能
系统性能的扩展方式
系统性能的扩展方式:
1、垂直扩展,向上扩展,提升计算机的性能(硬件性能)。性能提升是有瓶颈。
2、水平扩展,向外扩展,增加设备的方式提供性能。
集群的类型:
1、负载均衡:LB(load balancing)
2、HA:high Availiablity 高可用,负载均衡的高可用,主备高可用(keepalive用的就是vrrp协议)
系统的可靠性指标
系统的可靠性指标:值范围:0-1
MTBF:平均无故障时间
MTTR:平均恢复时间
A=MTBF/(MTBF+MTTR)*100%
得出的结果A无限接近于1,才好
停机时间分为计划内停机时间和计划外的停机时间
计划内停机时间:这个是不算在故障时间内的
计划外的停机时间:这算在故障时间内
LVS集群的术语
VS:virtual server lvs的逻辑名字,外部访问lvs的ip地址和端口
DS:director server lvs集群当中的主服务器,调度器,是整个集群的核心,接受客户端的请求然后根据负载均衡的算法转发到后端的RS
RS:real server lvs集群中的真实服务器,也就是后端服务器,接受调度器转发过来的请求
CIP:client ip 客户端的ip地址
VIP:virtual ip 集群对外提供好的虚拟ip地址
DIP:调度器的ip地址
RIP:后端服务器的ip地址
LVS的负载均衡的方式
NAT模式:NAT方式是最常用的负载均衡方式之一
DR模式:直连路由模式,性能最高
TUN:隧道模式
NAT模式
NAT模式:NAT方式是最常用的负载均衡方式之一
NAT的性能较差,第一要进行转换,第二要进行数据包的路由
NAT模式的后端真实服务器10-30台之间
lvs的nat:调度器的压力很大,地址转换,负载均衡算法,数据包转发,响应,非常影响性能
工具:ipvsadm 管理和配置lvs集群的工具,集成在linux系统的内核当中
ipvsadm的操作命令
命令 含义
-E 修改
-A 添加虚拟服务器
-D 删除整个虚拟服务器,虚拟服务器对应的就是后台的真实服务器
-s 指定负载均衡的算法,加载时必须要声明算法,rr (轮询),wrr (加权轮询) ,lc (最小连接数),wlc(加权最小连接数)
-a 添加真实服务器
-m 表示集群使用nat模式
-g 表示使用DR模式
-i 表示使用tun模式
-w 设置权重
-l 列表形式
-n 数字化的显示ip和端口
-t 指定调度器的vip地址的ip和端口
-r 指定RIP的ip和端口
在虚拟机上实现nat模式
配置:
apt -y install ipvsadm
modprobe ip_vs #加载模块
添加一个网卡
vim /etc/netplan/01-network-manager-all.yamlens37:ipv4:noaddresses;【12.0.0.10/24】
systemctl restart ipvsadm
systemctl status ipvsadm
ipvsadm -C#清空所有ipvsadm的策略
ipvsadm -A -t 12.0.0.10:80 -s rr #添加虚拟服务器
ipvsadm -a -t 12.0.0.10:80 -r 192.168.42.30:80 -m
ipvsadm -a -t 12.0.0.10:80 -r 192.168.42.40:80 -m
#当访问12.0.0.10时,数据包可以转发到的真实服务器之一,-m 使用nat模式
vim /etc/sysctl.conf第28行去掉注释net.ipv4.ip_forward=1
iptables -t nat -A POSTPOUTING -s 192.168.42.0/24 -o ens37 -j SNAT -- to 12.0.0.10nginx2和nginx3
vim /etc/netplan/01-network-manager-all.yamlgateway4: 192.168.42.20
netplan apply
systemctl restart nginx客户端 12.0.0.11
vim /etc/netplan/01-network-manager-all.yamlens33:ipv4:noaddresses;【12.0.0.10/24】gateway4: 192.168.42.20
netplan apply
DR模式:
DR模式:直连路由模式
DR模式虚拟出一个ip,这个虚拟访问用来访问的,客户端都是访问虚拟的ip地址。
虚拟IP地址也是在调度器上,调度器根据负载均衡算法选择一条RS,RS处理完请求之后直接响应给客户端,不是由调度器再来响应客户端
1、直接路由模式就是二层转发
调度器的ip和真实服务器的ip必须在同一网段,同一网段才能进行二层转发。
根据内核进行判断,数据包判断目标是本机的VIP,ipvs对数据包的请求进行分析,是否在集群的服务范围之内。
是的话,对数据包进行重新封装,源mac地址是vip地址,目标mac地址是真实服务器的地址。
源ip和目的ip地址都没有发生变化。
DR模式的特点
1、调度器和真实服务器必须在同一网段
2、真实服务器的地址可以是内网也是公网,如果RIP是公网可以直接(没有人做公网)
3、vip地址在调度器上有,在真实服务器也需要配置
ARP根据mac地址,找到对应的ip地址,如果不配置调度服务器和真实服务器之间无法通信
修改内核的方式,让真实的物理地址来响应请求
4、所有真实服务器的网关不能指向到调度器的ip地址。真实服务器的服务器的数据不通过调度器进行转发
DR模式的配置
真实网卡
调度器和nginx2,nginx3
vim /etc/netplan/01-network-manager-all.yamlens38dhcp:noaddresses: [192.168.233.100/24]
netplan apply调度器
vim /etc/sysctl.confnet.ipv4.conf.all.send_redirects=0net.ipv4.conf.default.send_redirects=0net.ipv4.conf.ens37.send_redirects=0
sysctl -p
route add -host 192.168.42.100 dev ens38
ipvsadm -A -t 192.168.233.100:80 -s wrr
ipvsadm -a -t 192.168.233.100:80 -r 192.168.233.11:80 -g -w 3
ipvsadm -a -t 192.168.233.100:80 -r 192.168.233.12:80 -g -w 8nginx2和nginx3
vim /etc/sysctl.confnet.ipv4.conf.ens38.arp_ignore = 1net.ipv4.conf.ens38.arp_announce = 2net.ipv4.conf.ens38.arp_ignore = 1net.ipv4.conf.ens38.arp_announce = 2
sysctl -p
route add -host 192.168.233.100 dev ens38
systemctl restart nginx
相关文章:

lvs介绍与应用
LVS介绍 LVS(Linux Virtual Server)是一种基于Linux操作系统的虚拟服务器技术,主要用于实现负载均衡和高可用性。它通过将客户端请求分发到多台后端服务器上,从而提高整体服务的处理能力和可靠性。lvs是基于集群的方式实现 集群…...

Group FLUX - User Usage Survey Report
文章目录 User Feedback Summary: Software Advantages and FeaturesUser Feedback Issues and Suggested Improvements1. Security Concerns:Improvement Measures: 2. System Performance and Loading Speed:Improvement Measures: 3. Data Display Issues:Improvement Measu…...

XXE靶机攻略
XXE-Lab靶场 1.随便输入账号密码 2.使用bp抓包 3.插入xxl代码,得到结果 xxe靶机 1.安装好靶机,然后输入arp-scan -l,查找ip 2.输入ip 3.使用御剑扫描子域名 4.输入子域名 5.输入账号密码抓包 6.插入xml代码 7.使用工具解码 8.解码完毕放入文…...

第78期 | GPTSecurity周报
GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区,集成了生成预训练Transformer(GPT)、人工智能生成内容(AIGC)以及大语言模型(LLM)等安全领域应用的知识。在这里,您可以找…...

电容Q值、损耗角、应用
电容发热的主要原因:纹波电压 当电容两端施加纹波电压时,电容承受的是变化的电压,由于电容内部存在寄生电阻(ESR)和寄生电感(ESL).因此电容会有能量损耗,从而产生热量,这…...

【WRF教程第3.6期】预处理系统 WPS 详解:以4.5版本为例
预处理系统 WPS 详解:以4.5版本为例 Geogrid/Metgrid 插值选项详解1. 插值方法的工作机制2. 插值方法的详细说明2.1 四点双线性插值(four_pt)2.2 十六点重叠抛物线插值(sixteen_pt)2.3 简单四点平均插值(av…...

linux 安装redis
下载地址 通过网盘分享的文件:redis-7.2.3.tar.gz 链接: https://pan.baidu.com/s/1KjGJB1IRIr9ehGRKBLgp4w?pwd0012 提取码: 0012 解压 tar -zxvf redis-7.2.3.tar.gz mv redis-7.2.3 /usr/local/ cd /usr/local/redis-7.2.3 安装 make install 修改配置文件 /搜索…...

Linux - rpm yum 工具及命令总结
RPM 概述 定义:RPM(RedHat Package Manager),是一个功能强大的软件包管理系统,用于在 Linux 系统中安装、升级和管理软件包采用系统:主要用于基于 RPM 的 Linux 发行版,如 Red Hat、CentOS、S…...

电子应用设计方案-58:智能沙发系统方案设计
智能沙发系统方案设计 一、引言 智能沙发作为一种融合了舒适与科技的家居产品,旨在为用户提供更加便捷、舒适和个性化的体验。本方案将详细介绍智能沙发系统的设计思路和功能实现。 二、系统概述 1. 系统目标 - 实现多种舒适的姿势调节,满足不同用户的…...

复习打卡Linux篇
目录 1. Linux常用操作命令 2. vim编辑器 3. 用户权限 4. Linux系统信息查看 1. Linux常用操作命令 基础操作: 命令说明history查看历史执行命令ls查看指定目录下内容ls -a查看所有文件 包括隐藏文件ls -l ll查看文件详细信息,包括权限类型时间大小…...

在Ubuntu 22.04 LTS中使用PyTorch深度学习框架并调用多GPU时遇到indexSelectLargeIndex相关的断言失败【笔记】
在Ubuntu 22.04 LTS系统中,已安装配置好CUDA 12.4、cuDNN 9.1.1以及PyTorch环境 export CUDA_VISIBLE_DEVICES0,1,2,3,4,5,6,7 在PyTorch深度学习框架训练调用多GPU时,提示 indexSelectLargeIndex: block: [x, 0, 0], thread: [x, 0, 0] Assertion src…...

qt 类中的run线程
在Qt中,QThread类的run()方法是线程的执行入口,它是由QThread内部自动调用的,而不是用户直接调用。 详细解释: QThread类: QThread是Qt的线程类,提供了用于多线程操作的接口。我们可以创建QThread对象并将…...

Vue3父子组件传属性和方法调用Demo
Vue3父子组件传属性和方法调用Demo 说明目录父组件给子组件传值和方法 父组件给子组件传值-使用defineProps接受父组件属性值父组件给子组件传值-使用defineModel接受父组件v-model值 当子组件只需要接收父组件一个v-model值时,写法1如下:子组件接收单个v-model写法2如下:当子…...

aac怎么转为mp3?操作起来很简单的几种aac转mp3的方法
aac怎么转为mp3?aac格式的优势主要体现在音质和压缩效率,尤其是在较低比特率下,能够实现更清晰的音质,这也是为何许多现代设备和应用偏爱aac格式的原因之一。特别是在手机、平板以及智能音响等设备中,aac文件几乎可以无…...

结合mybatis-plus实现Function获取java实体类的属性名
1、工具类 package com.yh.tunnel.util;import com.baomidou.mybatisplus.core.toolkit.support.SFunction; import com.google.common.base.CaseFormat; import com.yh.tunnel.domain.Plan;import java.lang.invoke.SerializedLambda; import java.lang.reflect.Field; import…...

vue 响应式数据原理
发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【宝藏入口】。 Vue 的响应式数据原理是其核心功能之一,它使得 Vue 应用能够自动响应数据的变化,并在数据变化时自动更新…...

android 计算CRC
<?php /** * 将一个字符按比特位进行反转 eg: 65 (01000001) --> 130(10000010) * param $char * return $char */ function reverseChar($char) { $byte ord($char); $tmp 0; for ($i 0; $i < 8; $i) { if ($byte & (1 << $i)…...

Linux tinyproxy 使用教程
简介 Tinyproxy 是一款轻量级 HTTP 代理服务器,使用最少的资源,非常适合硬件有限的系统。尽管体积小,但它可以处理大量流量,而不会出现明显的性能问题。旨在处理简单的代理任务。它通常用于路由网络流量以保护隐私、缓存或访问受…...

局部规划器设计思路
本文参考知乎文章:如何设计局部规划器 0 引言 局部规划器设计通用方法:生成路径——>寻找最优路径——>后处理优化 1 路径生成 四个问题: ① 如果全局路径中突然出现动态障碍物 ② 如果全局路径非常靠近障碍物 ③ 如果全局路径不容易跟踪(B样条平滑) ④ 如果全局…...

数字图像处理技术期末复习
1. 已知图像的分辨率和深度,怎么求图像的存储空间(位,字节,KB)? 题目: 已知图像的分辨率和深度,怎么求图像的存储空间(位,字节,KB)&a…...

UITableView显示数据,增加数据,删除数据及移动数据行
UITableView和html中的table有点类似的,也有header和footer和body,row。下面给出一个demo // // TableViewTestViewController.m // iosstudy2024 // // Created by figo on 2024/12/9. //#import "TableViewTestViewController.h"interfa…...

金智塔科技喜获CCF中国数字金融大会 GraphRAG竞赛二等奖
12月7日,CCF 首届中国数字金融大会GraphRAG竞赛在上海落下帷幕,金智塔科技(团队名称:塔塔向前冲)从众多参赛队伍中脱颖而出,喜获二等奖。 CCF 首届中国数字金融大会由中国计算机学会主办,中国计…...

方案解读:数字化扩展中如何提升多云应用安全能力?
越来越多企业选择上云,拥抱数字化转型。数据显示,在过去一年中,将应用托管至六种不同环境中的企业比例已经翻倍,达到令人震惊的38%。与此同时,应用和流经其的关键数据已成为日益复杂的网络攻击的首选目标,且…...

“年轻科技旗舰”爱玛A7 Plus正式发布,全国售价4999元
12月18日,备受行业瞩目的“A7上场 一路超神”爱玛旗舰新品发布会在爱玛台州智造工厂盛大举行。 作为年末“压轴产品”的“两轮豪华轿跑”爱玛A7Plus重磅上场,以“快、稳、帅、炫、智、爽”六大超神技惊艳四座,不仅践行了爱玛科技的精品战略&…...

oracle开窗函数笔记、over()笔记
文章目录 开窗函数、组函数、分析函数概念聚合函数和分析函数的区别partition by后面也可以跟多个字段 开窗函数一定要加 聚合函数、或分析函数吗,否则会报错lag()和lead()的用法lag和lead实战开窗函数可以和其他函数一起使用吗? TODO开窗函数中的count(1)是什么意…...

【HarmonyOS】HarmonyOS 和 Flutter混合开发 (一)之鸿蒙Flutter环境安装
【HarmonyOS】HarmonyOS 和 Flutter混合开发 (一)之鸿蒙Flutter环境安装 一、前言 flutter作为开源适配框架方案,已经在Android,IOS,Web,Window四大平台进行了适配,一套代码,可以同…...

海外招聘丨卢森堡大学—人工智能和机器学习中的 PI 用于图像分析
雇主简介 卢森堡大学立志成为欧洲最受推崇的大学之一,具有鲜明的国际化、多语言和跨学科特色。 她促进研究和教学的相互影响,与国家息息相关,因其在特定领域的研究和教学而闻名于世,并成为当代欧洲高等教育的创新典范。 她的核…...

LeetCode hot100-85
https://leetcode.cn/problems/coin-change/?envTypestudy-plan-v2&envIdtop-100-liked 322. 零钱兑换 已解答 中等 相关标签 相关企业 给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。计算并返回可以凑…...

linux 内核数据包处理中的一些坑和建议
1、获取IP头部 iph ip_hdr(skb); struct sk_buff { ...... sk_buff_data_t transport_header; /* Transport layer header */ sk_buff_data_t network_header; /* Network layer header */ sk_buff_data_t mac_header; /* Link layer header */ ...... } 1࿰…...

C++ 的衰退复制(decay-copy)
目录 1.什么是衰退复制(decay-copy) 1.1.推导规则 1.2.LWG issue 929 1.3.想象中的 decay_copy 2.decay-copy 与 auto 2.1.为什么引入衰退复制 2.2. 成为 C 23 的语言特性 3.应用场景 4.总结 1.什么是衰退复制(decay-copy࿰…...