一、LVS简介
Linux Virtual Server(LVS),Linux虚拟服务器是章文嵩在国防科技大学就读博士期间创建的。
LVS可以实现高可用的、可伸缩的Web、Mail、Cache和Media等网络服务,最终目标是利用Linux操作系统和LVS集群软件实现一个高可用、高性能、低成本的服务器应用集群。
二、LVS工作模式
1.VS/NAT
通过网络地址实现地址转换实现的虚拟服务器
大并发访问时,调度器的性能成为瓶颈
2.VS/DR
直接使用路由技术实现虚拟服务器
节点服务器需要配置VIP(虚拟ip),注意MAC地址广播
3.VS/TUN
通过隧道方式实现虚拟服务器
三、负载均衡调度算法
常用调度算法:
轮询、加权轮询、最少连接、加权最少连接、源地址哈希
其他调度算法:
基于局部性的最少链接、到复制的基于局部性最少链接、目标地址散列、最短的期望的延迟、最少队列调度
四、NAT模式工作原理
五、环境准备
1.实验拓扑图
2.服务器准备
web1
[root@web1 ~]# yum -y install httpd
[root@web1 ~]# echo "192.168.2.100" > /var/www/html/index.html
[root@web1 ~]# systemctl start httpd
[root@web1 ~]# setenforce 0
[root@web1 ~]# iptables -F
web2
[root@web2 ~]# yum -y install httpd
[root@web2 ~]# echo "192.168.2.200" > /var/www/html/index.html
[root@web2 ~]# systemctl start httpd
[root@web2 ~]# setenforce 0
[root@web2 ~]# iptables -F
lvs
[root@lvs ~]# yum -y install ipvsadm
六、创建LVS-NAT集群
1.创建虚拟服务器
[root@lvs ~]# ipvsadm -A -t 192.168.4.5:80 -s rr
-A 添加虚拟服务器
-t 设置集群地址(VIP,Virtual IP) tcp/udp
-s 指定负载均衡调度算法(rr|wrr|lc|wlc|sh…)
2.添加real server
[root@lvs ~]# ipvsadm -a -t 192.168.4.5:80 -r 192.168.2.100:80 -m
[root@lvs ~]# ipvsadm -a -t 192.168.4.5:80 -r 192.168.2.200:80 -m
添加、删除服务器节点
-a 添加真实服务器
-d 删除真实服务器
-r 指定真实服务器(Real Server)的地址
-m 使用NAT模式;-g、-i分别对应DR、TUN模式
-w 为节点服务器设置权重,默认为1
3.查看IPVS规则
[root@lvs ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.4.5:80 rr
-> 192.168.2.100:80 Masq 1 0 0
-> 192.168.2.200:80 Masq 1 0 0
4.开启路由转发
[root@lvs ~]# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
[root@lvs ~]# sysctl -p
net.ipv4.ip_forward = 1
5.关闭防火墙与SELinux
[root@lvs ~]# iptables -F
[root@lvs ~]# setenforce 0
6.给web服务器配置网关
web1
[root@web1 ~]# nmcli connection modify ens33 ipv4.gateway 192.168.2.5
[root@web1 ~]# nmcli connection up ens33
web2
[root@web2 ~]# nmcli connection modify ens33 ipv4.gateway 192.168.2.5
[root@web2 ~]# nmcli connection up ens33
7.使用浏览器访问lvs服务器