LVS 负载均衡群集

一:LVS群集应用基础

1.1:概述

1.群集的类型

无论是哪种群集, 都至少包括两台节点服务器, 而对外表现为一个整体, 只提供一个访问入口。根据群集所针对的目标差异, 可分为以下三种类型。

  • 负载均衡群集(Load Balance Cluster) : 以提高应用系统的响应能力、尽可能处理更多的访问请求、减少延迟为目标, 获得商并发、高负载的整体性能。例如, “ DNS轮询” “ 应用层交换” “ 反向代理”等都可用作负载均衡群集。LB 的负载分配依赖千主节点的分流算法, 将来自客户机的访问请求分担给多个服务器节点,从而缓解整个系统的负载压力。
  • 高可用群集( High Availability Cluster) : 以提高应用系统的可靠性、尽可能地减少中断时间为目标,确保服务的连续性,达到高可用( HA ) 的容错效果。例如,“故障切换”“双机热备”“ 多机热备” 等都属千高可用群集技术。HA 的工作方式包括双工和主从两种模式。双工即所有节点同时在线; 主从则只有主节点在线, 但当出现故障时从节点能自动切换为主节点。
  • 高性能运算群集( High Performance Computer Cluster ) : 以提高应用系统的CPU运算速度、扩展硬件资源和分析能力为目标,获得相当千大型、超级计算机的高性能运算( HPC) 能力。例如, “ 云计算” “ 网格计算” 也可视为高性能运算的一种。高性能运算群集的高性能依赖千“ 分布式运算” ” 并行计算“, 通过专用硬件和软件将多个服务器的CPU、内存等资源整合在一起, 实现只有大型、超级计算机才具备的计算能力。

2.负载均衡的分层结构

在典型的负载均衡群集中, 包括三个层次的组件, 如下图所示。前端至少有一个负载调度器( Load Bal ancer , 或称为D盯ector) 负责响应并分发来自客户机的访问请求; 后端由大量真实服务器( Rea l Server) 构成服务器池( Server Pool ) , 提供实际的应用服务,整个群集的伸缩性通过增加、删除服务器节点来完成, 而这些过程对客户机是透明的; 为了保持服务的一致性, 所有节点使用共享存储设备。

  • 第一层, 负载调度器: 这是访问整个群集系统的唯一入口, 对外使用所有服务器共有的VIP (Virtual IP , 虚拟IP) 地址, 也称为群集IP 地址。通常会配置主、备两台调度器实现热备份, 当主调度器失效以后能够平滑替换至备用调度器, 确保高可用性。
  • 第二层, 服务器池: 群集所提供的应用服务(如HTTP 、FTP ) 由服务器池承担, 其中每个节点具有独立的RI P ( Real IP , 真实IP) 地址,只处理调度器分发过来的客户机请求。当某个节点暂时失效时, 负载调度器的容错机制会将其隔离, 等待错误排除以后再重新纳入服务器池。
  • 第三层, 共享存储: 为服务器池中的所有节点提供稳定、一致的文件存取服务, 确保整个群集的统一性。在L i nux/UNIX 环境中,共享存储可以使用NAS 设备, 或者提供NFS ( Ne twork 们l e S ys tem , 网络文件系统)共享服务的专用服务器。 

3.负载均衡的工作模式

关于群集的负载调度技术, 可以基于IP 、端口、内容等进行分发, 其中基于IP 的负载调度是效率最高的。基千IP 的负载均衡模式中, 常见的有地址转换、IP 隧道和直接路由三种工作模式, 如下图所示。

  •  地址转换(Ne twork Address Translat i on ) : 简称NAT 模式, 类似于防火墙的私有网络结构, 负载调度器作为所有服务器节点的网关, 即作为客户机的访问入口, 也是各节点回应客户机的访问出口。服务器节点使用私有IP 地址, 与负载调度器位于同一个物理网络, 安全性要优千其他两种方式。
  • IP 隧道( IP Tunne l ) : 简称TUN 模式, 采用开放式的网络结构, 负载调度器仅作为客户机的访问入口, 各节点通过各自的Int ernet连接直接回应客户机, 而不再经过负载调度器。服务器节点分散在互联网中的不同位置, 具有独立的公网IP 地址, 通过专用IP 隧道与负载调度器相互通信。
  • 直接路由( D i rec t Rout i ng) : 简称DR 模式, 采用半开放式的网络结构, 与TUN模式的结构类似, 但各节点并不是分散在各地, 而是与调度器位千同一个物理网络。负载调度器与各节点服务器通过本地网络连接, 不需要建立专用的IP 隧道。

