群集技术概述:根据所需要的的环境不同,群集提供的功能也不相同(比如一个公司的网站有Apache服务器、Nginx服务器、Tomcat服务器、Mysql服务器等,这些服务器都不在一台主机上,有很多组成一个群,就可以说运用的群集技术)
群集类型:1.负载均衡群集(DNS轮询、反向代理)
2.高可用群集(故障切换、多机热备)
3.高性能运算群集(云计算)
负载均衡群集工作模式分析(3种模式)
地址转换(NAT模式)
简称NAT模式,类似于防火墙的私有网络结构,负载调度器作为所有服务器 节点的网关,即作为客户机的访问入口,也是各节点回应客户机的访问出口,服务器节点使用私有IP地址,与负载调度器位于同一个物理网络,安全性要 优于其他两种方式
IP隧道(TUN模式)
简称TUN模式,采用开放式的网络结构,负载调度器仅作为客户机的访问入口,各节点通过各自的Internet连接直接回应客户机,而不再经过负载调度器,服务器节点分散在互联网中的不同位置,具有独立的公网IP地址,通过专用IP 隧道与负载调度器相互通信
直接路由(DR模式)
简称DR模式,采用半开放式的网络结构,与TUN模式的结构类似,但各节点 并不是分散在各地,而是与调度器位于同一一个物理网络,负载调度器与各节点服务器通过本地网络连接,不需要建立专用的IP隧道
负载均衡群集的架构模式:
负载均衡调度器:用来调度服务
Web服务器池:所有服务器群
共享存储:所有服务器都可共享的存储设备
内核模块名称:ip_vs
加载内核中的模块:modprobe ip_vs
查看模块信息: cat /proc/net/ip_vs
LVS常用算法
rr(轮询):调度器通过"轮叫"调度算法将外部请求按顺序轮流分配到集群中的真实服务器上,它均等地对待每一台服务器,而不管服务器上实际的连接数和系统负载
wrr(加权轮询):调度器通过"加权轮叫"调度算法根据真实服务器的不同处理能力来调度访问请求,这样可以保证处理能力强的服务器处理更多的访问流量。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值
lc(最少连接):调度器通过"最少连接"调度算法动态地将网络请求调度到已建立的链接数最少的服务器上,如果集群系统的真实服务器具有相近的系统性能,采用"最小连接"调度算法可以较好地均衡负载
wlc(加权最少连接):在集群系统中的服务器性能差异较大的情况下,调度器采用"加权最少链接"调度算法优化负载均衡性能,具有较高权值的服务器将承受较大比例的活动连接负载。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值
操作LVS软件:ipvsadm
ipvsadm使用方法:
查看调度详情:
添加调度器:ipvsadm -A -t 192.168.0.21:80 -s rr
-A:添加虚拟服务器
-t:指定VIP地址
-s:指定负载调度算法(rr wrr lc wlc)
添加节点服务器:ipvsadm -a -t 192.168.0.21:80 -r 192.168.1.100:80 -m -w 1
-a:添加真实服务器
-t:指定VIP地址
-r:指定RIP地址
-m:表示NAT群集模式(-g DR -i TUN)
-w:设置权重(0表示暂停节点)
先用两台电脑搭建httpd服务,写两个网页IP地址设置分别为192.168.1.100和192.168.1.101
在网关服务器上配置好防火墙,用LVS-NAT代替DNAT策略实现访问网关服务器的外网卡IP地址去访问内网的网页,实现两个网页互相调用,刷新会调用不同服务器的httpd服务
1.网关服务器下载安装ipvsadm
rpm -ivh ipvsadm-1.26-2.el6.x86_64.rpm
2.配置网关服务器
开启路由转发功能:修改/etc/sysctl.conf文件
net.ipv4.ip_forward = 1
配置SNAT策略:iptables -t nat -I POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 192.168.0.21
删除FORWARD链策略:iptables -D FORWARD 1
网关服务器上要在INPUT链中开启80端口(因为是ipvsadm代处理80端口所以别人要通过80端口访问进来)
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
3.配置LVS-NAT模式代替之前的DNAT策略
添加调度服务器:ipvsadm -A -t 192.168.0.21:80 -s rr
添加节点服务器:ipvsadm -a -t 192.168.0.21:80 -r 192.168.1.100:80 -m -w 1
ipvsadm -a -t 192.168.0.21:80 -r 192.168.1.101:80 -m -w 1
4.测试,访问192.168.0.21:80刷新查看网页是否不但分别调用两个Apache服务器的网页
实现红线圈起来的部分,一台调度服务器,两台httpd服务器,一台测试机通过虚拟IP地址访问,实现两台httpd服务互相均衡调用
调度服务器配置
1.配置网卡eth0:0——ifconfig eth0:0 192.168.1.200/32
2.安装操作软件:rpm -ivh /media/CentOS_6.5_Final/Packages/ipvsadm-1.26-2.el6.x86_64.rpm
3.加载模块并查看:modprobe ip_vs 》cat /proc/net/ip_vs
补充:关闭重定向响应
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.eth0.send_redirects = 0
net.ipv4.conf.eth1.send_redirects = 0
后端两台服务器的配置
1.调整/proc内核参数,关闭默认ARP响应
echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
2.添加虚拟网卡lo:0——ifconfig lo:0 192.168.1.200/32
3.添加一条路由记录,将访问VIP的数据限制在本地,以避免通信紊乱
route add -host 192.168.1.200 dev lo:0
192.168.1.100的vip配置信息: 192.168.1.101的vip配置信息:
ipvs规则配置(调度服务器上配置)
ipvsadm -A -t 192.168.1.200:80 -s rr
ipvsadm -a -t 192.168.1.200:80 -r 192.168.1.100:80 -g -w 1
ipvsadm -a -t 192.168.1.200:80 -r 192.168.1.101:80 -g -w 1
测试:
使用测试机测试访问192.168.1.200
刷新会转换页面
查看调度服务器上的情况信息:ipvsadm -ln
红色为两台后端服务器分别调度的次数