linux lvs的DR模式原理詳解

2021-08-02 20:57:28 字數 1595 閱讀 7266

lvs – linux virtual server

通過直接路由實現虛擬伺服器(vs/dr)

vs/dr利用大多數internet服務的非對稱特點,負載排程器中只負責排程請求,而伺服器直接將響應返回給客戶,可以極大地提高整個集群 系統的吞吐量。該方法與ibm的netdispatcher產品中使用的方法類似(其中伺服器上的ip位址配置方法是相似的),但ibm的 netdispatcher是非常昂貴的商品化產品,我們也不知道它內部所使用的機制,其中有些是ibm的專利。

vs/dr的體系結構如下圖所示:排程器和伺服器組都必須在物理上有乙個網**過不分斷的區域網相連,如通過高速的交換機或者hub相連。vip位址為排程器和伺服器組共享(在排程器和real server都需要配置vip),排程 器配置的vip位址是對外可見的,用於接收虛擬服務的請求報文;所有的伺服器把vip位址配置在各自的non-arp網路裝置上,它對外面是不可見的,只 是用於處理目標位址為vip的網路請求。

在vs/dr 中,排程器根據各個伺服器的負載情況,動態地選擇一台伺服器,不修改也不封裝ip報文,而是將資料幀的mac位址改為選出伺服器的mac位址,再將修改後 的資料幀在與伺服器組的區域網上傳送。因為資料幀的mac位址是選出的伺服器,所以伺服器肯定可以收到這個資料幀,從中可以獲得該ip報文。當伺服器發現 報文的目標位址vip是在本地的網路裝置上,伺服器處理這個報文,然後根據路由表將響應報文直接返回給客戶。

下面用例項詳細講解原理過程:

假設client,director,vip,realserver的ip及mac位址如下

第一步:client向vip發起請求,director接收到請求,ip包頭的資訊如下

第二步:lvs根據負載均衡演算法,選擇一台realserver,修改dst mac位址為realserver的mac位址,將資料報**到區域網,此時ip包頭資訊如下

第三步:realserver接收到包,拆開後發現目標ip(vip)與本地匹配,於是處理這個報文。隨後重新封裝報文,傳送到區域網,ip包頭及資料幀頭資訊如下

第四步:如果,通過路由將包路由到client

注意事項

a. lvs必須與realserver在同乙個區域網,因為lvs收到資料報後,只修改了dst mac位址,然後廣播出去,如果lvs與realserver不在統一網段,realserver永遠收不到資料報

b. lvs-dr不需要路由**,同一區域網內,不經過路由

c. realserver需要配置 vip

深入淺出Linux LVS的DR模式的關鍵點

dr模式的關鍵點 但在dr模式下,對應相應回去的資料報是realserver直接相應的,並沒有通過負載均衡排程器,因此這個被選中的真實伺服器上必須也要配置乙個vip才能保證,相應回去的源ip是當初客戶端訪問的目標ip位址。那麼問題來了,負載均衡排程器和真實伺服器都在同乙個區域網內部,都有vip這個位...

Linux lvs三種模式工作原理

lvs linux virtual sevser,linux虛擬伺服器,由章文嵩先生成立的有關負載均衡的開源專案。基於linux核心。優化後併發量可以達到百萬級。nat模式 nat network address translation 網路位址轉換,內網主機可以通過路由nat實現訪問外網主機。1 ...

DR模式的搭建

倆主一備主機down備機頂上 vip 192.168.199.120 rip 192.168.199.110 192.168.199.111 排程器安裝 1 關閉防火牆 2 安裝ipvsadm yum install ipvsadm y 3 新增表 ipvsadm a t 192.168.199.1...