目录
集群就是将多台主机作为一个整体,对外提供相同的服务
特点:由多个主机构成,都干同样的一件事,对外界展现为一个整体
场景:高并发,并发量过大时候加服务器的方式就是向外扩展(横向扩展),就是集群
1)负载均衡群集 LB
提高系统响应效率,处理更多的访问请求,减少延迟,实现高并发、高负载的能力
典型代表:软件类:LVS、 Nginx、HAProxy 等 硬件类:F5 绿盟
2)高可用群集 HA
提高系统可靠性,减少中断时间,确保服务的连续性(通常使用N个9来代表可用的指标)
典型代表:Keepalived heartbeat
3)高性能运输群集 HPC
通过云计算或分布式计算来获取高性能的CPU、内存等资源,来提高整体运算能力
LVS 有三种负载均衡的模式,分别是VS/NAT(nat 模式)、VS/DR(路由模式)、VS/TUN(隧道模式)。
调节器会作为所有以节点服务器的默认网关,也是客户端的访问入口和节点服务器返回响应消息的出口,也就是说调节器会承受双向数据流量的负载压力,可能会成为整个集群的性能瓶颈。由于节点服务器都处于内网环境,使用私网IP地址,所以具有一定安全性。
原理:首先负载均衡器接收到客户的请求数据包时,根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。然后负载均衡器就把客户端发送的请求数据包的目标IP地址及端口改成后端真实服务器的IP地址(RIP)。真实服务器响应完请求后,查看默认路由,把响应后的数据包发送给负载均衡器,负载均衡器在接收到响应包后,把包的源地址改成虚拟地址(VIP)然后发送回给客户端。
DR 直接路由Direct Routing
调节器仅作为客户端的访问入口,节点服务器的响应消息是直接返回客户端的,不需要经过调节器。(与NAT模式的区别)节点服务器与调节器是部署在同一物理网络内,因此不需要建立专用的IP隧道。(与TUN模式的区别)
DR 模式是企业首选的LVS模式。
原理:首先负载均衡器接收到客户的请求数据包时,根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。然后负载均衡器就把客户端发送的请求数据包的目标MAC地址改成后端真实服务器的MAC地址(R-MAC)。真实服务器响应完请求后,查看默认路由,把响应后的数据包直接发送给客户端,不需要经过负载均衡器。
TUN IP隧道 IP Tunnel
调节器仅作为客户端的访问入口,节点服务器的响应消息是直接返回客户端的,不需要经过调节器。但是由于节点服务器需要部署在不同位置的公网环境中,需要具有独立的公网IP,调节器与节点服务器是通过专用的IP隧道实现相互通信的。因此IP隧道模式的成本较高、安全性较低,且IP隧道需要额外的封装和解封装,性能会受到一定的影响。
原理:首先负载均衡器接收到客户的请求数据包时,根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。然后负载均衡器就把客户端发送的请求报文封装一层IP隧道(T-IP)转发到真实服务器(RS)。真实服务器响应完请求后,查看默认路由,把响应后的数据包直接发送给客户端,不需要经过负载均衡器。
负载调度器:内网关 ens33:192.168.30.105,外网关 ens36:12.0.0.1
Web节点服务器1:192.168.30.107
Web节点服务器2:192.168.30.108
NFS服务器:192.168.30.106
客户端:12.0.0.12
NFS服务器:192.168.30.106
- systemctl stop firewalld.service
- systemctl disable firewalld.service
- setenforce 0
-
- yum install nfs-utils rpcbind -y
- systemctl start rpcbind.service
- systemctl start nfs.service
-
- systemctl enable nfs.service
- systemctl enable rpcbind.service
-
- mkdir /opt/cyw /opt/cww
- chmod 777 /opt/cyw /opt/cww
- echo 'Cao yu wang is a bood boy !' > /opt/cyw/index.html
- echo 'FBI open the door !' > /opt/cww/index.html
-
- vim /etc/exports
- /usr/share *(ro,sync)
- /opt/cyw 192.168.30.0/24(rw,sync)
- /opt/cww 192.168.30.0/24(rw,sync)
-
- --发布共享---
- exportfs -rv

