Oracle Solaris 10 9/10 安裝指南:Solaris Live Upgrade 與升級規劃

第 8 章 在已安裝非全域區域的系統上升級 Solaris 作業系統

本章說明使用 Solaris Live Upgrade 升級已安裝非全域區域的系統。


備註 –

本章說明適用於 UFS 檔案系統的 Solaris Live Upgrade。如需遷移具有非全域區域之 UFS 檔案系統至 ZFS 根池的程序,請參閱第 14 章針對已安裝非全域區域的 ZFS 執行 Solaris Live Upgrade


本章包含下列小節:

在已安裝非全域區域的情況下使用 Solaris Live Upgrade 進行升級 (簡介)

從 Solaris Solaris 10 8/07 發行版本開始,您可使用 Solaris Live Upgrade 升級或修補含有非全域區域的系統。若您的系統內含非全域區域,則建議使用 Solaris Live Upgrade 程式來升級和增加修補程式。由於完成升級所需的時間與安裝的非全域區域數量成正比,其他升級程式可能需要較長的時間進行升級。如果使用 Solaris Live Upgrade 修補系統,則不需要將系統設定為單一使用者模式,這樣可以最大限度地延長系統的正常執行時間。下列清單簡述為適應已安裝非全域區域之系統所做的變更。

瞭解 Solaris Zones 和 Solaris Live Upgrade

Solaris Zones 磁碟分割技術可用來虛擬化作業系統服務,並為執行應用程式提供獨立安全的環境。非全域區域為虛擬化的作業系統環境,其建立於單一 Solaris 作業系統實例 (全域區域) 中。建立非全域區域時,會產生應用程式執行環境,其中程序會隔離於其他系統之外。

Solaris Live Upgrade 為一種機制,可將目前執行系統複製到新的磁碟片段。安裝非全域區域後,其可與全域區域的檔案系統一同複製到非使用中啟動環境。

圖 8–1 顯示會與全域區域的檔案系統一同複製到非使用中啟動環境的非全域區域。

圖 8–1 建立啟動環境 – 複製非全域區域

上下文說明圖例。

圖 8–2 顯示將非全域區域複製到非使用中啟動環境。

圖 8–2 建立啟動環境 – 從非全域區域複製共用檔案系統

上下文說明圖例。

在具有非全域區域的情況下使用 Solaris Live Upgrade 的準則 (規劃)

使用非全域區域的規劃包括如下所述的限制。

表 8–1 使用非全域區域升級時限制

問題 

說明 

在已安裝區域的系統上使用 Solaris Live Upgrade 時請注意這些問題。請務必避免在 lucreatelumount 操作期間發生區域狀態轉換。

  • 當您使用 lucreate 指令建立非使用中啟動環境時,如果指定的非全域區域並未執行,則在 lucreate 操作完成之前,該區域將無法啟動。

  • 當您使用 lucreate 指令建立非使用中啟動環境時,如果指定的非全域區域已在執行中,則在 lucreate 操作完成之前,該區域應該不會停止或重新啟動。

  • 當使用 lumount 指令掛載非使用中啟動環境後,雖然在 lumount 操作之前執行的區域可繼續執行,但是會無法啟動非全域區域或無法重新啟動它們。

  • 由於非全域區域可由非全域區域管理員及全域區域管理員所控制,若要防止任何互動,在 lucreatelumount 操作期間請停止所有區域。

當全域區域管理員沒有向非全域區域管理員通知使用 Solaris Live Upgrade 升級時,可能會發生問題。 

當 Solaris Live Upgrade 作業正在進行時,非全域區域管理員的參與是很重要的。升級會影響管理員的工作,管理員需解決因為升級而產生的變更。區域管理員應該確保在整個序列中所有本機套裝軟體的穩定,並處理任何升級後的工作如調整配置檔,以及避開系統中斷時間的一般排程。  

例如,當全域區域管理員正使用 lucreate 指令複製檔案時,如果非全域區域管理員新增套裝軟體,則新的套裝軟體將不會隨檔案系統複製,但非全域區域管理員不會注意到該問題。

當非全域區域位於獨立檔案系統時建立啟動環境

從目前執行的啟動環境建立新啟動環境的操作與先前發行版本相同,但有一點例外。您可以在非全域區域中為共用檔案系統指定目標磁碟片段。在下列情況下會發生此例外:

