Sun Cluster 3.2 版本說明 (適用於 Solaris 作業系統)

從 Solaris 9 的 Sun Cluster 版本 3.1 即時升級至 Solaris 10 的版本 3.2 後,無法使用區域 (6509958)

問題摘要︰ 從 Solaris 9 的 Sun Cluster 版本 3.1 即時升級至 Solaris 10 的版本 3.2 後, 無法在叢集軟體中適當地使用區域。問題在於 pspool 資料並非為 Sun Cluster 套裝軟體所建立。因此那些必須傳遞至非全域區域的套裝軟體 (例如 SUNWsczu) 並未正確地傳遞。

解決方法︰ 在使用 scinstall -R 指令升級 Sun Cluster 套裝軟體後 (但需在叢集啟動至叢集模式前),執行下列程序檔兩次:

Procedure使用程序檔的指示

開始之前

依下列其中一種方法準備並執行此程序檔:

  1. 成為超級使用者。

  2. 建立擁有以下內容的程序檔。

    #!/bin/ksh
    
    typeset PLATFORM=${PLATFORM:-`uname -p`}
    typeset PATHNAME=${PATHNAME:-/cdrom/cdrom0/Solaris_${PLATFORM}/Product/sun_cluster/Solaris_10/Packages}
    typeset BASEDIR=${BASEDIR:-/}
    
    cd $PATHNAME
    for i in *
    do
    	if pkginfo -R ${BASEDIR} $i >/dev/null 2>&1
    	then
    		mkdir -p ${BASEDIR}/var/sadm/pkg/$i/save/pspool
    		pkgadd -d . -R ${BASEDIR} -s ${BASEDIR}/var/sadm/pkg/$i/save/pspool $i
    	fi
    done
  3. 設定變數 PLATFORMPATHNAMEBASEDIR

    設定這些變數作為環境變數或直接在程序檔中修改值。

    PLATFORM

    平台名稱。例如:可以是 sparcx86。根據預設,PLATFORM 變數會設定為 uname -p 指令的輸出。

    PATHNAME

    可安裝 Sun Cluster 架構或資料服務套裝軟體的裝置路徑。此值對應至 pkgadd 指令中的 -d 選項。

    舉例說明,若為 Sun Cluster 架構套裝軟體,此值的格式如下:


    /cdrom/cdrom0/Solaris_${PLATFORM}/Product/sun_cluster/Solaris_10/Packages

    若為資料服務套裝軟體,此值的格式如下:


    /cdrom/cdrom0/Solaris_${PLATFORM}/Product/sun_cluster_agents/Solaris_10/Packages
    BASEDIR

    用作根路徑的目錄完整路徑名稱,對應至 pkgadd 指令中的 -R 選項。要進行即時升級,請將此值設定為 scinstall 指令中 -R 選項使用的根路徑。 根據預設, BASEDIR 變數設定為根 (/) 檔案系統。

  4. 執行程序檔,一次為 Sun Cluster 架構套裝軟體執行,一次為資料服務套裝軟體執行。

    執行程序檔後,您應會在每個套裝軟體的指令提示符號看到以下訊息:


    Transferring 套裝軟體名稱 package instance

    備註 –

    如果套裝軟體的 pspool 目錄已經存在,或針對相同的套裝軟體組執行兩次程序檔,指令提示符號中會顯示下列錯誤:


    Transferring 套裝軟體名稱 package instance
    pkgadd: ERROR: unable to complete package transfer
        - identical version of 套裝軟體名稱 already exists on destination device

    這是無害的訊息,您可以安心地忽略。


  5. 在您為架構套裝軟體和資料服務套裝軟體執行程序檔後,將您的節點啟動至叢集模式。