LVS 之Direct Routing原理


下圖爲此轉發的一個框架圖:

具體的流程爲:
===>1,client發送一條消息到virtual ip Address(linuxDirector) 
===>2,linuxDirector首先會先查一下是否已經保存了這個消息的鏈接,如果保存了,那麼直接查出這個鏈接所鏈的real server; 否則linuxDirector會採用調度算法(均衡算法)從配置的real Server中選擇一個real server,然後保存這個消息的鏈接與對應real Server的信息到hashtable中去。
===>3.linuxDirector會將消息發送過來的報文前面加上real server的MAC地址,然後推送到局域網中
 ===>4.real server會檢測這條報文,如果發現MAC是自己,那麼就處理這條消息
===>5.real server處理完成之後直接將結果消息轉發給client。

下面是這個流程的流程圖:

    從上面流程可以看出來,client每一次發送的消息都會經過LinuxDirector的,不管你是長連接還是短連接。那麼這裏面就有一個問題:如果我們在已有的集羣中增加一臺機器,而此時client卻沒有增加連接,那麼我們這臺real server就不會有鏈接過來了?哈哈,這個需要看看lvs負載均衡的算法是怎麼實現的,看看hashtable什麼時候重建。

實驗證明:這個新增機器是會在長時間(30分鐘)後有鏈接過來。











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