Sun Cluster 概念指南 (適用於 Solaris 作業系統)

開發新的資料服務

Sun 提供配置檔案與管理方法範本,讓您得以使各種應用式在叢集中以故障轉移或可延伸的服務來運作。如果您要當作故障轉移或可延伸服務來執行的應用程式,目前不是由 Sun 所提供,您可以使用 API 或 DSDL API,將您的應用程式配置成為故障轉移或可延伸的服務。

有一套準則可用來斷定應用程式是否可成為故障轉移服務。特定的準則在 SunPlex 文件中有所說明,其中說明了可用於您的應用程式的 API。

在此,我們提供一些準則來協助您瞭解,您的服務是否可以利用可延伸資料服務架構。請參閱可延伸資料服務一節,以取得關於可延伸服務的更多一般資訊。

滿足下列準則的新服務,則可以使用可延伸服務。如果現存的服務不完全符合這些準則,可能需要改寫些某些部分,使服務能夠符合準則。

可延伸資料服務具有下列特性。首先,這類服務由一個或多個伺服器實例組成。每一個實例執行於不同的叢集節點上。同一節點無法執行相同服務的兩個或多個實例。

第二,如果服務提供外部邏輯資料儲存體,從多部伺服器對此儲存體做並行存取時,必須同步化,以避免將之變更時遺失更新或讀取資料。請注意,我們用「外部」來區別儲存處與記憶體內部狀態,而使用「邏輯」是因為儲存處顯示為單一實體,雖然其自身可進行複製。此外,此邏輯資料儲存體具有當任何伺服器實例更新儲存體時其他實例會立即看到更新的特性。

SunPlex 系統透過其叢集檔案系統與其整體原始分割區來提供此類的外部儲存體。例如,假設服務會寫入新的資料到外部登錄檔,或就地修改現存的資料。在執行此服務的多個實例時,每個實例均存取此外部登錄,而且可能同時存取此登錄。每一個實例必須將此登錄的存取同步化,否則實例會互相干擾。服務可以透過 fcntl(2)lockf(3C) 的一般 Solaris 檔案鎖定,來達到所需的同步化。

此類型儲存體的另一個範例是後端資料庫,例如基於 SPARC 的叢集之高度可用 Oracle 或 Oracle Real Application Clusters。請注意,這種後端資料庫伺服器使用資料庫查詢或更新異動來提供內建的同步化,因此多重伺服器實例不需要實作自己的同步化。

目前不是可延伸服務的服務範例,是 Sun 的 IMAP 伺服器。服務會更新儲存體,但是該儲存體是私有的,而且當多個 IMAP 實例寫入此儲存體時,會因為未同步化而彼此覆寫。IMAP 伺服器必須要改寫,以同步化並行存取。

最後請注意,實例可能會具有與其他實例的資料區隔的私有資料。在此情況下,服務不需要關心自己的同步化並行存取,因為資料是私有的,而且只有該實例可以操作資料。因此,您必須慎防將此私有資料儲存在叢集檔案系統之下,因為它可能會變成可全域存取。

資料服務 API 與資料服務開發檔案庫 API

SunPlex 系統提供下列項目,可使應用程式具備高可用性︰

Sun Cluster Data Services Planning and Administration Guide for Solaris OS描述了如何安裝與配置隨 SunPlex 系統提供的資料服務。「Sun Cluster 3.1 9/04 Software Collection for Solaris OS (SPARC Platform Edition)」描述了如何裝備其他應用程式,使其在 Sun Cluster 框架下高度可用。

Sun Cluster API 可讓應用程式設計師開發可啟動與停止資料服務實例的故障監視器及程序檔。利用這些工具,應用程式可以變成具備故障轉移和可延伸資料服務。另外,SunPlex 系統還提供可用來快速產生應用程式必需的啟動與停止方法的「一般」資料服務,以使其作為故障轉移或可延伸服務來執行。