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

開發新的資料服務

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

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

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

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

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

第二,如果服務提供外部邏輯資料儲存體,從多部伺服器對此儲存體做並行存取時,必須同步化,以避免將之變更時遺失更新或讀取資料。 請注意,我們強調「外部」是為了區分儲存體與記憶體內部狀態,而強調「邏輯」是因為儲存體以單一實體呈現,儘管它本身可能被複製。 此外,此邏輯資料儲存體具有當任何伺服器實例更新儲存體時其他實例會立即看到更新的屬性。

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

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

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

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

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

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

Sun Cluster Data Services Planning and Administration Guide說明了如何安裝和配置 SunPlex 系統提供的資料服務。 Sun Cluster 資料服務開發者指南說明了如何導入將在 Sun Cluster 框架下具有高可用性的其他應用程式。

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