為防止在新啟動環境中共用獨立檔案系統,lucreate 指令可用來針對非全域區域指定獨立檔案系統的目標磁碟片段。-m 選項的引數有新的選擇性欄位 zonename。這個新欄位可將非全域區域的個別檔案系統放置在新啟動環境中的個別片段上。如需使用獨立檔案系統設定非全域區域的更多資訊,請參閱「zonecfg(1M)線上手冊」。


備註 –

依預設,目前的啟動環境和新的啟動環境將會共用除重要檔案系統 (root (/)、/usr/opt 檔案系統) 以外的所有檔案系統。在使用中啟動環境更新共用檔案時,會同時更新非使用中啟動環境的檔案。例如,/export 檔案系統為共用檔案系統。若您使用 -m 選項和 zonename 選項,則會將非全域區域的檔案系統複製到獨立的磁碟片段,且不會共用資料。此選項可避免兩個啟動環境共用以 zonecfg add fs 指令建立的非全域區域檔案系統。


安裝非全域區域時建立和升級啟動環境 (作業)

下列各節提供已安裝非全域區域時進行升級的逐步程序。

Procedure在系統上安裝非全域區域時使用 Solaris Live Upgrade 進行升級 (作業)

下列程序提供針對安裝了非全域區域之系統使用 Solaris Live Upgrade 進行升級的詳細說明。

  1. 第一次執行 Solaris Live Upgrade 之前,您必須從安裝媒體安裝最新的 Solaris Live Upgrade 套裝軟體,並安裝 SunSolve 資訊文件 206844 中所列的修補程式。在 SunSolve 網站上搜尋資訊文件 206844 (以前為 72099)。

    最新的套裝軟體和修補程式可確保您有此發行版本中的所有最新錯誤修正程式和新功能。在繼續建立新啟動環境之前,請確定您已安裝與您系統相關的所有修補程式。

    下列子步驟說明 SunSolve 資訊文件 206844 中的步驟。

    1. 成為超級使用者,或者假定一個對等身份。


      備註 –

      身份包含授權指令與特權指令。如需角色的更多資訊,請參閱「System Administration Guide: Security Services」中的「Configuring RBAC (Task Map)」


    2. 從 SunSolve 網站,遵循資訊文件 206844 中的說明,移除和新增 Solaris Live Upgrade 套裝軟體。

      下列說明摘要了移除和新增套裝軟體的資訊文件步驟。

      • 移除現有的 Solaris Live Upgrade 套裝軟體。

        三種 Solaris Live Upgrade 套裝軟體 SUNWluuSUNWlurSUNWlucfg 組成了使用 Solaris Live Upgrade 進行升級或修補所需的軟體。這些套裝軟體包含現有軟體、新功能和錯誤修正。若您在使用 Solaris Live Upgrade 前未移除現有套裝軟體並在系統上安裝新套裝軟體,則升級或修補至目標發行版本時會失敗。從 Solaris 10 8/07 發行版本開始,會新增 SUMWlucfg 套裝軟體。如果您是使用 Solaris 10 8/07 之前發行版本的 Solaris Live Upgrade 套裝軟體,並不需要移除此套裝軟體。


        # pkgrm SUNWlucfg SUNWluu SUNWlur
        
      • 安裝新的 Solaris Live Upgrade 套裝軟體。

        您可以使用安裝 DVD 或 CD 上的 liveupgrade20 指令來安裝套裝軟體。使用 liveupgrade20 指令需要 Java 軟體。如果您的系統沒有安裝 Java 軟體,則必須使用 pkgadd 指令來安裝套裝軟體。如需更多資訊,請參閱 SunSolve 資訊文件。

        • 如果要使用 Solaris Operating System DVD,請變更目錄並執行安裝程式:

          • 變更目錄。


            # cd /cdrom/cdrom0/Solaris_10/Tools/Installers
            

            備註 –

            對於基於 SPARC 的系統,安裝程式的路徑與 Solaris 10 10/08 之前發行版本的不同:


            # cd /cdrom/cdrom0/s0/Solaris_10/Tools/Installers
            

          • 執行安裝程式


            # ./liveupgrade20
            

            會顯示 Solaris 安裝程式 GUI。如果使用的是程序檔,您可以使用 -noconsole-nodisplay 選項來阻止顯示 GUI。

        • 如果要使用 Solaris Software – 2 CD,您可以在不變更路徑的情況下執行安裝程式。


          % ./installer
          
        • 驗證已成功安裝套裝軟體。


          # pkgchk -v SUNWlucfg SUNWlur SUNWluu
          
    3. 如果您要在本機磁碟上儲存修補程式,請建立目錄,例如 /var/tmp/lupatches

    4. 請從 SunSolve 網站取得修補程式清單。

    5. 變更至修補程式目錄,如下列範例所示。


      # cd /var/tmp/lupatches
      
    6. 安裝修補程式。


      # patchadd -M  path-to-patchespatch-id  patch-id
      

      path-to-patches 為修補程式目錄的路徑,例如 /var/tmp/lupatchespatch-id 為修補程式編號。請以空格分隔多個修補程式名稱。


      備註 –

      您必須依照資訊文件 206844 中指定的順序套用修補程式。


    7. 如有必要,請重新啟動系統。部分修補程式需要重新啟動後才會生效。

      僅限 x86:需要重新啟動系統。否則,Solaris Live Upgrade 會失敗。


      # init 6
      

      您現在已經有成功建立新啟動環境所需的套裝軟體和修補程式。

  2. 建立新啟動環境。


    # lucreate [-A 'BE_description'] [-c BE_name] \
     -m mountpoint:device[,metadevice]:fs_options[:zonename] [-m ...] -n BE_name
    
    -n BE_name

    欲建立的啟動環境名稱。BE_name 必須是此系統上的唯一名稱。

    -A 'BE_description'

    (可選擇) 建立與啟動環境名稱 (BE_name) 相關的啟動環境描述。此描述可為任意長度,且可包含任何字元。

    -c BE_name

    指定使用中啟動環境的名稱為 BE_name。此選項不是必要選項,它僅在建立第一個啟動環境時使用。如果您是首次執行 lucreate,並省略了 -c 選項,則軟體會為您建立一個預設名稱。

    -m mountpoint:device[,metadevice]:fs_options [:zonename] [-m ...]

    vfstab 中指定新啟動環境的檔案系統配置。做為引數指定給 -m 的檔案系統可以位於同一個磁碟上,也可以分佈於多個磁碟上。請視需要的次數重複使用此選項,以建立所需的檔案系統個數。

    • mountpoint 可以是任何有效的掛載點或 – (連字符),表示交換分割區。

    • device 欄位可以是下列任何一項:

      • 磁碟裝置的名稱,格式為 /dev/dsk/c wtxdys z

      • Solaris Volume Manager 磁碟區的名稱,格式為 /dev/md/dsk/dnum

      • Veritas Volume Manager 磁碟區的名稱,格式為 /dev/md/vxfs/dsk/dnum

      • 關鍵字 merged,指出指定掛載點上的檔案系統將與其父檔案系統合併

    • fs_options 欄位可以是下列任何一項:

      • ufs,表示 UFS 檔案系統。

      • vxfs,表示 Veritas 檔案系統。

      • swap,表示交換磁碟區。交換掛載點必須是一個 – (連字符)。

      • 對於邏輯裝置 (鏡像) 檔案系統,幾個關鍵字即可指定要在檔案系統上套用的動作。這些關鍵字可建立邏輯裝置、變更邏輯裝置的配置或刪除邏輯裝置。如需這些關鍵字的相關說明,請參閱建立有 RAID-1 磁碟區 (鏡像) 的啟動環境

    • zonename 指定將非全域區域的獨立檔案系統置放於獨立磁碟片段上。當區域的獨立檔案系統位於已共用檔案系統 (例如 /zone1/root/export) 時,使用此選項。此選項會將區域的獨立檔案系統複製到新磁碟片段,並防止共用此檔案系統。使用 zonecfg add fs 指令建立獨立檔案系統。

    在下列範例中,會建立名為 newbe 的新啟動環境。根 (/) 檔案系統會置於 c0t1d0s4。目前啟動環境中的所有非全域區域皆會複製到新啟動環境。會在 c0t1d0s1 上對名為 zone1 的非全域區域另外提供掛載點。


    備註 –

    依預設,目前的啟動環境和新的啟動環境將會共用除重要檔案系統 (root (/)、/usr/opt 檔案系統) 以外的所有檔案系統。/export 檔案系統為共用檔案系統。若您使用 -m 選項,則會將非全域區域的檔案系統置放於獨立磁碟片段上,且不會共用資料。此選項可防止在啟動環境之間共用由 zonecfg add fs 指令建立的區域檔案系統。如需詳細資料,請參閱「zonecfg(1M)線上手冊」。



    # lucreate -n newbe -m /:/dev/dsk/c0t1d0s4:ufs -m /export:/dev/dsk/c0t1d0s1:ufs:zone1
    
  3. 升級啟動環境。

    升級時要使用的作業系統影像取自網路。


    # luupgrade -u -n BE_name -s os_image_path
    
    -u

    升級啟動環境上的作業系統影像

    -n BE_name

    指定欲升級的啟動環境名稱

    -s os_image_path

    指定包含作業系統影像的目錄路徑名稱

    在此範例中,新啟動環境 newbe 會從網路安裝影像進行升級。


    # luupgrade -n newbe -u -s /net/server/export/Solaris_10/combined.solaris_wos
    
  4. (可選擇) 驗證可啟動某啟動環境。

    lustatus 指令會報告是否已建立啟動環境,且其可進行啟動。


    # lustatus
    boot environment   Is        Active  Active     Can	    Copy
    Name               Complete  Now	 OnReboot   Delete	 Status
    ------------------------------------------------------------------------
    c0t1d0s0            yes      yes      yes       no      -
    newbe               yes       no       no       yes     -
  5. 啟動新啟動環境。


    # luactivate BE_name
    

    BE_name 指定要啟動的啟動環境名稱。


    備註 –

    針對以 x86 為基礎的系統,初次啟動啟動環境時必須使用 luactivate 指令。可從 GRUB 功能表選取啟動環境來進行後續啟動。如需逐步說明,請參閱x86: 使用 GRUB 功能表啟動某啟動環境


    若要成功啟動啟動環境,該啟動環境必須符合幾項條件。如需更多資訊,請參閱啟動某啟動環境

  6. 重新啟動。


    # init 6
    

    注意 – 注意 –

    只使用 initshutdown 指令來重新啟動。如果使用 reboothaltuadmin 指令,則系統不會切換啟動環境。將會再次啟動最近一次生效的使用中啟動環境。


    已切換啟動環境,新啟動環境現為目前的啟動環境。

  7. (可選擇) 轉至不同的備用啟動環境。

    若新啟動環境不可用,或您要切換至其他啟動環境,請參閱第 6 章失敗回復:轉至備用原始啟動環境 (作業)

