lvs一:lvs概述 LVS是linux内核的一部分,因此性能高 linux虚拟服务器(即分发器或调度器director); 他不是真正提供服务,但他接受客户的访问,为整个集群提供一个唯一的入口。虚拟服务器再和真实服务器通信(read server)。 它真正提供服务,集群中每个real server可以是一台物理主机,也可以是虚拟机。 lvs相关术语(必记): DS(或DR):Director server调度服务器。指的是前端负载均衡器节点。 RS:(real server)后端真实的工作服务器。 vip:virtual IP虚拟ip。是指向外部直接面用户请求,作为用户请求的目标的ip地址(外网ip地址)。 dip: Director server ip调度服务器ip,主要用于和内部主机通讯的ip地址。(内网ip地址) Rip:(real server ip)后端服务器的ip地址。 Cip:client ip,客户端的ip。 注意:LVS调度器需要有2块网卡,一块是对外(wan口)的网卡,一块是对内(lan口)的网卡。 二、LVS三种模式 三、lvs基本工作原理 1.当用户请求到达Director server,请求的数据报文会先到内核空间的PREROUTING链。此时报文的源ip为cip,目标ip为vip。 2.PREROUTING检查发现数据包的目标ip是本机,将数据包送至input链 3.ipvs比对数据包请求的服务是否为集群服务,修改数据包的目标ip地址为后端服务器ip,然后将数据吧发送至postrouting链。 4.postrouting链通过路由选路,将数据包发送给Real Server 5.Real Server对比发现目标为自己的ip开始构建响应报文回给Director Server。此时报文的源ip为RIP,目标ip为cip 6.Director Server在响应客户端前,此时会将源ip地址修改为自己的ip地址,然后响应给客户端。此时报文的源ip为vip,目标ip为cip。
1.LVS-NAT模型 特性 1).RS应该使用私有ip地址,RS的网关必须指向DIP 2)DIP和RIP必须在同一个网段内 3)请求和响应报文都需经过DIrector Server,高负载场景中,Director Server易成为性能瓶颈 4)支持端口映射 5)RS可以使用任意操作系统 6)缺陷:对Director Server压力会比较大,请求和响应都需经过director server
实验 准备real server的http服务 在node12、node13上做: 要让虚拟机上没有安装nginx yum -y install httpd curl systemctl restart httpd echo node12.com > /var/www/html/index.html 13就是echo node13.com > /var/www/html/index.html curl 127.0.0.1 做本地测试 route -n 或 netstat -r查看路由表信息 route del dafault gw 192.168.11.2 临时删除默认网关 route add default gw 192.168.11.11临时设置默认网关 或vim /etc/syscomfig/network-scripts/ifcfg-ens33中修改网关 route -n LVS负载均衡器配置(node11) 在node11上做的 lsof -i:80 && nginx -s quit curl 192.168.11.12 &&curl 192.168.11.13 必须确保能访问到此服务器的网站 添加一块新的nat类型的虚拟网卡 将虚拟网卡ens37的ip设置为192.168.10.11 在网络适配器下添加一块nat网卡 cd /etc/sysconfig/network-scripts/ cp -av ifcfg-ens33 ifcfg-ens37 删除两块网卡的gateway网关 route -n route del default gw 192.168.11.2 route del default gw 192.168.10.2 配置lvs负载均衡集群列表: ipvsadm -Ln ipvsadm -C 清空ipvs集群配置信息 ipvsadm -A -t 192.168.10.11:80 -s rr ipvsadm -a -t 192.168.10.11:80 -r 192.168.11.12:80 -m ipvsadm -a -t 192.168.10.11:80 -r 192.168.11.13:80 -m ipvsadm -Ln 查看并临时开启路由转发功能 cat /proc/sys/net/ipv4/ip_forward echo 1 > /proc/sys/net/ipv4/ip_forward ------------------------------------------------------------------ 开启永久路由转发 vim /etc/syscrl.conf net.ipv4.ip_forward=1 立即生效: sysctl -p cat /proc/sys/net/ipv4/ip_forward
在vmware虚拟机网络编辑器上 将子网ip改为192.168.10.1 笔记本物理机的vmnat8虚拟网卡ip和网关信息必须跟此处相同 在网卡中加入网关192.168.10.11 然后做测试 命令选项解释:[蓝字为常用选项]
LVS-DR数据链路层负载均衡 顾名思义,数据链路层负载均衡是指在通信协议的数据链路层修改mac地址进行负载均衡。
1.当用户请求到达Director Server,请求的数据会先到内核空间的pereouting链。此时报文的源ip为cip,目标ip为vip。 2.Prerouting检查发现数据包的目标ip是本机,将数据包发送至input链。 3.ipvs比对数据包请求的服务是否为集群服务,若是,将请求报文中的源mac地址修改为dip的mac地址,将目标mac地址修改为rip的mac地址,那么此时数据包将会发送至real server。 4.由于DS和rs在同一个网络中,所以是通过二层来传输。Postrouting链检查目标mac地址为rip的mac地址,那么数据包将会发送至real server。 5.rs发现请求报文的mac地址是自己的mac地址,就接收此报文。处理完成之后,将响应报文通过eth0网卡然后向外发出。此时的源ip地址为vip,目标ip为cip。 6.响应报文最终送达至客户端
1.Lvs-DR模型的特性 1.保证前端路由将目标地址为vip报文发给director server,而不是rs 2.rs可以使用私有地址;也可以是公网地址,如果使用公网地址,此时可以通过互联网对rip进行直接访问 3.rs跟Director server必须在同一个物理网络中 4.所有的请求报文经由Director Server,但响应报文必须不能进过Director Server 5.不支持地址转换,也不支持端口映射,因为DR模型是工作在二层的,二层只处理数据包中的mac地址 6.rs可以是大多数常见的操作系统 7.rs的网关觉不允许指向DIr(因为我们不允许他经过director) 8.RS上的lo接口配置vip的ip地址
3. 过程及解决方案: vs/dr模式配置在rel server上做的 node12 yum -y install httpd systemclt restart httpd vim /aa/lo.sh 脚本如下 chmod -v +x lo.sh . /aa/lo.sh 然后再传给13的ip
director调度器 在11上做的 给网卡临时设置vip地址 yum -y install ipvsadm -w 权重 -g指定LVS 的工作模式为DR直接路由模式(也是LVS 默认的模式) curl 192.168.11.12 curl 192.168.11.13 访问测试(win7/win10上做): |