安装所需软件 nfs、rpcbind并启动

配置静态网页

NFS(Network File System)共享的目录和权限

发布共享

- systemctl stop firewalld.service
- systemctl disable firewalld.service
- setenforce 0
-
- yum install httpd -y
- systemctl start httpd.service
- systemctl enable httpd.service
-
- yum install nfs-utils rpcbind -y
- showmount -e 192.168.80.13
-
- systemctl start rpcbind
- systemctl enable rpcbind
-
- --192.168.80.100---
- mount.nfs 192.168.80.13:/opt/kgc /var/www/html
-
- vim /etc/fstab
- 192.168.80.13:/opt/kgc /var/www/html nfs defaults,_netdev 0 0
-
- --192.168.80.101---
- mount.nfs 192.168.80.13:/opt/benet /var/www/html
- echo 'this is benet web!' > /var/www/html/index.html
-
- vim /etc/fstab
- 192.168.80.13:/opt/benet /var/www/html nfs defaults,_netdev 0 0
关闭防火墙及selinux

两台服务器安装httpd服务并开启

安装所需软件 nfs、rpcbind并启动

---192.168.30.107---
挂载

---192.168.30.108---
挂载


内网关 ens33:192.168.30.105,外网关 ens36:12.0.0.1


配置ens36

重启并网络联通测试


- vim /etc/sysctl.conf
- net.ipv4.ip_forward = 1
-
- 或 echo '1' > /proc/sys/net/ipv4/ip_forward
- sysctl -p
-
- iptables -t nat -F
- iptables -F
- iptables -t nat -A POSTROUTING -s 192.168.30.0/24 -o ens36 -j SNAT --to-source 12.0.0.1




- for i in $(ls /usr/lib/modules/$(uname -r)/kernel/net/netfilter/ipvs|grep -o "^[^.]*");
-
- do echo $i; /sbin/modinfo -F filename $i >/dev/null 2>&1 && /sbin/modprobe $i;
-
- done

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

启动服务前须保存负载分配策略
- ipvsadm-save > /etc/sysconfig/ipvsadm
- 或者 ipvsadm --save > /etc/sysconfig/ipvsadm

(NAT模式只要在服务器上配置,节点服务器不需要特殊配置)
- ipvsadm -C #清除原有策略
- ipvsadm -A -t 12.0.0.1:80 -s rr
- ipvsadm -a -t 12.0.0.1:80 -r 192.168.30.107:80 -m -w 1
- ipvsadm -a -t 12.0.0.1:80 -r 192.168.30.108:80 -m -w 1
-
- -A 添加虚拟服务器
- -s 指定负载调度算法 (轮询:rr、加权轮询: wrr、最少连接: lc、加权最少连接: wlc )
- -a 表示添加真实服务器 (后端节点服务器)
- -t 指定 VIP地址及 TCP端口
- -m 表示使用 NAT群集模式.
- -w 设置权重 (权重为 0 时表示暂停节点)
-
- ipvsadm #启动策略
- ipvsadm -ln #查看节点状态,Masq代表 NAT模式
- ipvsadm-save > /etc/sysconfig/ipvsadm #保存策略

删除时候使用
- ipvsadm -d -t 12.0.0.1:80 -r 192.168.30.107:80 -m -w 1 #删除群集中某一节点服务器
- ipvsadm -D -t 12.0.0.1:80 #删除整个虚拟服务器
- systemctl stop ipvsadm #停止服务(清除策略)
- systemctl start ipvsadm #启动服务(重建规则)
- ipvsadm-restore > /etc/sysconfig/ipvsadm #恢复LVS策略
配置调度器的网关
- web01
- vim /etc/sysconfig/network-scripts/ifcfg-ens33
- 注释掉DNS,将lns(lb负载调度器)的ip配置成web01的网关
- 同理web02一致
- systemctl restart network 重启网络
web1

web2

在一台IP为12.0.0.20 的客户机使用浏览器访问 http://12.0.0.1/ ,不断刷新浏览器测试负载均衡效果,刷新间隔需长点(或者关闭Web服务的连接保持)。

