我們知道,僅僅簡單的依靠提高硬體性能並不能真正解決網站HTTP://www.aliyun.com/zixun/aggregation/13996.html">負載均衡問題。 因為單台伺服器的性能總是有限的,一般來講,一台PC伺服器所能提供的併發訪問處理能力大約為1000個,更為高檔的專用伺服器能夠支援3000-5000個併發訪問,這樣的能力還是無法滿足負載較大的網站的要求。
尤其是網路請求具有突發性,當某些重大事件發生時,網路訪問就會急劇上升,從而造成網路瓶頸。 必須採用多台伺服器提供網路服務,並將網路請求分配給這些伺服器分擔,才能提供處理大量併發服務的能力。
當使用多台伺服器來分擔負載的時候,最簡單的辦法是將不同的伺服器用在不同的方面。 按提供的內容進行分割時,可以將一台伺服器用於提供新聞頁面,而另一台用於提供遊戲頁面;或者可以按伺服器的功能進行分割,將一台伺服器用於提供靜態頁面訪問,而另一些用於提供CGI等需要大量消耗資源的動態頁面訪問。 然而由於網路訪問的突發性,使得很難確定那些頁面造成的負載太大,如果將服務的頁面分割的過細就會造成很大浪費。
事實上造成負載過大的頁面常常是在變化中的,如果要經常按照負載變化來調整頁面所在的伺服器,那麼勢必對管理和維護造成極大的問題。 因此這種分割方法只能是大方向的調整,對於大負載的網站,根本的解決辦法還需要應用負載均衡技術。
一、大型網站的整體網路系統設計
某教育網站是一個大型遠端教育網站,可能涉及到多方面的網站應用,包括計算集中型的應用,讀寫頻繁的應用,比如網路資料庫;傳輸量大的應用,比如流媒體服務;訪問量大的應用,比如WEB應用。
由於存在多方面的網站應用,因而對於網站系統,資料流量負載並不均勻。 對於計算集中型的應用,伺服器計算負荷會很大;對於讀寫頻繁的應用,存儲系統面臨考驗;對於傳輸量大的應用,網路頻寬是關鍵;對於訪問量大的應用,防火牆和路由器成為瓶頸。
針對上述問題與分析,首先是要從硬體和網路結構上儘量提高網路和系統性能和效率。 首先,採用高性能的PC伺服器作為網路伺服器,提高伺服器的計算和負載能力。 採用大容量、高傳輸速率的存儲系統和利用RAID 5技術實現很高的讀寫速度和性能。 對於流媒體服務和WEB應用,採用千兆技術實現到INTERNET的高速接入;選用高性能的防火牆用於提供內外網訪問和WEB發佈服務的安全,同時,實現高效的WEB訪問。
二、網站負載均衡解決方案
某教育網站作為一個大型教育網站,業務量的發展將非常迅速,並且,網路新的應用層出不窮,即使按照當前最優配置建設的網站系統,也很快會落後于網路流量的發展。 尤其是網站的核心部分,其資料流量和計算強度之大,使得單一設備根本無法承擔,而如何在完成同樣功能的多個網路設備之間實現合理的業務量分配,使之不至於出現一台設備過忙、而別的設備卻未充分發揮處理能力的情況,就成了一個問題, 負載均衡機制也因此應運而生。
負載均衡建立在現有網路結構之上,它提供了一種廉價有效的方法擴展伺服器頻寬和增加輸送量,加強網路資料處理能力,提高網路的靈活性和可用性。 它主要完成以下任務:解決網路擁塞問題,服務就近提供,實現地理位置無關性;為使用者提供更好的訪問品質;提高伺服器回應速度;提高伺服器及其他資源的利用效率;避免了網路關鍵部位出現單點失效。
根據上述分析,流量負載可能在網路中很多地方出現,因而負載均衡策略也應有多種多樣的形式。 廣義上的負載均衡既可以設置專門的閘道、負載等化器,也可以通過一些專用軟體與協定來實現。 在OSI七層協定模型中的第二、三、四、七層都有相應的負載均衡策略,例如:在資料連結層上,可以基於資料包的目的MAC位址選擇不同鏈路;在網路層,可以用基於IP位址的分配方式,將資料流程疏通到多個節點; 而所謂第四層交換乃至第七層交換,本身便是一種基於訪問流量的控制方式,起到了負載均衡的作用。
因此,我們將從網路的層次來闡述某教育網站的系統負載均衡方案。
1、帶均衡策略的伺服器叢集解決方案
某教育網站的Web伺服器及其他應用伺服器承載著重要的網站應用。 然而,單一電腦可以提供有限級別的伺服器可靠性和可伸縮性。 但是,通過將兩個或兩個以上高級伺服器的主機連成群集,網路負載均衡就能夠提供要徑任務伺服器所需的可靠性和性能。
使用多伺服器的分散式結構,將網站的WEB和其它應用分佈在多台伺服器上,即將某教育網站的WEB和其它應用服務分佈在4台IBM x336伺服器上。 其中每台伺服器都具備等價的地位,都可以單獨對外提供服務而無須其他伺服器的輔助。 然後,通過天融信的NG FW4000防火牆將外部發送來的請求均勻分配到4台伺服器上,接收到連接請求的伺服器都獨立回應客戶的請求。 由於通過同步分發,建立內容完全一致的Web伺服器並不困難,因此基於伺服器集群的負載均衡技術是很容易實現的。