Windows Server網路負載平衡技術

來源:互聯網
上載者:User

叢集的基本概念

Windows Server叢集(cluster)技術是以三層式應用程式的架構來設計的,每一層都有相對應的解決方案。例如,本文介紹的網路負載平衡(Network Load Balance,NLB)便是屬於前端的叢集技術,另外還有屬於中介層的COM+組件負載平衡(Component Load Balance,CLB),以及後端服務的伺服器叢集(Microsoft Cluster Server,MSCS)。

在介紹NLB之前,先來瞭解一些與叢集有關的基本概念:什麼是叢集,以及使用叢集的好處。

簡單來說,叢集是指一組伺服器,通過彼此的協同作業,提供一個相同的服務或應用程式,用於提升服務或應用程式的可用性(availability,注1)、可靠性(reliability,注2),以及延展性(scalability,注3)。當叢集內的伺服器掛了,請求會轉移給其它的伺服器,提供全年無休、一天24小時不中斷的服務。

Windows Server支援了三種叢集技術,分別是NLB、CLB與MSCS等,NLB和MSCS已內建於Windows Server中, CLB則需要購買Application Center。

這些叢集技術簡單說明如下:

1.NLB,提供以TCP/IP 為基礎的服務與應用程式的網路流量負載平衡,用於提升系統的可用性和延展性。常見的應用有terminal service、web service與web application等。

NLB是通過一個虛擬IP對外提供服務。當收到請求時,NLB會隨機決定由誰來處理請求。

2.CLB,提供使用COM+組件的中介層應用程式的動態負載平衡,用於提升系統的可用性和延展性。CLB會依據目前的工作負載來決定由誰來處理服務要求。

3.MSCS,提供後端服務與應用程式的容錯移轉(failover),可提升系統的可用性。常見的應用有SQL Server與Exchange Server等。

MSCS是由client來決定由誰來處理服務要求,所有伺服器共用一個share storage來儲存session狀態。當主伺服器掛了,則繼續由次伺服器接手。次伺服器會從share storage取出session狀態,繼續未完成的工作,以達到容錯移轉的目的。

NLB的運作原理

對Windows Server叢集有了基本的認識之後,接下來進一步瞭解NLB是如何將Client的服務要求分配給叢集內的伺服器,以分散服務要求的流量,使得負載不會集中在某一部伺服器上。NLB是使用篩選模式相似性演算法來分配服務要求的。它又分成無相似性、單一相似性,以及class C等三種,簡單說明如下:

1.無相似性

Client的服務要求會被平均分配到叢集內的每一部伺服器。假設NLB叢集內有2部伺服器。當接到Client的請求時,NLB會將第1個請求交由第1部伺服器來處理,第2個請求交由第2部伺服器來處理,第3個請求交由第1部伺服器來處理,…依此類推。因為所有Client聯機會平均分配到每一部伺服器,因此可以達到最佳的Server Load Balancer。如果需要執行交易處理,為了能夠共用session狀態,則必須將session狀態集中儲存在state或database server中。這種方式適用於大部分的應用程式。

2.單一相似性

Client的服務要求會固定分配到叢集內的某一部伺服器。當接到Client的請求時,NLB會根據Client 的IP來決定交由哪一部伺服器來處理,也就是一部伺服器只會處理來自某些IP的請求。因為一個IP的服務要求只會固定由一個伺服器來處理,因此沒有session狀態共用的問題,但可能會導致負載不平衡。這種方式適用於聯機需支援 SSL(安全通訊端層) 及多重聯機的通訊協議 ( 例如FTP與PPTP等)。 SSL(安全通訊端層)是一套提供身分識別驗證、保密性和資料完整性的加密技術。SSL 最常用來在 網頁瀏覽器和 Web 服務器之間建立安全通訊通道。它也可以在用戶端應用程式和 Web 服務之間使用。PPTP(點對點通道通訊協定)是一種支援多協議Virtual Private Cloud的網路技術

3.Class C與單一相似性類似,不同的是Class C是根據IP的Class C屏蔽來決定交由哪一部伺服器來處理,也就是一部伺服器只會處理來自某些網段C的請求。這種方式可確保使用多重 Proxy 的用戶端能導向到相同的伺服器。

結論

在動手建立NLB之前,需要特別注意一些限制條件,例如伺服器的Private IP必須是固定,而且在相同的網段。若只有一張網卡,則叢集內伺服器之間無法互連,因此建議要有兩張網卡,一張網卡用於建立NLB,另一個網卡,則用於伺服器之間的heart beat,偵測叢集內伺服器是否正常運作。若是使用兩張網卡,則只能在其中一張網卡上設定default gateway,否則封包將無法轉送至正確的IP地址上。

NLB的基本概念簡單地介紹到這理,實現部份可利用Windows Server的網路Server Load Balancer管理員或地區聯機設定,詳細步驟請參閱"說明與支援"。

注1:可用性(availability)是指應用程式、服務或系統提供的服務等級。可用性高的系統很少停機 (無論是計劃的還是意外的停機)。可用性通常表示為服務或系統可用的時間百分比,例如,一年停機 8.75 小時之服務的可用性是 99.9%。

注2:可靠性(reliability)是指電腦系統或裝置在指定期間內或是指定條件下,可繼續運作的可能性。

注3:延展性(scalability)是測量電腦、服務或應用程式可以擴充至何種程度以符合漸增之效能需求的一種方式。對於伺服器叢集而言,它是指叢集的整體負載超過其功能時,可持續為現存叢集新增一或多個系統的能力。

轉載自:http://www.seobbs.net/simple/index.php?t25276.html

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.