LVS负载均衡集群 (NAT模式)

news2024/11/18 23:35:30

LVS集群

集群的概念:

为解决某个特定的问题,将多个计算机组合起来形成一个单个系统

集群的水平扩展:

增加设备,并行运行多个服务,通过网路连接和算法来调度服务分配的问题

集群的类型:

负载均衡集群(LB loab blance) :多个主机组成,每个主机只承担一部分访问请求,靠负载均衡算法实现

高可用集群(HA high availiablity) :避免SPOF(singe point of failuer) 单点故障,系统当中有一部分组件出现故障。可以保障整个系统继续运行

HPC(high-performance computing):快速 转发 快速响应

集群的可靠性指标:

MTBF:系统在正常运行期间无故障平均时间,一般用小时或者天数表示,MTBF值越高,系统的可靠性越高,出现的故障也越小

MTTR:系统从发生故障到恢复正常运行的平均时间,MTTR越小 说明系统的恢复故障的能力越强

A:系统可靠性指标,A值越高越好

A=MTBF/(MTBF+MTTR)

停机时间:

计划内停机:只的预定时间内的维护或者维修时间,自定义

计划外停机:运维人主要关注的

设计集群的需要考虑的一些原则;

1 可扩展性:要有随时添加删除设备的能力(动态的扩缩容)

2 集群中:如果有节点发生故障,它可以快速检测并且自动切换,

3 负载均衡:合理的分配每个服务的负载,避免单个节点的过载影响性能

4 可维护性:方便的进行部署维护监控,降低成本

5 安全性 :数据泄密

6 易用性:相关的工作

lvs集群:

linux virtual server 是一个部署在Linux系统通过内核层面实现负载均衡的软件

作用:

多个后端服务器组成一个高可用,高新能,负载均衡的高性集群,通过负载均衡的算法将客户请求发送到后端服务器。

lv集群当中的术语: 

Vs(virtual server) :lvs服务的逻辑名字,外部访问lvs集群是提供的一个虚拟ip地址和端口

VIP: virtual ip对外提供访问的统一虚拟IP地址。

DS(Director server): lvs集群当中的主服务器,也叫调度器,是整个lvs集群的核心,接收客户端的请求转发到后端RS

DIP: Director ip调度器在Iys内部使用的ip地址。用于和真实服务器进行通信。

RS(real server lvs ):后端是真时服务器的IP,接收到DS的请求之后,返回响应结果

RIP:后端真实服务器的jp地址

CIP: client ip客户端的ip地址

LVS访问的大致流程

1 客户端访问都是vip地址

2 由调度器ds接受到请求,根据调度算法选择好后端服务器 请求发送给rs

3 RS处理请求并将响应发送到DS

4 DS把RS 的响应包装成自己响应,发送到客户端

lvs的负载均衡模式方式:

NAT DR TUN

其中NAT和DR最常用的方式

NAT:地址转发

配置步骤:

1:在调度器上配置双网卡。一个指内,一个之外

2:配置一个可以和公网进行通信的vip

3: 配置转发策略,如果访问vip就会把请求的数据转发到后台的RS地址,响应给用户。

192.18.33.0---------调度器---- ---- nat转换-------------12.0.0.1:80-------客户端。

数据请求进入调度器做的是请求报文中ip地址的修改

数据响应进入调度器,根据NAT配置进行地址转换

nat:

对于客户端来说请求地址始终不变,客户端不需要修改任何配置。转发由调度器通过算法来完成,后端服务器只管接受响应。也不需要修改任何配置。

DR:

DR:直接路由模式。请求由调度器完成,但是响应客户端由真实服务器直接响应,不需要通过调度器。

好处是:性能高,而且可以配置vip地址的高可用。不存在单点故障。

如何设置lvs:

Lvs adm工具: 管理ipvs内核模块的命令工具,可用于配置和管理LVS集群

-A: 添加虚拟服务器

-D: 删除整个服务器

-s 指定负载调度的算法

-a 添加真实服务器

-d 删除真实服务器

-t 指定vip地址的端口号

-r 指定rip的端口号

-m 表示使用nat 模式

- g 表示使用DR模式

- i 表示使用TUN模式

-w 设置真是服气的权重

- P 60 :设置连接保持的时间60秒(默认不带)

-ln 以数字和列表的形式查看lvs的配置信息

静态调度的写法:

 Rr 轮询

Wrr加权轮询

dh 目的地址hash
根据ip地址查找静态hash表 获取需要真实的rs地址

动态调度的写法:

ls最小连接数调度

wlc:加权最小连接数调度

权重高的,转发的就多,为了额避免性能瓶颈,在跟上最小连接数分配,可以把请求往连接数量较小的服务器继续转发。

lblc:基于地址的最小连接数调度。

将来自同一个目的地址的请求分配给RS,如果这台服务器尚未满负荷,就会把请求分配给连接数最小的RS,而且在下一次转发

网址访问内容

#清空原有数据

所有从233.0网段进来的统统从12.0.0.1出去

#配置共享策略

[root@www opt]# vim /etc/exports

#创建共享目录,哪些网址可以访问,给与权限可以同步