升級已安裝非全域區域的系統 (範例)

下列程序會提供使用 Solaris Live Upgrade 進行升級的縮寫式說明範例。

如需詳細的步驟說明,請參閱在系統上安裝非全域區域時使用 Solaris Live Upgrade 進行升級 (作業)

在系統上安裝非全域區域時使用 Solaris Live Upgrade 進行升級 (作業)

下列範例簡要說明升級已安裝非全域區域之系統的步驟。在此範例中會在執行 Solaris 10 發行版本的系統上使用 lucreate 指令建立新啟動環境。此系統安裝了非全域區域,且具有具備共用檔案系統上之獨立檔案系統的非全域區域 zone1/root/export。使用 luupgrade 指令將新啟動環境升級到 Solaris 10 9/10 發行版本。將使用 luactivate 指令啟動升級後的啟動環境。


備註 –

本程序假定系統正在執行磁碟區管理程式。如需使用磁碟區管理程式來管理可移除媒體的詳細資訊,請參閱「System Administration Guide: Devices and File Systems」


  1. 安裝必要的修補程式。

    請參閱 http://sunsolve.sun.com,以確定您有最近更新的修補程式清單。在 SunSolve 網站上搜尋資訊文件 206844 (以前為 72099)。在此範例中,/net/server/export/patches 為修補程式的路徑。


    # patchadd /net/server/export/patches
    # init 6
    
  2. 從目前啟動環境移除 Solaris Live Upgrade 套裝軟體。


    # pkgrm SUNWlucfg SUNWluu SUNWlur
    
  3. 插入 Solaris DVD 或 CD。然後從目標發行版本安裝替代的 Solaris Live upgrade 套裝軟體。


    # pkgadd -d /cdrom/cdrom0/Solaris_10/Product SUNWlucfg SUNWlur SUNWluu
    
  4. 建立啟動環境。

    在下列範例中,會建立名為 newbe 的新啟動環境。根 (/) 檔案系統會置於 c0t1d0s4。目前啟動環境中的所有非全域區域皆會複製到新啟動環境。會使用 zonecfg add fs 指令為 zone1 建立獨立檔案系統。此獨立檔案系統 /zone/root/export 會置於獨立檔案系統 c0t1d0s1。此選項可防止在目前啟動環境和新啟動環境之間共用獨立檔案系統。


    # lucreate -n newbe -m /:/dev/dsk/c0t1d0s4:ufs -m /export:/dev/dsk/c0t1d0s1:ufs:zone1
    
  5. 升級新啟動環境

    在此範例中,/net/server/export/Solaris_10/combined.solaris_wos 為網路安裝影像的路徑。


    # luupgrade -n newbe -u -s  /net/server/export/Solaris_10/combined.solaris_wos
    
  6. (可選擇) 驗證可啟動某啟動環境。

    lustatus 會報告是否已建立啟動環境。


    # lustatus
    boot environment   Is        Active  Active     Can	    Copy
    Name               Complete  Now	 OnReboot   Delete	 Status
    ------------------------------------------------------------------------
    c0t1d0s0            yes      yes      yes       no           -
    newbe               yes       no       no       yes          -
  7. 啟動新啟動環境。


    # luactivate newbe
    # init 6
    

    newbe 啟動環境現為使用中狀態。

  8. (可選擇) 轉至備用不同的啟動環境。若新啟動環境不可用,或您要切換至其他啟動環境,請參閱第 6 章失敗回復:轉至備用原始啟動環境 (作業)

