前言
本篇将简述的内容:Linux系统下的LVS集群
一、集群概述
1.负载均衡技术类型
(一)四层负载均衡器
四层负载均衡器也称为 4 层交换机,主要通过分析 IP 层及 TCP/UDP 层的流量实现基于 IP 加端口的负载均衡,如常见的 LVS、F5 等;
(二)七层负载均衡器
七层负载均衡器也称为 7 层交换机,位于 OSI 的最高层,即应用层,此负载均衡器支持多种协议,如HTTP、FTP、SMTP 等。7 层负载均衡器可根据报文内容,配合一定的负载均衡算法来选择后端服务器,即“内容交换器”。如常见的 HAProxy、Nginx。
2.负载均衡实现方式
(一)硬件负载均衡产品:
F5 、深信服 、Radware
(二)软件负载均衡产品:
LVS(Linux Virtual Server)、 Haproxy、Nginx、Ats(apache traffic server)
二、LVS结构
2.三层结构
1)负载调度器
2)服务器池
3)共享存储
架构对象
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模式(双向转换模式,不常用)
四、LVS负载均衡算法
1.静态负载均衡
rr round robin 轮询
wrr weight round robin 加权轮询
sh source hashing 源地址散列算法(HASH)
dh destination hashing 目标地址 HASH
2.动态负载均衡
动态负载均衡
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配置案例
1.基础配置
关闭防火墙
systemctl stop firewalld && systemctl disable firewalld
关闭Selinux
setenforce 0
关闭Networkmanager
systemctl stop NetworkManager && systemctl disable NetworkManager
配置IP地址
vim /etc/sysconfig/network-scripts/ifcfg-ens33
2.实现NAT模型搭建
(一)负载调度器配置
配置IP地址
增加一块网卡
cd /etc/sysconfig/network-scripts/ cp ifcfg-ens33 ifcfg-ens37
vim ifcfg-ens37
NAME=ens38 DEVICE=ens38
安装ipvsadm
yum install -y ipvsadm
开启路由转发功能
vim /etc/sysctl.conf net.ipv4.ip_forward = 1 sysctl -p
加载ip_vs模块
modprobe ip_vs lsmod |grep ip_vs
启动ipvsadm服务
systemctl start ipvsadm
配置负载分配策略
ipvsadm -A -t 192.168.16.100:80 -s rr ipvsadm -a -t 192.168.16.100:80 -r 192.168.115.4:80 -m ipvsadm -a -t 192.168.16.100:80 -r 192.168.115.5:80 -m
保存策略
ipvsadm-save > /etc/sysconfig/ipvsadm
(二)web节点配置
安装nginx
配置网关
route add -net 0/0 gw 192.168.115.3
测试
3.实现DR模型搭建
负载调度配置器-ens33 192.168.115.3 192.168.115.2 192.168.115.2
负载调度配置器-ens33:0 192.168.115.200 / /
web1-ens33 192.168.115.4 / /
web1-ifcfg-lo:0 192.168.115.200 / /
web2-ens33 192.168.115.5 / /
web2-ifcfg-lo:0 192.168.115.200 / /
(一)负载调度器配置
调整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
yum install -y ipvsadm
加载ip_vs模块
modprobe ip_vs lsmod |grep ip_vs
启动ipvsadm服务
systemctl start ipvsadm
配置负载分配策略
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
保存策略
ipvsadm-save > /etc/sysconfig/ipvsadm
(二)web节点配置
调整ARP参数
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=2
sysctl -p
配置虚拟IP地址
cd /etc/sysconfig/network-scripts/ cp ifcfg-lo ifcfg-lo:0
添加回环路由
route add -host 192.168.115.200/32 dev lo:0
安装httpd
访问192.168.115.200
进行验证
总结
LVS集群是一种强大的负载均衡解决方案,可以提高系统的可用性、性能和可扩展性。通过深入探索LVS集群的原理、架构和配置方法,我们可以更好地理解和应用这一技术,为构建高可用性的互联网应用提供有力支持。