目录

引言:

一、群集的含义

1.1 群集存在的必要

1.2 解决方法

二、群集的种类

2.1 负载均衡群集(Load Balance Cluster)

2.2 高可用群集 (High Availability Cluster)

2.3 高性能运算群集(High Performance Computer Cluster)

三、负载均衡群集架构

四、负载均衡群集工作模式分析

4.1 NAT模式(地址转换)

4.2 TUN模式(IP隧道)

4.3 DR模式(直接路由)

五、LVS虚拟服务器

5.1 LVS 的组成及作用

5.2 LVS 与 Nginx 功能对比

5.3 软件负载均衡的种类

六、LVS的负载调度算法

七、LVS 涉及相关的术语及说明

八、 ipvsadm工具

8.1 LVS集群创建与管理

8.2 ipvsadm功能与选项说明

九、NAT模式LVS负载均衡群集部署

9.1 ​部署共享存储(NFS服务器:192.168.223.10)

9.2 配置节点服务器(192.168.223.11、192.168.223.12)

9.2.1 两台机器一样的配置

9.2.2 ​​Web-1(192.168.223.11)

9.2.3 ​​​Web-2(192.168.223.12)

9.3 配置负载调度器(内网关 ens33:192.168.223.9,外网关 ens37:10.0.0.1)

9.3.1 下载所需工具包并配置网卡

9.3.2 配置SNAT转发规则

9.3.3 加载LVS内核模块

9.3.4 安装ipvsadm 管理工具

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

9.4 测试效果

十、总结

引言:

如今,在各种互联网应用中,随着站点对硬件性能、响应速度、服务稳定性、数据可靠性等要求也越来越高,单台服务器也将难以无法承担所有的访问需求。当然了,除了使用性价比高的设备和专用负载分流设备外,还有一些其他选择来帮你解决此问题,就是搭建集群服务器通过整合多台普通的服务器设备并以同一个地址对外提供相同的服务,今天就带领大家学习企业中常用的一种群集技术 —— LVS。

一、群集的含义

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

1.1 群集存在的必要

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

1.2 解决方法

​1、使用价格昂贵的小型机、大型机。​

​2、使用多台相对廉价的普通服务器构建服务群集。​

​通过整合多台服务器,使用LVS来达到服务器高可用和负载均衡,并于同一个IP地址对外提供相同服务。​

​这就是企业中常用的一种群集技术——LVS(Linux Virtual Server ,Linux虚拟服务器)

二、群集的种类

根据集群针对的目标差异,可分为三种

1、负载均衡群集

2、高可用群集

3、高性能群集

2.1 负载均衡群集(Load Balance Cluster)

①提高应用系统的响应能力、尽可能处理更多的访问请求、减少延迟为目标,获得高并发、高负载(LB)的整体性能。​

②LB的负载分配依赖于主节点的分流算法,将来自客户机的访问请求分担给多个服务器节点,从而缓解整个系统的负载。

2.2 高可用群集 (High Availability Cluster)

​①提高应用系统的可靠性、尽可能地减少中断时间为目标,确保服务的连续性,达到高可用(HA) 的容错效果。​

②HA的工作方式包括双工和主从两种模式,双工即所有节点同时在线;主从则只有主节点在线,但当出现故障时从节点能自动切换为主节点。​

​例如:“故障切换”、“双机热备” 等。

2.3 高性能运算群集(High Performance Computer Cluster)

①以提高应用系统的CPU运算速度、扩展硬件资源和分析能力为目标,获得相当于大型、超级计算机的高性能运算(HPC)能力。​

②高性能依赖于"分布式运算”、“并行计算” , 通过专用硬件和软件将多个服务器的CPU、内存等资源整合在一起,实现只有大型、超级计算机才具备的计算能力。例如,“云计算”、“网格计算”等。

三、负载均衡群集架构

​负载均衡的结构

第一层,负载调度器(Load Balancer或Director)

