服务器群集
群集:
LB群集,即负载均衡群集,提供大量并发连接请求
在服务器群集前端有分发设备director 和dispather:
这些分发设备分为硬件的(较昂贵但效率高)和软件的(便宜相对效率很低)硬件的有F5,软件的在linux内核空间里有ipvs机制可以用用户工具ipvsadm来设置ipvs,这种软件叫做lvs linux虚拟服务器,另外还可以使用squid 和nginx,从层次上来划分可以分为四层交换即协议加端口(F5、lvs)和七层交换(squid、nginx)
HA 高可用性群集(director作为HA的关键业务)
对director作备份:
两节点的,工作方式可分为主备模式和主主模式
多节点
相关软件heartbeat、rhcs(红帽的集群套件提供多节点)、corosync+openais+pacemake、drbd
HP高性能群集(实现快速的复杂的运算,专门有一台服务器作任务分发,企业内一般不用)
Lvs群集:
提供大量并发连接,提供冗余功能,可以灵活的添加服务器(real server)
外部用户访问对外虚拟ip(vip)经过director访问目标成为真实ip(rip),服务器返回数据时目的地址就为客户端地址。
Lvs群集的种类:
Lvs-network可以称为nat模型
在nat模型中director和群集服务器要在同一个局域网,所有信息都从director经过,分发设备会成为网络中的一个瓶颈。服务器可以是linux也可以是windows,并且服务器网关都指向dip
Lvs-dr直接路由模型
Director与群集服务器同样要在一个局域网,服务器地址可以不是私有地址,他需要把信息直接返回给客户端机器,相对lvs-nat支持更多的服务器节点
Lvs-tun隧道模型
Director和群集服务器可以在不同的局域网,通过隧道进行通讯
lvs调度算法有十种分为两大类:
根据调度算法决定把请求转发给哪个服务器
静态调度四种算法(不考虑实际情况)
Round-robin 轮询调度
Weighted round-robin 加权轮询调度(根据服务器自身处理能力分配处理请求的多少)
Destination hashing 目标哈希把某一用户的请求永远发送给某一服务器处理
Source hashing 来源哈希请求从哪里来返回信息时同样走这条路径
动态调度六种算法(根据服务器的实际情况,如是否正在处理请求和处理请求的个数以及自身的能力)overhead=连接数*256+空闲数
Least-connection 最少连接(发给overhead最小的)
Weighted Least-connection 加权的最少连接(用overhead除以权重发给最小的)
Shortest expected delay 不再考虑空闲数
Never queue 永不排队只要有没有活动链接的服务器就直接给它
Locality-based Least-connection 基于本地的最少连接
Locality-based Least-connection with Replication scheduling 带复制功能的本地最少连接
Lvs-nat案例:
案例拓扑:
案例介绍:
使用linux作为director对外虚拟ip192.16820.254对内网关地址192.168.3.254
Real server为两个web服务器,作负载平衡
使用lvs-nat类的群集
配置director:
安装ipvsadm软件包
[root@localhost ~]# cd /mnt/cdrom/Cluster
[root@localhost Cluster]# rpm -ivh ipvsadm-1.24-10.i386.rpm
确保ipvs在内核中已经有模块存在
使用用户工具ipvsadm配置ipvs
采用轮询模式
[root@localhost Cluster]# ipvsadm -A -t 192.168.20.254:80 -s rr
做nat
[root@localhost Cluster]# ipvsadm -a -t 192.168.20.254:80 -r 192.168.3.100 -m
[root@localhost Cluster]# ipvsadm -a -t 192.168.20.254:80 -r 192.168.3.200 �Cm
[root@localhost Cluster]# ipvsadm -L
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:PortForward Weight ActiveConn InActConn
TCP192.168.20.254:http rr
-> 192.168.3.100:httpMasq100
-> 192.168.3.200:httpMasq100
在浏览器中输入http://192.168.20.254会首先出现192.168.3.100的页面
再次刷新
[root@localhost Cluster]# ipvsadm -L
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:PortForward Weight ActiveConn InActConn
TCP192.168.20.254:http rr
-> 192.168.3.100:httpMasq108
-> 192.168.3.200:httpMasq107
采用加权轮询模式
[root@localhost Cluster]# ipvsadm -E -t 192.168.20.254:80 -s wrr
[root@localhost Cluster]# ipvsadm -e -t 192.168.20.254:80 -r 192.168.3.100 -m -w 5
再次访问192.168.20.254时会在一段时间内一直显示192.168.3.100的网页
[root@localhost Cluster]# ipvsadm -L
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:PortForward Weight ActiveConn InActConn
TCP192.168.20.254:http wrr
-> 192.168.3.100:httpMasq5113
-> 192.168.3.200:httpMasq107