Solaris 10 10/08 安裝指南: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 建立啟動環境 – 從非全域區域複製共用檔案系統

上下文說明圖例。

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

下列小節會提供在安裝非全域區域時建立啟動環境的相關資訊,以及在安裝非全域區域時的升級程序。

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

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

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


備註 –

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


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

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

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

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

    1. 請從 SunSolveSM 網站取得修補程式清單。

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

    3. 使用 patchadd 指令安裝修補程式。


      # patchadd path_to_patches
      

      path_to_patches 為修補程式所在的路徑。

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

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


      # init 6
      
  2. 移除現有的 Solaris Live Upgrade 套裝軟體。

    三種 Solaris Live Upgrade 套裝軟體 SUNWluuSUNWlurSUNWlucfg 組成了使用 Solaris Live Upgrade 進行升級所需的軟體。這些套裝軟體包含現有軟體、新功能和錯誤修正。若您在使用 Solaris Live Upgrade 前未移除現有套裝軟體並在系統上安裝新套裝軟體,則升級至目標發行版本時會失敗。


    # pkgrm SUNWlucfg SUNWluu SUNWlur
    
  3. 安裝 Solaris Live Upgrade 套裝軟體。

    1. 插入 Solaris DVD 或 CD。

      此媒體包含您要升級至的發行版本之套裝軟體。

    2. 依下列順序從安裝媒體或網路安裝影像安裝套裝軟體。


      # pkagadd -d path_to_packages SUNWlucfg SUNWlur SUNWluu
      

      在下列範例中,會從安裝媒體安裝套裝軟體。


      # pkgadd -d /cdrom/cdrom0/Solaris_10/Product SUNWlucfg SUNWlur SUNWluu
      
  4. 驗證已成功安裝套裝軟體。


    # pkgchk -v SUNWlucfg SUNWlur SUNWluu
    
  5. 建立新啟動環境。


    # 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
    
  6. 升級啟動環境。

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


    # 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
    
  7. (可選擇) 驗證可啟動某啟動環境。

    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     -
  8. 啟動新啟動環境。


    # luactivate BE_name
    

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


    備註 –

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


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

  9. 重新啟動。


    # init 6
    

    注意 – 注意 –

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


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

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

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

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

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

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

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

下列範例簡要說明升級已安裝非全域區域之系統的步驟。在此範例中會在執行 Solaris 10 發行版本的系統上使用 lucreate 指令建立新啟動環境。此系統安裝了非全域區域,且具有具備共用檔案系統上之獨立檔案系統的非全域區域 zone1/root/export。使用 luupgrade 指令將新啟動環境升級到 Solaris 10 10/08 發行版本。將使用 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) 線上手冊」。