访问整个群集系统的唯一入口, 对外使用所有服务器共有的VIP地址,也称为群集IP地址。通常会配置主、备两台调度器实现热备份,当主调度器失效以后能够平滑替换至备用调度器,确保高可用性。

​​第二层,服务器池(Server Pool)

群集所提供的应用服务、由服务器池承担,其中每个节点具有独立的RIP地址(真实IP),只处理调度器分发过来的客户机请求。当某个节点暂时失效时,负载调度器的容错机制会将其隔离,等待错误排除以后再重新纳入服务器池。

​​第三层,共享存储(Share Storage)

为服务器池中的所有节点提供稳定、一致的文件存取服务, 确保整个群集的统一性共享存储可以使用NAS设备,或者提供NFS共享服务的专用服务器。

四、负载均衡群集工作模式分析

负载均衡群集是目前企业用得最多的群集类型

群集的负载调度技术有3种工作模式

​●地址转换(NAT模式)
●IP隧道 (TUN模式)
●直接路由(DR模式)

4.1 NAT模式(地址转换)

​● Network Address Translation,简称NAT模式​

​● 类似于防火墙的私有网络结构,负载调度器作为所有服务器节点的网关,即作为客户机的访问入口,也是各节点回应客户机的访问出口​

​● 服务器节点使用私有IP地址,与负载调度器位于同一个物理网络,安全性要优于其他两种方式

4.2 TUN模式(IP隧道)

​● IP Tunnel,简称TUN模式​

​● 采用开放式的网络结构,负载调度器仅作为客户机的访问入口,各节点通过各自的Internet连接直接回应客户机,而不再经过负载调度器​

​● 服务器节点分散在互联网中的不同位置,具有独立的公网IP地址,通过专用IP隧道与负载调度器相互通​信

4.3 DR模式(直接路由)

​● Direct Routing,简称DR模式​

​● 采用半开放式的网络结构,与TUN模式的结构类似,但各节点并不是分散在各地,而是与调度器位于同一个物理网络​

​● 负载调度器与各节点服务器通过本地网络连接,不需要建立专用的IP隧道

NAT 模式:只需一个公网 IP 地址,是最易用的一种负载均衡模式,安全性较好。
TUN 模式 和 DR 模式:负载能力强大、适用范围广、节点安全性较差。

五、LVS虚拟服务器

LVS: 是Linux Virtual Server的简写,也就是Linux 虚拟服务器,是一个虚拟的服务器集群系统,本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。官方网站是 :http://www.linuxvirtualserver.org LVS 实际上相当于基于 IP 地址的虚拟化应用,为基于 IP 地址和内容请求分发的负载均衡提出了高效的解决方法,现在 LVS 已经是 Linux 内核标准的一部分。

使用 LVS 可以达到的技术目标是:通过 LVS 达到的负载均衡技术和 Linux 操作系统实现一个高性能高可用的 Linux 服务器集群,具有良好的可靠性、可扩展性和可操作性。从而以低廉的成本实现最优的性能。LVS 是一个实现负载均衡集群的开源软件项目,LVS 架构从逻辑上可分为调度层、Server 集群层和共享存储层。

5.1 LVS 的组成及作用

①ipvs(ip virtual server):LVS 是基于内核态的 netfilter 框架实现的 IPVS 功能,工作在内核态。用户配置 VIP 等相关信息并传递到 IPVS 就需要用到 ipvsadm 工具。

②ipvsadm:ipvsadm 是 LVS 用户态的配套工具,可以实现 VIP 和 RS 的增删改查功能,是基于 netlink 或 raw socket 方式与内核 LVS 进行通信的,如果 LVS 类比于 netfilter,那 ipvsadm 就是类似 iptables 工具的地位。

作用:

  • 主要用于多服务器的负载均衡;
  • 工作在网络层,可实现高性能,高可用的服务器集群技术;
  • 廉价,可把许多低性能的服务器组合在一起形成一个超级服务器;
  • 易用,配置简单,有多种负载均衡的方法;
  • 稳定可靠,即使在集群的服务器中某台服务器无法正常工作,也不影响整体效果;
  • 可扩展性好;

