说到
负载均衡,先得从集群讲起,集群就是一组连在一起的计算机,从外部看它是一个系统,各节点可以是不同的
操作系统或不同硬件构成的计算机。例如一个提供Web服务的集群,对外界来看是一个大Web服务器。不过集群的节点也可以单独提供服务。
9B[ZO2u$Q G0t&\+XD@"i:J0 集群的概念容易和一些概念(SMP 、NUMA、MPP、分布处理)相混淆,其主要区别在资源被共享和复制的级别不同。它们是按SMP、NUMA、MPP、集群、分布处理从最紧密到最松散的排列。
J(A5E!S_7I#RQ~Q0IXPUB技术博客[mw4t5}
v2S#f+qIXPUB技术博客\*T$A2C!aD
{\:W9yIXPUB技术博客1fO l/j W%Hu SMP(多处理系统):这种系统是在一台计算机里有多个CPU,CPU之间的地位是平等的,它们共享内存空间和I/O设备。其工作
方法是由操作系统负责将任务分解成多个并发进程,然后让其在不同的CPU上运行。
;}"{1m\_5b0ZZ-B#p6l0H0IXPUB技术博客 oN{`$X D NUMA(非统一内存存取):这种系统可以让多处理计算机的CPU比SMP更高效地共享本地内存,CPU可以更快速地存取单一的内存区域,不过如需要也可以用间接方式存取其他区域的内存,这种方法是让某些CPU在给定范围的物理内存中有更大的优先
使用权。
IXPUB技术博客
JBH m j)`2ob6f;l3`'L] ] ?_\4A0 MPP(巨型并行处理):这种系统的节点都有自己的CPU,并有自己的专有资源。此种结构相对独立,但各个节点一般没有完全存取I/O的能力。
9h;yjL A@$N0!B5D6Wf/f(~l0 集群:集群系统是由独立的计算机组成,但有控制
管理工具统一管理。
IXPUB技术博客}7[Q3s4[BI'APk|7oK c+rc0 分布处理:它是比我们要构筑的集群系统更松散的连接,一般是任务在不同的地方完成,没有可以作为整体管理的单一实体。
@;H5_.c].m0IXPUB技术博客
{4kI;?^L*f-? 以上的聚合方式有紧有疏,它们都有自己的适用范围,这里就不多说了,有兴趣可自己找些资料看,这里只是想让大家了解它所处的位置。
IXPUB技术博客&a!aA'L^6_Ln5yLp1kM5r{&m3a Z:WTn0 实现负载均衡的方法
IXPUB技术博客B
~?3bQIXPUB技术博客l
F8n2i'aTn;NQ~A)s 集群的目的是共享和高效地利用资源,提供大型运算,提供负载均衡分配请求压力以及出现故障时能够进行切换实现高可用性。
}s;}:d'PqS0Jc:M X3JcC0 限于篇幅,本文只对负载均衡的实现做些介绍(针对TurboLinux Cluster Server)。通过对相关
软件的分析,实现集群负载的功能是通过流量管理实现的,具体有这样几种实现方法:直接
路由(Direct forwarding)、
网络地址转换(NAT)、隧道
技术(Tunneling)。
IXPUB技术博客;t/p3`*_8F"Jk|/cIXPUB技术博客6A
S#?.pr
CU!@ 直接路由(Direct forwarding)
IXPUB技术博客^c;{|L5T0t'SiM-D1G
e6qH2i0 当参与集群的计算机和作为控制管理的计算机在同一个网段时可以用此法,控制管理的计算机接收到请求包时直接送到参与集群的节点。优点是返回给客户的流量不经过控制主机,速度快开销少。
IXPUB技术博客Sdpnp3t'OIXPUB技术博客9z9QC#tK7|p:D 网络地址转换(NAT)
:r&o%K^-z7{i q0IXPUB技术博客%X'V)y6sC4H[fqO(r 这种方法可能大家较熟悉,地址转换器有能被外界访问到的合法IP地址,它修改来自专有网络的流出包的地址,外界看起来包是来自地址转换器本身,当外界包送到转换器时,它能判断出应该将包送到内部网的哪个节点。优点是节省IP地址,能对内部进行伪装;缺点是效率低,因为返回给请求方的流量经过转换器。
IXPUB技术博客
k$}d#pJ7O6WP$V JV5N0 隧道技术(Tunneling)
mzf0N$_j5njZ0IXPUB技术博客
m~
o+a'd ~TN 这种方式是在集群的节点不在同一个网段时可用的转发机制,是将IP包封装在其他网络流量中的方法,为了
安全的考虑,应该使用隧道技术中的VPN,也可使用租用专线。
1gbeG'z0qw&sXnr {0 集群所能提供的服务是基于TCP/IP的Web服务、Mail服务、News服务、DNS服务、Proxy服务器等等。
IXPUB技术博客n)^@4IF4y,q ELIXPUB技术博客p@"Y.gcq)[5@l
VZ/]在计算机技术中集群负载平衡是自成体系的,目前它是一个热门技术也是一个高端
应用,Internet/Intranet中使用集群负载平衡
方案的地方十分广泛,尤其是大中型网站都难脱离这种技术,直接路由(Direct forwarding)、网络地址转换(NAT)、隧道技术(Tunneling)都会因需要而被采用。它在网络中的作用和被人们重视程度都是很高的,如果你也感兴趣的话,不妨也来试试。