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 資料庫保持無法使用狀態。