管理內含非全域區域的啟動環境

下列小節提供關於管理內含非全域區域之啟動環境的資訊。

Procedure檢視啟動環境之非全域區域檔案系統的配置

使用此程序顯示全域區域和非全域區域的檔案系統清單。

  1. 成為超級使用者,或者假定一個對等身份。

    身份包含授權指令與特權指令。如需角色的更多資訊,請參閱「System Administration Guide: Security Services」中的「Configuring RBAC (Task Map)」

  2. 顯示檔案系統清單。


    # lufslist -n BE_name
    
    BE_name

    指定啟動環境的名稱以檢視檔案系統詳情


範例 8–1 列出具備非全域區域的檔案系統

下列範例會顯示內含非全域區域的檔案系統清單。


# lufslist -n s3
boot environment name: s3
This boot environent is currently active.
This boot environment will be active on next system boot.

Filesystem              fstype    device size Mounted on Mount Options
------------------------------------------------------------------
/dev/dsk/c0t0d0s1         swap     2151776256   -        -
/dev/dsk/c0t0d0s3         ufs     10738040832   /        -
/dev/dsk/c0t0d0s7         ufs     10487955456   /export  -
                zone <zone1> within boot environment <s3>
/dev/dsk/c0t0d0s5         ufs      5116329984   /export  -

