📄 00000000.htm
字号:
<HTML><HEAD> <TITLE>BBS水木清华站∶精华区</TITLE></HEAD><BODY><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER>发信人: xuzq (奔腾), 信区: Linux <BR>标 题: Rat留的家庭作业,有关集群技术! <BR>发信站: BBS 水木清华站 (Mon Jan 17 18:09:04 2000) <BR> <BR>我对于集群技术仅仅有一些粗浅的了解,而且偏重于 <BR>Web Server的集群应用工作,讲不出集群技术的全面 <BR>动向.我对这个问题比较感兴趣,希望能和诸位网友 <BR>交流.有很长时间没有实际接触了,恐怕有点跟不 <BR>上形势.上回网友问过我一次,就把这些东西概括 <BR>一下. <BR> <BR>注:有关集群的讨论都是在网络带宽足够的条件下进行 <BR>的,如果系统性能的下降是由于网络带宽不足引起的, <BR>增加带宽是提高系统性能最有效的方法. <BR> <BR>集群技术给我的感觉有点象"人海战术",或者说 <BR>"人多力量大".类似于分布式处理系统,我说不出 <BR>二者有什么区别,或者根本没有区别.分布式计算 <BR>现在有比较成熟的环境可以使用,如PVM,MPI等等. <BR>这些分布式,集群之类的名词,说的东西本质上都是 <BR>一样的. <BR> <BR>拿Web Server <BR>的例子来讲可能会比较好理解,大家知道Web Server <BR>为了提高对客户的响应速度,多采取preforked <BR>concurrent server(预先派生的并发服务)工作方式 <BR>即对于每一个客户请求,都会有一个Server的进程来 <BR>处理.如果同时访问Server的客户数量很多,会造成 <BR>主机上同时存在很多进程,进程间彼此争夺系统资源 <BR>导致Server响应速度下降(不知道现在Web Server <BR>有没有新的工作模式了).现在可以有两种途径解决 <BR>这个问题,一是提高单机系统的性能,限于资金方面 <BR>的原因,恐怕不是我等能够力所能及的.二是使用多台 <BR>计算机来分担整个系统的负载,这样就有可能利用多台 <BR>廉价的计算机来达到甚至超过昂贵的超级计算机的 <BR>能力.这就是集群技术存在和发展的基础. <BR> <BR>Web Server可能是比较早利用集群技术的应用.因为 <BR>整个系统的负载可以很容易地分成彼此独立的部分. <BR>如果我们拥有数台完全相同的Web Server,实际上客户 <BR>访问其中任何一台,都没有区别.这样每台计算机承担 <BR>的负载都在它的处理能力之内,不会引起响应速度 <BR>的显著下降,从而整个系统在大的客户访问量时,不会 <BR>出现单机系统响应速度显著下降的现象. <BR> <BR>将集群技术应用于Web Server,可以有两种方式,最简单 <BR>也是最常采用的是Round Robin DNS.这是DNS提供的一种 <BR>简单的负载分配机制,拿来给Web Server用再合适不过了. <BR>假定我们的集群系统拥有五台机器,网站内容相同,IP不同. <BR>这五个IP对应同一个域名.当客户用域名访问网站时,DNS <BR>对每个域名解析请求返回不同的IP地址,这样客户的访问 <BR>请求就被分散到不同的机器上了. <BR> <BR>第二种方式就是建立网关,负责负载分配的工作.真正的Web <BR>Server躲在网关后面.现在网关的实现有很多方法,有硬件, <BR>有软件,在网络不同层次上都有实现.现在比较普遍的是利用 <BR>Linux Virtual Server(LVS)在IP层利用封装技术作个地址转换. <BR>客户的TCP连接到达网关后,网关利用负载分配算法确定集 <BR>群中空闲的机器,网关将客户的请求直接转给Web Server来处 <BR>理,Web Server可以将回应直接传给客户.基于地址转换(NAT) <BR>网关,用户的每一个请求都要经过网关,但是回应可以由Web <BR>Server直接返回给客户.客户,网关和Web Server之间形成一个 <BR>封闭的环.以前我还利用HTTP请求的重定向方法做过一种网 <BR>关,因为当时我不知道NAT的方法.不利用NAT的话,TCP连接 <BR>是无法从网关无缝地转移到Web Server上去的(不知道现在 <BR>是不是有了新方法?).网关接收客户的HTTP请求后,利用负载 <BR>均衡算法,得到集群中空闲计算机的地址,然后构造一个重定向 <BR>的地址,返回给客户,客户利用这个地址重新连接Web Server. <BR>这两种不同实现方式的网关各有优缺点.利用NAT方式,客户仅 <BR>连接一次,就可以获得所需要的页面内容,但是每次HTTP请求都要 <BR>经过网关中转.HTTP请求重定向的方式,客户必须连接两次才能 <BR>得到所需页面,但是之后的请求都由Web Server来处理,和网关 <BR>就没有关系了. <BR> <BR>我觉得集群技术的难点应该是负载分配算法,因为现在对计算机 <BR>系统的负载还没有一个统一的指标,一般都是以CPU,磁盘,内存的 <BR>利用率,活动进程数目等数据来衡量,我用过loadavg这个数据,取得 <BR>容易,还在同构环境下还凑合,但是一直不满意比较,特别在异构的 <BR>集群环境下,难以确定究竟哪台计算机的负载轻. <BR> <BR>我对集群技术的了解差不多就这些了,不知道这个作业rat是否满意? <BR> <BR> <BR> <BR> <BR> <BR> <BR> <BR> <BR>-- <BR>※ 来源:·BBS 水木清华站 smth.org·[FROM: 210.73.64.229] <BR><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -