LVS负载均衡群集

news2024/11/20 13:45:10

企业群集应用

 1. 群集的含义

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

  2.问题出现

互联网应用中,随着站点对硬件性能、响应速度、服务稳定性、数据可靠性等要求越来越高,单台服务器已经无法满足负载均衡及高可用的要求

 3.解决办法

    1.使用价格昂贵的小型机、大型机
    2.使用多台相对廉价的普通服务器构建服务群集
       通过整合多台服务器,使用LVS来达到服务器的高可用和负载均衡,并以同一个ip地址           对外提供相同的服务。在企业中常用的一种群集技术——LVS(linux virtual server,             linux虚拟服务器)

4.群集的分类

1.负载均衡群集   (LB)
2.高可用群集       (HA)
3.高性能运算群集(HPC)

5.负载均衡群集架构

调度器既作为客户端访问入口也作为各节点服务器访问出口承载的流量较大 

1.第一层,负载调度器:对外,由调度器服务器提供一个VIP(群集ip地址)作为访问整个群集的唯一入口,对内,按照分流算法分发流量/请求给服务器池。通常会配置主备两台调度器实现热备份,确保高可用性

2.第二层,节点服务器池:能允许所有服务器的资源通过,每个节点都具有独立的RIP地址(真实ip),处理调度器分发过来的客户机请求

3.第三层,共享存储:共享存储为服务器提供存储空间,可以使用NAS设备或者提供NFS共享服务的专用服务器

6.负载均衡群集工作模式分析

 1.地址转换(NAT模式)
 2.IP隧道 (TUN模式)
 3.直接路由(DR模式)

1. NAT模式——地址转换

1.Network Address Translation,简称NAT模式
2.类似于防火墙的私有网络结构,负载调度器作为所有服务器节点的网关,<u>即作为客户机的访问入口,也是各节点回应客户机的访问出口,在高并发场景中负载压力高,会成为整个负载均衡的瓶颈。
3.服务器节点使用私有IP地址,与负载调度器位于同一个物理网络,安全性要优于其他两种方式

####################################

 2. TUN模式——IP隧道

1.IP Tunnel,简称TUN模式
2.采用开放式的网络结构,负载调度器仅作为客户机的访问入口,各节点通过各自的Internet连接直接回应客户机,而不再经过负载调度器
3.服务器节点分散在互联网中的不同位置,具有独立的公网IP地址,通过专用IP隧道与负载调度器相互通信,数据转发受IP隧道影响

LVS虚拟服务器

Linux Virtual Server
针对Linux内核开发的负载均衡解决方案
1998年5月,由我国的章文嵩博士创建
官方网站:  http://www.linuxvirtualserver.org/
LVS 实际上相当于基于IP地址的虚拟化应用, 为基于IP地址和内容请求分发的负载均衡提出了一种高效的解决方法
LVS现在已成为Linux内核的一部分,默认编译为ip_ vs模块,必要时能够自动调用。在CentOS 7系统中,以下操作可以手动加载ip_ vs模块,并查看当前系统中ip_ vs模块的版本信息。
 

1.LVS的负载调度算法

1)轮询(Round Robin)
将收到的访问请求按照顺序轮流分配给群集中的各节点(真实服务器) ,均等地对待每一台服务器 ,而不管服务器实际的连接数和系统负载

2)加权轮询 (Weighted Round Robin)
根据调度器设置的权重值来分发请求,权重值高的节点优先获得任务,分配的请求数越多
保证性能强的服务器承担更多的访问流量

3)最少连接 (Least Connections )
根据真实服务器已建立的连接数进行分配,将收到的访问请求优先分配给连接数最少的节点

4)加权最少连接(Weighted L east Connections )
在服务器节点的性能差异较大时,可以为真实服务器自动调整权重
性能较高的节点将承担更大比例的活动连接负载

2.ipvsadm工具

LVS默认编译为ip_vs模块,必要时能够自动调用。在centos7中,可以手动添加ip_vs模块,并查看模块版本信息

2.1 ip_vs用法

3. LVS-NAT部署

 

LVS调度器作为Web 服务器池的网关,LVS具有两块网卡,

分别连接内外网,使用轮询(rr)调度算法

LVS调度器:192.168.6.170   安装ipvsadm

