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

多重主機資料

具有高可用性的叢集檔案系統的裝置是多重主機式的,因此當某實體主機當機時,尚存的主機之一可以存取裝置。若要應用程式具有高可用性,其資料必須具有高可用性。因此,應用程式的資料必須位於可從多個叢集節點存取的檔案系統中。Sun Cluster 支援的高可用性檔案系統的範例包含全域 HA 檔案系統、容錯移轉檔案系統 (FFS),以及使用 Oracle Real Application Clusters 的環境中的 QFS 共用檔案系統。

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

應用程式可能具有指令行選項或指向資料檔案位置的配置檔案。如果應用程式使用固定連線路徑名稱,則您可變更路徑名稱為符號連結 (指向叢集檔案系統中的檔案),無需變更應用程式程式碼。請參閱使用多重主機資料放置的符號連結,以取得有關使用符號連結的更詳細論述。

在最差情況下,必須修改應用程式原始碼以提供用於指向實際資料位置的機制。您可以透過建立附加指令行引數實作此機制。

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

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

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

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

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

但是,rename() 動作會毀壞符號連結。現在,名稱 /etc/mydatafile 為一般檔案且位於與 /etc 目錄相同的檔案系統中,而非位於叢集的叢集檔案系統中。由於 /etc 檔案系統對於每個主機都是專用的,因此在故障轉移或切換保護移轉之後資料將不可用。

基本問題是現有應用程式不支援符號連結,並且未寫入以處理符號連結。若要使用符號連結將資料存取重新導向邏輯主機的檔案系統,必須以不會刪除符號連結的方式來執行應用程式。因此,符號連結不是一個針對將資料置於叢集檔案系統問題的完整修正方法。