1.2:LVS虚拟服务器 

1.LVS 的负载调度算法

针对不同的网络服务和配置需要, LVS 调度器提供多种不同的负载调度算法,其中最常
用的四种算法是轮询、加权轮询、最少连接和加权最少连接。

  • 轮询( Round Rob in) : 将收到的访问请求按照顺序轮流分配给群集中的各节点, 均等地对待每台服务器, 而不管服务器实际的连接数和系统负载。
  • 加权轮询( We igh ted Round Rob i n) : 根据调度器设置的权重值来分发请求, 权重值高的节点优先获得任务并且分配的请求越多, 这样可以保证性能高的节点承担更多请求。
  • 最少连接( Leas t Connec tions) : 根据真实服务器已建立的连接数进行分配, 将收到的访问请求优先分配给连接数最少的节点。如果所有的服务器节点性能相近, 采用这种方式可以更好地均衡负载。
  • 加权最少连接( We ight ed Least Connec t i ons ) : 在服务器节点的性能差异较大的情况下, 调度器可以根据节点服务器负载自动调整权重, 权重较高的节点将承担更大比例的活动连接负载。

2. 使用ipvsadm 管理工具

ip vsadm 是在负载调度器上使用的LVS 群集管理工具,通过调用ip_vs 模块来添加、删除服务器节点, 以及查看群集的运行状态。在CentOS 7 系统中,需要手动安装ipvsadm. x86_64 0: 1. 27- 7. el 7 软件包。

[root @localhost ~]# yum -y i ns t all ipvsadm
[root @localhost~]# ipvsadm -v
ipvsadm v1. 27 2008/5/15 (compiled wi th popt and IPVS v1. 2. 1)

 (1)创建虚拟服务器
若群集的V I P 地址为172. 1 6.1 6. 172 , 针对TCP 80 端口提供负载分流服务, 使用的调度算法为轮询, 则对应的i pvsadm 命令操作如下所示。对于负载均衡调度器来说, VIP 必须是本机实际已启用的IP 地址。

ipvsadm -A - t 172. 16. 16. 172:80 - s rr

 上述操作中, 选项-A 表示添加虚拟服务器, -t用来指定V IP 地址及TCP 端口, -s 用来
指定负载调度算法——轮询( rr) 、加权轮询(wrr ) 、最少连接( le) 、加权最少连接( wlc) 。
(2) 添加服务器节点
为虚拟服务器17 2. 16 . 16. 172 添加四个服务器节点, IP 地址依次为1 92 . 168. 7. 21~24,对应的i pvsadm 命令操作如下所示。若希望使用保持连接, 还应添加“-p 60" 选项, 其中60 为保待时间( 单位为s) 。

[root @localhost~]# ipvsadm -a -t 172. 16. 16. 172:80 -r 192. 168. 7.21:80 -m 11 1
[root @localhost~]# ipvsadm -a -t 172. 16. 16. 172:80 -r 192. 168. 7.22:80 -m 11 1
[root @localhost ~]# ipvsadm -a - t 172. 16. 16. 172:80 - r 192. 168. 7.23:80 -m -w 1
[root @localhost ~]# ipvsadm -a -t 172. 16. 16. 172:80 -r 192. 168. 7.24:80 -m 11 1

上述操作中, 有以下选项:
► -a 表示添加真实服务器;
► -t用来指定VIP 地址及TCP 端口;
► -r 用来指定RIP 地址及TCP 端口;
► -m 表示使用NAT 群集模式( -g DR 模式和- i TUN 模式) ;
► -w 用来设置权重(权重为0 时表示暂停节点)。

( 3 ) 查看群集节点状态
结合选项-l 可以列表查看LVS 虚拟服务器, 可以指定只查看某一个VIP 地址( 默认为
查看所有) , 结合选项-n 将以数字形式显示地址、端口等信息。

[root @localhost~]# ipvsadm -ln      //查看节点状态

上述输出结果中, Forward 列下的Masq对应Masquerade (地址伪装) , 表示采用的群集模式为NAT 。如果是Rou t e , 则表示采用的群集模式为DR 。
(4) 删除服务器节点
需要从服务器池中删除某一个节点时, 使用选项-d 。执行删除操作必须指定目标对象,包括节点地址、虚拟IP 地址。例如,以下操作将会删除LVS 群集172. 16. 16. 172 中的节点192. 168. 7. 24 

ipvsadm -d -r 192. 168. 7.24:80 -t 172. 16. 16. 172:80

需要删除整个虚拟服务器时,使用选项-D 并指定虚拟IP 地址即可, 无须指定节点。例如, 若执行“ipvsadm - D - t 172 . 16. 16. 172:80" , 则删除此虚拟服务器。
(5) 保存负载分配策略
使用导出/导入工具ipvsadm-save/ ipvsad旷restore 可以保存、恢复LVS 策略。当然也可以快速清除、重建负载分配策略。

[root @localhost~]# ipvsadm-save > /etc/sysconfig/ipvsadm //保存策略
[root @localhost ~]11 cat /et c/sysconfig/ipvsadm //确认保存结果
-A - t 172.16.16.172:http - s rr
- a - t 172. 16. 16. 172: http - r 192. 168. 7. 21 : http -m -w 1
- a - t 172. 16. 16. 172: http -r 192. 168. 7. 22: http -m -w 1
- a - t 172.16.16. 172:http - r 192.168. 7.23:http -m -w 1
[root @localhost ~]# systemct l stop ipvsadm    //停止服务( 清除策略)
[root @localhost ~]# systemct l start ipvsadm    //启动服务( 重建规则)

 1.3:NFS 共享存储服务

1.使用NFS 发布共享资源

NFS 服务的实现依赖千RPC ( Remote Process Cal l, 远端过程调用) 机制,以完成远程到本地的映射过程。在CentOS 7 系统中, 需要安装nfs-utils 、rpcbind 软件包来提供NFS共享服务, 前者用千NFS 共享发布和访问, 后者用千RPC 支持。
(1 ) 安装nfs-uti ls 、rpcbind 软件包

提供RPC 支持的服务为rpcb i nd , 提供NFS 共享的服务为nfs , 完成安装以后建议调整这两个服务的自启动状态, 以便每次开机后自动启用。手动加载NFS 共享服务时, 应该先启动rpcb i n d , 再启动nfs 。

[root @localhost~]# yum -y install nfs-utils rpcbi nd
[root @localhost ~]# systemctl enable nfs
[root@localhost ~]# systemctl enable rpcbi nd

( 2 ) 设置共享目录
NFS 的配置文件为/e tc/exports , 文件内容默认为空( 无任何共享)。在exports 文件中设置共享资源时, 记录格式为“ 目录位置客户机地址(权限选项) “。例如, 若要将文件夹/opt/wwwroot共享给192 . 168. 7 . 0/24 网段使用, 允许读写操作, 具体配置如下所示。 

[root@localhost ~]# mkdir -p /opt/wwwroot

[root@localhost ~]# vi /etc/exports

/opt/wwwroot   192.168.10.0/24(rw,sync,no_root_squash)

其中客户机地址可以是主机名、IP 地址、网段地址, 允许使用* 、?通配符; 权限选项中的rw 表示允许读写(ro 为只读) , s ync 表示同步写入, no_root_squash 表示当客户机以root身份访问时赋予本地root权限(默认是root_squash , 将作为nf snobody 用户降权对待)。
当需要将同一个目录共享给不同的客户机, 且分配不同的权限时, 只要以空格分隔指定多个“ 客户机( 权限选项) ” 即可。例如, 以下操作将/var/ftp/pub l i c 目录共享给两个客户机, 并分别给予只读、读写权限。 

[root @localhost ~]# vi /etc/export s
/var/ftp/public 192. 168. 7. 11 (ro) 192. 168. 7. 22(rw)

( 3 ) 启动NFS 服务程序

[root @localhost ~]# sys t emct l s t art rpcbi nd
[root @localhost ~] # sys t emct l s t art nf s
[root@l ocalhost ~] # net s t at -anpt I grep rpc 

 ( 4 ) 查看本机发布的NFS 共享目录

[root @localhost ~]# showmount - e

2. 在客户机中访问NFS 共享资源 

NFS 协议的目标是提供一种网络文件系统, 因此对NFS 共享的访问也使用mount命令来进行挂载,对应的文件系统类型为nfs 。既可以手动挂载,也可以加入/etc/fstab 配置文件来实现开机自动挂载。考虑到群集系统中的网络稳定性, NFS 服务器与客户机之间最好使用专有网络进行连接。
(1) 安装rpcbind 软件包, 并启动rpcbind 服务。
若要正常访问NFS 共享资源, 客户机中也需要安装rpcbind 软件包, 并启动rpcbind系统服务。另外,为了使用showmount 查询工具, 建议将nfs-utils 软件包也一并装上。

[root@localhost~]# yum -y i ns t all rpcbind nf s-utils
[root@l ocalhost ~] # sys t emct l enable rpcbi nd
[ root@l ocalhost ~]# sys t emct l start rpcbind

如果已经安装了nfs-uti ls 软件包,则客户机也可以使用showmount 查看NFS 服务器端共享了哪些目录, 查询格式为“ shmvmount -e 服务器地址”。 

( 2 ) 手动挂载NFS 共享目录。
以roo t 用户身份执行mount操作, 将NFS 服务器共享的/opt/wwwroot目录挂载到本地目录/var/www/h tml 。

[root@l ocalhost ~]# mount 192. 168. 7.250:/opt/wwwroot /var/www/html
[root @localhost~]# tail -1 /etc/mtab //确认挂载结果

[root @localhost ~]# vi /var/www/html/i ndex.html        //在客户机创建测试文件
Real Web Server Document

完成挂载以后, 访问客户机的/var/吓w/html 文件夹, 实际上就相当千访问NFS 服务器中的/opt/wwwroot文件夹, 其中的网络映射过程对千用户程序来说是透明的。例如, 上述操作中创建的index. ht ml 测试文件, 会立刻出现在服务器的/opt/wwwroot/目录下。
(3) fstab 自动挂载设置。
修改/e t c/fs tab 配置文件, 加入NFS 共享目录的挂载设置。注意将文件系统类型设为nfs , 挂载参数建议添加_net dev (设备需要网络)。若添加soft 、intr 参数可以实现软挂载,允许在网络中断时放弃挂载。这样, 客户机就可以在每次开机后自动挂载NFS 共享资源了。

[root @localhost ~]# vi /et c/f st ab
…… //省略部分信息
192. 168. 7. 250: /opt/wwwroot /var/www/html nfs defaul ts, _net dev 0 0

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

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

相关文章

使用U盘重装系统

目录 一、 制作启动盘 1. 准备一个U盘和一台电脑 2. 下载win10安装包 二、安装操作系统 1. 插入系统安装盘 2. 通过进入BIOS界面进入到我们自己制作的启动盘上 三、安装成功后进行常规设置 一、 制作启动盘 1. 准备一个U盘和一台电脑 注意:提前备份好U盘内的…

JDK1.8下载、安装与配置完整图文2024最新教程

一、报错 运行Pycharm时,报错No JVM installation found. Please install a JDK.If you already have a JDK installed, define a JAVA_HOME variable in Computer >System Properties > System Settings > Environment Variables. 首先可以检查是否已安装…

【C语言】qsort()函数详解:能给万物排序的神奇函数

