LVS集群 (四十四)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

前言

一、集群概述

1. 负载均衡技术类型

 2. 负载均衡实现方式

二、LVS结构

三、LVS工作模式

四、LVS负载均衡算法

 1.  静态负载均衡

  2.  动态负载均衡

五、ipvsadm命令详解

六、LVS配置案例

1.  基础配置

2. 实现NAT模型搭建

3. 实现DR模型搭建

总结



前言

LVS(Linux Virtual Server)是一个基于Linux操作系统的高性能、可扩展的服务器集群技术。它通过将多台服务器组织成一个逻辑集群,提供负载均衡、高可用性和扩展性等功能。


提示:以下是本篇文章正文内容,下面案例可供参考

一、集群概述

1. 负载均衡技术类型

          四层负载均衡器 也称为 4 层交换机,主要通过分析 IP 层及 TCP/UDP 层的流量实现基于 IP 加端口的负载均衡,如常见的 LVS、F5 等;
        七层负载均衡器 也称为 7 层交换机,位于 OSI 的最高层,即应用层,此负载均衡器支持多种协议,如HTTP、FTP、SMTP 等。7 层负载均衡器可根据报文内容,配合一定的负载均衡算法来选择后端服务器,即“内容交换器”。如常见的 HAProxy、Nginx。

 2. 负载均衡实现方式

        硬件负载均衡产品:F5 、深信服 、Radware
        软件负载均衡产品: LVS(Linux Virtual Server)、 Haproxy、Nginx、Ats(apache traffic server)

二、LVS结构

     三层结构
        负载调度器
        服务器池
        共享存储
    架构对象
        VS:Virtual Server,也称为 Director,负载均衡服务器
        RS:Real Server,真正的服务器,集群中各节点
        VIP:Director 向外部提供服务的 IP
        DIP:Director 向内部与 RS 通信的 IP
        RIP:真实服务器的 IP
        CIP:客户端的 IP

三、LVS工作模式

    LVS-NAT(NAT模式)
    LVS-DR(直接路由模式)(应用最广泛)
    LVS-TUN(IP隧道(Tunnel)模式,不常用)
    FULL-NAT模式(双向转换模式,不常用)

四、LVS负载均衡算法

 1.  静态负载均衡

             rr(round robin,轮询 )
            wrr(weight round robin,加权轮询)
            sh(source hashing,源地址散列算法(HASH))
            dh(destination hashing,目标地址 HASH)

  2.  动态负载均衡

        lc(leash-connection,最少连接 )
            简单算法:active * 256 + inactive (谁的小选谁)
        wlc(加权最少连接)
            简单算法:(active * 256 + inactive) / weight(谁的小选谁)
        sed(最少期望延迟)
            简单算法:(active + 1) * 256 / weight (谁的小选谁)
        nq(never queue,永不排队)
        LBLC(基于局部性的最少连接 )
        LBLCR(基于局部性的带复制功能的最少连接)

五、ipvsadm命令详解

-A 添加虚拟服务节点
-D 删除虚拟服务节点
-L 查看虚拟服务节点列表
-a添加真实服务节点
 -d删除真实服务节点
 -l 查看真实服务节点列表
 -t指定虚拟服务器IP地址
 -s指定调度算法
 -r指定真实服务器节点IP地址
-w指定权重值
-g 直接路由模式(默认)
 -i 隧道模式(不常用)
 -mNAT模式

六、LVS配置案例

1.  基础配置

    修改主机名
    关闭防火墙
    关闭Selinux
    关闭Networkmanager
    配置IP地址

2. 实现NAT模型搭建

2.1 负载调度器配置
    配置IP地址
            增加一块网卡


            cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens37
            vim ifcfg-ens37 

            删除UUID
     NAME=ens37
     DEVICE=ens37


      

   配置本地yum源

    安装ipvsadm
        yum  install -y ipvsadm 


    开启路由转发功能
        vim /etc/sysctl.conf
        net.ipv4.ip_forward = 1  


        sysctl -p


    加载ip_vs模块
        modprobe ip_vs
        lsmod |grep ip_vs


    启动ipvsadm服务
        systemctl start ipvsadm

    配置负载分配策略
        ipvsadm -A -t 192.168.142.100:80 -s rr

        ipvsadm -a -t 192.168.142.100:80 -r 192.168.115.4:80 -m
        ipvsadm -a -t 192.168.142.100:80 -r 192.168.115.5:80 -m


    保存策略
        ipvsadm-save > /etc/sysconfig/ipvsadm 

2.2 web节点配置
    配置网关
        route add -net 0/0 gw 192.168.115.3

 测试访问:192.168.23.100 

 

 

 3. 实现DR模型搭建

原理图

 

3.1 负载调度器配置

调整ARP参数
    vim /etc/sysctl.conf
    net.ipv4.conf.all.send_redirects = 0 