Procedure比對已安裝非全域區域之系統的多個啟動環境

lucompare 指令現在可進行包含所有非全域區域內容之多個啟動環境之間的比對。

  1. 成為超級使用者,或者假定一個對等身份。

    身份包含授權指令與特權指令。如需角色的更多資訊,請參閱「System Administration Guide: Security Services」中的「Configuring RBAC (Task Map)」

  2. 比對目前啟動環境和新啟動環境。


    # /usr/sbin/lucompare -i  infile (or) -t -o  outfile BE_name
    
    -i  infile

    比對列於 infile 中的檔案。要進行比對的檔案名稱必須是絕對的。若檔案中的項目為目錄,則比對將會遞迴至該目錄中。使用此選項或 -t,不能同時使用兩者。

    -t

    只比對非二進位檔案。此比對會在每個檔案上使用 file (1) 指令來決定該檔案是否為文字檔案。使用此選項或 -i,不能同時使用兩者。

    -o  outfile

    將差異的輸出重新導向至 outfile

    BE_name

    指定比對至使用中啟動環境的啟動環境名稱。


範例 8–2 比對啟動環境

在此範例中,目前的啟動環境 (來源) 會與 second_disk 啟動環境進行比對,並將結果傳送至檔案。


# /usr/sbin/lucompare -i  /etc/lu/compare/ -o /var/tmp/compare.out second_disk

在包含非全域區域的系統上使用 lumount 指令

lumount 指令可為非全域區域提供權限,以便存取其位於非使用中啟動環境中的對應檔案系統。當全域區域管理員使用 lumount 指令來掛載非使用中的啟動環境時,非全域區域也會一併掛載啟動環境。

在下列範例中,會為位於全域區域的 /mnt 上的啟動環境 newbe 掛載適當的檔案系統。若為正在執行、已掛載或準備使用的非全域區域,其在 newbe 內的對應檔案系統亦會在每個區域內的 /mnt 上提供。


# lumount -n newbe /mnt

如需掛載的更多資訊,請參閱「lumount(1M) 線上手冊」。