Java Enterprise System 部署的可用性策略包括下列項目:
負載平衡。使用備援硬體和軟體元件來共擔處理負載。負載平衡器會將服務的任何要求導向到該服務的其中一個多重對稱式實例。如果任何一個實例失敗,還可以使用其他實例繼續較大量的負載。
容錯移轉。包含對備援硬體和軟體進行管理,以在任何元件發生故障時能繼續存取服務及繼續保持關鍵資料的安全性。
Sun Cluster 軟體提供針對由後端元件管理的關鍵資料的容錯移轉解決方案,像是 Messaging Server 的訊息儲存和 Calendar Server 的行事曆資料便是這樣的關鍵資料。
複製服務。複製服務提供可存取相同資料的數個來源。Directory Server 提供眾多針對 LDAP 目錄存取的複製和同步化策略。
下列章節提供數個可用性解決方案的範例,這些解決方案會提供數個層級的負載平衡、容錯移轉和複製服務。
將所有服務的計算資源放置在單一伺服器上。如果伺服器發生錯誤,則整個服務會失敗。
Sun 提供可帶來以下利益的高階伺服器:
在系統執行時硬體元件可取代和重新裝配
在伺服器上的錯誤隔離網域中執行多個應用程式的能力
無須重新啟動系統即可升級容量、效能速度和 I/O 配置的能力
高階伺服器通常比相較的多伺服器系統花費更大。然而,單一伺服器提供管理上的節約、監視和控管資料中心內伺服器的成本。負載平衡、容錯移轉和單一失敗點的移除比多伺服器系統更有彈性。
有數種方式可使用平行備援伺服器同時提供負載平衡和容錯移轉增加可用性。下圖說明兩個重複伺服器提供 N+1 容錯移轉系統。N+1 系統在一個伺服器發生故障時由另一個伺服器提供 100% 的容量。
上述水平備援系統中每個伺服器的計算能力是完全相同的。一個伺服器單獨處理效能需求。另一個伺服器在作為備援啟用時提供100% 的效能。
N+1 容錯移轉設計的優點是在容錯移轉情況下還能擁有 100% 的效能。缺點包括增加硬體成本而沒有獲得對應的整體效能 (因為有一個作為備用的伺服器,僅限在容錯移轉情況中使用)。
下圖說明一個實作負載平衡和容錯移轉的系統,它在兩個伺服器之間分配效能。
在以上水平備援系統所描述的系統中,如果一個伺服器發生故障,所有服務仍然可用,只是容量達不到完整容量而已。剩餘的伺服器提供 6 個 CPU 的計算能力,為 10 個 CPU 需求的 60%。
此設計的優點是當兩個伺服器都可用時將帶來額外的 2 個 CPU 的潛在容量。
下圖說明在一些伺服器之間的效能和負載平衡的分配。
因為水平備援系統所描述的設計中有五個伺服器,如果一個伺服器發生故障, 剩餘伺服器合計可提供 8 個 CPU 的計算能力,為 10 個 CPU 效能需求的 80%。如果在設計中額外增加一個具有 2 個 CPU 容量的伺服器,實際上便實現了 N+1 設計。如果一個伺服器發生故障,剩餘的伺服器可滿足 100% 的效能需求。
本設計包含以下優點:
增加單一伺服器錯誤時的效能
當一個以上的伺服器當機時依然可用
伺服器可轉出服務以便維護和升級
多個低階伺服器通常花費低於單一高階伺服器
然而,使用額外的伺服器會明顯地增加管理和維護費用。您也必須考慮在資料中心中控管這些伺服器的成本。在某些時候您會遇到新增額外伺服器造成的利潤縮減。
在需要高度可用性的情況下 (像是四或五個「九」的可用性),可以考慮將 Sun Cluster 軟體作為可用性設計的一部份。叢集系統是備援伺服器、儲存裝置和其他網路資源的結合。叢集中的伺服器保持互相通訊。如果一個伺服器離線,叢集中剩餘的裝置會隔離該伺服器,並將任何應用程式或資料從錯誤節點故障轉移到其他節點。容錯移轉過程相對上會快速的完成,並且只對使用者的系統造成極小的服務中斷。
Sun Cluster 軟體需要額外的專用硬體和專門化技術來配置、管理和維護。