18.7 LVS介绍
18.8 LVS调度算法
18.9/18.10 LVS NAT模式搭建
本质区别在于网络OSI模型不同,LVS属于4层,nginx属于7层
LVS介绍
LVS: NAT/DR/IP Tunnel三种模式,核心角色load Balancer(分发器),处理用户请求Real Server(简称rs)
NAT模式
IP TUNNEL模式
DR模式
LVS调度算法
LVS NAT模式搭建
要组成一个dr(director)和两个rs(Real Server)的架构进行测试,其中01机器作为交互内网和外网的VIP需要有两块网卡
如下图先把机器二的克隆,重命名为03,不重启需要进入一个子shell(bash),修改03机器的IP地址,vim /etc/sysconfig/network-scripts/ifcfg-eno16777736,修改IP为192.168.242.130,重启网卡 systemctl restart network,ifconfig如下图所示
远程连接Xshell设置
修改字体并远程登录成功如下图
修改01机器上的另外一张网卡IP信息,如下图网卡网段为52,所以在该网卡配置文件中设置成52.147
修改IP,无需设置网关,ifup 网卡, 在windows上的dos界面查看外网是否能ping通它
修改成功后ifdown 网卡,ifup 网卡名,ip addr/if config查看ip,并测试是否能ping通
测试成功
建议yum安装iptables-services,启动后并drop iptables规则(即调用一个空的iptables规则,为防止影响实验数据)
安装成功后发现 systemctl start iptables-services显示unit not found
用rpm -ql iptables-services查看到底有哪些安装文件
输入systemctl start iptables;并iptables -nvL查看iptables规则生效
iptables -F清空;service iptables save(调用空的iptables规则)
查看各台机器上的防火墙selinux,修改配置文件为disabled(vi /etc/selinux/config中);setenforce 0临时立即生效为Permissive
01机器作为分发器需要把rs1和rs2的网关设置成01分发器的IP(即修改后无法与外界通信,只能和01分发器通信)
重启网卡
监测网关 route -n
准备工作完毕,NAT测试:
①在dir上安装ipvsadm(实现LVS的重要工具,和iptables类似)
②在dir上编写脚本,vim /usr/local/sbin/lvs_nat.sh
③执行脚本 sh /usr/local/sbin/lvs_nat.sh
无报错信息,说明脚本执行成功
把02.03的rs服务器主页都做一些修改方便测试信息的提取,如下图(因为是克隆机,所以02,03的nginx服务都在该路径下,修改index.html分别为liut02,liut03)
如下图,启动02,03的nginx,查看80端口是否监听,curl localhost测试
打开浏览器访问“公网”192.168.52.147(分发器IP)
访问的是rs2(即03机器)刷新网页一直都是rs2,由此想到是ipvsadm 规则中的-p 3(含义为延迟三秒跳转),去掉该参数并把wlc算法改成rr更为均配的算法再次测试发现还是如此,可能是浏览器缓存的问题,在虚拟机环境中用curl测试,结果如下:
测试成功
下图为ipvsadm查看规则的语句 ipvsadm -ln
扩展
lvs 三种模式详解 http://www.it165.net/admin/html/201401/2248.html
lvs几种算法 http://www.aminglinux.com/bbs/thread-7407-1-1.html
关于arp_ignore和 arp_announce http://www.cnblogs.com/lgfeng/archive/2012/10/16/2726308.html
lvs原理相关的 http://blog.csdn.net/pi9nc/article/details/23380589