一、LVS简介
1.LVS(Linux Virtual Server),负载调度器,内核集成
2.LVS体系结构
LVS架构的服务器集群系统有三个部分组成:Loader Balancer(负载均衡层),Server Array(中间的服务器群组层),Shared Storage(数据共享存储层)。
3.LVS工作原理
当用户访问 www.sina.com.cn 时,用户数据通过层层网络,最后通过交换机进入LVS服务器网卡,并进入内核网络层。进入PREROUTING后经过路由查找,确定访问的目的VIP是本机IP地址,所以数据包进入到INPUT链上。IPVS是工作在INPUT链上,会根据访问的vip+port 判断请求是否 IPVS 服务,如果是则调用注册的 IPVS HOOK 函数,进行 IPVS 相关主流程,强行修改数据包的相关数据,并将数据包发往 POSTROUTING 链上。POSTROUTING 上收到数据包后,根据目标 IP 地址(后端服务器),通过路由选路,将数据包最终发往后端的服务器上
4.LVS调度算法
分为两种:静态方法和动态方法
4.1静态方法:仅根据算法本身进行调度
RR:roundrobin,轮询,较常用WRR:Weighted RR,加权轮询,较常用SH:Source Hashing,实现session sticky,源IP地址hash;将来自于同一个IP地址的请求始终发往第一次挑中的RS,从而实现会话绑定DH:Destination Hashing;目标地址哈希,第一次轮询调度至RS,后续将发往同一个目标地址的请求始终转发至第一次挑中的RS,典型使用场景是正向代理缓存场景中的负载均衡,如: Web缓存
4.2 动态方法:主要根据每RS当前的负载状态及调度算法进行调度Overhead=value 较小的RS将被调度
LC:least connections 适用于长连接应用2、WLC:Weighted LC,默认调度方法,较常用SED:Shortest Expection Delay,初始连接高权重优先,只检查活动连接,而不考虑非活动连接NQ:Never Queue,第一轮均匀分配,后续SEDLBLC:Locality-based LC,动态的DH算法,使用场景:根据负载状态实现正向代理,实现Web Cache等LBLCR:LBLC with Replication,带复制功能的LBLC,解决LBLC负载不均衡问题,从负载重的复制到负载轻的RS,实现Web Cache等
5.三种工作模式
NAT模式DR模式TUN模式
二、LVS工作模式之LVS-NAT模式
1.LVS-NAT工作模式:实质是多目标的DNAT,将请求报文中的目标IP和Port修改成RS的RIP和Port
RIP和DIP应在同一个IP网络,且应使用私网地址;RS的网关要指向DIP请求报文和响应报文都必须经由Director转发,Director易于成为系统瓶颈支持端口映射,可修改请求报文的目标PORTVS必须是Linux系统,RS可以是任意OS系统
2.NAT模式配置及实现
2.1实验平台
Client:192.168.0.6/24 LVS: eth0:仅主机,192.168.0.10/24 eth1:NAT,10.0.0.8/24 RS1:10.0.0.7/24 GW:10.0.0.8/24 RS2:10.0.0.9/24 GW:10.0.0.8/24
2.2实验步骤
(1)实验环境配置
RS1和RS2安装http服务,做Web页面测试,参考此博客配置,点击这里,设置RS1和RS2网关
#/etc/sysconfig/network-scripts/ifcfg-ens33中增加以配置 GATEWAY=10.0.0.8 #systemctl restart network nmcli connection reload nmcli connection up ens33 route -n #查看路由
Client配置
#/etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 NAME=eth0 BOOTPROTO=static IPADDR=192.168.0.6 ONBOOT=yes PREFIX=24 #systemctl restart network nmcliconnection reload nmcli connection up eth0 route -n #查看路由
LVS配置eth0和eth1,安装ipvsadm
#/etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 NAME=eth0 BOOTPROTO=static IPADDR=192.168.0.10 ONBOOT=yes PREFIX=24 #/etc/sysconfig/network-scripts/ifcfg-eth1 DEVICE=eth1 NAME=eth1 BOOTPROTO=static IPADDR=10.0.0.8 ONBOOT=yes PREFIX=24 #修改/etc/sysctl.conf,否则lvs返回响应时,无法从LVS到internet net.ipv4.ip_forward = 1 #启用IP控制IP包转发 #命令查看 sysctl -p
(2)LVS服务器上配置模式和调度算法
#eth0/VIP,-A:增加, -t:tcp协议,-s:调度算法wrr(加权轮询) ipvsadm -A -t 192.168.0.10:80 -s wrr #管理集群中RS1和RS2,-m:NAT模式,-w:权重 ipvsadm -a -t 192.168.0.10:80 -r 10.0.0.7 -m -w 3 ipvsadm -a -t 192.168.0.10:80 -r 10.0.0.9 -m -w 2 ipvsadm -Ln
(3)LVS服务器上保存模式和调度算法规则,开机有效
ipvsadm -Sn > /etc/sysconfig/ipvsadm systemctl enable --now ipvsadm.service
参考博客请点击此处
在学习中进步,如有错误,请多多批评指正
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)