lvs四種集群特點及使用場景

一、 前言

當一組服務器在高速的局域網或廣域網中相互連接,其前端部署了一個負責負載調度的調度器(Director)的服務器系統。調度器能將網絡請求無縫調度到真實服務器上(Real server),客戶訪問集群系統提供的網絡服務就像訪問一臺高性能、高可用的服務器一樣。集群系統支持透明地增加或刪除服務器節點,而客戶對此是無感知的。除此之外,集群系統能夠通過檢測節點或服務進程的故障來正確地進行節點的切換,以此達到系統的高可用性。通過此類技術實現的負載均衡,因為是在Linux內核上實現的,因此被稱為Linux vitural server(lvs)。
Lvs集群的類型包括:nat、dr、tun和fullnat四種類型,這四種類型的Lvs集群分別有著不同的特點及應用場景,下面我們就來一起看看它們的區別。
lvs常用術語:

VS:Virtual Server,調度器,負責調度
RS: Real Server,負責真正提供服務,后端服務器
VIP: LVS服務器上的公網IP,即Virtual IP
DIP: LVS服務器上的內網IP,即Director IP
RIP: Real Server上的內網IP
CIP:客戶端的IP

二、lvs集群的使用場景

1、nat

lvs的nat集群會將請求報文中的目標地址和目標端口修改為選定到的真實服務器的Ip和端口,從而實現報文的轉發。
lvs-nat集群應用時由以下幾點注意實現:

1、RIP和DIP必須在同一個Ip網絡中,且應使用私網地址,RS的網關要指向DIP;
2、請求報文和響應報文必須經由Director轉發;
3、支持端口映射,可修改請求報文的目標端口;
4、director必須為Linux系統,RS可以為任意系統;

此集群類型的優點在于RS可支持任意TCP/IP操作系統,且僅需一個合法的公網Ip即可部署。但是其缺點為當集群擴展到一定程度后,Director容易成為整個集群系統的瓶頸。

nat應用場景邏輯圖

上圖為lvs-nat的常見的使用場景,其工作流程如下:
1、客戶端的請求發往Director 的VIP。
2、Director發到客戶端請求報文后,將報文中的目標Ip修改為集群中的選定的RIP,目標端口80也修改成8080,然后將請求報文發往RS。
3、當RS收到請求報文后,在檢查報文的目標IP為自己的RIP后,會接受報文并進行處理響應。響應的源Ip為RIP,目標IP為CIP,端口不變。
4、Director收到RS的響應報文,修改響應報文的源IP為VIP,端口為80,然后轉發給客戶端。
5、客戶端接受響應報文,其源IP為VIP,端口為80,整個過程對于客戶端來說是透明無感知的。

2、dr

lvs-dr集群是Lvs的默認模式,又稱為Direct Routing,直接路由模式。通過為請求報文重新封裝一個MAC首部進行轉發,源MAC是DIP所在的接口的MAC,目標MAC是某挑選出的RS的RIP所在接口的MAC地址;源IP/PORT,以及目標IP/PORT均保持不變。
在DR 模式下需要在 Director 和 RS 集群綁定同一個 VIP(RS 通過將 VIP 綁定在 loopback 實現)。由于在VIP在同一個網絡中的多臺服務器上都需要配置,因此必須對RS的ARP響應報文規則進行修改,其方式有三種:

(a) 在前端網關做靜態綁定;
(b) 在RS上使用arptables工具;
  # arptables -A IN -d $VIP -j DROP
  # arptables -A OUT -s $VIP -j mangle --mangle-ip-s $RIP
(c) 在RS上修改內核參數以限制arp通告及應答級別;
  echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
  echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
  echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
  echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce

總的來說,DR模式在部署時有以下幾點需要注意的:

1、確保前端路由器將目標Ip為VIP的請求報文發往director;
2、RS的RIP可以使用私網地址,也可以是公網地址;RIP與DIP在同一IP網絡;RIP的網關不能指向DIP,以確保響應報文不會經由Director;
3、RS跟Director要在同一個物理網絡;
4、請求報文要經由Director,但響應不能經由Director,而是由RS直接發往Client;
5、dr模式不支持端口映射;

lvs-dr模式的優點在于:Director只是分發請求,應答包通過單獨的路由方法返回給客戶端。與Lvs-tun相比,Lvs-dr這種實現方式不需要隧道結構,因此可以使用大多數操作系統做為物理服務器。缺點在于要求負載均衡器的網卡必須與物理網卡在一個物理段上。

lvs-dr應用場景

上圖為lvs-dr的常見的使用場景,其工作流程如下:
1、客戶端的請求會發往Director,此時,客戶端請求報文的源Ip為CIP,目標Ip為Director的VIP。
2、當Director接受到客戶端的請求報文后,Director會在請求報文外封裝一個MAC首部,其源MAC為Director接口的MAC地址,目標MAC為選定RS的MAC地址;
3、當RS收到Director轉發過來的請求報文后,檢查發現請求報文的目標Ip為本地環回接口上配置的VIP,因此會接受報文進行響應處理。另外由于對ARP響應規則做了修改,因此RS不會把響應報文響應給director ,而是響應給GW;
4、客戶端接收響應報文,完成通信。

3、tun

轉發方式工作,不修改請求報文的IP首部,而在源IP報文之外再封裝一個IP首部(源IP是DIP,目標IP是RIP),將報文發往挑選出的目標RealServer,RealServer直接響應給客戶端(源IP是VIP,目標IP是CIP),此模式的注意要點:

(1) DIP, VIP, RIP都應該是公網地址;
(2) RS的網關不能,也不可能指向DIP;
(3) 請求報文要經由Director,但響應不能經由Director;
(4) 不支持端口映射;
(5) RS的OS得支持隧道功能;

lvs-tun模式的優先在于Director只負責將請求包分配給對應的RS,而響應則由RS自己直接應答給客戶端,因此director不再是瓶頸。但其缺點在于需要每個服務器都支持Ip tunnel協議。


lvs-tun應用邏輯圖
4、fullnat

lvs-fullnat模式,即通過同時修改請求報文的源IP地址和目標IP地址進行轉發的模式。此類型的模式,默認Kernel不支持。
此模式的注意要點為:

(1) VIP是公網地址,RIP和DIP是私網地址,且通常不在同一IP網絡;因此,RIP的網關一般不會指向DIP;
(2) RS收到的請求報文源地址是DIP,因此,只能響應給DIP;但Director還要將其發往Client;
(3) 請求和響應報文都經由Director;
(4) 支持端口映射;

fullnat應用場景邏輯圖

如上圖所示:
1.客戶端的請求會發往Director,此時,客戶端請求報文的源IP為CIP,目標IP為Director的VIP
2.當Director收到客戶端的請求報文時,會將源IP修改為本機的DIP,同時將請求報文中的目標IP修改為后端某個RS的RIP,具體為哪個RS的RIP,取決于LVS使用的具體算法
3.當RS收到對應的請求報文時,會發現報文的目標IP就是自己的RIP,于是就會接收報文并 處理后進行響應。響應報文的源IP則為RIP,目標IP則為DIP
4.當Director收到對應的響應報文時,Director會將響應報文的源IP修改為VIP,目標IP修改為CIP,于是響應報文被發往客戶端。
5.客戶端則會收到響應報文,源IP為VIP,端口為80,而LVS相對于客戶端而言,轉換過程是透明的。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,563評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,694評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 178,672評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,965評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,690評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,019評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,013評論 3 449
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,188評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,718評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,438評論 3 360
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,667評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,149評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,845評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,252評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,590評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,384評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,635評論 2 380

推薦閱讀更多精彩內容