5.2 LVS 与 Nginx 功能对比

  • LVS 比 Nginx 具有更强的抗负载能力,性能高,对内存和 CPU 资源消耗较低;
  • LVS 工作在网络层,具体流量由操作系统内核进行处理,Nginx 工作在应用层,可针对 HTTP 应用实施一些分流策略;
  • LVS 安装配置较复杂,网络依赖性大,稳定性高。Nginx 安装配置较简单,网络依赖性小;
  • LVS 不支持正则匹配处理,无法实现动静分离效果。Nginx 可实现这方面的功能;
  • LVS 适用的协议范围广。Nginx 仅支持 HTTP、HTTPS、Email 协议,适用范围小;

5.3 软件负载均衡的种类

  • Nginx :支持 4 层 / 7 层负载均衡,支持 HTTP、E-mail 协议;
  • LVS :纯 4 层负载均衡,运行在内核态,性能是软件负载均衡中最高的;
  • HAproxy :是 7 层负载均衡软件,支持 7 层规则的设置,性能也不错;

优点:

简单、灵活、便宜(直接在 Linux 操作系统上安装上述所使用的软件负载均衡,部署及维护较简单,4 层 和 7 层负载均衡可根据业务进行选择也可根据业务特点,比较方便进行扩展及定制功能);

六、LVS的负载调度算法

轮询:Round Robin,将收到的访问请求按顺序轮流分配给群集中的各节点真实服务器中,不管服务器实际的连接数和系统负载。

加权轮询:Weighted Round Robin,根据真实服务器的处理能力轮流分配收到的访问请求,调度器可自动查询各节点的负载情况,并动态跳转其权重,保证处理能力强的服务器承担更多的访问量。

最少连接:Least Connections,根据真实服务器已建立的连接数进行分配,将收到的访问请求优先分配给连接数少的节点,如所有服务器节点性能都均衡,可采用这种方式更好的均衡负载。

加权最少连接:Weighted Least Connections,服务器节点的性能差异较大的情况下,可以为真实服务器自动调整权重,权重较高的节点将承担更大的活动连接负载。

基于局部性的最少连接:LBLC,基于局部性的最少连接调度算法用于目标 IP 负载平衡,通常在高速缓存群集中使用。如服务器处于活动状态且处于负载状态,此算法通常会将发往 IP 地址的数据包定向到其服务器。如果服务器超载(其活动连接数大于其权重),并且服务器处于半负载状态,则将加权最少连接服务器分配给该 IP 地址。

复杂的基于局部性的最少连接:LBLCR,具有复杂调度算法的基于位置的最少连接也用于目标IP负载平衡,通常在高速缓存群集中使用。与 LBLC 调度有以下不同:负载平衡器维护从目标到可以为目标提供服务的一组服务器节点的映射。对目标的请求将分配给目标服务器集中的最少连接节点。如果服务器集中的所有节点都超载,则它将拾取群集中的最少连接节点,并将其添加到目标服务器群中。如果在指定时间内未修改服务器集群,则从服务器集群中删除负载最大的节点,以避免高度负载。

目标地址散列调度算法:DH,该算法是根据目标 IP 地址通过散列函数将目标 IP 与服务器建立映射关系,出现服务器不可用或负载过高的情况下,发往该目标 IP 的请求会固定发给该服务器。

源地址散列调度算法:SH,与目标地址散列调度算法类似,但它是根据源地址散列算法进行静态分配固定的服务器资源。

最短延迟调度:SED,最短的预期延迟调度算法将网络连接分配给具有最短的预期延迟的服务器。如果将请求发送到第 i 个服务器,则预期的延迟时间为(Ci +1)/ Ui,其中 Ci 是第 i 个服务器上的连接数,而 Ui 是第 i 个服务器的固定服务速率(权重) 。