server1节点服务器:192.168.6.155   rpcbind  nfs-utils  httpd

server2节点服务器:192.168.6.156   rpcbind  nfs-utils  httpd

nfs服务器:  192.168.6.169

客户端: Windows10 (12.0.0.12)

1、部署共享存储(NFS服务器:192.168.6.169)

     (1)查看有无rpcbind . nfs-utils包,开启

     (2)创建共享目录,mkdir /opt/nfs/one    /opt/nfs/two 

       (3)  创建共享参数(加入配置)

vim /etc/exports   /opt/nfs 192.168.6.0/24 (rw,no_root_squash,sync)

                           /opt/nfs/one 192.168.6.0/24(rw,no_root_squash,sync)

                           /opt/nfc/two  192.168.6.0/24 (rw,no_root_squash,sync)

                       查看共享目录       showmount  -e

                       exporetfs -rv  (在线发布共享)

    (4)创建共享目录文件

            vim  /opt/nfs/one    echo 'this is  is web1 pages! '  > one/index.html

            vim  /opt/nfs/two     echo 'this is is web2 pages!'   > two/index.html    

root@localhost nfs] # mkdir one two

[root@localhost nfs]# echo 'this is web1 page!'> one/index.html
[root@localhost nfs]# echo 'this is web2 page!'> two/index.html
[root@localhost nfs]# vim /etc/exports
[root@localhost nfs]# exportfs -rv
exporting 192.168.6.0/24:/opt/nfs/two
exporting 192.168.6.0/24:/opt/nfs/one
exporting 192.168.6.0/24:/opt/nfs
[root@localhost nfs]# showmount -e
 

2、配置节点服务器(192.168.6.155  192.168.163.156)两个步骤一样

   (1)把共享目录挂载到节点服务器

            节点服务器作web网站(nginx,httpd,都可以这里用的是httpd直接yum下载)

            vim   /etc/fstab(永久挂载)

         节点服务器一:   192.168.6.169:/opt/nfs/one  /var/www/html  nfs   defaults,_netdev   0 0

         节点服务器二:   192.168.6.169:/opt/nfs/two /var/www/html  nfs  defaults,_netdev  0 0

    (2)此时两个节点服务器下就有了/var/www/html/index.html

       节点服务器一

 节点服务器二

 mount -a  (加载一下配置)

(3)把两块节点服务器网关改为调度器的ip地址及作为自己的网关

3、配置负载调度器(内网关 ens33:192.168.163.10,外网关 ens36:12.0.0.1)

        添加一块网卡:直接把地址修改为12.0.0.1(注释网关,12.0.0.1即为网关服务器)ens36

             用于外部地址访问

 (1)配置SNAT转发规则

        iptables  -F && iptables -t nat -F   清空规则

        加入规则后作SNAT地址转换

      iptables -t  nat  -A POSTROUTING  -s  192.168.6.0/24  -o ens36  -j SNAT --to 12.0.0.1

  (2)配置调度服务器转发功能

        vim   /etc/sysctl.conf

       添加一条配置: net.ipv4.ip_forward = 1

         sysctl  -p    (加载一下)

 (3)加载LVS内核模块

       modprobe  ip_vs    ####加载ip_vs模块

       cat /proc/net/ip_vs   #####查看ip_vs版本信息

  (4)安装ipvsadm 管理工具

    yum  install -y ipvsadm           

 (使用这条命令才能开启ipvsadm工具) ipvsadm-save >  /etc/sysconfig/ipvsadm

   systemctl start ipvsadm

#启动服务前须保存负载分配策略
ipvsadm-save > /etc/sysconfig/ipvsadm

ipvsadm --save > /etc/sysconfig/ipvsadm

systemctl start ipvsadm.service

  (5)配置负载分配策略(NAT模式只要在服务器上配置,节点服务器不需要特殊配置)

     ipvsadm  -C                                                                #####清空原有策略

     ipvsadm  -A   -t   12.0.0.1:80  -s rr

     ipvsadm  -a    -t   12.0.0.1:80   -r  192.168.6.155

     ipvsadm  -a    -t   12.0.0.1:80   -r  192.168.6.156

4、测试效果
在一台IP为12.0.0.12的客户机使用浏览器访问  http://12.0.0.1/ ,不断刷新浏览器测试负载均衡效果,刷新间隔需长点。

 

 

 

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

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

