1. 程式人生 > >關於NLB的群集操作模式知識 (轉載)

關於NLB的群集操作模式知識 (轉載)

操作 web服務 出現問題 過多 如何 window interface 連接 查詢

單播:單播模式是指各節點的網絡適配器被重新指定了一個虛擬MAC(由02-bf和群集IP地址組成確保此MAC的唯一性)。由於所有綁定群集的網絡適配器的MAC都相同,所以在單網卡的情況下,各節點之間是不能通訊的,這也是推薦雙網卡配置的原因之一。為了避免交換機的數據洪水,應該結合VLAN使用。
多播:網絡適配器在保留原有的MAC地址不變的同時,還分配了一個各節點共享的多播MAC地址。所以,即使單網卡的節點之間也可以正常通訊,但是大多數路由和交換機對其支持不是太好。
IGMP多播:IGMP多播(只有在選中多播時,才可以選擇此項),在繼承多播的優點之外,NLB每隔60秒發送一次IGMP信息,使多播數據包只能發送到這個正確的交換機端口,避免了交換機數據洪水的產生。

NLB群集的兩種操作模式


Windows NLB群集有兩種操作模式:單播模式、多播模式。

單播模式(交換機不允許兩個port註冊相同的MAC地址):二層交換機的每一個端口(PORT)所註冊的MAC地址必須是唯一的,也就是說,每個端口的MAC不能重復,當兩臺服務器成為群集的時候,那麽也就意味著,這兩臺服務器的網卡啟用了NLB群集的功能,那麽這兩個網卡就有一個相同的MAC地址:00-ab-11-22-33-44即群集MAC。由於兩臺服務器直接連接在二層交換機的端口上,所以這兩個交換機的端口都會被註冊成為00-ab-11-22-33-44,以此,交換機的端口MAC產生了沖突,這是不允許的。如圖:

技術分享圖片

既然出現了問題,那麽,我們就要利用MaskSourceMAC的解決這個問題,也就是將群集MAC地址的最高第2組設為主機ID。那麽第一臺主機是01,第二臺主機是02.如圖:

技術分享圖片

單播模式(Switch Flooding——交換機泛紅):我們已經知道,交換機的每一個端口都是唯一的,路由器接收到群集IP的數據包時,它會通過ARP地址來查詢群集MAC地址,不過,交換機端口(port)沒有群集MAC地址,因為我們已經通過MaskSourceMAC功能解決交換機端口MAC相同的問題,當然交換機端口也沒有所謂的群集MAC地址,這個時候,交換機就會進行泛紅,其實說白了,就是向每個端口除接收端口進行廣播,這樣會造成額外的網絡負擔,說的通俗點就是,會造成大大的占用網絡帶寬。如圖:

技術分享圖片

雖然泛紅現象可以造成額外的網絡負擔,不過,群集中的主機都能接收到發來的數據包。那麽我們如何解決交換機泛紅問題呢?我們可以先將兩臺群集主機連接在一臺HUB(集線器)上,然後再禁用MaskSourceMAC功能,這樣,只有HUB連接的交換機端口註冊群集MAC,這樣就不會產生泛紅問題了。如圖:

技術分享圖片

禁用MaskSourceMAC功能的方法:開始——運行——regedit——HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WLBS\Parameters\Interface\Adapter-GUID,將Adapter-GUID值改為0即可。
單播模式(群集服務器之間無法相互通信的問題):既然是NLB群集,並且支持著WEB服務,也就意味著,每一臺群集主機上的web內容都是一樣的,我們可以利用DFS復制技術將兩臺群集裏的web內容進行同步,那麽就必須讓兩臺主機進行通信。如果我們選擇單播模式,並且選擇一塊網卡,那麽就會產生兩臺群集主機不通信的問題。如圖:

技術分享圖片

上圖所示,當左邊的主機要與右邊的主機進行通信的時候,它會通過ARP請求數據包來詢問其主機的MAC地址,而右邊主機回復的MAC地址是群集MAC,也就是和左邊的MAC是一樣的,所以這個時候,無法進行通信。那麽解決方法就是,將每臺群集主機安裝兩塊網卡,並且安裝的兩塊網卡不啟用群集服務,這樣通信就不會出現問題了。如圖:

技術分享圖片

多播模式的概念:多播,說白了,就是將數據包發送給多臺計算機,這些計算機同屬於一個個多播組,他們擁有一個共同的多播MAC地址。

多播模式的特點:

1、NLB群集中每一臺服務器的網卡仍然會保留原來的唯一的MAC地址,所以,群集成員服務器之間是可以正常通信的,那麽這麽一來,在交換機的端口上註冊的就是原來的唯一的MAC地址。

2、NLB群集的服務器都共用一個群集MAC地址,這是一個多播MAC地址,群集裏的服務器都是通過多播MAC地址來監聽外部的請求的。

多播的缺點:

1、有的路由器不支持,當路由器接收到送往群集IP地址202.106.0.100的數據包時,路由器就會進行ARP廣播,來查詢202.106.0.100的MAC地址,其實就是ARP廣播群集MAC,此時,我們選擇的是多播,所以群集的MAC也就是一個多播(群集)MAC地址,而回復給路由器的就是一個多播MAC地址,那麽路由器有可能不承認這個回復信息,換句話說,路由器有可能不接受這樣的結果,因為,路由器要解析的是單播地址202.106.0.100,現在解析到的是一個多播MAC,那麽,要想解決這個問題,我們可以手動在路由器上新建一個靜態的ARP條目,202.106.0.100對應一個群集MAC——00-ab-11-22-33-44,這是一個解決辦法,但是,如果路由器不支持這樣的做法,那麽我們只好更換路由器,或改為單播模式。如下圖。

2、依然存在我們前面所說過的Switch Flooding現象,當我們選擇多播模式以後,每個交換機的端口都是唯一的,但是,路由器接收到送往群集的數據包時,路由器依然會ARP廣播,欲廣播群集的MAC地址,那麽現在有這樣的一個情況,交換機的任何一個端口都沒有群集MAC,所以,這個時候,交換機只能進行廣播來獲取群集MAC地址,這樣就產生了泛紅的問題,依然會增大網絡帶寬,增加了網絡負載。在多播模式下如何解決這個問題呢,那麽就是利用一臺支持IGMP snooping(Internet group membership protocol窺探)的交換機來解決,這個協議可以自動的發現,連接在交換機上的哪個服務器屬於一個多播組,那麽只要交換機接收到送往群集的數據包,直接會被送往交換機的部分端口,也就是屬於多播組的服務器。如下圖。

技術分享圖片

參考文獻:

關於NLB的群集操作模式知識

NLB群集的兩種操作模式-1

NLB群集的兩種操作模式-2

關於NLB的群集操作模式知識 (轉載)