目录
1、负载均衡群集
(1)群集的概述
■根据群集所针对的目标差异,可分为三种类型
●负载均衡群集
●高可用群集
●高性能运算群集
■负载均衡群集(load balance cluster)
●提高医用系统的响应能力、尽可能处理更多的访问请求、减少延迟目标,获得高并发、高负载(LB)的整体性能
●LB的负载分配依赖于主节点的分流算法
(2)负载均衡群集结构
(3)负载均衡群集三种工作模式
■地址转换(NAT地址映射)
■IP隧道(隧道式叠加网络 特殊场景下才会使用)
■直接路由(DR)
LVS-NAT模式结构图
LVS-NAT模式
简单来说:就是通过防火墙规则+LVS-ipvsadm管理工具
1、先做内外网地址转换(映射)
2、基于LVS-NAT模式的RR轮训策略,对于 HTTP访问的请求,以轮询的方式转发给后端(使用LVS的ipvsadm工具来控制的)
以L4层的方式,直接基于TCP协议的IP: port端口进行转发
注:实验时,需要将外网的服务器网关指向lvs调度器,将内网的服务器网关也指向lLVS调度器
LVS-NAT 模式的特性:
1、负载均衡器和真实服务器,均在同一物理网络
2、接受请求、响应请求,均通过负载均衡器
3、内外网的映射,通过LVS服务器上的iptables的映射规则来完成
2、关于LVS虚拟服务器
■LVS的负载调度算法
(1)轮询(Round Robin)
将收到的访问请求按照顺序轮流分配给群集中的各节点(真实服务器),均等的对待每一台服务器,而不管服务期实际的连接数和系统负载
(2)加权轮询(Weighted Round Robin)
●根据调度器设置的权重值来分发请求,权重高的节点优先获得任务,分配的请求数越多
●保证性能的服务器承担更多的访问流量
(3)最少连接(Least Counnections)
根据真实服务器已建立的连接数进行分配,将收到的访问请求分配给连接数最少的节点
(4)加权最少连接(Weighted Least Counnections )
●在服务器节点的性能差异较大时,可以为真实服务器自动调整权重
●性能较高的节点将承担更大比例的活动连接负载
3、LVS-NAT(负载均衡NAT模式)
LVS调度器作为Web 服务器池的网关,LVS具有两块网卡,分别连接内外网,使用轮询(rr)调度算法
ens33连接内网192.168.182.100,ens37连接外网192.168.100.100 3号机
web服务器1:192.168.182.162 2号机
web服务器2:192.168.182.160 4号机
NFS服务器192.168.126.10
windows客户端:10.0.0.10
1、先修改 win10 将网卡改成vmnet2仅主机模式 此为 192.168.100.0段
将win10的ip设置为192.168.100.50
将ens256网卡 改成一下配置
重启网卡后
自己电脑中的Win10机器vmnet2也需要设置成
web服务器1:192.168.182.162 2号机
web服务器2:192.168.182.163 4号机
安装httpd服务 并关闭防火墙和增强功能,开启httpd服务
安装rpcbind和nfs服务并开启
web服务器2:192.168.182.163 实验机2号机
安装httpd服务并开启
[root@localhost ~]# systemctl start httpd
[root@localhost ~]# systemctl enable httpd
安装rpcbind和nfs服务并开启
[root@localhost ~]# systemctl start rpcbind
[root@localhost ~]# systemctl enable rpcbind
[root@localhost ~]# systemctl start nfs
[root@localhost ~]# systemctl enable nfs
将网卡配置一下
web服务器1:192.168.182.162 实验1号机
关闭防火墙和增强
安装httpd服务
[root@localhost ~]# systemctl start httpd
[root@localhost ~]# systemctl enable httpd
安装nfs rpcbind
[root@localhost ~]# systemctl start rpcbind
[root@localhost ~]# systemctl enable rpcbind
[root@localhost ~]# systemctl start nfs
[root@localhost ~]# systemctl enable nfs
NFS服务器192.168.182.172 安装rpcbind和nfs服务并开启
关防火墙和增强
安装rpcbind和nfs服务并开启
创建共享目录
修改配置文件
给权限 开启服务
配置web服务器挂载
web服务器1:192.168.182.163
[root@localhost html]# showmount -e 192.168.182.163
Export list for 192.168.182.163:
/opt 192.168.182.0/24
[root@localhost html]# mount 192.168.182.163:/opt/data1 /var/www/html
在主服务里面配置
web服务器1:192.168.182.162
[root@localhost html]# showmount -e 192.168.182.163.162
Export list for 192.168.182.162:
/opt 192.168.182.0/24
[root@localhost html]# mount 192.168.182.162:/opt/data2 /var/www/html
配置负载调度器LVS(ens33:192.168.182.172 ens37:192.168.100.100)
修改网卡前先安装ipvsadm
开启ip转发功能
net.ipv4.ip_forward #启用ip转发功能
net.ipv4.ip_forward 等于0表示不开启,为1表示开启。
如果将Linux系统作为路由或者VPN服务就必须要开启IP转发功能。临时开启方法:
echo 1 > /proc/sys/net/ipv4/ip_forward
或
sysctl -w net.ipv4.ip_forward=1
永久开启
vim /etc/sysctl.conf
net.ipv4.ip_forward=1
配置防火墙规则
[root@192 ~]# iptables -t nat -A POSTROUTING -s 192.168.182.0/24 -o ens37 -j SNAT --to-source 192.168.100.1
nat表:修改数据包中的源、目标IP地址或端口
POSTROUTING: 在进行路由判断之"后"所要进行的规则(SNAT/MASQUERADE)
PREROUTING: 在进行路由判断之"前"所要进行的规则(DNAT/REDIRECT)
-A: 在规则链的末尾加入新规则
-s: 匹配来源地址IP/MASK.
-o 网卡名称匹配从这块网卡流出的数据
-i 网卡名称匹配从这块网卡流入的数据
-j 控制类型
加载LVS内核模块
modprobe ip_vs #手动加载ip_vs模块
cat /proc/net/ip_vs #查看ip_vs版本信息
安装ipvsadm管理工具(之前已提前安装)
yum install -y ipvsadm
#注意:启动服务前必须保存负载分配策略,否则将会报错
ipvsadm-save > /etc/sysconfig/ipvsadm
或者ipvsadm --save > /etc/sysconfig/ipvsadm
或者touch /etc/sysconfig/ipvsadm
启动ipvsadm 服务
systemctl start ipvsadm.service
配置负载分配策略(NAT模式只要在服务器上配置,节点服务器不需要特殊配置)
ipvsadm -C #清除原有策略
ipvsadm -A -t 192.168.100.100:80 -s rr
ipvsadm -a -t 192.168.100.100:80 -r 192.168.182.162:80 -m -w 1
ipvsadm -a -t 192.168.100.100:80 -r 192.168.182.163: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 192.168.100.100:80 -r 192.168.182.162:80 -m -w 1 #删除群集中某一节点服务器
ipvsadm -D -t 192.168.100.100:80 #删除整个虚拟服务器
systemctl stop ipvsadm #停止服务(清除策略)
systemctl start ipvsadm #启动服务(重建规则)
ipvsadm-restore > /etc/sysconfig/ipvsadm #恢复LVS策略