相关文章

Sentinel的学习

1、Sentinel控制台的下载 下载地址&#xff1a;https://github.com/alibaba/Sentinel/releases/tag/1.8.3 2、Sentinel控制台的启动 java -jar sentinel-dashboard-1.8.3.jar3、访问 浏览器输入&#xff1a;localhost:8080 账号密码&#xff1a; sentinel/sentinel 4.sprin…

SARScape中用sentinel-1数据做SBAS-InSAR完整流程(1/2)

SARScape中用sentinel-1数据做SBAS-InSAR完整流程1 SABA-InSAR原理简述2 数据采集和预设2.1 SAR数据采集2.2 DEM数据下载与放置2.3 精密轨道数据下载与放置2.4 制作研究区范围矢量2.5 SARscape Preferences预设3 SAR数据预处理3.1 导入数据3.2 optional files设置3.3 参数设置4…

【Git】Git使用的三个场景总结 | 远程仓库到本地 | 本地获取git仓库 | 远程仓库与本地相连接

&#x1f4ad;&#x1f4ad; ✨&#xff1a; git使用的三个场景总结 | 远程仓库到本地 | 本地获取git仓库 | 远程仓库与本地相连接   &#x1f49f;&#xff1a;东非不开森的主页   &#x1f49c;&#xff1a;学习的过程就是不断接触错误&#xff0c;不断提升自己&#xff0c…

Linux 卸载zabbix图文教程

Linux 卸载zabbix图文教程前言1.停止zabbix服务2.卸载zabbix服务2.1查找zabbix所有被安装的rpm包2.2卸载zabbix服务2.3删除所有与zabbix相关的文件&#xff08;配置项等&#xff09;3.卸载数据库3.1查找mariadb所有被安装的rpm包&#xff0c;并删除3.2删除mysql相关配置文件4.卸…

Source Insight4.0中文注释乱码解决方案

一、Source Insight软件介绍 Source Insight是一个面向项目的编程编辑器、代码浏览器和分析器&#xff0c;可帮助您在工作和计划​​时分析代码&#xff0c;具有针对 C/C、C#、Java、Objective-C 等的内置动态分析&#xff0c;深受众多嵌入式软件开发者的喜爱。 二、中文乱码…

复旦-华盛顿大学EMBA 二十年20人丨徐欣:从外企转战民企的变身

复旦大学-华盛顿大学EMBA20周年校友系列访谈。      2008年堪称转折之年&#xff0c;中国举行北京奥运会向全世界展示“和而不同”的理念&#xff0c;入世7年让中国在贸易、金融领域与全球市场紧密相连&#xff0c;一大批最优秀的中国民营企业也加速踏上全球化之路。    …

Web APIs:PC 端网页特效--动画函数封装

动画原理 核心原理&#xff1a;通过定时器 setInterval() 不断移动盒子位置 实现步骤&#xff1a; 1. 获得盒子当前位置 2. 让盒子在当前位置加上1个移动距离 3. 利用定时器不断重复这个操作 4. 加一个结束定时器的条件 5. 注意此元素需要添加定位&#xff0c;才能使用e…

【C语言】三子棋小游戏

&#x1f680; 作者简介&#xff1a;一名在后端领域学习&#xff0c;并渴望能够学有所成的追梦人。 &#x1f40c; 个人主页&#xff1a;蜗牛牛啊 &#x1f525; 系列专栏&#xff1a;初出茅庐C语言 ☀️ 学习格言&#xff1a;眼泪终究流不成海洋&#xff0c;人总要不断成长&am…

Selenium基础 — iframe表单操作

1、什么是iframe表单 实际上就是HTML页面中使用iframe/frame标签&#xff0c;是在当前页面中引用了其他页面的链接&#xff0c;真正的页面数据并没有出现在当前页面源码中&#xff0c;但是在浏览器中我们时看到的。简单理解可以使页面中开了一个窗口显示另一个页面。 我们在We…

谷粒商城-支付业务

目录 商城业务-支付-支付宝沙箱&代码 商城业务-支付-RSA、加密加签、密钥等 商城业务-支付-内网穿透 商城业务-订单服务-整合支付前需要注意的问题 商城业务-订单服务-整合支付 商城业务-订单服务-支付成功同步回调 商城业务-订单服务-订单列表页渲染完成 商城业务…

