集羣及LVS簡介

集羣簡介

什麼是集羣

一組是通過高速網絡互聯的計算組,並以單一系統的模式加以管理。

將很多服務器集中起來一起,提供同一種服務,在客戶端看來就像是隻有一個服務器

可以在付出較低成本的情況下獲得在性能、可靠性、靈活性方面的相對較高的收益

任務調度是集羣系統中的核心技術


集羣:由一組機器提供相同的服務通過網線連接

集羣目的:

提高性能

降低成本

提高可擴展性

增強可靠性

集羣的分類:

高性能計算集羣HPC(主要用於科學)

負載均衡集羣LB(平均分攤)

高可用集羣HA(需要兩臺服務器一個主一個備,避免單點故障)


LB的實現:LVS軟件 Haproxy軟件 (nginx)

HA的實現:Keepalived軟件

LVS:它是一段內核代碼,不提供任何功能,但是能夠根據用戶定義的轉發規則將用戶對於服務應用的請求轉發至後端主機的機制。

LVS:工作在內核的第四層(tcp/udp)層

LVS軟件介紹:主要實現高可用的、可伸縮的web、mail、cache、和media等網絡服務。


LVS集羣組成

前端:負載均衡層

中間:服務器羣組層

底端:數據共享存儲層

  

LVS術語

Diector Server 調試服務器

Real Server 真實服務器

VIP 虛擬ip地址

RIP 真實IP地址

DIP 調試器連接節點服務器的ip地址

cip 客戶ip地址


LVS工作模式

VS/NAT 網絡地址轉換模式(有兩個網段的IP一個私有和一個公有)

用戶的請求到達的前端的調度器,調度器本身不提供服務,只是提供某種方法從後端realserver中挑選出一個服務角色來響應用戶請求,這些服務器是隱藏在調度器背後的,因此他們是通過地址轉換,將用戶請求逐個分發到後端realserver,當用戶的請求被realserver處理了之後,這個請求需要將請求再次發給調度器,再由調度器封裝報文(源VIP 目標CIP)發送給client


無論是客戶的請求還是服務端的響應都必須經過調度器(director)


如果調度器的併發量非常大的話,(請求非常小,響應比較大)如果後端的relaserver非常的多,調度器可能會成爲性能瓶頸的,因爲調度器本身也需要大量的系統資源來響應用戶的請求(CPU+網絡吞吐)


其好處:只需要一個公網地址即可響應用戶的請求


NAT模式特性總結:


·.realserver應該使用私有ip地址


·一般realsever的網關應該指向DIP,不然的話無法保證響應報文經過director


·RIP要和DIP應該在同一網段內


·進出的報文,無論請求還是響應都要經過Directory


·支持端口映射


·realserver可以使用任意系統,只要端口對應即可


在高負載下,directory可能會成爲性能瓶頸,所以不使用於併發很高的應用場景




在nat模式下在集羣節點下經過哪些鏈:


當一個請求到達的時候,請求剛進入本地會到prerouting,而後目標地址就是本機vip地址,於是送往input鏈,但是在input鏈上工作的有ipvs,而且ipvs會有規則結果會分發到postrouting


NAT模型回覆的報文會經過prerouting ,目標地址是CIP所以通過preting到達fowward到postrouting並返回給用戶


其報文走向流程:


入站報文:prerouting--> input(強行改變流程) --> postrouting


出站報文:響應時候先進行prerouting--> forward --> postrouting



VS/DR直接路由模式(分發器在發請求給服務器時,不直接回包給分發器,而是直接發給客戶,但客戶端必須要有VIP)

·用戶通過訪問其域名解析到其IP地址(VIP)

·用戶向目標VIP發送請求,這是Director接收到請求,此時源IP是用戶的IP地址,其目標MAC是Director的MAC地址

·LVS會根據其相關算法選擇一臺active的服務器,將此RIP所在網卡的MAC地址作爲目標的MAC地址,此時源MAC地址是Director的MAC地址,目標MAC地址是realserver的MAC地址

·realserver收到了數據包,並且分析數據包,如果發現目標IP地址(VIP)與本地的lo(環回接口)匹配,於是就會處理這個報文,廣播到LAN中,此時源MAC地址是realserver的MAC地址,目標IP地址是用戶的IP


其特性:

·realserver可以使用私有地址,但建議使用公網地址,

·realserver的網關一定不能指向DIP,否則沒有意義了

·RIP和DIP要在同一物理網絡內,一定不能跨越路由設備的

·入站報文經過directory,出站則由realserver直接響應

·不能做端口映射

·realserver必須綁定lo地址,跨越支持大多數常見OS

DR模型限定了主機必須在同一物理網絡內

VS/TUN隧道模式(用來做LB集羣時服務器在不同地點)

隧道模式則類似於***的方式,使用網絡分層的原理

TUN的工作流程:

用戶發來的數據包的基礎上,封裝一個新的IP頭標記(此IP頭只有目的IP部) 發給REALSERVER

