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

第 6 章 資料服務開發程式庫

本章給出了組成資料服務開發程式庫 (DSDL) 的應用程式程式設計介面之簡介。DSDL 在 libdsdev.so 程式庫中實作,並包含於 Sun Cluster 套裝軟體中。

本章涵蓋下列主題:

DSDL 簡介

DSDL API 位於資源管理應用程式程式設計介面 (RMAPI) 的頂層。就其本身而言,DSDL API 不會取代 RMAPI,而會封裝和延伸 RMAPI 功能。DSDL 透過對特定 Sun Cluster 整合問題提供預先決定的解決方案,簡化資料服務開發。因此,您可以將大部分開發時間用於應用程式固有的高可用性和可延伸性問題。花費較少的時間使用 Sun Cluster 整合應用程式啟動、關閉和監視器程序。

管理配置特性

所有回呼方法要求存取配置特性。DSDL 按以下方式支援存取特性︰

scds_initialize() 函數 (必須在每個回呼方法開始時呼叫該函數) 執行以下作業︰


備註 –

對於 Validate 方法,scds_initialize() 將剖析傳送至指令行上的特性值,以消除為 Validate 撰寫剖析函數的需要。


DSDL 將提供函數集合以擷取資源類型、資源和資源群組特性,以及常用延伸特性。這些函數透過使用以下慣例標準化對特性的存取︰

啟動與停止資料服務

Start 方法將執行在叢集節點上啟動資料服務所需的動作。通常,這些動作包含擷取資源特性、配置應用程式特定的可執行檔和配置檔案,以及使用正確的指令行引數啟動應用程式。

scds_initialize() 函數擷取資源配置。Start 方法可使用特性簡易函數擷取特定特性的值,例如,Confdir_list,識別用於啟動應用程式的配置目錄和檔案。

Start 方法可呼叫 scds_pmf_start() 以啟動在程序監視工具 (PMF) 控制下的應用程式。PMF 可讓您指定監視層級以套用至程序,並提供在失敗時重新啟動程序的功能。請參閱xfnts_start 方法,以取得使用 DSDL 實作的 Start 方法之範例。

Stop 方法必須是等冪的,以便在應用程式未執行時,即使在節點上呼叫 Stop 方法,該方法也可成功結束。如果 Stop 方法失敗,即將停止的資源將設定為 STOP_FAILED 狀態,這可導致叢集執行強制重新啟動。

若要避免資源處於 STOP_FAILED 狀態,Stop 方法必須儘一切可能停止資源。scds_pmf_stop() 函數將同步嘗試停止該資源。此函數首先嘗試透過使用 SIGTERM 訊號停止資源,如果失敗,則使用 SIGKILL 訊號。請參閱 scds_pmf_stop(3HA) 線上手冊,以取得更多資訊。

實施故障監視器

DSDL 透過提供預先定義的模型來併入實作故障監視器的複雜性。當資源在節點上啟動時,Monitor_start 方法將在 PMF 的控制下啟動故障監視器。當資源在節點上執行時,故障監視器將在迴路中執行。DSDL 故障監視器的高層級邏輯如下所示︰

存取網路位址資訊

DSDL 將提供簡易函數以傳回資源和資源群組的網路位址資訊。例如,scds_get_netaddr_list() 將擷取資源使用的網路位址資源,以啟用故障監視器來探測應用程式。

DSDL 還提供用於基於 TCP 的監視的函數集。通常,這些函數會建立一個至服務的簡單通訊端連接,讀取資料和將資料寫入服務,以及中斷與服務的連接。探測的結果可傳送至 DSDL scds_fm_action() 函數,以決定要執行的動作。

請參閱xfnts_validate 方法,以取得基於 TCP 的故障監視之範例。

對資源類型實作進行除錯

DSDL 具有內建功能以協助您對資料服務進行除錯。

DSDL 公用程式 scds_syslog_debug() 提供一個基本框架,用於將除錯敘述加入至資源類型實作。可以為每個叢集節點上的每個資源類型實作動態設定除錯級別 (1 到 9 之間的數)。名為 /var/cluster/rgm/rt/rtname/loglevel 的檔案 (僅包含 1 到 9 之間的一個整數) 由所有資源類型回呼方法進行讀取。DSDL 函數 scds_initialize() 讀取該檔案並內部設定除錯層級為指定的層級。預設除錯層級 0 表示資料服務不記錄除錯訊息。

scds_syslog_debug() 函數使用由 scha_cluster_getlogfacility() 函數 (優先於 LOG_DEBUG) 傳回的功能。您可以在 /etc/syslog.conf 檔案中配置這些除錯訊息。

您可以透過使用 scds_syslog() 函數將某些除錯訊息變為資源類型 (可能優先於 LOG_INFO) 一般作業的資訊訊息。請注意,第 8 章, DSDL 資源類型實施範例中的範例 DSDL 應用程式充分使用了 scds_syslog_debug()scds_syslog() 函數。

啟用高度可用的本機檔案系統

您可以使用 HAStoragePlus 資源類型使本機檔案系統在 Sun Cluster 環境中具有高可用性。本機檔案系統分割區必須位於全域磁碟群組上。必須啟用關聯性切換保護移轉,並且必須配置 Sun Cluster 環境以用於容錯移轉。此設置可讓叢集管理員使位於多重主機磁碟上的任意檔案系統對於直接連接至這些多重主機磁碟的任意主機可存取。對於某些 I/O 密集的資料服務,強烈建議使用高度可用的本機檔案系統。「Sun Cluster Data Services Planning and Administration Guide for Solaris OS」中的「Enabling Highly Available Local File Systems」包含有關配置 HAStoragePlus 資源類型的資訊。