LVS群集
群集的类型:
负载均衡群集:提高应用程序的响应能力,以减少延迟为目标,获得高并发,高负载的整体性能。
高可用群集:提高应用系统的可靠性,尽可能的减少中断为目标,确保服务的连续性,达到高可用的容错效果。
高性能运算群集:提高应用系统的CPU运算速度,获得相当于大型,超级计算的高性能运算能力。
负载均衡群集的分层结构:负载调度器,服务器池,共享存储。
负载均衡的工作模式:
地址转换模式:NAT,负载调度器作为所有服务器节点的网关,即作为客户机的访问入口,也是各个节点回应客户机的访问出口,服务器节点使用私有IP地址,与负载均衡器位于同一个物理网络。
直接路由模式:DR,采用半开式的网络结构,服务器与调度器位于同一个物理网络。
IP隧道模式:TUN,采用开放式的网络结构,负载调度器仅作为客户机的访问入口,各节点通过各自的internet连接直接会用客户机,而不再进过负载均衡调度器。
LVS虚拟服务器是针对Linux内核开发的一个负载均衡的项目,LVS是linux系统内核的一部分,默认编译为ip_vs模块,使用管理ipvsadm管理工具。
LVS的负载调度算法:
轮询:将收到的访问请求按顺序来分配给群集中的各个节点。
加权轮询:根据真实服务器的处理能力轮流分配给群集中的各个节点。
最少连接:根据真是服务器已建立的连接数进行分配。
加权最少连接:为真是服务器自动调整权重,权重较高的节点承担更大比例的活动连接。
直接路由LVS-DR部署:
v 配置调度服务器:
#iptables -F 关闭防火墙
#setenfoece 0
#modprobe ip_vs 加载IP_vs模块
#yum -y install ipvsadm 安装ipvs管理工具
#ifconfig eth0:0 1.1.1.100/32 创建环回虚IP
#route add -host 1.1.1.100 dev eth0:0 创建虚IP路由
#service ipvsadm stop 清楚ipvsadm策略
#ipvsadm -A -t 1.1.1.100:80 -s rr 创建虚拟服务器
#ipvsadm -a -t 1.1.1.100:80 -r 1.1.1.1:80 -g -w 1 创建ipvsadm策略
#ipvsadm -a -t 1.1.1.100:80 -r 1.1.1.2:80 -g -w 1
#service ipvsadm save 保存策略
v 配置节点服务器:
#iptables -F
#setenforce 0 关闭防火墙
#ifconfig lo:0 1.1.1.100/32 创建虚IP
#route add -host 1.1.1.100 dev lo:0 创建虚IP路由
#vim /etc/sysctl.conf 关闭ARP解析
修改内容:
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
#service httpd restart
v 配置节点服务器:
#iptables -F 关闭防火墙
#setenforce 0
#ifconfig lo:0 1.1.1.100/32 创建虚IP
#route add -host 1.1.1.100 dev lo:0 创建虚IP路由
#vim /etc/sysctl.conf 关闭ARP解析
修改内容:
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
#service httpd restart
地址转换LVS-NAT部署:
v 配置负载调度器:
#vim /etc/sysctl.conf
修改内容:
Net.ipv4.ip_forword = 1 打开路由开关
#sysctl -p
#iptables -t nat -A POSTROUTING -s 1.1.1.0/24 -o eth0 -j SNAT --to-source 1.1.1.100 NAT转换
#service ipvsadm stop 清除ipvsadm策略
#ipvsadm -A -t 1.1.1.100:80 -s rr 创建虚拟服务器
#ipvsadm -a -t 1.1.1.100:80 -r 1.1.1.1:80 -m -w 1 创建ipvsadm策略
#ipvsadm -a -t 1.1.1.100:80 -r 1.1.1.2:80 -m -w 1
#service ipvsadm save
v 节点服务器只需要开启web服务即可:
#service httpd restart
ipvsadm命令选项总汇
-A |
表示添加虚拟服务器 |
-t |
表示使用TCP协议 |
-s |
表示指定负载调度的算法:轮询(rr),加权轮询(wrr),最少连接(lc),加权最少连接(wlc) |
-a |
表示添加服务器节点 |
-r |
表示真实服务器地址 |
-m |
表示使用NAT群集模式 |
-g |
表示使用DR群集模式 |
-i |
表示用TUN群集模式 |
-w |
表示权重 |
-ln |
查看ipvsadm节点状态 |
-C |
表示清楚ipvsadm策略 |
-d |
表示删除服务器节点 |
创建虚拟服务器命令格式:
Ipvsadm -A -t 虚拟地址:端口 -s 调度算法
例:ipvsadm -A -t 1.1.1.100:80 -s rr
创建ipvsadm策略:
Ipvsadm -a -t 虚拟地址:端口 -r 真实地址:端口 群集模式 -w 权重值
例:ipvsadm -a -t 1.1.1.100:80 -r 1.1.1.1:80 -m -w 1
注:
永久修改虚IP:
vim /etc/sysconfig/netwrok-scripts/ifcfg-lo:0
内容如下:
DEVICE=lo:0
ONBOOT=yes
IPADDR=1.1.1.1
NETMASK=255.255.255.255
永久修改路由方法一:
Vim /etc/rc.local
添加内容:
/sbin/route add -host 1.1.1.1 dev lo:0
永久修改路由方法二:
Vim /etc/sysconfig/networking/static-route
添加内容:
Any -host 1.1.1.1 dev lo:0
思考:
为什么节点服务器要使用lo环回口做虚IP?
答:节点服务器只用于发送web数据的源地址,并不需要监听客户机的访问请求,为了将虚IP的数据限制在本地,以免通信紊乱。
为什么要节点服务器关闭ARP解析?
答:当调度服务器和节点服务器使用同一个IP时,访问者发送ARP请求,那么如果是节点服务器响应,那么访问就不会通过调度服务器。