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

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

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

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

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

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

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