Sun Cluster 3.0 版次注意事項

使用應用程式通訊的叢集交互連接

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

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

要在節點之間使用叢集交互連接進行通訊,應用程式必須使用安裝叢集時配置的專用主機名稱。例如,如果節點 1 的專用主機名稱是 clusternode1-priv,請使用該名稱當作節點 1 的叢集交互連接的通訊。使用這個名稱開啟的 TCP socket 可在叢集交互連接中被傳遞(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 上的 gethostbynameclusternode1-priv)將只傳回邏輯 pernode 位址。

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

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