Sun Cluster 3.0 12/01 概念

使用資料服務通訊的叢集交互連接

叢集在節點之間必須具備多網路連接,以形成叢集交互連接。 叢集軟體可使用多重交互連接來達到高可用性以及增進效能。 對於內部通訊 (例如,檔案系統資料或可延伸服務資料),訊息是以輪流的方式分送到所有可用的交互連接。

叢集交互連接也可以用於應用程式,以便在節點之間建立高可用性通訊。 例如,分散式應用程式可能會有元件在多個需要通訊的節點上執行。 如果使用叢集交互連接而不是公用傳輸,可以防制個別連結的故障。

要在節點之間使用叢集交互連接進行通訊,應用程式必須使用安裝叢集時配置的專用主機名稱。 例如,如果節點 1 的專用主機名稱是 clusternode1-priv,請使用該名稱當作節點 1 的叢集交互連接的通訊。

使用這個名稱開啟的 TCP 插槽可在叢集交互連接中被傳遞 (route),如果網路故障還可以再被傳遞。 請注意,由於專用主機名稱可以在安裝時配置,因此叢集交互連接可使用當時選取的任何名稱。 而實際名稱可從 scha_cluster_get(3HA),使用 scha_privatelink_hostname_node 引數來取得。

在應用程式層次使用叢集交互連接時,每一對節點之間使用單一的交互連接,但若可能的話,不同的節點配對之間應使用個別的交互連接。 例如,考慮到有應用程式在三個節點上執行,而且透過叢集交互連接來進行通訊的狀況。 節點 1 與 2 之間的通訊可能透過 hme0 介面,節點 1 與 3 之間的通訊則可能透過介面 qfe1。 也就是說,任意二個節點之間的應用程式通訊將限制於單一交互連接,內部叢集通訊則散置在所有的交互連接。

請注意,應用程式和內部叢集通訊共用交互連接,因此應用程式可用的頻寬是由其它叢集通訊所使用的頻寬來決定。 在發生故障時,內部通訊可以在其餘交互連接中循環 (round robin),而在故障的交互連接上的應用式也可以切換到運作的交互連接。

有兩種類型的位址支援叢集交互連接,而 gethostbyname(3N) 上的專用主機名稱通常會傳回兩個 IP 位址。第一個位址稱為邏輯 pairwise 位址,第二個位址稱為邏輯 pernode 位址

每一對節點會被指派個別的邏輯 pairwise 位址。 這個小型邏輯網路支援連接的故障轉移。 每一個節點還會被指派一個固定的 pernode 位址。 也就是說,每一個節點上的 clusternode1 priv 的邏輯 pairwise 位址都不一樣,而每一個節點上的 clusternode1 priv 的邏輯 pernode 位址則都相同。節點本身沒有 pairwise 位址,,因此節點 1 上的 gethostbyname (clusternode1 priv) 將只傳回邏輯 pernode 位址。

請注意,接受透過叢集交互連接之通訊,並依安全理由而驗證 IP 位址的應用程式,必須針對 gethostbyname 傳回的所有 IP 位址進行檢查,而不只是針對第一個 IP 位址。

如果您要求應用程式在各個點都是一致的 IP 位址,請將應用程式配置為在用戶端以及伺服器都是連結到 pernode 位址,這樣所有的連接看起來都會是透過 pernode 位址往來。