天天看點

LVS-DR實作基于LAMP的負載均衡

基于搭建LAMP環境,并實踐基于DNS做基于域名的虛拟主機中的環境,重新搭建一個同樣的環境要求:

     a)實作web服務檔案更新的自動同步到另一台機器上

     b)資料庫實作主從複制

     c)通過shell腳本實作網站源代碼備份和mysql備份,備份政策包括全量備份、增量備份、差異備份

通過lvs實作負載均衡,要求使用DR模式,并能把其中的原理部分通過自己的了解彙總出來。

   lvs:Linux Virtual Server, Linux虛拟四層交換的伺服器,是一個虛拟的伺服器叢集系統。LVS有LVS-NAT,LVS-DR,LVS-TUN三種模式,其中DR模式意為Direct Routing(直接路由),是排程器與實際伺服器都有一塊網卡連在同一實體網段上的情況。以下是DR模式配置實驗。

1,實驗環境如下:

LVS-DR實作基于LAMP的負載均衡

首先需在DR上安裝IPVSADM程式包。并利用前面實驗搭建好的兩台LAMP環境的伺服器做真實伺服器。并啟動HTTPD服務,驗證如下:

LVS-DR實作基于LAMP的負載均衡
LVS-DR實作基于LAMP的負載均衡

2:在DR上配置VIP和DIP,并配置DR.

LVS-DR實作基于LAMP的負載均衡
LVS-DR實作基于LAMP的負載均衡

3,分别配置兩台RS。先抑制ARP響應,然後設定lo:0上IP位址。

LVS-DR實作基于LAMP的負載均衡
LVS-DR實作基于LAMP的負載均衡
LVS-DR實作基于LAMP的負載均衡

4,LVS負載均衡測試:

LVS-DR實作基于LAMP的負載均衡
LVS-DR實作基于LAMP的負載均衡

 arp響應限制說明:

1)arp_ignore:

定義對目标位址為本地IP的ARP詢問不同的應答模式0

0 - (預設值): 回應任何網絡接口上對任何本地IP位址的arp查詢請求

1 - 隻回答目标IP位址是來訪網絡接口本地位址的ARP查詢請求

2 -隻回答目标IP位址是來訪網絡接口本地位址的ARP查詢請求,且來訪IP必須在該網絡接口的子網段内

3 - 不回應該網絡界面的arp請求,而隻對設定的唯一和連接配接位址做出回應

4-7 - 保留未使用

8 -不回應所有(本地位址)的arp查詢

2)arp_announce:

對網絡接口上,本地IP位址的發出的,ARP回應,作出相應級别的限制: 确定不同程度的限制,宣布對來自本地源IP位址發出Arp請求的接口

0 - (預設) 在任意網絡接口(eth0,eth1,lo)上的任何本地位址

1 -盡量避免不在該網絡接口子網段的本地位址做出arp回應. 當發起ARP請求的源IP位址是被設定應該經由路由達到此網絡接口的時候很有用.此時會檢查來訪IP是否為所有接口上的子網段内ip之一.如果改來訪IP不屬于各個網絡接口上的子網段内,那麼将采用級别2的方式來進行處理.

2 - 對查詢目标使用最适當的本地位址.在此模式下将忽略這個IP資料包的源位址并嘗試選擇與能與該位址通信的本地位址.首要是選擇所有的網絡接口的子網中外出通路子網中包含該目标IP位址的本地位址. 如果沒有合适的位址被發現,将選擇目前的發送網絡接口或其他的有可能接受到該ARP回應的網絡接口來進行發送.

LVS原理總結:

         ipvsadm:使用者空間的指令行工具,用于管理叢集服務;

            ipvs: 工作核心中netfilter INPUT鈎子上;

1、LVS的LVS-DR,LVS-NAT,LVS-TUN三種模式:

   lvs-nat:多目标的DNAT(iptables);它通過修改請求封包的目标IP位址(同時可能會修改目标端口)至挑選出某RS的RIP位址實作轉發; 

      (1)RS應該和DIP應該使用私網位址,且RS的網關要指向DIP;

      (2)請求和響應封包都要經由director轉發;極高負載的場景中,director可能會成為系統瓶頸;

      (3)支援端口映射;

      (4)RS可以使用任意OS;

      (5)RS的RIP和Director的DIP必須在同一IP網絡; 

   lvs-dr:direct routing它通過修改請求封包的目标MAC位址進行轉發;

      (1) 保證前端路由器将目标IP為VIP的請求封包發送給director;通過靜态綁定或者arptables或者修改RS主機核心的參數實作。

      (2)RS的RIP可以使用私有位址;但也可以使用公網位址;

      (3)RS跟Director必須在同一實體網絡中;

      (4)請求封包經由Director排程,但響應封包一定不能經由Director;

      (5)不支援端口映射;

      (6)RS的網關不能指向DIP;

      (7) RS可以大多數OS;

  lvs-tun:不修改請求封包的ip首部,而是通過在原有的ip首部之外,再封裝一個ip首部,類似于網絡隧道機制實作。 

      (1)RIP, DIP, VIP均為公網位址;

      (2)RS的網關的不能指向DIP;

      (3)請求封包必須經由director排程,但響應封包必須不能經由director;

      (4)不支援端口映射;

      (5)RS的OS必須支援隧道功能;

2、DR模式工作原理:

    1,接收client的請求,根據設定的負載均衡算法選取一台realserver的ip;

    2,以選取的這個ip對應的mac位址作為目标mac,然後重新将IP包封裝成幀轉發給這台RS;DR将請求轉發給RS是在資料鍊路層來實作的,是以DR必須和RS在同一網段裡面。

3,RealServer要在lo接口上配置VIP,因為要讓RS能夠處理目标位址為vip的IP包,首先必須要讓RS能接收到這個包,是以在lo上配置vip能夠完成接收包并将結果傳回client。

RealServer在區域網路中收到包,拆開後發現目标IP(VIP)與本地比對,于是處理這個封包。随後重新封裝封包,發送到區域網路。client與VS同一網段,那麼client将收到這個回複封包。如果跨了網段,那麼封包通過經由網關路由器從Internet傳回給client。

繼續閱讀