淺談linux集羣

     集羣其實就是一堆計算機的集合,給用戶提供同一個服務的一組計算機,就稱之爲集羣,對於用戶而言好像就是一臺計算機提供的服務,集羣主要分爲三大類,

LB 負載均衡集羣
    負載均衡集羣主要是提升服務的響應能力的,好比說某服務器的併發響應能力是100個,這個時候常常有人反映說連不上服務器,這個時候解決方案通常有兩種,一,升級硬件,升級硬件顯然不是很好的解決方案,假如說升級硬件以後過了一段時間因爲業務量的加大,服務器又負載不起了怎麼辦呢, 二,將現有空閒低配的設備組合起來作成一個具備高併發的負載均衡集羣,多臺計算機同時分攤負載用戶的請求,這樣一來服務器的壓力也沒有那麼大了,那麼這一類的集羣具備很好的可伸縮性,可靠性,和成本低廉等好處,

HA 高可用性集羣
     高可用性集羣主要是提供7*24小時不間斷服務的,不能說由於一臺或幾臺服務器的down機而致使沒法提供服務的,若是某臺down機了,會自動的切換到其餘計算機上面工做,從而達到高可用的效果,

HP 高性能集羣
     高性能集羣主要是用於須要大量CPU運算的場景中,好比說天氣預報,國外3D大片的特效製做,等等一系列須要作大量運算的應用,

******************************************************************************************************
上面介紹了集羣應用的三大類,下面來介紹下三大應用中各類實現的機制,

LB 負載均衡集羣又分爲硬件級與軟件級的
     硬件類的價格比較貴,
            F5,等
     軟件級的比較常見的有以下兩種            
           LVS
           Haproxy前端

HA 高可用集羣的解決方案常見的有如下幾種
         heartbeat
         corosync+openais  RHCS
         ultramokey
         keepalived

HP 高性能集羣的解決方案常見的有如下
         bowerfullinux

******************************************************************************************************算法

上面說了各類集羣的解決方案,通常狀況下負載均衡集羣和高可用集羣是結合起來使用的,下面來講說負載均衡集羣中比較經常使用的LVS
******************************************************************************************************後端

LVS (linux virtual server) linux 虛擬服務器
         lvs是由國人章文嵩開發的一款自由軟件,lvs具備很好的可伸縮性,可靠性,和可管理性,經過linux系統和lvs能夠實現一個高可用,高性能,低成本的服務器集羣,
        lvs是三層架構的,也就是說lvs有三個部分組成的,:最前端的負載均衡器LB,中間的是應用服務器羣組,後端的是共享存儲,見下圖服務器

lvs的三種工做模型
NAT模型
 NAT模型顯然根據名字均可以看出來,是經過網絡地址轉換來實現的,他的工做方式是,首先用戶請求到達前端的負載均衡器(即Director Server),而後負載均衡器根據事先定義好的調度算法將用戶請求的目標地址修改成後端的應用服務器(即Real Server) , 應用程序服務器處理好請求以後將結果返回給用戶,期間必需要通過負載均衡器,負載均衡器將報文的源地址 改成用戶請求的目標地址,再轉發給用戶,從而完成整個負載均衡的過程,
NAT模型的特色以下,
全部的節點必須在一個IP網絡中
                    只需有一個公有地址便可
                    支持端口映射
                    後端的應用服務器不區分平臺
                    進出數據包都須要通過負載均衡器,當負載過大的時候,負載均衡器將是整個集羣的瓶頸
                    最多支持8個節點,
DR模型
 DR模型是經過路由技術實現的負載均衡技術,而這種模型與NAT模型不一樣的地方是,負載均衡器經過改寫用戶請求報文中的MAC地址,將請求發送到Real Server, 而Real Server直接響應用戶,這樣就大大的減小負載均衡器的壓力,DR模型也是用的最多的一種,
DR模型的特色以下,
全部的集羣節點都必須同一個物理網絡中
RIP能夠是公有IP也能夠是私有IP
                       負載均衡器只響應進站請求,
                       不支持端口映射
   TUN模型
           TUN模型是經過IP隧道技術實現的,TUN模型跟DR模型有點相似,不一樣的地方是負載均衡器(Director Server)跟應用服務器(Real Server)通訊的機制是經過IP隧道技術將用戶的請求轉發到某個Real Server,而Real Server 也是直接響應用戶的,
TUN模型的特色,
                        全部的集羣節點能夠在任意地方
                        RIP必須是公網IP
                        負載均衡器只響應進站請求
                        不支持端口映射

******************************************************************************************************網絡

上面介紹了LVS的工做模型,下面來講說LVS支持的調度算法
調度算法也能夠稱爲負載均衡的方法,上面說過前端的負載均衡器(Director Server)會將用戶的請求分攤給後端的應用服務器(Real Server),那麼負載均衡器(Director Server)怎麼會知道將用戶請求分攤到哪臺應用服務器(Real Server)呢?  就是根據調度算法來實現將用戶請求具體分攤到哪臺應用服務器(Real Server)的,在LVS中支持多達10種調度算法,下面來講說幾個經常使用的調度算法,
輪詢,                  輪詢調度是將用戶請求平均分攤到Real Server 上去,
加權輪詢,          加權輪詢能夠爲Real Server 設置不一樣的權值,對於性能好的Real Server能夠較高的權值,而性能比較差的Real Server 的權值能夠設置較低點,這樣的話就充分利用了服務器的資源,
最少鏈接,          最少鏈接調度會動態的將用戶請求分攤到已創建的鏈接最少的Real Server上去,
加權最少鏈接,  加權最少鏈接能夠將性能好的服務器的全值設置高點,性能差的服務器權值設置低一些,
除了上面四個外還有目標地址hash算法調度, 源地址hash算法, 最少指望延遲調度, 基本地的最少鏈接調度, 帶複製的最少鏈接調度,等,      架構

******************************************************************************************************併發

上面說了負載均衡集羣LVS,其實LVS有一個致命的缺點,當有臺負載均衡器(Director Server) 掛掉的時候,那麼整個集羣將癱瘓了,上面說過負載均衡集羣通常要和高可用集羣結合起來使用的,這樣就能夠避免某個Director Server 出現故障而致使整個集羣系統癱瘓,


OK到此結束,
糾結,很差總結,螞蟻總結的很差還望你們指點,謝謝!負載均衡

相關文章
相關標籤/搜索