Sun Cluster 3.0 12/01 概念

發展新的資料服務

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

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

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

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

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

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

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

這種儲存處的另一個範例是後端資料庫,例如高可用性的 Oracle 或 Oracle Parallel Server。 請注意,這種後端資料庫伺服器使用資料庫查詢或更新異動來提供內建的同步化,因此多重伺服器實例不需要實作自己的同步化。

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

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

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

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

Sun Cluster 3.0 12/01 Data Services Installation and Configuration Guide 說明如何安裝和配置 SunPlex 系統提供的資料服務。 Sun Cluster 3.0 12/01 Data Services Developer's Guide 說明如何導入其它應用程式,以便在 Sun Cluster 框架下具備高可用性。

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