Linux系统LVS负载均衡群集

目录

一、LVS负载均衡群集基础知识

(一)群集基本定义

(二)群集分类

1.负载均衡群集(LB)

2.高可用群集(HA)

3.高性能运算群集(HPC)

(三)负载均衡群集架构

1.第一层:负载调度器

2.第二层:服务器池

3.第三层:共享存储

(四)LVS负载均衡群集三种工作模式

1.地址转换模式(NAT)

2.IP隧道模式(TUN)

3.直接路由模式(DR)

(五)LVS的负载调度算法

1.固定调度算法

(1)轮询(rr)

(2)加权轮询(wrr)

(3)源地址哈希(sh)

(4)目的地址哈希(dh)

2.动态调度算法

(1)加权最小连接数调度(wlc)

(2)最小连接数调度(lc)

(3)基于地址的最小连接数调度(lblc)

二、LVS-NAT模式部署(示例)

(一)部署NFS共享存储

1.关闭防火墙和安全机制

2.安装nfs服务

3.新建目录,并创建站点文件

4.开启服务

5.增加权限

6.设置共享策略

7.发布共享

(二)部署web节点服务器

1.部署web服务器1

(1)关闭防火墙和安全机制

(2)本地yum安装nginx程序

(3)开启nginx服务

(4)指定网关

(5)重启网关

2.部署web服务器2

(三)部署负载调度服务器

 (1)关闭防火墙和安全机制

(2)开启路由转发功能

(3)配置网卡

(4)加载ip_vs模块

(5)下载ipvsadm服务

(6)保存并开启ipvsadm

(7)制定策略

(8)查看策略

(四)Windows客户机验证

1.修改客户机IP地址

2.访问虚拟windows网页进行验证


一、LVS负载均衡群集基础知识

(一)群集基本定义

       由多台主机构成,但对外只表现为一个整体,只提供一个访问入口(域名或IP地址),相当于一台大型计算机,使用LVS来达到服务器的高可用和负载均衡。

(二)群集分类

1.负载均衡群集(LB)

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

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

       代表:软件类nginx、LVS、HAProxy、SLBD

                  硬件类FS、绿盟

2.高可用群集(HA)

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

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

      通常用n个9来表示高可用的指标,例如:99.9%

       代表:keepalived、hearbeat

3.高性能运算群集(HPC)

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

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

(三)负载均衡群集架构

Linux系统LVS负载均衡群集_第1张图片

1.第一层:负载调度器

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

2.第二层:服务器池

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

3.第三层:共享存储

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

(四)LVS负载均衡群集三种工作模式

1.地址转换模式(NAT)

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

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

      承载双向流量的压力,可能成为整个群集的性能瓶颈。

2.IP隧道模式(TUN)

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

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

3.直接路由模式(DR)

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

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

(五)LVS的负载调度算法

1.固定调度算法

(1)轮询(rr)

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

(2)加权轮询(wrr)

       Weighted Round Robin,依据不同RS的权值分配任务。权重值较高的RS将优先获得任务,并且分配到的连接数将比权值低的RS更多。相同权值的RS得到相同数目的连接数。

(3)源地址哈希(sh)

       source hashing,以源地址为关键字查找--个静态hash表来获得需要的RS。

(4)目的地址哈希(dh)

      destination hashing,以目的地址为关键字查找一个静态hash表来获得所需RS。

2.动态调度算法

(1)加权最小连接数调度(wlc)

        Weighted Least Connections,假设各台RS的权值依次为Wi,当前tcp连接数依次为Ti,依次取Ti/Wi为最小的RS作为下一个分配的RS。

(2)最小连接数调度(lc)

       Least Connections,ipvs表存储了所有活动的连接。LB会比较将连接请求发送到当前连接最少的RS。

(3)基于地址的最小连接数调度(lblc)

       locality-based least-connection,将来自同一个目的地址的请求分配给同一台RS,此时这台服务器是尚未满负荷的。否则就将这个请求分配给连接数最小的RS,并以它作为下一次分配的首先考虑。

二、LVS-NAT模式部署(示例)

Linux系统LVS负载均衡群集_第2张图片

(一)部署NFS共享存储

负载调度器配置

1.关闭防火墙和安全机制

systemctl stop firewalld
#关闭防火墙
setenforce 0
#关闭安全机制

2.安装nfs服务

yum install nfs-utils rpcbind -y
#安装nfs服务

Linux系统LVS负载均衡群集_第3张图片

