Sun Cluster 概念指南 (適用於 Solaris 作業系統)

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

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

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

要在節點之間使用叢集交互連接進行通訊,應用程式必須使用安裝叢集時配置的專用主機名稱。 例如,如果節點 1 的專用主機名稱是 clusternode1-priv,請使用該名稱以透過節點 1 的叢集交互連接進行通訊。使用此名稱開啟的 TCP 插槽透過叢集交互連接進行路由,並可在出現網路故障時透明式地重新路由。

請注意,由於專用主機名稱可以在安裝時配置,因此叢集交互連接可使用當時選取的任何名稱。 可使用 scha_privatelink_hostname_node 引數從 scha_cluster_get(3HA) 取得實際名稱。

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

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

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

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

請注意,透過叢集交互連接接受連接、然後出於安全性原因而驗證 IP 位址的應用程式,必須檢查從 gethostbyname 傳回的所有 IP位址,而不僅僅檢查第一個 IP 位址。

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