net.ipv4.conf.default.send_redirects=0
net.ipv4.conf.ens33.send_redirects = 0


    sysctl -p

配置虚拟IP地址
    cd /etc/sysconfig/network-scripts/
    cp ifcfg-ens33 ifcfg-ens33:0

 安装ipvsadm
    yum  install -y ipvsadm

加载ip_vs模块
    modprobe ip_vs
    lsmod |grep ip_vs

启动ipvsadm服务
    systemctl start ipvsadm

配置负载分配策略
    ipvsadm -A -t 192.168.115.200:80 -s rr
    ipvsadm -a -t 192.168.115.200:80 -r 192.168.156.4:80 -g
    ipvsadm -a -t 192.168.115.200:80 -r 192.168.156.5:80 -g

3.2  web节点配置(两台一样的配置)

调整ARP参数
    vim /etc/sysctl.conf
    net.ipv4.conf.all.arp_ignore=1 
net.ipv4.conf.all.arp_announce=2 
net.ipv4.conf.default.arp_ignore=1 
net.ipv4.conf.default.arp_announce = 2 
net.ipv4.conf.lo.arp_ignore = 1 
net.ipv4.conf.lo.arp_announce=2
    sysctl -p 

配置虚拟IP地址
    cd /etc/sysconfig/network-scripts/
    cp ifcfg-lo ifcfg-lo:0
    vim ifcfg-lo:0 添加回环路由
    route add -host 192.168.156.200/32 dev lo:0

 测试

 


总结

LVS集群具有以下优点:

高可用性:通过使用多个服务器节点,当某个节点故障时,其他节点可以继续提供服务,保证系统的可用性。

负载均衡:将客户端请求分发给集群中的多个服务器节点,使得各个节点的负载相对均衡,提高系统的性能和吞吐量。

扩展性:可以根据需求方便地添加或移除服务器节点,实现集群的横向扩展。

总的来说,LVS集群是一种成熟的、可靠的服务器集群技术,广泛应用于大规模的互联网服务、电子商务等领域。

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

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

相关文章

五家项目进度管理工具,哪家好?

项目进度管理十分依赖项目经理对于项目信息的掌握程度,数字化工具可以很好的解决项目信息不统一的问题。一款好用的项目进度十分重要。目前市面上项目进度管理工具哪家好? 1、Zoho Projects;2、Microsoft Project;3、Trello&#…

34.SpringMVC获取请求参数

SpringMVC获取请求参数 通过ServletAPI获取 将HttpServletRequest作为控制器方法的形参&#xff0c;此时HttpServletRequest类型的参数表示封装了当前请求的请求报文的对象 index.html <form th:action"{/test/param}" method"post">用户名&#…

机器学习笔记之优化算法(十六)梯度下降法在强凸函数上的收敛性证明

机器学习笔记之优化算法——梯度下降法在强凸函数上的收敛性证明 引言回顾&#xff1a;凸函数与强凸函数梯度下降法&#xff1a;凸函数上的收敛性分析 关于白老爹定理的一些新的认识梯度下降法在强凸函数上的收敛性收敛性定理介绍结论分析证明过程 引言 本节将介绍&#xff1a…

Jenkins的定时任务配置

jenkins配置定时任务位置(点击日程表的问好可查看语法配置) jenkins的定时任务的参数 # 定时任务参数(每个参数之间使用tab键或空格分隔)MINUTE HOUR DOM MONTH DOW 参数解释取值范围 MINUTE 分钟0-59HOUR小时0-23DOM一月的天数1-31MONTH月份1-12DOW 一周的天数0…

【Linux】GNOME图形化界面安装

Linux下具有多种图形化界面&#xff0c;每种图形化界面具有不同的功能&#xff0c;在这里我们安装的是GNOME。 1、 挂载yum源 挂载之前首先确保使用ISO映像文件 2.挂载之前先在/mnt下面创建一个cdrom目录用来作为挂载点目录 挂载完成之后那么就要去修改yum源了 Vi /etc/yum.r…

【golang】go语句执行规则(goroutine)(下)

怎样才能让主goroutine等待其他goroutine&#xff1f; 上篇文章提到&#xff0c;一旦主 goroutine 中的代码执行完毕&#xff0c;当前的 Go 程序就会结束运行&#xff0c;无论其他的 goroutine 是否已经在运行了。那么&#xff0c;怎样才能做到等其他的 goroutine 运行完毕之后…

Java如何调用接口API并返回数据(两种方法)

Java如何调用接口API并返回数据&#xff08;两种方法&#xff09; java处理请求接口后返回的json数据-直接处理json字符串 处理思路&#xff1a; 将返回的数据接收到一个String对象中&#xff08;有时候需要自己选择性的取舍接收&#xff09; 再将string转换为JSONObject对象 …

