天天看点

服务器群集及web服务器负载均衡Lvs-network小案例

服务器群集

群集:

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)

服务器群集及web服务器负载均衡Lvs-network小案例

外部用户访问对外虚拟ip(vip)经过director访问目标成为真实ip(rip),服务器返回数据时目的地址就为客户端地址。

Lvs群集的种类:

Lvs-network可以称为nat模型

服务器群集及web服务器负载均衡Lvs-network小案例

在nat模型中director和群集服务器要在同一个局域网,所有信息都从director经过,分发设备会成为网络中的一个瓶颈。服务器可以是linux也可以是windows,并且服务器网关都指向dip

Lvs-dr直接路由模型

服务器群集及web服务器负载均衡Lvs-network小案例

Director与群集服务器同样要在一个局域网,服务器地址可以不是私有地址,他需要把信息直接返回给客户端机器,相对lvs-nat支持更多的服务器节点

Lvs-tun隧道模型

服务器群集及web服务器负载均衡Lvs-network小案例

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案例:

案例拓扑:

服务器群集及web服务器负载均衡Lvs-network小案例

案例介绍:

使用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在内核中已经有模块存在

服务器群集及web服务器负载均衡Lvs-network小案例

使用用户工具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 –m

[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的页面

服务器群集及web服务器负载均衡Lvs-network小案例

再次刷新

服务器群集及web服务器负载均衡Lvs-network小案例

-> 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的网页

TCP192.168.20.254:http wrr