REALSERVER收到後,先把Director發過來的數據包的頭給解開,還原其數據包原樣,處理後,直接返回給客戶端,而不需要再經過Director


需要注意的是:由於REALSERVER需要對DR發過來的數據包進行還原,也就是說必須支持IPTUNNEL協議所以,在 REALSERVER的內核中,必須編譯支持IPTUNNEL這個選項



wKiom1NSXV3gXNxWAAIGEhCjSZg389.jpg


負載均衡調試算法

輪詢 :平均分配(rr)

加權輪詢:根據權重值輪詢,根據比例值(wrr)

最少連接:看誰的連接數少就分發給誰(lc)

加權最少連接:根據權重值去選擇最少的連接數(wlc)




LVS-NAT集羣


安裝軟件

LVS的ip負載均衡技術是通過IPVS模塊實現的

IPVS模塊已成爲Linux組成部分


sysctl命令被用於在內核運行時動態地修改內核的運行參數,可用的內核參數在目錄/proc/sys中。它包含一些TCP/ip堆棧和虛擬內存系統的高級選項, 這可以讓有經驗的管理員提高引人注目的系統性能。用sysctl可以讀取設置超過五百個系統變量。

-n:打印值時不打印關鍵字;
-e:忽略未知關鍵字錯誤;
-N:僅打印名稱;
-w:當改變sysctl設置時使用此項;
-p:從配置文件“/etc/sysctl.conf”加載內核參數設置;
-a:打印當前所有可用的內核參數變量和值;
-A:以表格方式打印當前所有可用的內核參數變量和值。

語法

sysctl(選項)(參數)

查看所有可讀變量:

sysctl -a



開啓內核路由轉發功能

sysctl -a | grep ip_forward

vim /etc/sysctl.conf

net.ipv4.ip_forward = 1

sysctl -p 開啓路由轉發


添加網關:

route add default gw 網關地址

刪除網關:

route del default gw 網關地址

查看網關:

route -n


注:做這些之前需要將NetworkManager關了在生產環境一般也不開


配置分發器:

  1. 安裝軟件包

    ipvsadm

  2. 服務名和軟包同名

  3. 命名是ipvsadm創建集羣管理集羣


創建虛擬服務器

查看集羣ipvsadm -Ln(加n以數字顯示)

添加虛擬服務器  -A

設置羣集地址(VIP,Virtual IP)  -t

指定負載調度算法 -s

    

ipvsadm用法:

添加、刪除服務器節點

-a 添加真實服務器

-d刪除真實服務器

-r指定真實服務器(Real Server)的地址

-m 使用NAT模式;-g、-i 分別對就DR、TUN模式

-w爲節點服務器設置權重,默認爲1

 

保存配置ipvsadm -S

清除所有配置ipvsadm -C

ipvsadm -Ln --stats 查看詳細信息 

conns接收連接數 InPkts 輸入數據包outpkts輸出數據包 inbytes輸入字節數 outbytes輸出字節數

watch -n 1 ipvsadm -Ln --status 每隔一秒顯示信息

清空計數器ipvsadm -Z

/etc/sysconfig/ipvsadm-config

保存到自己的主配置文件裏讓它開機啓動:ipvsadm -S > /etc/sysconfig/ipvsadm-config

IPVS_SAVE_ON_STOP="no" 默認配置文件不保存

缺點:一旦調度器壞了服務集羣就沒法用了,成爲了數據傳輸的瓶頸。爲了解決這問題我們需要用LVS/DR技術

/etc/sysconfig/ipvsadm將ipvsadm -S 保存到那裏面就可以用systemctl restart ipvsadm

LVS-DR集羣

  1. 設置分發器

    ifconfig eth0:1 192.168.4.254 綁定接口如何想讓他開機生效可以放在/etc/rc.local

  2. 保存當前配置到主配置文件裏

    ipvsadm -S > /etc/sysconfig/

  3. 創建虛擬服務

    ipvsadm -A -t 192.168.4.253:80 -s rr

  4. 添加realserver

    ipvsadm -a -t 192.168.4.253:80 -r 192.168.4.52:80 -g

    ipvsadm -a -t 192.168.4.253:80 -r 192.168.4.53:80 -g(默認不寫-g就是DR模式)

  5. 保存配置

    ipvsadm -S > /etc/sysconig/ipvsadm-config

  6. 查看狀態信息

    ipvsadm -Ln

    如果出現Route字樣就表示是DR模式

二、配置realserver

 1、修改網絡接口的內核參數

  cd /proc/sys/net/ipv4/conf/

  lo/arp_ignore將這裏面的值改爲1

  lo/arp_announce將這裏面的值改爲2

  all/arp_ignore將這裏面的值改爲1

  all/arp_announce將這裏面的值改爲2

  如果要永久生效記到寫到/etc/rc.local寫絕對路徑

 2、在本機的lo接口綁定vip地址每臺都要設置

  刪除綁定的vip地址 ifdown lo:1

  ifconfig lo:1 192.168.4.253/32要永久生效寫到/etc/rc.local

 3、運行網站服務編寫網頁文件    

 

  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章