Sun Cluster 資料服務開發者指南 (適用於 Solaris 作業系統)

協調資源之間的相依性

有時候,在執行用戶端請求時,一個主從式資料服務會請求其他主從式資料服務。例如,資料服務 A 附屬於資料服務 B,如果請求 A 提供服務,則 B 必須提供其服務。Sun Cluster 透過允許在資源群組內配置資源相依性來提供此要求。此相依性會影響 Sun Cluster 啟動與停止資料服務所依據的順序。請參閱 scrgadm(1M) 線上手冊,以取得詳細資訊。

如果某一資源類型的資源附屬於其他類型的資源,您需要指導叢集管理員正確配置資源和資源群組。或者,提供正確配置資源和資源群組的程序檔或工具。如果附屬資源必須在同一節點上作為「所附屬的」資源執行,則這兩種資源必須配置於同一資源群組。

決定是否使用明確的資源相依性,或將其省略並輪詢 HA 資料服務的自有程式碼中其他資料服務的可用性。為了使相依與被相依的兩種資源可以在不同節點上執行,請將它們配置到獨立的資源群組。在此情況下必須輪詢,因為不可能跨群組配置資源相依性。

某些資料服務本身不直接儲存資料,而是依賴於其他後端資料服務來儲存其所有資料。這樣的資料服務將所有讀取要求與更新要求轉換為對後端資料服務的呼叫。例如,考量假定的主從式約會行事曆服務將其所有資料儲存於 SQL 資料庫 (如 Oracle)。該約會日曆服務有其自己的主從式網路協定。例如,它可能已使用 RPC 規格語言( 例如,ONC RPC) 定義了其協定。

在 Sun Cluster 環境中,您可以使用 HA-ORACLE 使後端 Oracle 資料庫高度可用。然後,您可以寫入啟動和停止約會行事曆常駐程式的簡單方法。叢集管理員會在 Sun Cluster 中註冊約會行事曆資源類型。

如果約會行事曆應用程式必須在與 Oracle 資料庫相同的節點上執行,則叢集管理員會在與 HA-ORACLE 資源相同的資源群組中配置約會行事曆資源,使約會行事曆資源附屬於 HA-ORACLE 資源。使用在 scrgadm 中的 Resource_dependencies 特性標記指定此相依性。

如果 HA-ORACLE 資源可以在與約會行事曆資源不同的節點上執行,則叢集管理員會將其配置到兩個獨立的資源群組中。叢集管理員可能在 Oracle 資源群組上配置行事曆資源群組的資源群組相依性。但是,僅當在同一節點上同時啟動或停止兩組資源群組時,資源群組相依性才有效。因此,在啟動日曆資料服務常駐程式之後,該常駐程式可以在等待 Oracle 資料庫變得可用時進行輪詢。在此情形下,行事曆資源類型的 Start 方法通常傳回成功。但是,如果 Start 方法被無限期鎖定,此方法會將資源群組置於忙碌狀態。此忙碌狀態會阻止進一步的狀態變更,例如在群組上編輯、容錯移轉或切換保護轉移。但是,如果行事曆資源的 Start 方法逾時或以非零狀態結束,其逾時或非零結束狀態可能導致當 Oracle 資料庫不可用時資源群組在兩個或更多節點之間反復。