Sun Cluster 3.0 概念

開發新的數據服務

Sun 提供軟體,可讓您將各種應用程式當作叢集內可用性極高的數據服務來操作。 如果您要當作高可用性數據服務來執行的應用程式,目前不是由 Sun 所提供,您可以使用 API 或 DSDL API,將您的應用程式配置成為高可用性數據服務。 數據服務有兩類,亦即失效保護和可延伸。有一組 基準規則可用來判斷您的應用程式是否可以使用這些數據服務種類。特定的基準規則在 Sun Cluster 文件中有說明,其中說明了可用於您的應用程式的 API。

在此,我們提供一些準則來協助您瞭解,您的服務是否可以利用可延伸數據服務架構。 檢閱 "可延伸的數據服務" 節以取得可延伸服務的其它一般資訊。

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

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

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

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

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

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

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

數據服務 API 與數據服務檔案庫 API

Sun Cluster 提供下列項目,可以使應用程式具備高可用性:

Sun Cluster 3.0 Data Services Installation and Configuration Guide 說明如何安裝和配置 Sun Cluster 提供的數據服務。Sun Cluster 3.0 Data Services Developers' Guide 說明如何導入其它應用程式,以便在 Sun Cluster 組織架構下具備高可用性。

此項 Sun Cluster API 和「數據服務檔案庫 API」,可讓應用程式程式設計師開發錯誤監視器和啟動及停止數據服務 實例的指令集。利用這些工具,應用程式可以變成具備失效保護和可延伸數據服務。此外,Sun Cluster 可提供 " 一般" 數據服務,可用來快速產生應用程式需要的啟動和停止方法,使其執行為高可用性數據服務。