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

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.mzph.cn/news/118251.shtml

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

相关文章

postgresql14-表的管理(四)

表table 创建表 CREATE TABLE table_name --表名 (column_name data_type column_constraint, --字段名、字段类型、约束字段(可选)column_name data_type, --表级别约束字段...,table_constraint );CREATE TABLE emp1 --创建表 AS SELECT * FROM empl…

Spring Cloud之服务注册与发现(Eureka)

目录 Eureka 介绍 角色 实现流程 单机构建 注册中心 服务提供者 服务消费者 集群搭建 注册中心 服务提供者 自我保护机制 原理分析 Eureka 介绍 Eureka是spring cloud中的一个负责服务注册与发现的组件,本身是基于REST的服务,同时还提供了…

Redis数据库管理工具Redis Desktop Manager最新中文

Redis Desktop Manager是一款直观且易用的Redis数据库管理工具,支持Windows、macOS和Linux等多平台。它提供了丰富的功能和工具,使用户可以轻松地创建、编辑、删除和浏览Redis键值对,并执行各种Redis命令。通过SSH Tunnel连接,RDM…

28. 使用 k8e 玩转 kube-vip with Cilium‘s Egress Gateway 特性

因为在私有云环境下,我们需要保障集群服务 APIServer地址的高可用,所以提供的方案就是使用一个 VIP 让 API Server 的流量可以负载均衡的流入集群。另外,kube-vip 还支持 Service LB,方便SVC 服务的负载均衡,结合 cilium Egress Gateway 特性可以做到集群内的容器对外访问…

排序-表排序

当我们需要对一个很大的结构体进行排序时,因为正常的排序需要大量的交换,这就会造成时间复杂度的浪费 因此,我们引入指针,通过指针临时变量的方式来避免时间复杂度的浪费 间接排序-排序思路:通过开辟一个指针数组&…

Mac风扇控制电脑降温软件Macs Fan Control Pro 简体中文

Macs Fan Control Pro是一款功能强大的Mac风扇控制软件,旨在帮助用户更好地管理和控制Mac电脑的风扇速度和温度传感器。以下是该软件的主要特色介绍: 监测和调整Mac电脑的风扇速度和温度传感器,帮助用户控制设备温度,提高电脑性能…

Android Studio Gradle中没有Task任务,没有Assemble任务,不能方便导出aar包

Gradle中,没有Assemble任务 1. 在编译aar包或者编译module的时候,没有release包,我们一般都是通过assemble进行编译。 如果在Gradle中找不到task。 可以通过设置File->setting -->Experimental→取消勾选“Do not build Gradle task …

LeetCode 22. 括号生成【字符串,回溯;动态规划】中等

本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…

Java架构师内功嵌入式技术

目录 1 导学2 嵌入式微处理体系结构3 微处理器分类4 多核处理器5 嵌入式软件6 嵌入式系统6.1 系统组成7 嵌入式实时操作系统8 嵌入式软件设计9 软件开发工具想学习架构师构建流程请跳转:Java架构师系统架构设计 1 导学 嵌入式技术对软件架构的作用主要体现在以下几个方面: …

YOLOv5论文作图教程(1)— 软件介绍及下载安装(包括软件包+下载安装详细步骤)

前言:Hello大家好,我是小哥谈。在学习YOLOv5算法的过程中,很多同学都有发表论文的需求。作为文章内容的支撑,图表是最直接的整合数据的工具,能够更清晰地反映出研究对象的结果、流程或趋势。在发表论文的时候,审稿人除了关注论文的内容和排版外,也会审核图表是否清晰美观…

网络编程进化史:Netty Channel 的崭新篇章

上篇文章(Netty 入门 — ByteBuf,Netty 数据传输的载体),我们了解了 Netty 的数据是以 ByteBuf 为单位进行传输的,但是有了数据,你没有通道,数据是无法传输的,所以今天我们来熟悉 Ne…

【Gan教程 】 什么是变分自动编码器VAE?

名词解释:Variational Autoencoder(VAE) 一、说明 为什么深度学习研究人员和概率机器学习人员在讨论变分自动编码器时会感到困惑?什么是变分自动编码器?为什么围绕这个术语存在不合理的混淆?本文从两个角度…

高等数学啃书汇总重难点(七)微分方程

同济高数上册的最后一章,总的来说,这篇章内容依旧是偏记忆为主,说难不难说简单不简单: 简单的是题型比较死,基本上就是记公式,不会出现不定积分一般花样繁多的情况;然而也就是背公式并不是想的…

基于Java的在线教育网站管理系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding) 代码参考数据库参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&am…

python输出与数据类型

目标 1、使用print输出内容 2、熟悉字符串类型 3、熟悉数字类型 4、熟悉数字与字符串操作 输出 print可控制输出内容也可配合、-、*、/进行运算,和整数型配合可进行运算和字符型配合有不同效果,如为拼接,*为多次输出注:整数型如&…

flutter开发实战-hero实现图片预览功能extend_image

flutter开发实战-hero实现图片预览功能extend_image 在开发中,经常遇到需要图片预览,当feed中点击一个图片,开启预览,多个图片可以左右切换swiper,双击图片及手势进行缩放功能。 这个主要实现使用extend_image插件。在…

【软件测试】自动化测试selenium

目录 一、什么是自动化测试 二、Selenium介绍 1、Selenium是什么 2、Selenium的原理 三、了解Selenium的常用API 1、webDriver API 1.1、元素定位 1.1.1、CSS选择器 1.1.2、Xpath元素定位 1.1.3、面试题 1.2、操作测试对象 1.3、添加等待 1.4、打印信息 1.5、浏…

kvm webvirtcloud 如何添加直通物理机的 USB 启动U盘

第一步:查看USB设备ID 在物理机上输入 lsusb 命令 rootubuntu:/media/usb1# lsusb Bus 002 Device 002: ID 0781:5581 SanDisk Corp. Ultra Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 004: ID 0424:2514 Microchip Technolo…

UE4/5 批量进行贴图Texture压缩、修改饱和度

该插件下载地址: 🍞正在为您运送作品详情https://mbd.pub/o/bread/ZZWYmpxw 适用于 UE4 4.25/4.26/4.27 UE5 以上版本 在Edit - Plugins中分别开启 插件 Python Editor Script Plugin 插件 Editor Scripting Utilites 如果会python代码,…

分享从零开始学习网络设备配置--任务4.2 使用IPv6静态及默认路由实现网络连通

任务描述 某公司利用IPv6技术搭建网络,公司3个部门所有PC机连接在同一交换机上,PC1代表行政部划分到VLAN10中,PC2代表财务部划分到VLAN20中,PC3代表销售部划分到VLAN30中,R1代表公司出口路由器,R2模拟Inter…