⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 00000000.htm

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

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -