2014年2月22日 星期六

[研究] Windows Server 2012 R2 NLB 網路負載平衡 架設

[研究] Windows Server 2012 R2 NLB 網路負載平衡 架設

[研究] Windows Server 2012 R2 IIS  Web Farm 架設

2014-02-22

2015-10-14 補充

MS-Windows 的網路負載平衡 (NLB,Network Load Balancing) 可以讓多台主機共同提供相同服務,自動平衡負載。
Windows Server 2012 R2 至少要 Standard 才開始支援 Network Load Balancing (NLB)

PS:微軟 MS-Windows 的 容錯移轉叢集 (Failover Clustering) 是 高可用性 (HA, High Availability) 架構,主要用於 SQL Server 及 Exchange Server,每台視為一個節點,當一個節點失效,系統會將該服務另一個可服務的節點,讓服務不中斷,但沒有平衡附載能力。

環境
MS-Windows (Host OS) + VMware Workstation 10.0.1

叢集 IP ( Cluster IP ) : 192.168.128.60/24
多台主機共同對外提供服務的 IP,並沒有任何一台主機使用該 IP

Windows 2012 R2 (VM1)
192.168.128.61/24 Gateway : 192.168.128.2

Windows 2012 R2 (VM2)
192.168.128.62/24 Gateway : 192.168.128.2

開始安裝
(一) VM1 和 VM2 安裝 IIS 和 NLB
(二) VM1 和 VM2 安裝 Web Server
(三) VM1 設定 NLB
(四) 測試

******************************************************************************

(一) VM1 和 VM2 安裝 IIS 和 NLB



新增說明文字













(二) VM1 和 VM2 安裝 Web Server

(下圖) 兩台都安裝 IIS,各自建立 index.htm
第一台網頁內容寫 "Web Server 1"
第二台網頁內容寫 "Web Server 2"

PS: 真實應用環境下,兩台主機的網站內容應該完全相同,這裡為了看效果,故意不同。




(三) VM1 設定 NLB (VM2 不用)

















(四) 測試

在 MS-Windows (Host OS) 上瀏覽器
http://192.168.128.61/ 可以看到 "Web Server 1"
http://192.168.128.62/ 可以看到 "Web Server 2"
http://192.168.128.60/ 應該可以看到 "Web Server 1" 或 "Web Server 2"


(下圖) wlbs query 可以查看 NLB 狀態


把 VM1 暫停,http://192.168.128.60/ 更新後可以看到 "Server 2"

把 VM1 回復運作,把 VM2 暫停,http://192.168.128.60/,按下 F5 更新能看到 "Server 1"
也就是只要有一台活著,服務就活著。

http://192.168.128.60/ 只能看到 "Server 1",按 F5 或新開瀏覽器都一樣
就算在 [命令列提示模式] 下,用 arp d 指令清除 arp cache 也是一樣
它不會輪流顯示 "Server 1" 和 "Server 2"

PS:上面的設定要測試負載平衡效果較麻煩,因為不是剛好 VM1, VM2, VM1, VM2, ... 這樣輪流,可以用ㄧ些壓力測試工具或負載測試工具測試,可以看到 VM1 和 VM2 都有提供回應,但次數可能不相等。

********************************************************************************

2015-10-14 補充

測試1 :
VMware vSphere 上 3台 VM
VM1  和 VM2  做 Windows NLB,VM3 去測試 NLB IP,連不上

測試2 :
相同 Host 上的 VMware Workstation 中安裝 3 台 VM
VM1 (NAT) 和 VM2 (NAT) 做 Windows NLB,VM3 去測試 NLB IP,可以正常顯示網頁

測試3 :
相同 Host 上的 VMware Workstation 中安裝 2 台 VM
VM1 (Bridge) 和 VM2 (Bridge) 做 Windows NLB,Host 去測試 NLB IP,可以正常顯示網頁
但拿另一台 Host (4者同網段) 去測試,連不上

注意 1 :

根據這篇

網路負載平衡 (NLB):單點傳播 (Unicast) 與 多點傳送 (Multicast) 的差異
http://technet.microsoft.com/zh-tw/ff359098.aspx

可能需要 L2 Switch 或 L3 交換器 支援才行

注意2 :

在真實環境中測試失敗,因為多點傳送時候,共用的 NLB IP 的 Mac address 並非真實硬體的 IP,防火牆可能需要設定 NLB IP 和 Mac address 的綁定。 (依據防火牆廠牌型號、支援情況 )

(完)

[研究] Windows Server 2012 R2 NLB 網路負載平衡 架設
[研究] Windows Server 2012 R2 IIS  Web Farm 架設
http://shaurong.blogspot.com/2014/02/windows-server-2012-r2-nlb.html

[研究] Windows Server 2008 R2 NLB 網路負載平衡 架設
[研究] Windows Server 2008 R2 IIS  Web Farm 架設
http://shaurong.blogspot.tw/2014/02/windows-server-2008-r2-nlb.html

[研究] Windows 2008 NLB 網路負載平衡 架設
http://forum.icst.org.tw/phpbb/viewtopic.php?t=17909

[研究] Windows 2003 NLB 網路負載平衡 架設
http://forum.icst.org.tw/phpbb/viewtopic.php?t=17908

[研究] Windows 2008 容錯移轉叢集 (Failover Clustering) 架設
http://forum.icst.org.tw/phpbb/viewtopic.php?t=17977

[研究] Windows 2003 容錯移轉叢集 (Failover Clustering) 架設
http://forum.icst.org.tw/phpbb/viewtopic.php?t=17967

網路負載平衡 (NLB):單點傳播 (Unicast) 與 多點傳送 (Multicast) 的差異
http://technet.microsoft.com/zh-tw/ff359098.aspx

容錯移轉叢集概觀
http://technet.microsoft.com/zh-tw/library/cc770737(v=ws.10).aspx

Windows NLB (Network Load Balance) 倒底是什麼東西?
http://www.fruittea.net/~hanky/blog/archives/99-Windows-NLB-Network-Load-Balance.html

沒有留言:

張貼留言