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

多重主機資料

具有高可用性的全域檔案系統的磁碟組是多重主機式的,便於實體主機當機時,尚存的主機之一可以存取磁碟。 要使應用程式具有高可用性,其資料必須具有高可用性,因而其資料必須常駐於全域 HA 檔案系統中。

全域檔案系統裝載於作為獨立實體建立的磁碟群組上。 使用者可以選擇將某些磁碟群組作為裝載的全域檔案系統,將其他磁碟群組作為原始裝置與資料服務 (例如 HA Oracle) 搭配使用。

應用程式可能具有指令行切換或指向資料檔位置的配置檔案。 如果應用程式使用固定連線的路徑名稱,則可將路徑名稱變更為指向全域檔案系統中檔案的符號連結,無需變更應用程式代碼。 請參閱使用多重主機資料放置的符號連結以取得關於使用符號連結的更多詳細說明。

在最嚴重的情況下,必須修改應用程式的來源代碼,以提供某種用於指向實際資料位置的機制。 您可以透過執行附加的指令行切換來完成此作業。

Sun Cluster 支援使用 UNIX UFS 檔案系統和在容體管理程式中配置的 HA 原始裝置。 安裝和配置時,系統管理員必須指定哪些磁碟資源用於 UFS 檔案系統,哪些用於原始裝置。 通常,僅資料庫伺服器和多媒體伺服器使用原始裝置。

使用多重主機資料放置的符號連結

有時,應用程式會使其資料檔的路徑名稱固定連線,而沒有覆寫固定連線路徑名稱的機制。 若要避免修改應用程式代碼,有時您可以使用符號連結。

例如,假定應用程式用固定連線路徑名稱 /etc/mydatafile 命名其資料檔。 您可以將此路徑從檔案變更為符號連結,此符號連結的值指向其中一個邏輯主機檔案系統中的某檔案。 例如,您可以將它變更為連結至 /global/phys-schost-2/mydatafile 的符號連結。

如果應用程式或其管理程序之一修改資料檔名稱及其內容,則使用符號連結將會出現問題。 例如,假定應用程式透過首先建立一個新的暫存檔案 /etc/mydatafile.new 來執行更新。 然後透過使用 rename(2) 系統呼叫 (或 mv(1) 程式) 重新命名該暫存檔以使其具有真實的檔案名稱。 透過建立暫存檔案並將其重新命名為實際檔案,資料服務試圖確保其資料檔內容始終保持正確的格式。

但很遺憾,rename(2) 動作破壞了符號連結。 名稱 /etc/mydatafile 現在是一個規則檔案,並與/etc 目錄位於相同的檔案系統,不在叢集的全域檔案系統中。 由於 /etc 檔案系統對於每個主機都是專用的,因此在故障轉移或切換保護移轉之後資料將不可用。

引起此情形的潛在問題是:現有的應用程式不知道符號連結,並且撰寫時未考慮符號連結。 若要使用符號連結將資料存取重新導向邏輯主機的檔案系統,必須以不會刪除符號連結的方式來執行應用程式。 因此,符號連結不能完全糾正在叢集全域檔案系統上放置資料的問題。