#把服务发布下

[root@www opt]# exportfs -rv

NAT模式

命令:systemctl stop firewalld

setenforce 0

#安装依赖环境

命令:yum -y install nfs-utils rpcbind

#开启服务

命令:systemctl start rpcbind

systemctl start nfs

#创建共享目录

命令:mkdir /opt/[名字]  /opt/[名字]

给目录文件赋权

命令:chmod 777 /opt/名称  /opt/名称

设置共享配置文件

命令:vim /etc/exports

发布共享目录并查看

命令:exportfs -rv

showmount -e

配置第二台虚拟机

安装HTTP服务

命令:yum -y install httpd

开启HTTP服务

命令:systemctl start httpd

systemctl enable httpd

安装共享依赖环境

命令:yum -y install rpcbind nfs-utils

按顺序开启服务

命令:systemctl start nfs

systemctl enable nfs

systemctl start rpcbind

systemctl enable rpcbind

测试查看共享地址

命令:showmount -e 192.168.8.100

创建网页执行文件

命令:echo “内容” > /var/www/html/index.html

创建永久挂载

命令:vim /etc/fstab

查看挂载是否成功

命令:mount -a    #先刷新挂载

df -h

部署第三台虚拟机

安装相同的服务

命令:yum -y install nfs-utils rpcbind httpd

创建网页执行文件

命令:echo "内容" > /var/www/html/index.html

创建永久挂载

命令:vim /etc/fstab

 查看挂载

命令:mount -a   #刷新挂载

df -h

查看指定地址共享

命令:showmount -e [IP地址]

部署第四台虚拟机

配置SNAT转发规则

命令:vim /etc/sysctl.conf

测试配置内容

命令:sysctl -p

清除防火墙策略

命令:iptables -F

检查一下防火墙策略

命令:iptables -t nat -nL

 设置防火墙策略

命令:iptables -t nat -A POSTROUTING -s [IP地址] -o ens36 -j SNAT --to--source 10.0.0.1

加载IP_VS模块

命令:modprobe ip_vs

安装ipvsadm工具

命令:yum -y install ipvsadm

修改虚拟机设置

修改网络编辑器

​​​​​​​

创建网卡

命令:cp ifcfg-ens33 ifcfg-ens36

修改网卡配置文件

vim /etc/sysconfig/network-scripts/ifcfg-ens36

查看网卡信

命令:ifconfig

设置ipvsadm策略

命令:ipvsadm -C

ipvsadm -A -t 10.0.0.1:80 -s rr

ipvsadm -a -t 10.0.0.1:80 -r 192.168.8.200:80 -m -w 1

ipvsadm -a -t 10.0.0.1:80 -r 192.168.8.130:80 -m -w 1

保存分配策略

命令:ipvsadm-save

启动策略

命令:ipvsadm

 修改Win系统的IPv4地址协议

修改Web节点服务器的网关指向

网关指向调度器的RIP地址

两台Web服务重启网卡

命令:systemctl restart network

修改Win系统虚拟机的网络适配器

用浏览器进行访问测试

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

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

相关文章

【斗罗二】冰帝两次险些杀死雨浩,天梦哥求助伊老遭拒绝,霍云儿现身救儿子

Hello,小伙伴们,我是小郑继续为大家深度解析绝世唐门。 斗罗大陆动画第二部绝世唐门已经更新了,霍雨浩与冰帝完美融合,成功觉醒了第二武魂,霍挂的时代正式到来。只是在整个第19集中,官方做了大量的改编,不但…

有湖有仓,如何升级到湖仓一体

很多企业在过去的 IT 基础建设过程中,都已经搭建了数据仓库或数据湖,或者两者都有。其中数据仓库一般使用的是传统 Oracle 或者传统 MPP 数据库,如 Teradata 和 Greenplum,数据湖使用 Hadoop 大数据平台。所以在考虑湖仓一体升级改…

ps插件Coolorus for Mac中文激活版

Coolorus是一款非常实用的Photoshop插件,它为Photoshop增加了色环配色面板,让设计师可以更直观地选择颜色。同时,Coolorus还提供了多种专业配色方案,如鲜艳色、复古色、日常色等,设计师可以直接套用这些方案&#xff0…

Power BI 傻瓜入门 1. 数据分析术语:Power BI风格

本章内容包括: 了解Power BI可以处理的不同类型的数据了解您的商业智能工具选项熟悉Power BI术语 数据无处不在。从你醒来的那一刻到你睡觉的时候,某个系统会代表你收集数据。即使在你睡觉的时候,也会产生与你生活的某些方面相关的数据。如…

计算机网络的七层结构、五层结构和四层结构

为什么要分层: 这个就和我们平常写程序一样,高内聚、低耦合。将网络进行分层我们就可以根据每一层的功能分开开发设计,将复杂的网络问题分解为更简单和清晰的小问题,方便设计、实现和标准化。无需在意其他层是如何实现的&#xff…

【框架源码篇 04】Spring源码手写篇-Bean定义配置化

