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
相關文章
相關標籤/搜索