集群簡介 簡單地說,集群就是指?組(若?個)相互獨?的計算機,利??速通信?絡組成的?個較?的計算機服務系統(tǒng),每個集群節(jié)點(即集群中 的每臺計算機)都是運?各?服務的獨?服務器。這些服務器之間可以彼此通信,協(xié)同向?戶提供應?程序,系統(tǒng)資源和數(shù)據(jù),并以單?系 統(tǒng)的模式加以管理。當?戶請求集群系統(tǒng)時,集群給?戶的感覺就是?個單?獨?的服務器,?實際上?戶請求的是?組集群服務器。 舉個例?: 打開?歌,百度的頁?,看起來好簡單,也許你覺得??分鐘就可以制作出相似的?頁,?實際上,這個頁?的背后是由成千上萬臺服務器 集群協(xié)同?作的結(jié)果。 若要??句話描述集群,即?堆服務器合作做同?件事,這些機器可能需要統(tǒng)?協(xié)調(diào)管理,可以分布在?個機房,也可以分布在全國全球各 個地區(qū)的多個機房。 為什么要使?集群 (1)?性能 ?些國家重要的計算密集型應?(如天?預報,核試驗模擬等),需要計算機有很強的運算處理能?。以全世界現(xiàn)有的技術(shù),即使是?型 機,其計算能?也是有限的,很難單獨完成此任務。因為計算時間可能會相當長,也許?天,甚??年或更久。因此,對于這類復雜的計算 業(yè)務,便使?了計算機集群技術(shù),集中??上百臺,甚?成千上萬臺計算機進?計算。 假如你配?個LNMP環(huán)境,每次只需要服務10個并發(fā)請求,那么單臺服務器?定會?多個服務器集群要快。只有當并發(fā)或總請求數(shù)量超過單 臺服務器的承受能?時,服務器集群才會體現(xiàn)出優(yōu)勢。 (2)價格有效性 通常?套系統(tǒng)集群架構(gòu),只需要?臺或數(shù)?臺服務器主機即可。與動輒價值上百萬元的專?超級計算機相?便宜了很多。在達到同樣性能需 求的條件下,采?計算機集群架構(gòu)?采?同等運算能?的?型計算機具有更?的性價?。 早期的淘寶,?付寶的數(shù)據(jù)庫等核?系統(tǒng)就是使?上百萬元的?型機服務器。后因使?維護成本太?以及擴展設(shè)備費?成?何級數(shù)翻倍,甚 ?成為擴展瓶頸,?員維護也?分困難,最終使?PC服務器集群替換之,?如,把數(shù)據(jù)庫系統(tǒng)從?機結(jié)合Oracle數(shù)據(jù)庫遷移到MySQL開源 數(shù)據(jù)庫結(jié)合PC服務器上來。不但成本下降了,擴展和維護也更容易了。 (3)可伸縮性 當服務負載,壓?增長時,針對集群系統(tǒng)進?較簡單的擴展即可滿?需求,且不會降低服務質(zhì)量。 通常情況下,硬件設(shè)備若想擴展性能,不得不增加新的CPU和存儲器設(shè)備,如果加不上去了,就不得不購買更?性能的服務器,就拿我們現(xiàn) 在的服務器來講,可以增加的設(shè)備總是有限的。如果采?集群技術(shù),則只需要將新的單個服務器加?現(xiàn)有集群架構(gòu)中即可,從訪問的客戶? 度來看,系統(tǒng)服務?論是連續(xù)性還是性能上都?乎沒有變化,系統(tǒng)在不知不覺中完成了升級,加?了訪問能?,輕松地實現(xiàn)了擴展。集群系 統(tǒng)中的節(jié)點數(shù)?可以增長到?千乃?上萬個,其伸縮性遠超過單臺超級計算機。 (4)?可?性 單?的計算機系統(tǒng)總會?臨設(shè)備損毀的問題,如CPU,內(nèi)存,主板,電源,硬盤等,只要?個部件壞掉,這個計算機系統(tǒng)就可能會宕機,? 法正常提供服務。在集群系統(tǒng)中,盡管部分硬件和軟件也還是會發(fā)?故障,但整個系統(tǒng)的服務可以是7*24?時可?的。 集群架構(gòu)技術(shù)可以使得系統(tǒng)在若?硬件設(shè)備故障發(fā)?時仍可以繼續(xù)?作,這樣就將系統(tǒng)的停機時間減少到了最?。集群系統(tǒng)在提?系統(tǒng)可靠 性的同時,也??減?了系統(tǒng)故障帶來的業(yè)務損失,?前?乎100%的互聯(lián)??站都要求7*24?時提供服務。 (5)透明性 多個獨?計算機組成的松耦合集群系統(tǒng)構(gòu)成?個虛擬服務器。?戶或客戶端程序訪問集群系統(tǒng)時,就像訪問?臺?性能,?可?的服務器? 樣,集群中?部分服務器的上線,下線不會中斷整個系統(tǒng)服務,這對?戶也是透明的。 (6)可管理性 整個系統(tǒng)可能在物理上很?,但其實容易管理,就像管理?個單?映像系統(tǒng)?樣。在理想狀況下,軟硬件模塊的插?能做到即插即?。 (7)可編程性 在集群系統(tǒng)上,容易開發(fā)及修改各類應?程序。 集群的常見分類 3.1 集群的常見分類 計算機集群架構(gòu)按功能和結(jié)構(gòu)可以分成以下?類: 負載均衡集群,簡稱LBC或者LB ?可?性集群,簡稱HAC ?性能計算集群,簡稱HPC ?格計算集群 提?: 負載均衡集群和?可?性集群是互聯(lián)??業(yè)常?的集群架構(gòu)模式,也是我們要學習的重點。 3.2 不同種類的集群介紹 (1)負載均衡集群 -負載均衡集群為企業(yè)提供了更為實?,性價?更?的系統(tǒng)架構(gòu)解決?案。負載均衡集群可以把很多客戶集中的訪問請求負載壓?盡可能平 均地分攤在計算機集群中處理??蛻粼L問請求負載通常包括應?程序處理負載和?絡流量負載。這樣的系統(tǒng)?常適合使?同?組應?程序為 ?量?戶提供服務的模式,每個節(jié)點都可以承擔?定的訪問請求負載壓?,并且可以實現(xiàn)訪問請求在各節(jié)點之間動態(tài)分配,以實現(xiàn)負載均 衡。 -負載均衡集群運?時,?般是通過?個或多個前端負載均衡器將客戶訪問請求分發(fā)到后端的?組服務器上,從?達到整個系統(tǒng)的?性能和 ?可?性。?般?可?性集群和負載均衡集群會使?類似的技術(shù),或同時具有?可?性與負載均衡的特點。 負載均衡集群的作?為: 分攤?戶訪問請求及數(shù)據(jù)流量(負載均衡) 保持業(yè)務連續(xù)性,即7*24?時服務(?可?性)。 應?于Web及數(shù)據(jù)庫等服務器的業(yè)務 負載均衡集群典型的開源軟件包括LVS,Nginx,Haproxy等。如下圖所?: 提?: 不同的業(yè)務會有若?秒的切換時間,DB業(yè)務明顯長于Web業(yè)務切換時間。 (2)?可?性集群 ?般是指在集群中任意?個節(jié)點失效的情況下,該節(jié)點上的所有任務會?動轉(zhuǎn)移到其他正常的節(jié)點上。此過程并不影響整個集群的運?。 當集群中的?個節(jié)點系統(tǒng)發(fā)?故障時,運?著的集群服務會迅速作出反應,將該系統(tǒng)的服務分配到集群中其他正在?作的系統(tǒng)上運?。考慮 到計算機硬件和軟件的容錯性,?可?性集群的主要?的是使集群的整體服務盡可能可?。如果?可?性集群中的主節(jié)點發(fā)?了故障,那么 這段時間內(nèi)將由備節(jié)點代替它。備節(jié)點通常是主節(jié)點的鏡像。當它代替主節(jié)點時,它可以完全接管主節(jié)點(包括IP地址及其他資源)提供服 務,因此,使集群系統(tǒng)環(huán)境對于?戶來說是?致的,即不會影響?戶的訪問。 ?可?性集群使服務器系統(tǒng)的運?速度和響應速度會盡可能的快。他們經(jīng)常利?在多臺機器上運?的冗余節(jié)點和服務來相互跟蹤。如果某個 節(jié)點失敗,它的替補者將在?秒鐘或更短時間內(nèi)接管它的職責。因此,對于?戶??,集群?的任意?臺機器宕機,業(yè)務都不會受影響(理 論情況下)。 ?可?性集群的作?為: 當?臺機器宕機時,另外?臺機器接管宕機的機器的IP資源和服務資源,提供服務。 常?于不易實現(xiàn)負載均衡的應?,?如負載均衡器,主數(shù)據(jù)庫,主存儲對之間。 ?可?性集群常?的開源軟件包括Keepalived,Heartbeat等,其架構(gòu)圖如下圖所?: (3)?性能計算集群 ?性能計算集群也稱并?計算。通常,?性能計算集群涉及為集群開發(fā)的并?應?程序,以解決復雜的科學問題(天?預報,?油勘探,核 反應模擬等)。?性能計算集群對外就好像?個超級計算機,這種超級計算機內(nèi)部由數(shù)??上萬個獨?服務器組成,并且在公共消息傳遞層 上進?通信以并?運?應?程序。在?產(chǎn)環(huán)境中實際就是把任務切成蛋糕,然后下發(fā)到集群節(jié)點計算,計算后返回結(jié)果,然后繼續(xù)領(lǐng)新任務 計算,如此往復。 (4)?格計算集群 由于很少?到,在此略 特別提?: 在互聯(lián)?的?站中,?較常?的就是負載均衡集群和?可?性集群 常?的集群軟硬件介紹及選型 4.1 企業(yè)中常見的集群軟硬件產(chǎn)品 互聯(lián)?企業(yè)常?的開源集群軟件有:Nginx,LVS,Haproxy,Keepalived,heartbeat。 互聯(lián)?企業(yè)常?的商業(yè)集群硬件有:F5,Netscaler,Radware,A10等,?作模式相當于Haproxy的?作模式。 淘寶,趕集?,新浪等公司曾使?過Netscaler負載均衡產(chǎn)品。集群硬件Netscaler的產(chǎn)品圖如下圖所?: 集群硬件F5產(chǎn)品如下圖所?: 4.2 對于集群軟硬件產(chǎn)品如何選型 當企業(yè)業(yè)務重要,技術(shù)?量?薄弱,并且希望出錢購買產(chǎn)品及獲取更好的服務時,可以選擇硬件負載均衡產(chǎn)品,如 F5,Netscaler,Radware等,此類公司多為傳統(tǒng)的?型?互聯(lián)?企業(yè),如銀?,證券,?融業(yè)及寶馬,奔馳公司等 對于門戶?站來說,?多會并?軟件及硬件產(chǎn)品來分擔單?產(chǎn)品的風險,如淘寶,騰訊,新浪等。融資了的企業(yè)會購買硬件產(chǎn)品,如趕集? 等?站。 中?型互聯(lián)?企業(yè),由于起步階段?利潤可賺或者利潤很低,會希望通過使?開源免費的?案來解決問題,因此會雇傭?qū)iT的運維?員進? 維護。例如:51CTO等 相?較??,商業(yè)的負載均衡產(chǎn)品成本?,性能好,更穩(wěn)定,缺點是不能?次開發(fā),開源的負載均衡軟件對運維?員的能?要求較?,如果 運維及開發(fā)能?強,那么開源的負載均衡軟件是不錯的選擇,?前的互聯(lián)??業(yè)更傾向于使?開源的負載均衡軟件。 4.3 如何選擇開源集群軟件產(chǎn)品 中?企業(yè)互聯(lián)?公司?站在并發(fā)訪問和總訪問量不是很?的情況下,建議?選Nginx負載均衡,理由是Nginx負載均衡配置簡單,使??便, 安全穩(wěn)定,社區(qū)活躍,使?的?逐漸增多,成為流?趨勢,另外?個實現(xiàn)負載均衡的類似產(chǎn)品為Haproxy(?持L4和L7負載,同樣優(yōu)秀,但 社區(qū)不如Nginx活躍)。 如果要考慮Nginx負載均衡的?可?功能,建議?選Keepalived軟件,理由是安裝和配置簡單,使??便,安全穩(wěn)定,與Keepalived服務類 似的?可?軟件還有Heartbeat(使??較復雜,并不建議初學者使?) 如果是?型企業(yè)互聯(lián)?公司,負載均衡產(chǎn)品可以使?LVS+Keepalived在前端做四層轉(zhuǎn)發(fā)(?般是主備或主主,如果需要擴展可以使?DNS 或前端使?OSPF),后端使?Nginx或者Haproxy做7層轉(zhuǎn)發(fā)(可以擴展到百臺),再后?是應?服務器,如果是數(shù)據(jù)庫與存儲的負載均衡 和?可?,建議選擇LVS+Heartbeat,LVS?持TCP轉(zhuǎn)發(fā)且DR模式效率很?,Heartbeat可以配合drbd,不但可以進?VIP的切換,還可以 ?持塊設(shè)備級別的數(shù)據(jù)同步(drbd),以及資源服務的管理。 |
|