3.新建目录,并创建站点文件

mkdir /var/www/html/ {accp,benet} -p 
#在/var/www/html/目录下递归创建accp,benet文件
cd /var/www/html/
#切换目录
echo `

this is web01 page!

` > accp/test.html echo `

this is web02 page!

` > benet/test.html #创建站点文件

4.开启服务

systemctl start rpcbind
systemctl start nfs
#开启服务

5.增加权限

chmod 777 accp/ benet/
#增加权限

6.设置共享策略

vim /etc/exports
#配置共享策略
/var/www/html/accp 172.16.72.30/24(rw,sync)
/var/www/html/benet 172.16.72.30/24(rw,sync)
#添加要发布的共享目录

Linux系统LVS负载均衡群集_第4张图片

7.发布共享

exportfs -rv
#发布共享

(二)部署web节点服务器

1.部署web服务器1

(1)关闭防火墙和安全机制
systemctl stop firewalld
#关闭防火墙
setenforce 0
#关闭安全机制

(2)本地yum安装nginx程序
mount /dev/sr0 /mnt
#磁盘挂载
cd /etc/yum.repos.d
#切换目录
mkdir bak
#创建备份文件
mv *.repo bak
#将当前目录下所有以repo结尾的文件移动到bak文件中
vim local.repo
   [local]
   name=local
   baseurl=file:///mnt
   gpgcheck=0

Linux系统LVS负载均衡群集_第5张图片

Linux系统LVS负载均衡群集_第6张图片

(3)开启nginx服务
systemctl start nginx
(4)指定网关
vim /etc/sysconfig/network-scripts/ifcfg-ens33 
GATEWAY=192.168.233.40
#指向调度器内网IP地址
#DNS1=8.8.8.8

Linux系统LVS负载均衡群集_第7张图片

(5)重启网关
systemctl restart network

2.部署web服务器2

  web服务器2的部署与web服务器1一致,不在赘述

(三)部署负载调度服务器

 (1)关闭防火墙和安全机制
systemctl stop firewalld
#关闭防火墙
setenforce 0
#关闭安全机制

(2)开启路由转发功能
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1 
#将默认值修改为1,即为开启路由转发功能
sysctl -p

Linux系统LVS负载均衡群集_第8张图片

(3)配置网卡
cd /etc/sysconfig/network-scripts
#切换目录
ls
#查看目录下文件
cp ifcfg-ens33 ifcfg-ens36
#复制ifcfg-ens33文件并改名为ifcfg-ens36
vim ifcfg-ens36
#修改配置文件,配置ens36网卡IP地址
vim ifcfg-ens33
#修改配置文件,配置ens33网卡IP地址
ifconfig
#查看网卡信息

Linux系统LVS负载均衡群集_第9张图片

Linux系统LVS负载均衡群集_第10张图片

Linux系统LVS负载均衡群集_第11张图片

Linux系统LVS负载均衡群集_第12张图片

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

(5)下载ipvsadm服务
yum install ipvsadm -y、
#安装ipvsadm

Linux系统LVS负载均衡群集_第13张图片

(6)保存并开启ipvsadm
ipvsadm-save > /etc/sysconfig/ipvsadm
#保存负载分配策略
systemctl start ipvsadm.service
#开启负载分配策略
systemctl status ipvsadm.service
#查看状态

Linux系统LVS负载均衡群集_第14张图片

(7)制定策略
ipvsadm -A -t 12.0.0.1:80 -s rr
#指定IP地址 外网的入口  -s rr  轮询
ipvsadm -a -t 12.0.0.1:80 -r 192.168.79.220:80 -m
ipvsadm -a -t 12.0.0.1:80 -r 192.168.79.230:80 -m
#先指定虚拟服务器再添加真实服务器地址,-r:真实服务器地址 -m指定nat模式
ipvsadm
#开启服务

Linux系统LVS负载均衡群集_第15张图片

(8)查看策略
ipvsadm -ln -t 12.0.0.100:80

Linux系统LVS负载均衡群集_第16张图片

(四)Windows客户机验证

1.修改客户机IP地址

Linux系统LVS负载均衡群集_第17张图片

2.访问虚拟windows网页进行验证

   在地址栏访问IP地址,不断刷新浏览器测试负载均衡效果,刷新间隔需长点

Linux系统LVS负载均衡群集_第18张图片

Linux系统LVS负载均衡群集_第19张图片

你可能感兴趣的:(linux,lvs,负载均衡)