集群-基礎知識(2)

負載均衡集群實現方法:

1、硬件方式

F5,CITRX,NETSCALER,A10(價格逐漸降低,由于為了防止調度器成為單點故障,所以要配置一臺備用設備,所以造價更高了)

2、軟件方式

四層:LVS(根據請求的ip和端口來分發),性能好,但對高級特性支持不好。

七層(反向代理):Nginx(http,smtp,pop3,imap),Haproxy(主要是http,tcp(mysql,smtp)),能夠精確解碼請求的協議,并能做適當修改后向后轉發,操作能力強,性能略差于LVS,更適應生產環境。

LVS:Linux virtual server

lvs工作于內核的tcp/ip協議棧的input鏈,不能和iptables同時工作。當調度器上定義一個集群服務后才會向后進行轉發,當請求報文經過prerouting到達input時,經過input上定義的集群策略審查,若是集群服務則請求報文會被送至forward并通過postrouting向后轉發。

Lvs也是兩段式:ipvsadm(用戶空間)和ipvs(內核的input)

內核2.4.23之前并沒有ipvs代碼,所以需要打補丁。

相關術語:

blob.png

Lvs的類型:

1、Nat模型

2、DR模型

3、TUN模型

Nat模型:工作機制和DNAT一樣

blob.png

當客戶端請求報文到達調度器時ip報文首部是CIP|VIP,從prerouting送至input發現為集群服務后,將報文轉發至forward經postrouting向后轉發,此時ip首部變為CIP|RIP1,后端realserver發現是目標地址是自己后進行拆解報文、響應報文、封裝報文,此時ip首部為RIP1|CIP,然后經過調度器的源地址轉換,ip首部變為VIP|CIP,通過路由設備回應給客戶端。

NAT模型遵循的法則:

1、集群節點和調度器必須在一個網絡中

2、RIP地址為私有地址,僅用于集群節點間的通信

3、調度器位于客戶端和realserver之間,復制處理進出的所有通信

4、realserver網關必須指向DIP

5、調度器支持端口映射

6、realserver可以支持使用任何操作系統

較大規模場景中,調度器容易成為瓶頸,理想狀況下后端能帶10臺主機。生產環境一般不用這種模型。

DR模型:(常用)

blob.png

調度器和realserver都連接在交換機上,并且調度器和RS都配置了VIP,只是RS的VIP被隱藏起來了,不用做通信,只是在響應時修改源地址而已。調度器的VIP配置在網卡上,而DIP配置在網卡別名上,RS的RIP配置在網卡上,VIP配置在網卡別名上。因為在一個網絡中,所以調度器和RS的mac地址會通過arp解析得到其他人的mac地址。當請求報文發送至集群網絡時ip報文首部為CIP|VIP,這時因為RS的VIP被隱藏起來了,所以只有調度器響應,而位于input鏈的策略發現是集群服務時,它不會拆解ip首部,而是把mac首部拆了,封裝mac(源mac改為調度器的mac,目標mac改為調度器挑選的RS的mac),并向RS轉發,報文傳至RS時,RS發現目標地址是自己,然后進行響應,封裝報文,源地址修改為VIP,目標地址為CIP,然后直接通過路由設備將報文發給客戶端。

DR模型遵循的法則:

1、集群節點必須和調度器在同一物理網絡中

2、RIP不用為私有地址了,實現了便捷的遠程管理和監控

3、調度器只負責進站請求,響應保衛有RS直接發往客戶端

4、集群節點不能將網關指向DIP

5、調度器不支持端口映射

6、大多數操作系統能支持RS,因為RS要求隱藏VIP

TUN模型:為了實現異地災備(不常用)

blob.png

工作機制和DR模型近似。RS有兩個IP:RIP、VIP(隱藏的),且RIP是公網地址,RS和調度器不再同一網絡,RS可直接將響應報文發送給客戶端。調度器也有兩個ip:VIP、DIP(別名)。當請求報文發送到調度器時,ip報文首部為CIP|VIP,調度器發現是集群服務想外轉發時在CIP|VIP前面封裝一層首部DIP|RIP,RS接受報文并且拆分外面的首部后發現目標地址的確為自己,便開始響應并直接經過路由設備回傳給客戶端,不需要經過調度器。這種模型需要調度器和RS支持隧道機制。

TUN模型遵循的法則:

1、各集群節點可跨越互聯網

2、RIP必須為公網地址

3、調度器僅處理入站請求,響應報文則由RS直接發往客戶端

4、RS網關不能指向調度器

5、只有支持隧道功能的os才能用于RS

6、不支持端口映射


原創文章,作者:黑白子,如若轉載,請注明出處:http://www.www58058.com/9482

(0)
黑白子黑白子
上一篇 2015-11-23
下一篇 2015-11-26

相關推薦

  • 文件系統層次標準FHS

    FHS針對目錄樹架構僅定義出三層目錄下應該放置哪些數據,分別是下面三個目錄: /(根目錄):與開機系統有關; /usr(unix software resource):與軟件安裝執行有關; /var(variable):與系統運作過程有關。   下面分別對上述三層目錄進行詳細的闡述。   (1) /(根目錄)   根目錄是整個系統最重要的一個目錄,…

    Linux干貨 2016-10-19
  • M20 – 1- 第三周(1):課堂練習與作業

    課堂練習: 1、創建用戶gentoo,附加組為bin和root,默認shell為/bin/csh,注釋信息為"Gentoo Distribution" [root@localhost ~]# useradd -G bin,root -s /bin/csh -c&nbsp…

    Linux干貨 2016-08-08
  • 第二周作業

    第二周博客作業 1. Linux上常用的文件管理命令及使用 (1) CP命令:復制文件或文件夾語法格式        cp [OPTION]… [-T] SOURCE DEST     …

    Linux干貨 2016-12-16
  • 破解root口令

    這里主要介紹一下centos6和7root密碼的破解方法 這里先說一下centos7的口令破解方法 破解CentOS7的root口令方法一 啟動時任意鍵暫停啟動  按e鍵進入編輯模式  將光標移動linux16開始的行,添加內核參數rd.break 按ctrl-x啟動 這是進來之后的界面 然后查看用戶的登錄信息 echo $UID 顯示結…

    2017-07-14
  • LVM2 ( Blog4 )

    LV基本應用,擴展及縮減實現

    Linux干貨 2017-11-27
  • bash編程初體驗(二)

    bash編程初體驗(二) read if case 概述 在本篇文章中,我們將介紹bash編程中有關if語句的簡單用法,if語句的基本思路是判斷給定的條件是否滿足,即結果是真還是假,從而選擇執行哪種操作。如此,如果條件為真,if會執行一種指令,如果條件為假,if會選擇執行另一種指令,這種執行就是所謂的選擇結構,它能夠改變命令的基本順序流結構,以選擇流的形式運…

    Linux干貨 2016-08-19
欧美性久久久久