永不排队调度:NQ,从不队列调度算法采用两速模型。当有空闲服务器可用时,请求会发送到空闲服务器,而不是等待快速响应的服务器。如果没有可用的空闲服务器,则请求将被发送到服务器,以使其预期延迟最小化(最短预期延迟调度算法)。

七、LVS 涉及相关的术语及说明

DS(Director Server) 前端负载均衡节点服务器
RS(Real Server) 后端真实服务器
CIP(Client IP) 客户端 IP 地址
VIP (Virtual IP) 负载均衡对外提供访问的 IP 地址,一般负载均衡 IP 都会通过 Virtual IP 实现高可用
RIP (RealServer IP) 负载均衡后端的真实服务器 IP 地址
DIP 负载均衡与后端服务器通信的 IP 地址
CMAC 客户端 MAC 地址,LVS 连接的路由器的 MAC 地址
VMAC 负载均衡 LVS 的 VIP 对应的 MAC 地址
DMAC 负载均衡 LVS 的 DIP 对应的 MAC 地址
RMAC  后端真实服务器的 RIP 地址对应的 MAC 地址

八、 ipvsadm工具

8.1 LVS集群创建与管理

8.2 ipvsadm功能与选项说明

ipvsadm功能与选项说明
选项 功能
-A 添加虚拟服务器
-D 删除整个虚拟服务器
-s 指定负载调度算法(轮询:rr、加权轮询:wrr、最少连接:lc、加权最少连接:wlc)
-a 表示添加真实服务器(节点服务器)
-d 删除某一个节点
-t 指定 VIP地址及 TCP端口
-r 指定 RIP地址及 TCP端口
-m 表示使用 NAT群集模式
-g 表示使用 DR模式
-i 表示使用 TUN模式
-w 设置权重(权重为 0 时表示暂停节点)
-p 60 表示保持长连接60秒
-l 列表查看 LVS 虚拟服务器(默认为查看所有)
-n 以数字形式显示地址、端口等信息,常与“-l”选项组合使用。ipvsadm -lnjiu

九、NAT模式LVS负载均衡群集部署

LVS调度器作为Web 服务器池的网关,LVS具有两块网卡,分别连接内外网,使用轮询(rr)调度算法

主机 操作系统 IP地址 工具/软件/安装包
负载均衡器 CentOS7

内网:192.168.223.9

外网:10.0.0.1

iptables、iptables-untils、ipvsadm
NFS服务器 CentOS7 192.168.223.10 rpcbind、nfs-utils
Web节点服务器1 CentOS7 192.168.223.11 rpcbind、nfs-utils、httpd
Web节点服务器2 CentOS7 192.168.223.12 rpcbind、nfs-utils、httpd
客户端 Windows10 10.0.0.12

9.1 ​部署共享存储(NFS服务器:192.168.223.10)

systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0yum -y install nfs-utils rpcbindsystemctl start rpcbind.service
systemctl start nfs.servicesystemctl enable nfs.service
systemctl enable rpcbind.servicemkdir /opt/lic
mkdir /opt/kikichmod 777 /opt/lic
chmod 777 /opt/kikivim /etc/exports
/usr/share *(ro,sync)
/opt/lic 192.168.223.0/24(rw,sync)
/opt/kiki 192.168.223.0/24(rw,sync)exportfs -rv

9.2 配置节点服务器(192.168.223.11、192.168.223.12)

systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0yum install httpd -y
systemctl start httpd.service
systemctl enable httpd.serviceyum -y install nfs-utils rpcbind
showmount -e 192.168.223.10systemctl start rpcbind
systemctl enable rpcbind

9.2.1 两台机器一样的配置 

9.2.2 ​​Web-1(192.168.223.11)

mount.nfs 192.168.223.10:/opt/lic /var/www/html
或
vim /etc/fstab
192.168.223.10:/opt/lic /var/www/html   nfs     defaults,_netdev    0  0echo 'this is lic' > /var/www/html/index.html

修改网卡信息

