一.集群的定義
1.定義
2.分類
(1)負載均衡集群(LBC/LB)
(2)高可用集群(HAC)
二.使用集群的意義
1.高性價比和性能比
2.高可用性
3.可伸縮性強
4.持久和透明性高
三.常見的兩種集群模式拓撲
1.LVS(-DR)集群模式
(1)工作架構
(2)LVS下的相關術語
(3)LVS的工作模式
VS/NAT:
VS/DR:
VS/TUN:
(4) LVS調度器算法
固定調度:
動態調度:
?2.haproxy/nginx模式
?四.常用集群軟硬件列舉
1.企業常用集群軟件
2.企業常用集群硬件
?
一.集群的定義
1.定義
是一組協同工作的服務器,在外部訪問者看來是一個整體。集群是一種并行或分布式系統,包括一個互連的整體計算機集合作為一種單一、同意的計算資源使用,使用集群管理服務,可以獲得更高的性能、可靠性和靈活性,實現資源的高度可用。集群又可以分為負載均衡集群、高可用性集群、高性能計算機群、網絡計算等類別。
2.分類
(1)負載均衡集群(LBC/LB)
也可以稱服務器群,一般通過一個或多個前端負載均衡器將數據請求轉發到后端部分服務器上,使客戶訪問請求壓力在各服務器之間盡可能分攤,包括程序處理負載和網絡流量負載,也可以實現訪問請求在各節點間動態分配,靈活負載。
(2)高可用集群(HAC)
高可用集群下的服務器運行速度和響應速度較快,一般是已配置好的集群服務中有任意節點失效時,將其分配到的壓力自動轉移到其他正常節點上,一般情況下這個節點的失效不會影響整個集群的運行,如果主節點失效,次節點完全可以接替其身份和資源進一步正常處理主節點下的任務。
二.使用集群的意義
1.高性價比和性能比
以pc服務器或RISC服務器組成集群可以大規模降低部署成本,分開管理,在性能上也有很大的優勢
2.高可用性
在硬件和軟件上都有冗余,可以進一步檢測到軟硬件的故障,進而解決或屏蔽故障有正常運轉的節點繼續提供服務
3.可伸縮性強
集群系統的節點數可以到幾千甚至幾萬個,在其上甚至可以簡易地去開發應用程序
4.持久和透明性高
服務器對于客戶端來說,部分服務器的加入和退出不會中斷對用戶的服務,對用戶來說相對透明
三.常見的兩種集群模式拓撲
1.LVS(-DR)集群模式
(1)工作架構
如圖示,多臺提供服務的服務器(組)和數據備份(共享存儲)服務器位于局域網內,提供服務的服務器又連接到廣域網,用戶通過互聯網/加速器能夠進行訪問。LVS模式下用戶發出數據請求,LVS負載均衡服務器組收到后按自身算法1將請求通過廣域網交給apache/nginx服務器組,apache/nginx服務器組處理好后直接將結果返還給用戶,無需經過負載均衡組。
LVS-DR負載均衡服務器組所在層又可稱為load balancer(包含director server),apache/nginx服務器群組所在層又可稱為server array(包含real server——集群節點),后方的數據共享存儲層可稱為shared storage。
load balancer:位于整個集群系統最前端,由一臺或多臺負載調度器組成,LVS是安裝在director server上的,其中包含有LVS功能設定的路由表,通過路由表把數據請求抓發給server array,還可以在direct server上安裝對real server的監控板塊,檢測健康狀態。
server array:由一組真實的應用服務器組成,每個real server之間通過lan或wan相連接,在真實場景中,director server可以充當real server。
shared storage:為所有的real server提供數據存儲和空間共享服務,保持內容一致性,一般是由磁盤陣列設備、nfs文件共享系統、gfs文件系統或ocfs2文件系統等等組成
(2)LVS下的相關術語
虛擬IP地址——VIP,director server用來向客戶端計算機提供服務的IP地址
真實IP地址——RIP,在集群節點上使用的IP地址
director server的IP地址——DIP,director用于連接外網的IP地址
客戶端主機IP地址——CIP,客戶端請求集群服務器的IP地址,用作發送給集群的數據請求的源IP地址
(3)LVS的工作模式
?LVS的IP負載均衡通過IPVS模塊來實現的,IPVS是LVS集群系統的核心軟件。主要作用是:安
裝在Director Server上,同時在Director Server上虛擬出一個IP地址,客戶端訪問時也要通過這個IP地址。這個虛擬IP一般稱為LVS的VIP,訪問的請求首先經過VIP到達負載調度器,然后由負載調度器從Real Server列表中選取一個服務節點響應用戶的請求。當用戶的請求到達負載調度器后,IPVS重點關注調度器如何將請求發送到提供服務的Real Server節點,Real Server節點如何返回數據給用戶,IPVS實現負載均衡機制有DR、NAT、TUN三種。
VS/NAT:
網絡地址翻譯技術實現虛擬服務器,當用戶請求到達調度器時,調度器將請求報文的目標地址(虛擬IP地址)改寫成選定的Real Server地址,同時報文的目標端口也改成選定的Real Server的相應端口,最后將報文請求發送到選定的Real Server。在服務器端得到數據后,Real Server要原路經過負載調度器將報文的源地址和源端口改成虛擬IP地址和相應端口,然后把數據發送給用戶。
VS/DR:
直接路由技術實現虛擬服務器,應用最多,要求Director Server與Real Server都有一塊網卡連在同一物理網段上。它的連接調度和管理與VS/NAT相同,但VS/DR通過改寫請求報文的MAC地址,將請求發送到Real Server,而Real Server將響應直接返回給客戶,節省了開銷,性能最好。
VS/TUN:
IP隧道技術實現虛擬服務器,應用較少不要求Director Server與Real Server都有一塊網卡連在同一物理網段上。它的連接調度和管理與VS/NAT方式相同,但調度器采用IP隧道技術將用戶請求轉發到某個Real Server,而這個Real Server將直接響應用戶的請求,不再經過前端調度器,調度器只處理用戶的報文請求,吞吐量較高。
(4) LVS調度器算法
調度器在收到入站請求時需要立即做出決定將請求分配給哪個服務器(節點)
固定調度:
rr:常用調度算法之一,輪詢調度,在real server中均攤請求,此算法適用于處理性能相差不大的情況。
wrr:常用調度算法之一,加權輪循調度,依據不同real server的權重值分配任務,權值較高的real
server將優先分配,分配到的連接數也比權值較低的real server多,如果權值相同那么real serve
得到相同數目的連接。
dh:目的哈希調度,以目的地址為關鍵字查找一個靜態hash表來分配real server。
sh:源地址哈希調度,以源地址為關鍵字查找一個靜態hash表來分配real server。
動態調度:
lc:常用調度算法之一,最小連接數調度,會把新的連接請求發送到IPVS表中連接數最小的real
server。
wlc:常用調度算法之一,加權最小連接數調度,依次選取“TCP連接數/權重值”為最小的real server
作為下一個分配節點。
lblc:基于地址的最小連接數調度,如果這一臺設備仍然可以處理請求就將來自同一目的地址的請
求分配給同一臺real server,否則分配給連接數最小的real server,作為下次分配請求的首選real
server。
lblcr:基于地址帶重復最小連接數調度,目的地址會對應一個real server子集,為請求分配子集中
連接數最小real server,如果服務器中所有子集均已滿載,則從集群中選擇一個連接數較小服務
器,將它加入到這個子集并分配連接,一定時間內不干預就會將子集中負載最大的節點從子集中移
除。
SED:最短期望的延遲算法,基于wlc算法,將連接交給wlc結果最小的real server。假如A、B、C
分別權重為1、2、3,連接數分別是1、2、3,使用sed算法后運算式如下:A(1+1)/1、B(1+2)/2、
C(1+3)/3,就會交給C服務器。
NQ:最少隊列調度,如果有臺real server的連接數=0就直接分配過去,此時不想需要進行SED運
算,如果不處于空閑狀態需要進行SED的運算。
?2.haproxy/nginx模式
如圖示,大體與LVS差不多,但是haproxy/nginx模式下apache/nginx/圖片服務器處理好的結果需要經過請求的原路返回給用戶?
?四.常用集群軟硬件列舉
1.企業常用集群軟件
LVS,keepalived,haproxy,nginx,apache,heartbeat
2.企業常用集群硬件
F5,Netscaler,Radware
?
?
?