2011年11月16日 星期三

裝置容錯與負載平衡機制

在建置大型網路服務的環境下,除了基本功能正常運作、安全性與效率的服務品質等問題之外,還需要提供可用性(Availability)和延展性(Scalability)的服務品質,因此如何提供系統的容錯能力以避免單點失誤(Avoid single point of failure)

、如何透過負載平衡機制以確保大量連線時仍擁有較佳的效能經常是IT人員所需要傷腦筋的關鍵功能。

一般而言,將多個裝置聚合起來以便提供容錯能力或負載平衡能力的觀念早已行之多年,包括磁碟系統、網路連線和整部機器均需要有備援(redundancy)機制,因此常採用的機制如:

  • 磁碟系統:磁碟陣列 (RAID)
    由於有價格的資料大多存放在磁碟系統,所以具有容錯能力的磁碟陣列為必備機制。
  • 交換器連接埠: Cisco Gigabit EtherChannel、IEEE 802.3ad Link Aggregation、Bay Network Multilink Trunking、Extreme Network Load Sharing
  • 網路卡: network teaming 、network bonding
    為了提供更佳的網路連線效能並且避免單一網路連線出了問題而導致網路無法連線,所以網路聚合是常見的做法。
    netteaming
  • 伺服器:叢集技術 (Clustering):叢集技術是一種將二部或二部以上的伺服器組成一個單一存取的邏輯服務單位以達成高度可用性和(或)較高效能的伺服器目的。
    • 網路負載平衡:

      •網路負載平衡叢集技術是一種將用戶端流量平均或依權數的方式分散在多部伺服器的技術

      •當用戶端存取NLB服務的獨立IP位址或DNS名稱時,NLB服務會將收到的請求連線分別送至可用的多部節點成員。

      •當一部伺服器出了問題,流量會轉送至叢集內另一部正常運作的伺服器,而一旦出了問題的伺服器再正常回到網路時,流量就會再分送至伺服器

      •網路負載平衡叢集不僅可避免太多連線過度集中於某部成員伺服器造成效能問題,還可以避免單點失敗

       nlb
    • 錯誤移轉叢集 (Failover Cluster):

      •容錯移轉叢集是採用集中共用資料存放的方式,讓從叢集內的每一個節點均可利用共用資源來提供相同的服務,正在運作中的節點稱為主動節點(Active Node),主動節點會掛載共用儲存媒體來集中存放資料,讓在節點上運作的服務可以存取資料

      •一旦主動節點停止回應,則另一個被動節點(Passive Node),將會變成主動節點,嘗試接管並掛載儲存媒體,而掛載成功之後,相對應的服務就會啟動,然後繼續提供服務的回應。

      •容錯移轉叢集的主要適用場合為:當伺服服務需要維護狀態訊息或只有一部伺服器可以擁有所需提供的資源且使用共享儲存資源(shared storage)
      failover