9.2.3 ​​​Web-2(192.168.223.12)

mount.nfs 192.168.223.10:/opt/zhangbin /var/www/html
或
vim /etc/fstab
192.168.223.10:/opt/lic /var/www/html   nfs     defaults,_netdev    0  0echo 'this is zhangbin' > /var/www/html/index.html

9.3 配置负载调度器(内网关 ens33:192.168.223.9,外网关 ens37:10.0.0.1)

9.3.1 下载所需工具包并配置网卡

#下载工具包
yum install -y iptables iptables-utils
yum install -y ipvsadm#修改网卡
vim /etc/sysconfig/network-scripts/ifcfg-ens33
vim /etc/sysconfig/network-scripts/ifcfg-ens37#关闭防火墙和增强机制
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0

9.3.2 配置SNAT转发规则

vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
或
echo '1' > /proc/sys/net/ipv4/ip_forward
sysctl -piptables -t nat -F
iptables -F
iptables -t nat -A POSTROUTING -s 192.168.223.0/24 -o ens37 -j SNAT --to-source 10.0.0.1

9.3.3 加载LVS内核模块

modprobe ip_vs          #加载 ip_vs模块
cat /proc/net/ip_vs       #查看 ip_vs版本信息

9.3.4 安装ipvsadm 管理工具

yum -y install ipvsadm

​​启动服务前须保存负载分配策略 

ipvsadm-save > /etc/sysconfig/ipvsadm
或
ipvsadm --save > /etc/sysconfig/ipvsadmsystemctl start ipvsadm.service

9.3.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.184.30:80 -m
ipvsadm -a -t 12.0.0.1:80 -r 192.168.184.40:80 -m
ipvsadm           #启用策略ipvsadm -ln         #查看节点状态,Masq代表 NAT模式
ipvsadm-save > /etc/sysconfig/ipvsadm           #保存策略

 

9.4 测试效果

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

十、总结

通过本文你可学习到什么是 LVS、LVS 的组成及作用、LVS 负载均衡集群的类型(负载均衡集群、高可用集群、高性能运算集群) 、LVS 负载均衡的通用体系结构(负载调度器、服务器池、共享存储)、LVS 负载均衡的三种工作模式(NAT、TUN、DR)、LVS 十种负载均衡调度算法(RR、WRR、LC、WLC、LBLC、LBLCR、DH、SH、SED、NQ)以及相关涉及到的 LVS 术语及说明等。

