標籤:http 使用 資料 ar html 工作 linux 時間
在接觸負載平衡的時候,筆者先是在網路上進行負載平衡的搜尋,弄清楚了到底什麼是負載平衡,之後就發現,支援負載平衡的系統有很多。常用的是Windows,Linux這兩大系統。那麼網上的教程最多的也是關於LVS和win2003的配置操作。那麼現在筆者,在此為大家主要介紹一下Windows負載平衡的特點。
通過使用由兩台或多台電腦一起組成的叢集,網路負載平衡使得Web伺服器的可用性提高,可擴充性改善?Internet客戶使用單一IP地址(或多重主機主機採用一套地址)訪問叢集?網路負載平衡叢集與運行單一伺服器程式的單一主機有明顯區別,叢集中某主機發生故障時,叢集系統保證提供不間斷的服務?叢集還可以比單一主機更迅速地響應客戶請求(對於負載平衡的連接埠)?
Windows叢集系統的負載平衡功能分別設定在叢集中每個節點伺服器上,不是集中在一個獨立的功能模組上,所以也稱為網路負載平衡?Win 2000 Advanced Server提供的網路負載平衡服務,可虛擬出一個MAC地址,該MAC地址與叢集各節點的MAC地址無關,且為叢集中的各主機共用?同時,網路負載平衡服務將指定的叢集主IP地址指派給該MAC地址?所有的用戶端請求都發往叢集主IP地址,傳入該主IP地址的客戶請求將被叢集中的所有節點接收,網路負載平衡在傳入指定TCP和UDP連接埠的資料報到達TCP/IP協議軟體之前對其進行篩選,根據在“連接埠規則"中配置的值將客戶請求在叢集中進行分配,只有被分配為處理該客戶請求的節點才處理它,其餘的節點則丟棄該請求?
每台伺服器都運行需要的伺服器程式(如Web?FTP?Telnet或電子郵件伺服器程式)的一個獨立副本?對有些服務(如Web伺服器上使用的服務),程式的副本在叢集內的所有主機上運行,Windows負載平衡在這些伺服器之間分配工作量?對於其它服務(如電子郵件),只有一台主機處理工作量?對於這些服務,網路負載平衡讓網路通訊流向一台主機,只有在伺服器發生故障時才將通訊移到另一台主機上?
網路負載平衡能提供高可用性,當有一台主機發生故障或離線時,網路負載平衡可將傳入的網路通訊重新定向到工作正常的叢集主機?即使與離線的主機的串連斷開,也能提供Internet服務?在大多數情況下(例如,Web伺服器),客戶軟體在串連失敗時自動重試,客戶在接收響應時只感到有幾秒鐘的延遲?
Windows負載平衡可提供擴充性能,將傳入的網路通訊在分配給叢集的一個或多個虛擬IP地址之間分布?叢集中的多台主機隨後同時響應不同的客戶請求,甚至響應來自同一客戶的多個請求?例如Web瀏覽器可以從叢集中的不同主機擷取一個Web頁面中的幾個映像?這樣就會加快處理速度,縮短對客戶的回應時間?
Windows負載平衡能使一個子網上的所有叢集主機同時檢測傳送到叢集的主IP地址(及多重主機主機的其它IP地址)的網路通訊?在每台叢集主機上,網路負載平衡驅動程式作為叢集適配器驅動程式和TCP/IP堆棧之間的篩選器,允許主機分幾部分接收傳入的網路通訊?
網路負載平衡使用完全分布式的演算法,根據叢集主機的IP地址?連接埠和其它資訊將傳入的客戶按照統計規律與各叢集主機相對應?在檢查到達的資料包時,所有的主機都同時執行這種對應來迅速確定哪台主機應該處理該資料包?除非叢集主機的數量發生變化,否則這種對應關係就會保持不變?
Windows負載平衡篩選演算法在資料包處理中比集中Server Load Balancer程式效率高得多,因為後者必須修改並重新傳輸資料包?這樣網路Server Load Balancer就能夠提供更高的集合頻寬?通過直接在叢集主機上運行,網路Server Load Balancer的效能不會受到某一代的處理器或網路技術的限制?