服務器群集技術
群集(Cluster)jishushijinjinianxingqidefazhangaoxingnengjisuanjideyixiangjishu。tashiyizuxianghudulidejisuanji,liyonggaosutongxinwangluozuchengyigedanyidejisuanjixitong,bingyidanyixitongdemoshijiayiguanli。qichufadianshitigonggaokekaoxing、kekuochongxinghekangzainanxing。yigequnjibaohanduotaiyongyougongxiangshujucunchukongjiandefuwuqi,gefuwuqitongguoneibujuyuwangxianghutongxin。dangyitaifuwuqifashengguzhangshi,tasuoyunxingdeyingyongchengxujiangyouqitafuwuqizidongjieguan。zaidaduoshumoshixia,qunjizhongsuoyoudejisuanjiyongyouyigegongtongdemingcheng,qunjineiderenyixitongshangyunxingdefuwudoukebeisuoyoudewangluokehusuoshiyong。
概述
群集技術使得網絡主管們可按其所需向網絡中添加資源而無需對網絡結構進行大規模的改動。網絡主管們都清楚一件事——兩liang點dian之zhi間jian直zhi線xian最zui短duan,然ran而er在zai實shi際ji工gong作zuo中zhong他ta們men卻que總zong是shi花hua費fei大da量liang寶bao貴gui的de時shi間jian繞rao道dao而er行xing,尤you其qi是shi在zai維wei護hu和he升sheng級ji各ge種zhong服fu務wu器qi時shi更geng是shi如ru此ci。他ta們men總zong是shi喜xi氣qi洋yang洋yang地di抱bao回hui一yi台tai嶄zhan新xin的de服fu務wu器qi,在zai用yong過guo一yi段duan時shi間jian後hou才cai發fa現xian它ta無wu法fa承cheng受shou龐pang大da的de網wang絡luo流liu量liang所suo帶dai來lai的de壓ya力li。於yu是shi這zhe台tai當dang初chu嶄zhan新xin的de機ji器qi便bian被bei淘tao汰tai掉diao,代dai之zhi以yi一yi台tai更geng新xin更geng龐pang大da的de機ji器qi,最zui後hou依yi然ran是shi同tong樣yang的de結jie局ju。網wang絡luo就jiu像xiang是shi一yi個ge永yong遠yuan無wu法fa完wan工gong的de建jian築zhu工gong地di一yi樣yang。
這(zhe)正(zheng)是(shi)群(qun)集(ji)技(ji)術(shu)所(suo)要(yao)解(jie)決(jue)的(de)問(wen)題(ti)。通(tong)過(guo)將(jiang)眾(zhong)多(duo)計(ji)算(suan)機(ji)協(xie)同(tong)起(qi)來(lai)完(wan)成(cheng)一(yi)樣(yang)工(gong)作(zuo),群(qun)集(ji)技(ji)術(shu)使(shi)網(wang)絡(luo)具(ju)有(you)了(le)無(wu)限(xian)的(de)可(ke)伸(shen)縮(suo)性(xing),就(jiu)像(xiang)一(yi)座(zuo)房(fang)子(zi),無(wu)需(xu)將(jiang)其(qi)推(tui)倒(dao)重(zhong)建(jian)也(ye)可(ke)以(yi)使(shi)其(qi)煥(huan)然(ran)一(yi)新(xin),並(bing)且(qie)由(you)於(yu)被(bei)群(qun)集(ji)在(zai)一(yi)起(qi)的(de)計(ji)算(suan)機(ji)可(ke)以(yi)協(xie)同(tong)工(gong)作(zuo),係(xi)統(tong)的(de)可(ke)用(yong)性(xing)也(ye)大(da)大(da)地(di)提(ti)高(gao)了(le)。一(yi)旦(dan)某(mou)個(ge)結(jie)點(dian)出(chu)現(xian)故(gu)障(zhang)或(huo)無(wu)法(fa)工(gong)作(zuo)了(le),群(qun)集(ji)中(zhong)的(de)任(ren)何(he)一(yi)台(tai)機(ji)器(qi)都(dou)可(ke)以(yi)接(jie)替(ti)它(ta)完(wan)成(cheng)工(gong)作(zuo)。
更geng吸xi引yin人ren的de是shi,群qun集ji技ji術shu使shi網wang絡luo管guan理li人ren員yuan不bu用yong再zai為wei設she計ji服fu務wu器qi的de能neng力li而er費fei神shen了le。它ta允yun許xu你ni依yi照zhao需xu要yao向xiang網wang絡luo中zhong添tian加jia資zi源yuan,量liang體ti裁cai衣yi。這zhe種zhong為wei網wang絡luo度du身shen訂ding做zuo服fu務wu器qi的de方fang法fa使shi得de網wang管guan工gong作zuo更geng有you效xiao率lv且qie更geng為wei節jie約yue資zi金jin。它ta省sheng去qu了le因yin服fu務wu器qi能neng力li不bu足zu而er帶dai來lai的de麻ma煩fan,避bi免mian了le因yin服fu務wu器qi能neng力li強qiang大da得de超chao過guo了le實shi際ji需xu要yao而er帶dai來lai的de浪lang費fei。
這zhe一yi切qie聽ting起qi來lai很hen美mei妙miao,但dan群qun集ji技ji術shu也ye被bei衝chong突tu和he複fu雜za性xing所suo困kun擾rao著zhe,要yao使shi其qi正zheng常chang運yun轉zhuan就jiu必bi須xu對dui不bu同tong的de網wang絡luo架jia構gou及ji其qi優you缺que點dian都dou有you所suo了le解jie。它ta還hai意yi味wei著zhe你ni必bi須xu先xian解jie決jue幾ji個ge難nan題ti:首先,將軟件與硬件群集結合起來是比較困難的;其次,已有的應用程序需要被大量改寫;第三,這項技術並不是唯一的和最好的解決方法。在某些情況下,采用對稱多機處理(SMP,Symmetrical Multiprocessing)服務器可能是更好的方法。
群集分類
不幸的是,“群集”一詞用法廣泛且意義含混不清。今天,“群集”一詞至少有三種指稱對象——服務器群(Server Farm)、雙機熱備份群集(Failover Cluster)和耦合群集(Coupled Cluster)。
服務器群是一種最古老和最簡單的解決方法。它由一係列節點機組成,這些節點機從一個稱為“管理器”dezhongxindanyuanchuhuoqurenwu。dangwangluozhongcunzaizhedaliangdejisuanhechulixuqiuerjiedianjizhijiandetongxunlianghendishi,zhezhongfangfabushiweiyizhongjiandanyouxiaoqieqiangdayoulidejishu。
Pixar動畫製作室使用一個服務器群來完成電影《玩具總動員》的動畫設計工作。在這一過程中,總體的應用是由許多小的、精(jing)細(xi)複(fu)雜(za)的(de)子(zi)任(ren)務(wu)組(zu)成(cheng)的(de)。每(mei)一(yi)個(ge)子(zi)任(ren)務(wu)都(dou)由(you)群(qun)集(ji)中(zhong)的(de)一(yi)台(tai)節(jie)點(dian)機(ji)單(dan)獨(du)完(wan)成(cheng)。群(qun)集(ji)所(suo)具(ju)有(you)的(de)最(zui)基(ji)本(ben)的(de)容(rong)錯(cuo)性(xing)能(neng)保(bao)證(zheng)了(le),一(yi)旦(dan)對(dui)某(mou)台(tai)機(ji)器(qi)發(fa)出(chu)的(de)請(qing)求(qiu)失(shi)敗(bai),“管理器”可以將這一請求重新分配給其它機器。
然而,服務器群技術是以“嚴格的平行”而著稱的。當遇到需要所有機器協同完成一樣工作的情況(這種情況是很常見的)時,這一模式便不再適用了。
雙機熱備份群集代表了另一種相對古老且極為簡單的網絡架構。它把精力放在了可用性而非可伸縮性上。它通常由兩個節點組成——一個主節點和一個備份節點。兩個節點共同來提供不間斷的服務。如果一台機器出現了故障,另一台會馬上接替它工作。
tongguoliyongjinmidixietongzaiyiqigongtongwanchengtongyigongzuodeduotaijiqi,ouhequnjisuoguanzhudebuzaishijiandandekeyongxinghuokeshengjixingwentile。yufuwuqiqunbutong,zaiouhequnjizhongmeitaijiqidegongzuobuzaishixiangduidulidele。taxuyaojinxingdaliangdekuajiediantongxun。yushuangjirebeifenqunjibutongdeshi,keyongxingshiyouzhenggequntigongtonglaitigongde。zheyiweizheouhequnjiyounenglicongrongdichuliduodianguzhang。
四個優勢
與SMP這樣的單機解決方案相比,耦合群集技術至少有4個較為明顯的優勢——絕對可伸縮性、相對可伸縮性、高可用性和高性價比。
絕對可伸縮性是耦合群集技術最明顯的優勢。在處理能力方麵,龐大的群集可以令最龐大的獨立服務器相形見絀。
xiangduikeshensuoxingshizhiwangluotongguoshiqunjibuduanchengchangermanzuqibuduanzengjiadeyingyongxuqiudenengli。ouhequnjizaizhefangmiandeyoushigengjiamingxian。ouhequnjidexiangduikeshensuoxingshidewangluozhuguanmenbubizaizaijiagediliandanyoukenenghenkuaijiubunengmanzuxuqiudexiaoxitongheanggui、龐pang大da的de但dan卻que可ke能neng由you於yu應ying用yong不bu足zu而er閑xian置zhi的de大da機ji器qi之zhi間jian做zuo出chu痛tong苦ku的de選xuan擇ze了le。耦ou合he群qun集ji淘tao汰tai了le那na種zhong叉cha車che式shi的de推tui倒dao重zhong來lai的de升sheng級ji方fang法fa,因yin為wei在zai每mei次ci係xi統tong升sheng級ji時shi這zhe種zhong方fang法fa都dou使shi得de以yi前qian的de投tou資zi付fu之zhi東dong流liu。
能否提供高可用性與網絡的可伸縮性同樣重要。由於每台節點機都有其自己的總線、供gong電dian係xi統tong和he磁ci盤pan係xi統tong,任ren何he一yi處chu單dan點dian失shi效xiao故gu障zhang都dou無wu法fa使shi整zheng個ge群qun集ji癱tan瘓huan。在zai多duo數shu情qing況kuang下xia,容rong錯cuo性xing都dou可ke以yi由you軟ruan件jian來lai實shi現xian。麻ma煩fan的de是shi,這zhe類lei軟ruan件jian的de開kai發fa通tong常chang是shi比bi較jiao困kun難nan的de。
耦(ou)合(he)群(qun)集(ji)在(zai)性(xing)價(jia)比(bi)上(shang)也(ye)勝(sheng)過(guo)了(le)具(ju)有(you)高(gao)處(chu)理(li)能(neng)力(li)的(de)服(fu)務(wu)器(qi)。通(tong)過(guo)使(shi)用(yong)通(tong)用(yong)的(de)構(gou)建(jian)模(mo)塊(kuai),花(hua)上(shang)少(shao)得(de)多(duo)的(de)錢(qian)就(jiu)可(ke)以(yi)構(gou)建(jian)一(yi)個(ge)與(yu)單(dan)個(ge)大(da)型(xing)服(fu)務(wu)器(qi)具(ju)有(you)相(xiang)同(tong)或(huo)更(geng)高(gao)計(ji)算(suan)能(neng)力(li)的(de)耦(ou)合(he)群(qun)集(ji)。
麵臨的難題
群(qun)集(ji)技(ji)術(shu)有(you)明(ming)顯(xian)的(de)優(you)勢(shi),但(dan)其(qi)缺(que)陷(xian)也(ye)同(tong)樣(yang)不(bu)容(rong)忽(hu)視(shi)。開(kai)發(fa)群(qun)集(ji)環(huan)境(jing)下(xia)的(de)應(ying)用(yong)程(cheng)序(xu)主(zhu)要(yao)是(shi)程(cheng)序(xu)員(yuan)而(er)不(bu)是(shi)網(wang)絡(luo)主(zhu)管(guan)們(men)的(de)工(gong)作(zuo)。但(dan)如(ru)果(guo)想(xiang)提(ti)供(gong)最(zui)優(you)化(hua)的(de)代(dai)碼(ma),程(cheng)序(xu)開(kai)發(fa)者(zhe)就(jiu)需(xu)要(yao)盡(jin)量(liang)多(duo)地(di)了(le)解(jie)一(yi)些(xie)關(guan)於(yu)網(wang)絡(luo)流(liu)量(liang)的(de)信(xin)息(xi)。
從本質上講,編寫得出色的這類應用程序必須能夠解決3個主要問題:係統部分失效、共享內存及對群集的管理。
duixitongbufenshixiaodechulinenglishizhidangxitongdemougezishebeichuxianguzhangshitaderongcuoheshiyingnengli,zheyinenglishiduishangwuyingyongchengxudezuijibenyaoqiu。dulidegongzuozhanheSMPzhujiyongyuanbuxuyaochulizheleiwenti,yinweidandudeyitaijiqibushizhengzaiyunxingjiushidangjile。qunjizeburan,taderenheyibufendouyoukenengshixiao。butongdeyingyongchengxuduicidefanyingshibuyiyangde。xuyaozhichudeshi,“失效”在這裏不僅僅是指硬件,如果某個應用程序需要使用某段內存,卻被告知該內存段無法被訪問,進程就會失敗。
youliangzhongbanfakeyiyonglaiduifubufenshixiao。gaokeyongxingqunjikeyizuidaxiandudiquebaomeitaijiqidezhengchangyunzhuan。zaizheleiqunjizhonghenshaochuxianmougejiedianshixiaohuoyinsuoxudexitongziyuanwufahuodeershijinchengzhongzhideqingkuang。
lingyizhongfangfashitongguorongcuojishulaishixiande。rongcuoqunjiquebaoxitongdequanbuziyuanzongshikeyihuodede。zhezhongtexingshijiaoyichulixitongsuobixude,suoyouxitongchengnuoledejiaoyiguochengdoubixujuyourongcuotexing。
那麼,企業級網絡的主管們應該采取哪種方案呢?對dui於yu新xin手shou,高gao可ke用yong性xing係xi統tong比bi較jiao容rong易yi管guan理li。這zhe種zhong係xi統tong一yi般ban都dou比bi較jiao保bao險xian。網wang管guan們men首shou先xian要yao注zhu意yi係xi統tong是shi否fou聽ting話hua,比bi如ru在zai無wu法fa對dui子zi設she備bei中zhong的de數shu據ju進jin行xing訪fang問wen後hou係xi統tong是shi否fou正zheng常chang或huo重zhong新xin發fa送song失shi敗bai了le的de請qing求qiu是shi否fou方fang便bian等deng。重zhong發fa請qing求qiu是shi目mu前qian最zui簡jian單dan且qie最zui普pu遍bian的de對dui付fu請qing求qiu失shi敗bai的de方fang法fa。這zhe一yi方fang法fa通tong常chang是shi由you查zha詢xun管guan理li器qi來lai實shi現xian的de,它ta反fan複fu地di重zhong試shi失shi敗bai了le的de請qing求qiu直zhi到dao它ta們men得de到dao響xiang應ying,這zhe樣yang便bian將jiang故gu障zhang部bu分fen與yu客ke戶hu端duan分fen離li開kai來lai。
對付請求失敗的另一個方法是所謂的“夥伴係統”(Buddy System)。在該係統中,每台節點機都與一個獨立磁盤冗餘陣列(RAID,Redundent Array of Independent Disk)子係統相連,再通過RAID子係統與另一節點機(夥伴機)相連。在係統正常運行時,每台節點機都隻訪問自己的RAID。yidanmoujiedianyinguzhangershixiao,qihuobanjijiangzidongchulisuoyoudeduishixiaojiedianjidecunchushebeidefangwen。zheyangbianshidezaijieshouqingqiudejiedianjishixiaoshi,fachuqingqiudejiedianjikeyitongguofangwenqihuobanjilaiwanchengqingqiuguocheng。zhezhongfangfayizuididechengbenshixianlejiedianyucipanxitongdegaorongcuoxing。xitongcuowukenenghuijiazhonghuobanjidegongzuofuheeryingxiangqixingneng,danshujurengkeyibeifangwendao。
共gong享xiang內nei存cun也ye不bu失shi為wei一yi種zhong好hao辦ban法fa,至zhi少shao對dui於yu耦ou合he群qun集ji來lai說shuo是shi這zhe樣yang的de。正zheng如ru前qian麵mian所suo提ti到dao的de,共gong享xiang內nei存cun的de目mu的de是shi使shi整zheng個ge群qun集ji在zai應ying用yong程cheng序xu看kan來lai仿fang佛fo是shi一yi個ge單dan獨du的de實shi體ti。
有幾家公司出售專為共享內存式耦合群集而優化了的硬件,稱為SMC。這些機器設備簡化應用程序的接口,使得應用程序不必再為群集中的每個獨立元素而花費精力了。但這種方法有兩個缺陷。首先,SMC加重了防止係統部分失效的應用程序的負擔——某mou個ge請qing求qiu的de失shi敗bai甚shen至zhi會hui引yin起qi整zheng個ge進jin程cheng的de失shi敗bai。通tong過guo改gai寫xie程cheng序xu,讓rang程cheng序xu將jiang失shi敗bai了le的de請qing求qiu發fa送song給gei群qun集ji中zhong的de其qi它ta節jie點dian或huo許xu可ke以yi避bi免mian類lei似si的de故gu障zhang,但dan這zhe樣yang做zuo便bian使shi得de共gong享xiang內nei存cun變bian得de沒mei有you意yi義yi了le。其qi次ci,應ying用yong程cheng序xu的de效xiao率lv會hui依yi數shu據ju是shi來lai自zi於yu本ben機ji內nei存cun或huo緩huan存cun還hai是shi其qi它ta節jie點dian而er呈cheng現xian出chu巨ju大da的de差cha異yi。
ruheyouxiaodiduiqunjijinxingguanliyeshiyigenanti。zuijibendeyigewentishi,xianyoudequnjiguanligongjudouhaibuchengshu,lilunshang,guanligongjuyinggaijubeiliangdiantexing。shouxian,tamenyinggaiquebaosuoyoudejiqijuyouxiangtongdegongneng,huozhezhishaochayibushihenda。zhebingbushishuosuoyoudeyingjianbixuwanquanyiyang,danjiediandegongnengzhishaoyinggaishiduichengdehuojiejinyuduichengde。congwangluoguanlidejiaodulaikan,zheyiweizherenheliangjiediandoukeyizaigongnengshanghuxiangtidai,yinerduisuoyoudejiediandejiankonghepeizhiyeyinggaishiyiyangde。qici,guanligongjuyinggainenggoutongguoyitaiyuanchengzhongduanduisuoyoudejiedianjinxingjiankonghepeizhi,ertongchangdezuofaqueshitongguofenbiedengludaomeitaijiedianjishanglaiduiqijinxingguanli,zhebingbushiyigehaobanfa。





閩公網安備 35020302001891號