🦄个人主页:修修修也 🎏所属专栏:C语言 ⚙️操作环境:Visual Studio 2022 目录 一.qsort()函数的基本信息及功能 二.常见的排序算法及冒泡排序 三.逐一解读qsort()函数的参数及其原理 1.void* base 2.size_t num 3.size_t size 4.int (*compar)(c…

节水增效,蜂窝物联智能灌溉助力农业升级!

智能灌溉的优势主要体现在以下几个方面: 1. 提高效率:智能灌溉可以根据作物生长的不同阶段和环境条件自动调整灌溉时间和水量,减少人工干预的频率和时间,提高了灌溉效率。 2. 节约水资源:智能灌溉可以根据土壤湿度和…

Python爬虫实战案例——王者荣耀皮肤抓取

大家好,我是你们的老朋友——南枫,今天我们一起来学习一下该如何抓取大家经常玩的游戏——王者荣耀里面的所有英雄的皮肤。 老规矩,直接上代码: 导入我们需要使用到的,也是唯一用到的库: 我们要抓取皮肤其…

大陆ARS548使用记录

一、Windows连接上位机 雷达是在深圳路达买的,商家给的资料中首先让配置网口,但我在使用过程中一直出现无法连接上位机的情况。接下来说说我的见解和理解。 1.1遇到的问题 按要求配置好端口后上位机无连接不到雷达,但wireshark可以正常抓到数…

PyPDF2拆分PDF文件的高级应用:指定拆分方式

本文目录 前言一、拆分方式选择1、代码讲解2、实现效果图3、完整代码前言 前两篇文章,分别讲解了将使用PyPDF2将PDF文档分割成为单个页面、在分割PDF文档时指定只分割出指定页面,如果你还没有看过,然后有需要的话,可以去看一下,我把文章链接贴到这里: PyPDF2拆分PDF文件…

Nuxt3 的生命周期和钩子函数(九)

title: Nuxt3 的生命周期和钩子函数(九) date: 2024/7/3 updated: 2024/7/3 author: cmdragon excerpt: 摘要:本文介绍了Nuxt3中与Vite相关的五个生命周期钩子,包括vite:extend、vite:extendConfig、vite:configResolved、vite…

CVE-2024-6387漏洞预警:尽快升级OpenSSH

OpenSSH维护者发布了安全更新,其中包含一个严重的安全漏洞,该漏洞可能导致在基于glibc的Linux系统中使用root权限执行未经身份验证的远程代码。该漏洞的代号为regreSSHion,CVE标识符为CVE-2024-6387。它驻留在OpenSSH服务器组件(也…

小型语言模型的兴起

过去几年,我们看到人工智能能力呈爆炸式增长,其中很大一部分是由大型语言模型 (LLM) 的进步推动的。GPT-3 等模型包含 1750 亿个参数,已经展示了生成类似人类的文本、回答问题、总结文档等能力。然而,虽然 LLM 的能力令人印象深刻…

electron教程(一)创建项目

一、方式① 根据官网描述将electron/electron-quick-start项目克隆下来并启动 electron/electron-quick-start地址: GitHub - electron/electron-quick-start: Clone to try a simple Electron app git clone https://github.com/electron/electron-quick-start…

Laravel介绍与学习入门

Laravel 是一款优雅且功能强大的 PHP Web 开发框架,它被广泛认为是 PHP 领域内构建现代 Web 应用程序的最佳选择之一。Laravel 提供了一套简洁、富有表现力的语法,使得开发者能够高效地编写清晰、可维护的代码。以下是 Laravel 的一些关键特点和入门概念…

实战项目——用Java实现图书管理系统

前言 首先既然是管理系统,那咱们就要实现以下这几个功能了--> 分析 1.首先是用户分为两种,一个是管理员,另一个是普通用户,既如此,可以定义一个用户类(user),在定义管理员类&am…

DMA学习笔记

参考文章 https://blog.csdn.net/as480133937/article/details/104927922 DMA简介 DMA,全称Direct Memory Access,即直接存储器访问。DMAC 即 DMA 控制器,提供了一种硬件的数据传输方式,无需 CPU 的介入,可以处理外…

7.6、指针和数组

代码 #include <iostream> using namespace std;int main() {//指针和数组//利用指针访问数组中的元素int arr[10] { 1,2,3,4,5,6,7,8,9,10 };cout << "第一个元素为&#xff1a;" << arr[0] << endl;int * p arr;//arr就是数组首地址co…

kaggle量化赛金牌方案(第七名解决方案)(下)

— 无特征工程的神经网络模型&#xff08;得分 5.34X&#xff09; 比赛进入最后阶段&#xff0c;现在是时候深入了解一些关于神经网络模型的见解了。由于 Kaggle 讨论区的需求&#xff0c;我在这里分享两个神经网络模型。第一个是 LSTM 模型&#xff0c;第二个是卷积网络&…

鸿翼FEX文件安全交换系统,打造安全高效的文件摆渡“绿色通道”

随着数字经济时代的到来&#xff0c;数据已成为最有价值的生产要素&#xff0c;是企业的重要资产之一。随着数据流动性的增强&#xff0c;数据安全问题也随之突显。尤其是政务、金融、医疗和制造业等关键领域组织和中大型企业&#xff0c;面临着如何在保障数据安全的同时&#…

llm学习-3(向量数据库的使用)

1&#xff1a;数据读取和加载 接着上面的常规操作 加载环境变量---》获取所有路径---》加载文档---》切分文档 代码如下&#xff1a; import os from dotenv import load_dotenv, find_dotenvload_dotenv(find_dotenv()) # 获取folder_path下所有文件路径&#xff0c;储存在…

【力扣 - 每日一题】3099. 哈沙德数 | 模拟 (Go/C++)

题目内容 如果一个整数能够被其各个数位上的数字之和整除&#xff0c;则称之为 哈沙德数&#xff08;Harshad number&#xff09;。给你一个整数 x 。如果 x 是 哈沙德数 &#xff0c;则返回 x 各个数位上的数字之和&#xff0c;否则&#xff0c;返回 -1 。 示例 1&#xff1…

中国国产AI芯片的崛起

一、CUDA的垄断 当讨论半导体行业面临的挑战时&#xff0c;你首先想到的是什么&#xff1f;光刻机&#xff1f;3纳米或者5纳米技术&#xff1f;我们无法生产的完美方形芯片&#xff1f;是的&#xff0c;但也不完全是。 人们经常把半导体芯片归类为硬件产业&#xff0c;但实际上…