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即能支持LVSLinux 2.4.23以後的內核版本也整合了ip_vs code,但如果是更舊的內核版本,您得自己手動將ip_vs code整合進內核原碼中,並重新編譯內核方可使用lvs

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-NAT:LVS地址轉換類型,就是目標地址轉換 集羣節點必須在同一個網絡中,可以將端口映射到不同端口,directory可能成爲系統瓶頸,一般工作在負載20臺左右的服務器,不能作爲大型的服務

LVS-DR:(directory routing)直接路由類型,linux集羣用的最多的一種 DR要求每一個集羣節點要與dirctor在同一個網絡中,RIP不要求都是私有地址,VIP必須是公網ip,接受進來的請求,對出去的請求不做管理,Rserver的網關不指向Directory,Directory不能重新映射端口,大多數操作系統都可以做Reserver,但windown不能做,支持更多的主機服務器,管理員可以直接遠程對服務器管理. 缺點:服務器地址直接面向客戶端,不安全

lVS-TUN LVS隧道模式;和DR網絡模型一樣,但是Director和Reserver可以不再同一網段中,可以實現異地容災的功能. Directory和Reserver通信是建立一個隧道,在二臺主機直接建立一個管道,RIP不能使用私有地址,不能做端口映射,跟DR一樣,只有支持隧道協議的操作系統才能作爲Reserver
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 >/root.a.ipvs 保存規則到一個位置
ipvsadm –S> /etc/sysconfig/ipvs-config =ipvsadm-save保存規則
ipvsadm –R </etc/sysconfig/ipvsadm-config = ipvsadm-restore恢復規則
redhat默認在/etc/init.d/ipvsadm 有一個ipvsadm的腳本
LVS ipvsadm -A -t 192.168.0.3:80 -s rr 定義ipvs
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章