网络请求+基于Node.js的WebSocket

目录 前言 网络访问配置 1.配置流程 注意事项 使用限制 网络请求详情API wx.request请求数据API ​编辑 wx.uploadFile文件上传API wx.downloadFile文件下载API WebSocket会话API 基于Node.js的WebSocket 为什么WebSocket连接可以实现全双工通信而HTTP连接不行呢&…

git命令记不住?可视化git操作平台Sourcetree入门教程

1、为什么要用Sourcetree 在应届生在参加实习或者工作的时候&#xff0c;往往需要配置各种各样的环境&#xff0c;git肯定是程序员必不可少的分布式版本控制系统&#xff0c;但刚出来工作时往往对git代码不熟悉&#xff0c;老是会忘掉一些命令&#xff0c;所以笔者在此推荐一个…

算法《第四版》笔记整理

算法第四版 先导例子&#xff1a;动态连通性 - 书中1.5 知识点&#xff1a;并查集-一种用于解决动态连通性问题的算法 描述&#xff1a;对于N个对象&#xff0c;有两种操作&#xff1a;1.连接两个对象 2.判断两个对象是否存在连接路径 如巨大的连通性问题&#xff1a; 在分析…

【力扣刷题】Day32——单调栈专题

文章目录单调栈1.每日温度2.下一个更大元素 I3.下一个更大元素II4. 接雨水5.柱状图中最大的矩形单调栈 单调栈基础知识回顾&#xff1a;单调栈与单调队列_塔塔开!!!的博客-CSDN博客_单调栈 单调队列 单调栈一般模板&#xff1a; int[] stk new int[N] //Stack<Integer>…

倒排索引-字符串相似匹配(结巴分词、中文转拼音)

工作中&#xff0c;遇到有两个不同的系统&#xff0c;两个系统中有相同的功能&#xff0c;维护一个主播的名称。现在准备将两个系统的主播合并到一起。因为主播名称可能由不同的人维护的&#xff0c;他们也不知道主播的真实姓名&#xff0c;比如一条小团团&#xff0c;可能维护…

香橙派3LTS部署ROS2阿克曼开源平台

1.系统镜像下载 这里我们需要安装ROS2的humble版本&#xff0c;需要ubuntu 22.04版本的系统。 香橙派镜像下载&#xff1a;http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-3-LTS.html 点击Ubuntu镜像&#xff0c;选择jamm…

【linux】进程概念详述

进程概念一、冯诺依曼系统二、操作系统2.1 OS层次图2.2 操作系统的意义2.2.1 系统调用与库函数的区别2.3 管理的理解三、进程3.1 进程的概念3.2 描述进程-PCB3.3 进程和程序3.4 PCB内容3.4.1 查看进程3.4.2 标识符3.4.3 状态3.4.4 程序计数器3.4.5 记账信息3.4.6 上下文信息❗️…

1.极限与连续-——“机器学习中的数学”

1.通过集合相等来讲解什么是映射关系 上面问的这个问题&#xff08;2N N2&#xff09;说明了什么&#xff1f; ——两个无穷集合&#xff0c;如果能找到一种对应关系&#xff08;映射关系&#xff09;&#xff0c;那么我们就可以说这两个集合是等价的。 数列的极限就是趋势 …

字符串转二叉树

一. 题目介绍 二. 题目分析 首先 题目让我们以先序遍历的方式用字符串建立一个二叉树 输入是一个字符串 输出是是以中序遍历二叉树打印 我们先来看最简单的输入 这里只要建立一个字符数组 然后等测试用例输入就好了 // 接受输入值char arr[100]{0};scanf("%s",…

网络原理 --- 传输层Ⅳ TCP协议中的延迟应答、捎带应答、面向字节流、TCP中的异常处理

文章目录网络原理传输层TCP协议7.延迟应答8.捎带应答9. 面向字节流10.TCP中的异常处理总结网络原理 介绍TCP/IP协议中每一层里面的核心内容~ 应用层传输层网络层数据链路层物理层 传输层TCP协议 7.延迟应答 提高传输效率的机制 又是基于流量控制,来引入的提高效率的机制 实…