在本地搭建Jellyfin影音服务器,支持公网远程访问影音库的方法分享

文章目录 1. 前言2. Jellyfin服务网站搭建2.1. Jellyfin下载和安装2.2. Jellyfin网页测试 3.本地网页发布3.1 cpolar的安装和注册3.2 Cpolar云端设置3.3 Cpolar本地设置 4.公网访问测试5. 结语 1. 前言 随着移动智能设备的普及&#xff0c;各种各样的使用需求也被开发出来&…

221. 最大正方形 Python

文章目录 一、题目描述示例 1示例 2示例 3 二、代码三、解题思路 一、题目描述 在一个由 0 和 1 组成的二维矩阵内&#xff0c;找到只包含 1 的最大正方形&#xff0c;并返回其面积。 示例 1 输入&#xff1a;matrix [["1","0","1","0&q…

公网中Linux系统下Redis使用注意事项以及被pnscan病毒攻击的经过

一次惨痛的教训&#xff1a;被pnscan病毒攻击的经过&#xff08;公网中Linux系统下Redis使用注意事项&#xff09; 0.案发情况pnscan病毒感染惨状&#xff1a;>>提示<< 1.案发原因2.排查过程简单排查之后&#xff0c;发现啥都做不了。先百度到了如下文章&#xff1…

mac垃圾清理软件有哪些

随着使用时间的增加&#xff0c;mac系统会产生一些垃圾文件&#xff0c;影响系统的性能和稳定性。为了保持mac系统的高效&#xff0c;用户需要定期使用mac垃圾清理软件来清理系统缓存、日志、语言包等无用文件。CleanMyMac是一款功能强大的mac垃圾清理软件&#xff0c;它可以帮…

计算机网络(10) --- 高级IO

计算机网络&#xff08;9&#xff09; --- 数据链路层与MAC帧_哈里沃克的博客-CSDN博客数据链路层与MAC帧https://blog.csdn.net/m0_63488627/article/details/132178583?spm1001.2014.3001.5501 1.IO介绍 1.IO本质 1.如果数据没有出现&#xff0c;那么读取文件其实会被阻塞住…

vue 使用print.js打印小票

官网&#xff1a;https://printjs.crabbly.com/ // 安装 npm install print-js --save// 引入 import printJS from print-js// 使用 printJS({printable: https://hwke.tbbug.com/images/phone/1899ed9346f64020ff4f9bbae6983952.jpg,type: image,imageStyle: width:100%;ma…

MySQL使用binlog日志做数据恢复

MySQL的binlog日志是MySQL日志中非常重要的一种日志&#xff0c;记录了数据库所有的DML操作。通过binlog日志我们可以进行数据库的读写分离、数据增量备份以及服务器宕机时的数据恢复。 定期备份固然可以在服务器发生宕机的时候快速的恢复数据&#xff0c;但传统的全量备份不可…

【Qt编译】GL/gl.h:No such file or directory

GL/gl.h:No such file or directory原因 缺少libgl相关库引起 解决办法&#xff1a; yum -y install libglade2-devel yum -y install libglade2-help yum -y install libglvnd-devel

安装Node(脚手架)

目录 一&#xff0c;安装node&#xff08;脚手架&#xff09;1.1&#xff0c; 配置vue.config.js1.2&#xff0c; vue-cli3x的目录介绍1.3&#xff0c; package.json 最后 一&#xff0c;安装node&#xff08;脚手架&#xff09; 从官网直接下载安装即可&#xff0c;自带npm包管…

scratch计算圆的面积和周长 2023年5月中国电子学会图形化编程 少儿编程 scratch编程等级考试四级真题和答案解析

目录 scratch计算圆的面积和周长 一、题目要求 1、准备工作 2、功能实现 二、案例分析

视频转云存的痛点

现在整个运营商体系里面&#xff0c;有大量的视频转云存储的需求&#xff0c;但是视频云存储有一个比较大的痛点&#xff0c;就是成本&#xff01; 成本一&#xff1a;存储成本&#xff1b; 我们以1000路2M视频转云存&#xff0c;存储时间为90天为例&#xff08;B端存储时间有…

windows下nginx配置为服务

​ 1.下载winswx。 下载地址&#xff1a;winsw下载 2.解压后将其重命名为“nginx-service”,并将其放到nginx目录下。 3.新建一个文本文档内容如下&#xff1a;&#xff08;里面的路径根据自己的情况修改&#xff09; <service> <id>nginx</id> <name&…

数据结构,队列,顺序表队列,链表队列

队列是一种常见的数据结构&#xff0c;它具有先进先出&#xff08;First-In-First-Out&#xff0c;FIFO&#xff09;的特性&#xff0c;类似于排队等候的场景。以下是队列的要点&#xff1a; 1. 定义&#xff1a;队列是一种线性数据结构&#xff0c;由一系列元素组成&#xff…