Sun Cluster 3.0 U1 概念

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

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

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

要在節點之間使用叢集交互連接進行通訊,應用程式必須使用安裝叢集時配置的專用主機名稱。例如,如果節點 1 的專用主機名稱是 clusternode1-priv,請使用該名稱當作節點 1 的叢集交互連接的通訊。 使用這個名稱開啟的 TCP 插槽可在叢集交互連接中被傳遞 (route),如果網路故障還可以再被傳遞。

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

在應用程式層次使用叢集交互連接時,每一對節點之間使用單一的交互連接,但若可能的話,不同的節點配對之間應使用個別的交互連接。例如,考慮到有應用程式在三個節點上執行,而且透過叢集交互連接來進行通訊的狀況。節點 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 位址往來。