目录
一、集群概述
一、负载均衡技术类型
四层负载均衡器 也称为 4 层交换机,主要通过分析 IP 层及 TCP/UDP 层的流量实现基于 IP 加端口的负载均衡,如常见的 LVS、F5 等;
七层负载均衡器 也称为 7 层交换机,位于 OSI 的最高层,即应用层,此负载均衡器支持多种协议,如HTTP、FTP、SMTP 等。7 层负载均衡器可根据报文内容,配合一定的负载均衡算法来选择后端服务器,即“内容交换器”。如常见的 HAProxy、Nginx。
二、负载均衡实现方式
硬件负载均衡产品:F5 、深信服 、Radware
软件负载均衡产品: LVS(Linux Virtual Server)、 Haproxy、Nginx、Ats(apache traffic server)
二、LVS结构
一、三层结构
负载调度器
服务器池
共享存储
二、架构对象
VS | Virtual Server ,也称为Director,负载均衡服务器 |
RS | Real Server,真正的服务器,集群中各节点 |
VIP | Director 向外部提供服务的 IP |
DIP | Director 向内部与 RS 通信的 IP |
RIP | 真实服务器的 IP |
CIP | 客户端的 IP |
三、LVS工作模式
LVS-NAT(NAT模式)
LVS-DR(直接路由模式)(应用最广泛)
LVS-TUN(IP隧道(Tunnel)模式,不常用)
FULL-NAT模式(双向转换模式,不常用)
四、负载均衡算法
一、静态负载均衡
rr(round robin,轮询 )
wrr(weight round robin,加权轮询)
sh(source hashing,源地址散列算法(HASH))
dh(destination hashing,目标地址 HASH)
二、动态负载
lc(leash-connection,最少连接 )
简单算法:active * 256 + inactive (谁的小选谁)
wlc(加权最少连接)
简单算法:(active * 256 + inactive) / weight(谁的小选谁)
sed(最少期望延迟)
简单算法:(active + 1) * 256 / weight (谁的小选谁)
nq(never queue,永不排队)
LBLC(基于局部性的最少连接 )
LBLCR(基于局部性的带复制功能的最少连接)
五、ipvsadm命令详解
-A | 添加虚拟服务节点 |
-D | 删除虚拟服务节点 |
-L | 查看虚拟服务节点列表 |
-a | 添加真实服务节点 |
-d | 删除真实服务节点 |
-l | 查看真实服务节点列表 |
-t | 指定虚拟服务器IP地址 |
-s | 指定调度算法 |
-r | 指定真实服务器节点IP地址 |
-w | 指定权重值 |
-g | 直接路由模式(默认) |
-i | 隧道模式(不常用) |
-m | NAT模式 |
六、LVS配置
一、基础配置
修改主机名
关闭防火墙
关闭Selinux
关闭Networkmanager
配置IP地址
二、实现NAT模型搭建
配置IP地址
增加一块网卡(NET模式 ip192.168.100.3, vmnet1 ip 192.168.131.100)
安装ipvsadm
开启路由转发功能
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p
或 cd /etc/sysctl.d &&touch route.conf
添加 net.ipv4.ip_forward = 1
加载 sysctl -p
加载ip_vs模块
modprobe ip_vs
lsmod |grep ip_vs
启动ipvsadm
创建对应的文件或目录
配置负载分配策略
ipvsadm -A -t 192.168.131.100:80 -s rr
ipvsadm -a -t 192.168.113.100:80 -r 192.168.100.4:80 -m
ipvsadm -a -t 192.168.131.100:80 -r 192.168.100.5:80 -m
ipvsadm-save > /etc/sysconfig/ipvsadm
配置web服务
安装nginx
修改网页页面
或 route add -net 0/0 gw 192.168.100.3
访问测试![](https://i-blog.csdnimg.cn/blog_migrate/7cdf49cb5abcbad8b6e5b200b13fe8aa.png)
深度刷新 ctrl+f5
三、实现的模型搭建
调整ARP参数
vim /etc/sysctl.conf
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects=0
net.ipv4.conf.ens33.send_redirects = 0
sysctl -p
配置虚拟ip
cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens33:0
安装ipvsadm![](https://i-blog.csdnimg.cn/blog_migrate/1f2140b7c34dbda57120254a3dba28ea.png)
加载iop_vs模块
modprobe ip_vs
lsmod |grep ip_vs
启动ipvsadm服务![](https://i-blog.csdnimg.cn/blog_migrate/59b44c10ccf2e083994421428003aa7e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/4cbb66778ab94851d8bfe23d9fe11498.png)
配置负载分配策略
ipvsadm -A -t 192.168.115.200:80 -s rr
ipvsadm -a -t 192.168.115.200:80 -r 192.168.115.4:80 -g
ipvsadm -a -t 192.168.115.200:80 -r 192.168.115.5:80 -g
配置web节点
vim /etc/sysctl.conf
net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.all.arp_announce=2
net.ipv4.conf.default.arp_ignore=1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce=2sysctl -p
cd /etc/sysconfig/network-scripts/
cp ifcfg-lo ifcfg-lo:0
vim ifcfg-lo:0DEVICE=lo:0
IPADDR=192.168.115.200
NETMASK=255.255.255.255
ONBOOT=yes
NAME=loopback:0route add -host 192.168.115.200/32 dev lo:0
访问测试
深度刷新 ctrl+f5