文章目录
一、群集的含义和分类
1.1 群集的含义
- Cluster,集群、群集
- 由多台主机构成,但对外只表现为一个整体
1.2 群集的分类
- 负载均衡群集
- 提高应用系统的响应能力、尽可能处理更多的请求、减少延迟为目标,获得高并发,高负载的整体性能
- 高负载(LB)的负载分配依赖于主节点的分流算法
- 高可用群集
- 提高应用系统的可靠性,尽可能地减少中断时间为目标,确保服务的连续性,达到高可用的容错效果
- 高可用(HA)的工作方式包括双工和主从两种模式
- 高性能运算群集
- 提高应用系统的CPU运算速度、扩展硬件资源和分析能力为目标,获得相当于大型、超级计算机的高性能运算(HPC)能力
- 高性能依赖于“分布式运算”、“并行计算”,通过专用硬件和软件将多个服务器的CPU、内存等资源整合在一起,实现只有大型、超级计算机才具有的计算能力
二、LVS三种工作模式
2.1 地址转换——NAT模式
- 地址转换
- Network Address Translation,简称NAT模式
- 类似于防火墙的私有网络结构,负载调度器作为所有服务节点的网关,即作为客户机的访问入口,也是各节点访问回应客户机的访问出口
- 服务器节点使用私有IP地址,与负载调度器位于同一个物理网络,安全性要优于其他两种方式;缺点是,负载量相对于其他两种方式,较低
2.2 IP隧道——TUN模式
- IP隧道
- IP Tunnel,简称TUN模式
- 采用开放式的网络结构,负载调度器仅作为客户机的访问入口,各节点通过各自的Internet连接直接回应客户机,而不再经过负载调度器
- 服务器节点分散在互联网中的不同位置,具有独立的公网IP地址,通过IP隧道与负载调度器相互通信
2.3 直接路由——DR模式
- 直接路由
- Direct Routing,简称DR模式
- 采用半开放式的网络结构,与TUN模式的结构类似,但各节点并不是分散在各地,而是和调度器位于同一个物理网络
- 负载调度器与各节点服务器通过本地网络连接,不需要建立专用的IP隧道
2.4 TUN和DR的区别
- 相同点
- 都是各节点web节点直接响应客户机
- 不同点
- TUN各节点有独立的公网地址,DR没有
- TUN各web节点和调度器通过IP隧道的方式通讯; DR各web节点和调度器通过局域网的方式通讯
- TUN各web节点直接响应,DR各web节点需要通过路由器响应
三、LVS虚拟服务器的负载调度算法
3.1 最少连接
- 根据真实服务器已建立的连接数进行分配,将收到的访问请求优先分配给连接数最少的节点
3.2 加权最少连接
- 在服务器节点的性能差异较大时,可以为真实服务器自动调整权重
- 性能较高的节点将承担更大比例的活动连接负载
3.3 轮询
- 将收到的访问请求按照顺序轮流分配给群集中的各节点(真实服务器),均等地对待每一台服务器,而不管服务器实际的连接数和系统负载
3.4 加权轮询
- 根据调度器设置的权重值来分发请求,权重值高的节点优先获得任务,分配的请求数越多
- 保证性能强的服务器承担更多的访问流量
四、实战案例
4.1 案例环境
LVS调度服务器:
192.168.40.10(内网IP)
192.168.50.10(外网IP)
web1服务器:
192.168.40.20(内网)
web2服务器:
192.168.40.30(内网)
NFS服务器:
192.168.40.40(内网)
client:192.168.50.50
4.2 LVS调度器
modprobe ip_vs ##加载LVS内核模块
cat /proc/net/ip_vs ## 查看版本信息
yum -y install ipvsadm ## 安装管理软件ipvsadm
##编写调度器服务脚本
vi nat.sh
#!/bin/bash
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf ###开启路由地址转换
sysctl -p
ipvsadm -C ###清除内核虚拟服务器表中的所有记录
ipvsadm -A -t 192.168.50.10:80 -s rr ###创建虚拟服务器
ipvsadm -a -t 192.168.50.10:80 -r 192.168.40.20:80 -m ###添加服务器节点
ipvsadm -a -t 192.168.50.10:80 -r 192.168.40.30:80 -m ###添加服务器节点
ipvsadm -Ln ###查看节点状态,“-n”以数字形式显示显示地址,端口信息
ipvsadm管理命令:
-C:清除内核虚拟服务器表中的所有记录
-A:新增虚拟服务器
-t:提供的是tcp的服务
-s rr:启用轮询算法(wrr 加权轮询、lc最少连接、wlc加权最少连接)
-a:在一个虚拟服务器中增加一台新的真实服务器
-r:指定真实服务器
-m:LVS的工作模式为NAT模式
4.3 web服务器
web1(服务器网关地址指向LVS调度器)
yum -y install httpd
showmount -e 192.168.40.40
mount 192.168.40.40:/opt/test1 /var/www/html ##挂载
systemctl start httpd
showmount -e 192.168.40.40 ##查看发布情况
web2(服务器网关地址指向LVS调度器)
yum -y install httpd
showmount -e 192.168.40.40
mount 192.168.40.40:/opt/test2 /var/www/html ##挂载
systemctl start httpd
4.4 nsf服务器
yum -y install nfs-utils rpcbind
mkdir -p /opt/test1 /opt/test2
vi /opt/test1/index.html ##为tes1提供一个主页
<h1>this is test1 web</h1>
vi /opt/test2/index.html ##为tes2提供一个主页
<h1>this is test2 web</h1>
vi /etc/exports
/opt/test1 192.168.40.20/32 (ro)
/opt/test2 192.168.40.30/32 (ro)
systemctl start nfs ##启动服务查看发布情况
showmount -e
4.5 客户机验证效果
浏览器输出192.168.50.10验证
第一次访问会显示web1的内容,再次访问显示web2 的内容