文章目录
- 一: 负载均衡群集的原理
-
- 1.1: 企业群集应用概述
- 1.2: 群集分类
- 1.3:负载均衡群集工作模式
-
- 1.3.1:NAT模式
- 1.3.2:TUN模式
- 1.3.3:DR模式
- 二、LVS负载均衡
-
- 2.1 负载均衡的架构
- 2.1 LVS的负载调度算法
- 2.3:LVS群集创建与管理工具
- 三、搭建LVS-NAT负载均衡群集
-
- 3.1 环境
- 3.1 lvs负载调度器-配置
- 3.2 nfs客户机配置
- 3.3 web1配置
- 3.4 web2 配置
- 3.5 客户端验证
一: 负载均衡群集的原理
1.1: 企业群集应用概述
-
群集的含义
Cluster,集群、群集
由多台主机构成,但对外只表现为一个整体
-
问题
互联网应用中,随着站点对硬件性能、响应速度、服务稳定性、数据可靠性等要求越来越高,单台服务器力不从心
- 解决方法
使用价格昂贵的小型机、大型机
使用普通服务器构建服务群集
阿里云中的SLB是典型的负载均衡调度器,ECS是云主机(虚拟机)
SLB调度ECS,多个ECS组成资源池,构成云计算的基础
1.2: 群集分类
根据群集所针对的目标差异,可分为三种类型:
负载均衡群集
高可用群集
高性能运算群集
-
负载均衡群集(Load Balance Cluster)
提高应用系统的响应能力、尽可能处理更多的访问请求、减少延迟为目标,获得高并发、高负载(LB)的整体性能
LB的负载分配依赖于主节点的分流算法
-
高可用群集(High Availability Cluster)
提高应用系统的可靠性、尽可能地减少中断时间为目标,确保服务的连续性,达到高可用(HA)的容错效果
HA的工作方式包括双工和主从两种模式
- 双工是同时工作的意思; 主从是从服务器负责复制数据
-
高性能运算群集(High Performance Computer Cluster)
提高应用系统的CPU运算速度、扩展硬件资源和分析能力为目标,获得相当于大型、超级计算机的高性能运算(HPC)能力
高性能依赖于“分布式运算”、“并行计算”,通过专用硬件和软件将多个服务器的CPU、内存等资源整合在一起,实现只有大型、超级计算机才具备的计算能力。
1.3:负载均衡群集工作模式
负载均衡群集是目前企业用得最多的群集类型:
群集的负载调度技术有三种工作模式
- 地址转换
- IP隧道
- 直接路由(DR)
1.3.1:NAT模式
地址转换(Network Address Translation)
简称NAT模式,类似于防火墙的私有网络结构,负载调度器作为所有服务器节点的网关,即作为客户机的访问入口,也是各节点回应客户机的访问出口
服务器节点使用私有IP地址,与负载调度器位于同一个物理网络,安全性要优于其他两种方式
1.3.2:TUN模式
IP隧道(IP Tunnel)
简称TUN模式,采用开放式的网络结构,负载调度器仅作为客户机的访问入口,各节点通过各自的 Internet连接直接回应客户机,而不再经过负载调度器
服务器节点分散在互联网中的不同位置,具有独立的公网IP地址,通过专用IP隧道与负载调度器相互通信
1.3.3:DR模式
直接路由(Direct Routing)
简称DR模式,采用半开放式的网络结构,与TUN模式的结构类似,但各节点并不是分散在各地,而是与调度器位于同一个物理网络
负载调度器与各节点服务器通过本地网络连接,不需要建立专用的IP隧道
1.3.4:三种工作模式的区别
二、LVS负载均衡
2.1 负载均衡的架构
- 第一层,负载调度器(Load Balancer或Director)
- 第二层,服务器池(Server Pool)
- 第三层,共享存储(Share Storage)
2.1 LVS的负载调度算法
- 轮询(Round Robin)
将收到的访问请求按照顺序轮流分配给群集中的各节点(真实服务器),均等地对待每一台服务器,而不管服务器实际的连接数和系统负载
- 加权轮询(Weighted Round Robin)
根据真实服务器的处理能力轮流分配收到的访问请求,调度器可以自动查询各节点的负载情况,并动态调整其权重
保证处理能力强的服务器承担更多的访问流量
- 最少连接(Least Connections)
根据真实服务器已建立的连接数进行分配,将收到的访问请求优先分配给连接数最少的节点
- 加权最少连接(Weighted Least Connections)
在服务器节点的性能差异较大的情况下,可以为真实服务器自动调整权重
权重较高的节点将承担更大比例的活动连接负载
2.3:LVS群集创建与管理工具
- 使用ipvsadm工具
- 创建虚拟服务器
- 添加,删除服务器节点
- 查看群集及节点情况
- 保存负载分配策略
三、搭建LVS-NAT负载均衡群集
3.1 环境
一台客户机验证,两台Web服务器构建Server Pool,一个负载调度器LVS,一台NFS服务器共享存储。
lvs负载调度器,配置两张网卡,内网网卡地址 192.168.100.10,外网网卡地址 192.168.10.10
web服务器1 ip地址192.168.100.11 yum安装httpd
web服务器2 ip地址192.168.100.12 yum安装httpd
nfs服务器地址 192.168.100.13
访问客户机地址 192.168.10.14
3.1 lvs负载调度器-配置
- 加载ip_vs模块
[root@lvs ~]# modprobe ip_vs //加载ip_vs模块
[root@lvs ~]# cat /proc/net/ip_vs //查看
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
- 开启路由功能:
vim /etc/sysctl.conf
添加 net.ipv4.ip_forward=1
- 安装ipvsadm,
yum -y install ipvsadm
- 编写脚本设置lvs负载调度器
vim nat.sh
#!/bin/bash
ipvsadm -C
ipvsadm -A -t 192.168.10.10:80 -s rr //创建虚拟服务器,调度模式为轮询(rr)
ipvsadm -a -t 192.168.10.10:80 -r 192.168.100.11:80 -m //添加服务器节点,-m表示NAT集群模式
ipvsadm -a -t 192.168.10.10:80 -r 192.168.100.12:80 -m
ipvsadm -Ln // L:list 列表查看lvs虚拟服务器
3.2 nfs客户机配置
为了验证效果,我们使共享文件夹里的两个网页文件不同
yum -y install nfs-utils //安装nfs-utils
yum -y install rpcbind //安装rpcbind
mkdir /opt/web1 //创建共享的文件夹web1
mkdir /opt/web2 //创建共享文件夹web2
echo "<h1>this is web1</h1> > /opt/web1/index.html
echo "<h1>this is web2</h1> > /opt/web2/index.html
vim /etc/exports //编辑共享配置
/opt/web1 192.168.100.11/32(ro)
/opt/web2 192.168.100.12/32(ro)
:wq
systemctl restart nfs rpcbind
showmount -e
3.3 web1配置
yum -y install httpd
mount 192.168.100.13:/opt/web1 /var/www/html/ //挂载nfs文件
3.4 web2 配置
yum -y install httpd
mount 192.168.100.13:/opt/web2 /var/www/html/ //挂载nfs文件
3.5 客户端验证
在lvs调度器上查看:
Masq :Masquerade欺骗,隐瞒 说明使用的是NAT工作模式。
weight: 权重
rr:lvs的负载调度算法为轮询(Round Robin)