天天看點

linux-叢集介紹

叢集(Cluster):

按照某種方式把伺服器連起來來完成一種特定的任務,提高伺服器的響應能力。 scale on 在單台主機上提高伺服器性能 scale out 增加伺服器的數量來提高,負載均衡的叢集 

叢集有三種:

1 LB(Load Balancing) 負載均衡 前端有個分發器(Director)負責接收用戶端的請求分發服務到後端的realserver上(或者Dispatcher都是分發器)

2 HA(Hight Availability) 高可用叢集(7x24 99.999% ;時時線上的提供服務,隻有一個線上服務,另外的做備份)

3 HP(hight Performance) 高性能叢集,把任務分片發給叢集伺服器,然後把結果收集,計算速度非常快

DIrector,(分發器可以通過軟體或者硬體實作)

靠軟體實作的分發器有二種:基于OSI模型四層和七層交換四層交換 負載均衡是通過ip+端口轉發實作,實作不同的服務通路用LVS軟體實作 七層交換 實作負載均衡,(squid,反向代理)負載均衡技術,需要特定的協定

LVS,:Linux Virtual Server:開源的負載均衡,作者中國章文嵩,目前在阿裡巴巴,首席科學家,LVS 是軟體方式實作負載均衡,架構類似iptabless/netfilter   

LVS ipvsadm(工具)/ipvs(核心代碼)現在的核心都内置了ipvs核心代碼,從Linux核心版本2.6起,ip_vs code已經被整合進了核心中,是以,隻要在編譯核心的時候選擇了ipvs的功能,您的Linux即能支援LVS。Linux 2.4.23以後的核心版本也整合了ip_vs code,但如果是更舊的核心版本,您得自己手動将ip_vs code整合進核心原碼中,并重新編譯核心方可使用lvs。

<b></b>

Virtual server:是前端分發器

Realserver:作為後端的主機,真正響應用戶端請求

VIP: Virtual IP address 向用戶端提供服務的ip位址,臨時性的   

RIP: Real IP addresss 作為叢集節點的位址

DIP: Director's IP address 用來與directory通信的ip CIP: Client computer's IP address 作為一個用戶端來源來通路叢集伺服器

LVS 叢集有三種類型:

LVS排程方法,算法10種:

當用戶端請求時,Directory要根據算法把請求重定向到背景伺服器上響應 靜态的固定算法(不考慮Realserver上實際存活的數目)

1 Round-robin RR(輪詢)當一個新的連接配接請求到達時,director隻是順序的選擇一個下realserver上

2 Weighted Round-Robin WRR:權重輪詢,給每一個reserver一個權重來确定下一個請求給誰,權重越大分到請求越多

3 Destination Hashing  DH(目标散列)相當于DNAT,來自同一個ip的請求都重定向到同一個Realserver上去,保證目标位址不變4 Source hashing SH(源散列)相當于SNAT,算法正好與目标位址散列排程算法相反,當來自同一個伺服器的響應。還通過同一個路由器出去響應給用戶端,保證源位址不變,在實際應用中,源位址散列排程和目标位址散列排程可以結合使用在防火牆叢集中,它們可以保證整個系統的唯一出入口 動态排程算法(通過檢查伺服器目前連接配接的活動狀态決定如何進行排程) 

5 LC(最少連接配接) 新的連接配接請求将被配置設定至目前連接配接數最少的RealServer上;最小連接配接排程是一種動态排程算法,它通過伺服器目前所活躍的連接配接數來估計伺服器的負載情況。排程器需要記錄各個伺服器已建立連接配接的數目,當一個請求被排程到某台伺服器,其連接配接數加1;當連接配接中止或逾時,其連接配接數減一

6 WLC(權重最少連接配接) 在原有的最少連接配接的基礎上給realserver一個權重,是比較理想的算法

7 SED:最短期望延遲,對wlc的改進,

8 NQ :永不排隊,對sed簡單改進,還檢查目前伺服器有沒有連接配接

9 LBLC:基于本地的最少連接配接,動态的DH,不僅檢查是不是請求是不是同一個ip還檢查目前有沒有連接配接

10 LBLCR:帶複制的最少連接配接,對lblc的改進,當第二個realserver上的全部請求斷開,允許第一個realserver上的請求複制到第二個realserver上響應,減輕第一個realserver上的負擔

ipvsadm用法:

grep -i ip_vs /boot/config-2.6.18-164.e15 檢視系統核心有沒有ipvs

yum install ipvsadm 若沒有則安裝ipvsadm工具

ipvsadm 是一個工具用于寫規則

ipvsadm -Lcn 檢視目前的所有連接配接,或者cat /proc/net/ip_vs_conn 檢視虛拟服務和RealServer上目前的連接配接數

資料包數和位元組數的統計值,則可以使用下面的指令實作:

ipvsadm -l --stats

檢視包傳遞速率的近似精确值,可以使用下面的指令:

ipvsadm -l --rate

ipvsadm -Ln 檢視定義的服務

ipvsadm 

-A 定義服務,

-a 加入realserver

–s指定算法

–t服務類型

–f防火牆标記

–r realserver實際伺服器

–g或者–m指定lvm類型,

-m指定lvm類型為nat,

-g指定lvm類型為路由,預設的

-i表示隧道

–m指定僞裝

–w指定權重

–E 更改算法類型

ipvsadm -D 删除服務

ipvsadm –d 删除某一個realserver 

ipvsadm -Z 清空計數器

ipvsadm -C 清空規則

ipvsadm -S &gt;/root.a.ipvs 儲存規則到一個位置

ipvsadm –S&gt; /etc/sysconfig/ipvs-config =ipvsadm-save儲存規則

ipvsadm –R &lt;/etc/sysconfig/ipvsadm-config = ipvsadm-restore恢複規則

redhat預設在/etc/init.d/ipvsadm 有一個ipvsadm的腳本

LVS ipvsadm -A -t 192.168.0.3:80 -s rr 定義ipvs

本文轉自 張玉坡 51CTO部落格,原文連結:http://blog.51cto.com/fighter/499162

繼續閱讀