LVS负载均衡群集概念、NAT模式LVS负载均衡实战部署相关推荐

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

    目录 群集 群集的含义 为什么会有群集 群集的分类 负载均衡群集 高可用群集 高性能群集 负载均衡群集架构和工作模式 负载均衡的结构 负载均衡群集工作模式分析 LVS虚拟服务器 Linux Virtu ...

  2. 高效多用的群集之LVS负载均衡群集(NAT模式)

    目录 一.群集 1.群集的含义 2.为什么会有群集 二.群集的分类 1.负载均衡群集 2.高可用群集 3.高性能群集 三.负载均衡群集架构和工作模式 1.负载均衡的结构 第一层,负载调度器(Load ...

  3. iptables nat实验_【零基础学云计算】LVS负载均衡群集之NAT模式搭建 (实践篇)...

    实验原理图 实验环境 LVS调度器作为web服务器池的网关 LVS服务器配置两块网卡分别连接内外网 使用轮询(rr)调度算法 LVS负载调度器网段规划 内网33网关:192.168.144.1 外网3 ...

  4. LVS负载均衡群集概念

    LVS负载均衡群集概念 一.群集的含义 1.1 群集的产生 1.2 群集构成方案 二.群集可分为三种 三.负载均衡群集架构 四.负载均衡群集工作模式分析 五.三种负载调度工作模式 5.1 NAT模式 ...

  5. 运维企业专题(7)LVS高可用与负载均衡中篇——VS/NAT模式配置详解

    VS/NAT 在一组服务器前有一个调度器,它们是通过 Switch/HUB 相连接的.这些服务器提供相同的网络服 务.相同的内容,即不管请求被发送到哪一台服务器,执 行结果是一样的.服务的内容可以复制 ...

  6. LVS负载均衡群集部署之——NAT模式的介绍及搭建步骤

    文章目录 一.企业群集应用概述 1.1 群集的三种类型 1 负载均衡群集 2 高可用群集 3 高性能运算群集 1.2 负载均衡结构 1.3 负载均衡群集工作模式 (1) NAT模式--地址转换 (2) ...

  7. LVS负载均衡群集——NAT模式实例

    目录 一:企业群集应用概述 1.1群集的含义 1.2群集存在的必要 1.3解决的方法 二:企业群集的分类 2.1负载均衡群集(Load Balance Cluster) 2.2高可用群集(High A ...

  8. LVS负载均衡群集—NAT模式实例

    文章目录 前言 一.群集与分布式 1.1 群集的含义 1.2 系统性能扩展方式 1.3 群集的三种类型 1.4 LVS的负载调度算法 1.5 分布式系统 1.6 集群和分布式 1.7 负载均衡群集架构 ...

  9. LVS 负载均衡群集----NAT模式

    目录 一.企业群集应用概述 1.1 群集的含义 1.2 问题 1.3 解决办法 1.4 系统性能扩展方式 二.企业群集分类 2.1  负载均衡群集 2.2  高可用群集 2.3  高性能运算群集 三. ...

最新文章

  1. JavaScript中双叹号(!!)和单叹号(!)
  2. EffectiveJava(v3) - chapter5: Enums And Annotations
  3. HTTP协议中Content-Length的详细解读。
  4. 与微软.NET创始人Scott Guthrie面对面,“红衣教主”亲身传授推动成功转型的洪荒之力
  5. LeetCode 1974. 使用特殊打字机键入单词的最少时间
  6. 一个自己实现的简单的智能指针模板类
  7. 多线程之Thread类
  8. 编写程序FooBizBaz.java,从1循环到150并且在每行打印一个值,另外在每个3的倍数行上打印出“foo”,在每个5的倍数行上打印“biz”,在每个7的倍数行上打印输出“baz”。
  9. 水果店开业活动策划,水果店开业怎么搞活动
  10. 瓦伦达效应:在大是大非面前不要在乎结果所带来的后果,你就会成功!
  11. 重装linux后没声音,笔记本电脑安装ubuntu系统后外放没有声音 ,耳机正常,三步解决办法...
  12. 17世纪初诞生了第一台电子计算机,世界上第一台计算机诞生于多少年?
  13. 引导区坏 计算机无法启动,windows7旗舰版系统下注册表损坏导致无法引导启动怎么解决...
  14. C# Console Application 带参数调试
  15. 如何将Google Authenticator移至新手机(或多部手机)
  16. 自动获取/更新HTTPS证书并实现Nginx代理WSS协议
  17. 云南计算机专升本数据结构_云南省专升本计算机《数据结构》考试大纲
  18. 瓜分BAT的流量红利:头条向左,小米向右
  19. 【基金量化研究系列】大类资产配置研究(二)——股债二八轮动策略
  20. ocserv+锐速一键脚本/用户管理

热门文章

  1. buuctf小明的保险箱
  2. java在字符串中“==”和“equals”的区别
  3. B站容量管理:游戏赛事等大型活动资源如何快速提升10+倍?
  4. 云原生向量数据库Milvus(二)-数据与索引的处理流程、索引类型及Schema
  5. SQL注入原理及如何判断闭合符
  6. 哪些食物是益生菌的最佳补充剂
  7. 05 -描述统计学- Project 分析问卷数据
  8. Java8——Optional容器类
  9. C语言初探 之 printf压栈顺序(printf(%d %d %d %d %d %d\n,a++, ++a, a++, ++a, a++, ++a ))
  10. 论文的技术路线流程图如何绘制?