Sun Cluster 架構允許將一組系統作為單一大型系統進行部署、管理和檢視。
本章包含下列小節:
叢集由以下硬體元件組成:
具有本機磁碟 (未共用) 的叢集節點,提供叢集的主要運算平台。
多重主機儲存裝置,提供在節點間共用的磁碟。
配置為全域裝置的可移除媒體,例如磁帶和 CD-ROM。
叢集互連,為節點間通訊提供通道。
公用網路介面,可讓用戶端系統使用網路介面存取叢集上的資料服務。
圖 3–1 說明了硬體元件間的工作方式。
若要作為叢集成員運作,節點必須安裝有以下軟體:
Solaris 軟體
Sun Cluster 軟體
資料服務應用程式
容體管理 (SolarisTM Volume Manager 或 VERITAS Volume Manager)
一個例外的情形是使用方塊中的容體管理的配置。該配置可能不需要軟體容體管理程式。
圖 3–2 顯示了共同工作以建立 Sun Cluster 軟體環境的軟體元件的高級檢視 。
為了確保資料免於毀壞,所有節點必須針對叢集成員關係達成一致協議。必要時,CMM 會協調叢集服務的叢集重新配置以回應故障。
CMM 從叢集傳輸層接收有關連接到其他節點的資訊。在重新配置期間,CMM 使用叢集交互連接來交換狀態資訊。
偵測到叢集成員關係變更後,CMM 會執行叢集的同步化配置。在此配置中,叢集資源可能會根據新的叢集成員關係重新分配。
CMM 完全在核心中執行。
CCR 依賴 CMM 來保證叢集只有在到達法定數目時才能執行。CCR 負責驗證整個叢集的資料一致性,必要時執行復原,以及促使資料的更新。
叢集檔案系統是以下兩者間的代理:
某個節點上的核心程式與基礎檔案系統
在與磁碟實體連線的節點上執行的容體管理程式
叢集檔案系統依賴全域裝置 (磁碟、磁帶、CD-ROM)。全域裝置可以從叢集中的任何節點,使用相同檔案名稱 (例如 /dev/global/) 來存取。該節點無需有與儲存裝置的實體連線。您可以像使用一般裝置一樣使用全域裝置,即可以透過使用 newfs 或 mkfs 在全域裝置上建立檔案系統。
叢集檔案系統具備下述功能:
檔案存取位置是透明的。程序可以開啟位於系統中任何位置的檔案。此外,所有節點上的程序可以使用相同路徑名稱找到檔案。
當叢集檔案系統讀取檔案時,並不會更新這些檔案上的存取時間。
使用一致的通訊協定來保持 UNIX 檔案存取語意,即使檔案是從多個節點並行地被存取。
廣泛的快取與 zero-copy bulk I/O 移動配合使用,使檔案資料的移動更有效率。
叢集檔案系統藉由使用 fcntl(2) 介面來提供高度可用的建議檔案鎖定功能。藉由使用叢集檔案系統檔案上的建議檔案鎖定功能,在多個叢集節點上執行的應用程式可以同步化資料的存取。檔案鎖可立即由離開叢集的節點,以及維持鎖定時故障的應用程式加以回復。
即使發生故障時,仍可確保資料的持續存取。只要磁碟的路徑仍然是作業中,應用程式不會受到故障的影響。這項保證適用於原始磁碟存取和所有的檔案系統作業。
叢集檔案系統獨立於基礎檔案系統及容體管理軟體。叢集檔案系統可讓任何受支援的磁碟檔案系統都是全域的。
叢集網路的主要目標是為資料服務提供可延伸性。可延伸性意味著,當服務的負載增加時,資料服務可以在一定時間內回應此增加的工作負荷量,以使新的節點可以加入叢集並且新的伺服器實例可以執行。可延伸資料服務的典型範例是網際網路服務。通常,可延伸資料服務是由許多實例所組成,每一個實例執行於叢集的不同節點上。這些實例一起對於該服務的遠端用戶端來說為單一服務,並實現該服務的功能。在不同節點上執行多個 httpd 常駐程式的可延伸 Web 服務,可以讓任何常駐程式處理用戶端要求。服務此項要求的常駐程式依賴平衡資料流量策略。對用戶端的回覆看上去是來自服務,而不是服務該要求的特定常駐程式,因此保留了單一服務的外觀。
下圖說明了可延伸服務的架構。
沒有放置整體介面的節點 (代理節點) 將共用位址放在其回送介面上。進入全域介面的資料封包會根據可配置平衡資料流量策略分配至其他叢集節點。可能的平衡資料流量策略說明如後。
平衡資料流量可以在回應時間及產量上增進可延伸服務的效能。
可延伸資料服務的類別有兩種:Pure 與 Sticky。Pure 服務是任何實例均可回應用戶端要求的服務。Sticky 服務使叢集可以平衡節點要求的資料流量。那些要求不會重新導向至其他實例。
Pure 服務使用加權平衡資料流量策略。在此平衡資料流量策略下,依預設用戶端要求會平均地分配給叢集中的伺服器實例。例如,在每個節點權重均為 1 的三節點叢集中,每個節點代表該服務分別為來自任何用戶端的要求提供三分之一的服務。透過 scrgadm(1M) 指令介面或 SunPlex Manager GUI 可隨時變更權重。
Sticky 服務有兩種類型:Ordinary Sticky 與 Wildcard Sticky。Sticky 服務允許在多個 TCP 連接上並行處理應用程式層次階段作業,以共用 in-state 記憶體 (應用程式階段作業狀態)。
Ordinary Sticky 服務允許用戶端共用多個並行 TCP 連接之間的狀態。用戶端被稱為「sticky」是因為該伺服器實例偵聽單一埠。只要該實例維持啟動與可存取的狀態,且當此服務處於線上狀態時,平衡資料流量策略未曾改變,即可保證用戶端的所有要求均會到達相同的伺服器實例。
Wildcard Sticky 服務使用動態指定的通訊埠編號,但是仍然希望用戶端要求會到達相同的節點。用戶端在同一 IP 位址的埠上呈現「Sticky Wildcard」。
Sun Cluster 軟體透過利用多重主機磁碟儲存裝置 (一次可連線至多個節點) 使磁碟具有高度可用性。容體管理軟體可用於將這些磁碟分佈至由叢集節點控制的共用儲存裝置。然後,配置這些磁碟以在發生故障時移至其他節點。在 Sun Cluster 系統中使用多重主機磁碟可提供多種優勢,包括:
對檔案系統的全域存取
對檔案系統和資料的多個存取路徑
容許單一節點故障
必須使用叢集互連 (透過至少兩個實體獨立的冗餘網路或路徑) 來連線所有節點,以避免單一故障點。冗餘需要兩個互連,但最多可使用六個互連分散流量,以避免通訊阻塞並改善冗餘功能和可延伸性。Sun Cluster 互連使用 Fast Ethernet、Gigabit-Ethernet、InfiniBand、Sun Fire Link 或 Scalable Coherent Interface (SCI, IEEE 1596-1992),以進行高效能且叢集私有的通訊。
在叢集環境中,用於節點間通訊的高速、低延時互連及協定是必要的。Sun Cluster 系統中的 SCI 互連經由典型網路介面卡 (NIC) 提供改善的效能。Sun Cluster 將遠端共用記憶體 (RSMTM) 介面用於整個 Sun Fire Link 網路中節點間的通訊。RSM 是一個 Sun 訊息傳送介面,對於遠端記憶體作業效率很高。
遠端共用記憶體可靠資料報傳輸 (RSMRDT) 驅動程式由一個建立於 RSM API 上的驅動程式與一個匯出 RSMRDT-API 介面的程式庫組成。該驅動程式提供的 Oracle Parallel Server/Real Application Clusters 效能有所增強。該驅動程式內部直接提供有負載平衡與高可用性 (HA) 功能,因此這兩項功能也有所增強並且用戶端可以透明地使用這兩項功能。
叢集互連由以下硬體元件組成:
配接卡 – 位於每個叢集節點的網路介面卡。具有多重介面的網路配接卡在整個配接卡出現故障時會成為單一故障點。
接點 – 位於叢集節點之外的交換器。接點執行傳輸和交換功能,讓您連線兩個以上的節點。在雙節點叢集中,您不需要接點,因為透過冗餘實體電纜可直接將節點相互連線。那些冗餘電纜均連線至每個節點上的冗餘配接卡。多於兩個節點的配置需要接點。
電纜 – 位於兩個網路配接卡之間或配接卡與接點之間的實體連線。
圖 3–4 顯示了這三個元件的連接方式。
可將公用網路配接卡組織到 IP 多重路徑群組 (多重路徑群組) 中。每個多重路徑群組均有一個或多個公用網路配接卡。多重路徑群組中的每個配接卡都可以處於使用中,或者您可以配置備用介面 (除非發生防故障備用,否則處於非使用中)。
多重路徑群組可提供邏輯主機名稱與共用位址資源的基礎。節點上的相同多重路徑群組可以擁有任意數目的邏輯主機名稱或共用位址資源。若要監視叢集節點的公用網路連線,您可建立多重路徑。
如需有關邏輯主機名稱和共用位址資源的更多資訊,請參閱「Sun Cluster Data Services Planning and Administration Guide for Solaris OS」。
用戶端透過公用網路介面連接至叢集。每一個網路配接卡可以連接至一或多個公用網路,這要根據配接卡是否有多重硬體介面而定。您可以設定節點來包含已配置的多重公用網路介面卡,以便多個配接卡均處於使用中,並且彼此作為防故障備用的備份。如果一個配接卡失敗,系統將呼叫 Sun Cluster 中的 Solaris 網際網路通訊協定 (IP) 網路多重路徑軟體,以將失敗的介面防故障備用至群組中的其他配接卡。