Spring源码手写篇-Bean定义配置化 一、Bean定义配置分析 我们前面实现了手写IoC和AOP的功能,但是我们在使用的时候发现我们的调用代码还是非常的繁琐,会给应用者很不好的体验。 上面的代码很直观的看到重复代码很多,要用户设置的内容也很多&…

基于springboot实现学生综合测评系统项目【项目源码+论文说明】

基于springboot实现学生综合测评系统演示 摘要 随着信息化时代的到来,管理系统都趋向于智能化、系统化,学生综合测评系统也不例外,但目前国内仍都使用人工管理,学校规模越来越大,同时信息量也越来越庞大,人…

运营商大数据精准营销,击碎你的固化营销思维

大数据精准营销服务是大数据应用的典型场景之一,也是依托大数据和互联网提升企业效率的一种有效手段。但是,在选择大数据服务的很多时候,企业往往要考虑法律与合规的问题,其中比较重要的是数据获取渠道与数据是否脱敏。在所有大数…

CSS 两栏布局

目录 CSS两栏布局(左列定宽,右列自适应宽) 方法一:浮动margin 方法二:定位margin 方法三:浮动BFC 方法四:Flex布局 方法五:able布局 CSS两栏布局(左列不定宽&#…

一、Qt简介

1. 什么是Qt? Qt是一个基于C的图形用户界面(GUI)开发框架,但图形用户界面并不是Qt的全部,因为Qt还包含了很多非图形化的开发功能:多线程、数据库、图像图形处理、音视频处理、网络通信、文件IO等。 一方面…

【智慧工地源码】基于AI视觉技术赋能智慧工地

伴随着技术的不断发展,信息化手段、移动技术、智能穿戴及工具在工程施工阶段的应用不断提升,智慧工地概念应运而生,庞大的建设规模催生着智慧工地的探索和研发。 建筑施工具有周期长、环境复杂、工序繁杂、人员流动性大等特点,所以…

10个基于.Net开发的Windows开源软件项目

分享10个适合程序员的神器,都是基于.Net开发的,可以用来学习,日常工作也可以使用。(点击标题,查看详情) 1、基于.NET的强大文件格式开源转换工具 一个基于.NET平台的开源文件格式转换工具,可以…

仿写el-upload组件,彻底搞懂文件上传

用了那么久的Upload组件,你知道是怎么实现的么,今天就来仿写一个饿了么el-upload vue组件,彻底搞懂前端的文件上传相关知识! 要实现的props 参数说明action必选参数,上传的地址headers设置上传的请求头部multiple是否…

Linux内存管理(2):memblock

一、memblock分配器初始化 在内核初始化过程中也需要分配内存,使用的页帧分配器叫memblock(早期的内核版本使用BootMem,新版本内核已不再用)。 memblock是系统启动过程中的一个中间阶段的内存管理, 负责在系统上电到内核内存管理模型初始化之前这段时间的物理内存分配、预留…

mac 升级node到指定版本

node版本14.15.1升级到最新稳定版18.18.2 mac系统 先查看一下自己的node版本 node -v开始升级 第一步 清除node的缓存 sudo npm cache clean -f第二步 安装n模块【管理模块 n是管理 nodejs版本】 sudo npm install -g n第三步升级node sudo n stable // 把当前系统的 Node…

C++初阶(五)类和对象

文章目录 一、C两大类型二、类的6个默认成员函数三、构造函数1、概念2、特性1、构造函数自动调用特性演示2、无参有参调用两种情况演示3、函数重载演示4、默认构造函数组成及演示5、内置类型成员不初始化的补丁演示 3、析构函数1、概念2、特性1、代码演示2、析构两种情况 4、构…

Android MQTT连接阿里云使用Json解析数据

Android Studio 连接阿里云订阅主题然后使用JSON解析数据非常好用 导入MQTT的JAR包1、在项目中添加依赖然后使用Studio 去下载库2、直接下载JAR包,然后作为库进行导入 环境验证:给程序进行联网权限XML布局文件效果如下: MainActitive.java 主…

PTrade财务数据获取函数的问题

前文介绍了PTrade的get_fundamentals函数,可以用于获取股票的财务数据。但在实际应用中,会遇到如下的问题。 前文我们通过将回测时间设置为2023-05-05进行回测调用get_fundamentals,得到如下查询结果: secu_codepubl_dateend_da…

ThingsBoard 实现设备认领

1. 设备认领的使用场景 设备认领在一种场景下使用,当租户已经生产好设备时,租户把设备卖给了客户, 客户通过认领的方式将设备划分到自己下面,客户变成设备的拥有者。 2. 设备认领的方式 设备认领的方式存在两种: 设备生成密钥 和 服务端生成密钥 2.1. 设备生成密钥 设备…

Zookeeper+Hadoop+Spark+Flink+Kafka+Hbase+Hive 完全分布式高可用集群搭建(保姆级超详细含图文)

说明: 本篇将详细介绍用二进制安装包部署hadoop等组件,注意事项,各组件的使用,常用的一些命令,以及在部署中遇到的问题解决思路等等,都将详细介绍。 1.环境说明 1.1 ip规划 iphostname192.168.1.11node1192.168.1.…