本章說明使用 Solaris Live Upgrade 升級已安裝非全域區域的系統。
本章說明適用於 UFS 檔案系統的 Solaris Live Upgrade。如需遷移具有非全域區域之 UFS 檔案系統至 ZFS 根池的程序,請參閱第 14 章針對已安裝非全域區域的 ZFS 執行 Solaris Live Upgrade。
本章包含下列小節:
如需使用 Solaris Live Upgrade 升級內含非全域區域系統的變更摘要,請參閱在已安裝非全域區域的情況下使用 Solaris Live Upgrade 進行升級 (簡介)。
如需使用 Solaris Live Upgrade 建立新啟動環境和升級系統的逐步說明,請參閱安裝非全域區域時建立和升級啟動環境 (作業)。
如需帶有建立新啟動環境和使用 Solaris Live Upgrade 升級系統的簡要說明的範例,請參閱升級已安裝非全域區域的系統 (範例)。
如需建立非全域區域的一般資訊,請參閱「System Administration Guide: Oracle Solaris Containers-Resource Management and Oracle Solaris Zones」。
從 Solaris Solaris 10 8/07 發行版本開始,您可使用 Solaris Live Upgrade 升級或修補含有非全域區域的系統。若您的系統內含非全域區域,則建議使用 Solaris Live Upgrade 程式來升級和增加修補程式。由於完成升級所需的時間與安裝的非全域區域數量成正比,其他升級程式可能需要較長的時間進行升級。如果使用 Solaris Live Upgrade 修補系統,則不需要將系統設定為單一使用者模式,這樣可以最大限度地延長系統的正常執行時間。下列清單簡述為適應已安裝非全域區域之系統所做的變更。
新的 SUNWlucfg 套裝軟體需要與其他 Solaris Live Upgrade 套裝軟體 (例如 SUNWlur 和 SUNWluu) 一併安裝。不僅是已安裝非全域區域的系統需要此套裝軟體,任何系統都需要。
從目前執行的啟動環境建立新啟動環境的步驟與先前的發行版本相同,但有一項例外。您可以在非全域區域中為共用檔案系統指定目標磁碟片段。如需更多資訊,請參閱安裝非全域區域時建立和升級啟動環境 (作業)。
lumount 指令現在可針對非全域區域,提供其對應之檔案系統 (位於非使用中的啟動環境中) 的存取權。當全域區域管理員使用 lumount 指令來掛載非使用中的啟動環境時,非全域區域也會一併掛載啟動環境。請參閱在包含非全域區域的系統上使用 lumount 指令。
比較啟動環境功能已經增強。lucompare 指令現在可進行包含所有非全域區域內容之多個啟動環境之間的對比。請參閱比對已安裝非全域區域之系統的多個啟動環境。
已增強了使用 lufslist 指令列出檔案系統的功能,現在可針對全域區域和非全域區域列出其檔案系統。請參閱檢視啟動環境之非全域區域檔案系統的配置。
Solaris Zones 磁碟分割技術可用來虛擬化作業系統服務,並為執行應用程式提供獨立安全的環境。非全域區域為虛擬化的作業系統環境,其建立於單一 Solaris 作業系統實例 (全域區域) 中。建立非全域區域時,會產生應用程式執行環境,其中程序會隔離於其他系統之外。
Solaris Live Upgrade 為一種機制,可將目前執行系統複製到新的磁碟片段。安裝非全域區域後,其可與全域區域的檔案系統一同複製到非使用中啟動環境。
圖 8–1 顯示會與全域區域的檔案系統一同複製到非使用中啟動環境的非全域區域。
在具有單一磁碟的系統範例中,根 (/) 檔案系統會複製到 c0t0d0s4。所有與檔案系統相關聯的非全域區域也會複製到 s4。目前啟動環境 bootenv1 和非使用中啟動環境 bootenv2 會共用 /export 檔案系統和 /swap 磁碟區。lucreate 指令如下所述:
# lucreate -c bootenv1 -m /:/dev/dsk/c0t0d0s4:ufs -n bootenv2 |
在具有兩部磁碟的系統範例中,根 (/) 檔案系統會複製到 c0t1d0s0。所有與檔案系統相關聯的非全域區域也會複製到 s0。目前啟動環境 bootenv1 和非使用中啟動環境 bootenv2 會共用 /export 檔案系統和 /swap 磁碟區。lucreate 指令如下所述:
# lucreate -c bootenv1 -m /:/dev/dsk/c0t1d0s0:ufs -n bootenv2 |
圖 8–2 顯示將非全域區域複製到非使用中啟動環境。
在具有單一磁碟的系統範例中,根 (/) 檔案系統會複製到 c0t0d0s4。所有與檔案系統相關聯的非全域區域也會複製到 s4。非全域區域 zone1 擁有獨立的檔案系統,其由 zonecfg add fs 指令所建立。區域路徑為 /zone1/root/export。為防止非使用中的啟動環境共用此檔案系統,該檔案系統置放於獨立的磁碟片段 c0t0d0s6。目前啟動環境 bootenv1 和非使用中啟動環境 bootenv2 會共用 /export 檔案系統和 /swap 磁碟區。lucreate 指令如下所述:
# lucreate -c bootenv1 -m /:/dev/dsk/c0t0d0s4:ufs \ -m /zone1/root/export:/dev/dsk/c0t0d0s6:ufs:zone1 -n bootenv2 |
在具有兩部磁碟的系統範例中,根 (/) 檔案系統會複製到 c0t1d0s0。所有與檔案系統相關聯的非全域區域也會複製到 s0。非全域區域 zone1 擁有獨立的檔案系統,其由 zonecfg add fs 指令所建立。區域路徑為 /zone1/root/export。為防止非使用中的啟動環境共用此檔案系統,該檔案系統置放於獨立的磁碟片段 c0t1d0s4。目前啟動環境 bootenv1 和非使用中啟動環境 bootenv2 會共用 /export 檔案系統和 /swap 磁碟區。lucreate 指令如下所述:
# lucreate -c bootenv1 -m /:/dev/dsk/c0t1d0s0:ufs \ -m /zone1/root/export:/dev/dsk/c0t1d0s4:ufs:zone1 -n bootenv2 |
使用非全域區域的規劃包括如下所述的限制。
表 8–1 使用非全域區域升級時限制
從目前執行的啟動環境建立新啟動環境的操作與先前發行版本相同,但有一點例外。您可以在非全域區域中為共用檔案系統指定目標磁碟片段。在下列情況下會發生此例外:
若在目前啟動環境中使用 zonecfg add fs 指令來建立非全域區域的獨立檔案系統
如果此個別檔案系統位於共用檔案系統上,例如 /zone/root/export
為防止在新啟動環境中共用獨立檔案系統,lucreate 指令可用來針對非全域區域指定獨立檔案系統的目標磁碟片段。-m 選項的引數有新的選擇性欄位 zonename。這個新欄位可將非全域區域的個別檔案系統放置在新啟動環境中的個別片段上。如需使用獨立檔案系統設定非全域區域的更多資訊,請參閱「zonecfg(1M)線上手冊」。
依預設,目前的啟動環境和新的啟動環境將會共用除重要檔案系統 (root (/)、/usr 及 /opt 檔案系統) 以外的所有檔案系統。在使用中啟動環境更新共用檔案時,會同時更新非使用中啟動環境的檔案。例如,/export 檔案系統為共用檔案系統。若您使用 -m 選項和 zonename 選項,則會將非全域區域的檔案系統複製到獨立的磁碟片段,且不會共用資料。此選項可避免兩個啟動環境共用以 zonecfg add fs 指令建立的非全域區域檔案系統。
在系統上安裝非全域區域時使用 Solaris Live Upgrade 進行升級 (作業)
如需帶有縮寫式步驟的範例,請參閱升級已安裝非全域區域的系統 (範例)。
下列程序提供針對安裝了非全域區域之系統使用 Solaris Live Upgrade 進行升級的詳細說明。
第一次執行 Solaris Live Upgrade 之前,您必須從安裝媒體安裝最新的 Solaris Live Upgrade 套裝軟體,並安裝 SunSolve 資訊文件 206844 中所列的修補程式。在 SunSolve 網站上搜尋資訊文件 206844 (以前為 72099)。
最新的套裝軟體和修補程式可確保您有此發行版本中的所有最新錯誤修正程式和新功能。在繼續建立新啟動環境之前,請確定您已安裝與您系統相關的所有修補程式。
下列子步驟說明 SunSolve 資訊文件 206844 中的步驟。
成為超級使用者,或者假定一個對等身份。
身份包含授權指令與特權指令。如需角色的更多資訊,請參閱「System Administration Guide: Security Services」中的「Configuring RBAC (Task Map)」。
從 SunSolve 網站,遵循資訊文件 206844 中的說明,移除和新增 Solaris Live Upgrade 套裝軟體。
下列說明摘要了移除和新增套裝軟體的資訊文件步驟。
移除現有的 Solaris Live Upgrade 套裝軟體。
三種 Solaris Live Upgrade 套裝軟體 SUNWluu、SUNWlur 和 SUNWlucfg 組成了使用 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 |
如果您要在本機磁碟上儲存修補程式,請建立目錄,例如 /var/tmp/lupatches。
請從 SunSolve 網站取得修補程式清單。
變更至修補程式目錄,如下列範例所示。
# cd /var/tmp/lupatches |
安裝修補程式。
# patchadd -M path-to-patchespatch-id patch-id |
path-to-patches 為修補程式目錄的路徑,例如 /var/tmp/lupatches。patch-id 為修補程式編號。請以空格分隔多個修補程式名稱。
您必須依照資訊文件 206844 中指定的順序套用修補程式。
如有必要,請重新啟動系統。部分修補程式需要重新啟動後才會生效。
僅限 x86:需要重新啟動系統。否則,Solaris Live Upgrade 會失敗。
# init 6 |
您現在已經有成功建立新啟動環境所需的套裝軟體和修補程式。
建立新啟動環境。
# lucreate [-A 'BE_description'] [-c BE_name] \ -m mountpoint:device[,metadevice]:fs_options[:zonename] [-m ...] -n BE_name |
欲建立的啟動環境名稱。BE_name 必須是此系統上的唯一名稱。
(可選擇) 建立與啟動環境名稱 (BE_name) 相關的啟動環境描述。此描述可為任意長度,且可包含任何字元。
指定使用中啟動環境的名稱為 BE_name。此選項不是必要選項,它僅在建立第一個啟動環境時使用。如果您是首次執行 lucreate,並省略了 -c 選項,則軟體會為您建立一個預設名稱。
在 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 |
升級啟動環境。
升級時要使用的作業系統影像取自網路。
# luupgrade -u -n BE_name -s os_image_path |
升級啟動環境上的作業系統影像
指定欲升級的啟動環境名稱
指定包含作業系統影像的目錄路徑名稱
在此範例中,新啟動環境 newbe 會從網路安裝影像進行升級。
# luupgrade -n newbe -u -s /net/server/export/Solaris_10/combined.solaris_wos |
(可選擇) 驗證可啟動某啟動環境。
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 - |
啟動新啟動環境。
# luactivate BE_name |
BE_name 指定要啟動的啟動環境名稱。
針對以 x86 為基礎的系統,初次啟動啟動環境時必須使用 luactivate 指令。可從 GRUB 功能表選取啟動環境來進行後續啟動。如需逐步說明,請參閱x86: 使用 GRUB 功能表啟動某啟動環境。
若要成功啟動啟動環境,該啟動環境必須符合幾項條件。如需更多資訊,請參閱啟動某啟動環境。
重新啟動。
# init 6 |
只使用 init 或 shutdown 指令來重新啟動。如果使用 reboot、halt 或 uadmin 指令,則系統不會切換啟動環境。將會再次啟動最近一次生效的使用中啟動環境。
已切換啟動環境,新啟動環境現為目前的啟動環境。
(可選擇) 轉至不同的備用啟動環境。
若新啟動環境不可用,或您要切換至其他啟動環境,請參閱第 6 章失敗回復:轉至備用原始啟動環境 (作業)。
下列程序會提供使用 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」。
安裝必要的修補程式。
請參閱 http://sunsolve.sun.com,以確定您有最近更新的修補程式清單。在 SunSolve 網站上搜尋資訊文件 206844 (以前為 72099)。在此範例中,/net/server/export/patches 為修補程式的路徑。
# patchadd /net/server/export/patches # init 6 |
從目前啟動環境移除 Solaris Live Upgrade 套裝軟體。
# pkgrm SUNWlucfg SUNWluu SUNWlur |
插入 Solaris DVD 或 CD。然後從目標發行版本安裝替代的 Solaris Live upgrade 套裝軟體。
# pkgadd -d /cdrom/cdrom0/Solaris_10/Product SUNWlucfg SUNWlur SUNWluu |
建立啟動環境。
在下列範例中,會建立名為 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 |
升級新啟動環境
在此範例中,/net/server/export/Solaris_10/combined.solaris_wos 為網路安裝影像的路徑。
# luupgrade -n newbe -u -s /net/server/export/Solaris_10/combined.solaris_wos |
(可選擇) 驗證可啟動某啟動環境。
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 - |
啟動新啟動環境。
# luactivate newbe # init 6 |
newbe 啟動環境現為使用中狀態。
(可選擇) 轉至備用不同的啟動環境。若新啟動環境不可用,或您要切換至其他啟動環境,請參閱第 6 章失敗回復:轉至備用原始啟動環境 (作業)。
成為超級使用者,或者假定一個對等身份。
身份包含授權指令與特權指令。如需角色的更多資訊,請參閱「System Administration Guide: Security Services」中的「Configuring RBAC (Task Map)」。
顯示檔案系統清單。
# lufslist -n BE_name |
指定啟動環境的名稱以檢視檔案系統詳情
下列範例會顯示內含非全域區域的檔案系統清單。
# 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 - |
lucompare 指令現在可進行包含所有非全域區域內容之多個啟動環境之間的比對。
成為超級使用者,或者假定一個對等身份。
身份包含授權指令與特權指令。如需角色的更多資訊,請參閱「System Administration Guide: Security Services」中的「Configuring RBAC (Task Map)」。
比對目前啟動環境和新啟動環境。
# /usr/sbin/lucompare -i infile (or) -t -o outfile BE_name |
比對列於 infile 中的檔案。要進行比對的檔案名稱必須是絕對的。若檔案中的項目為目錄,則比對將會遞迴至該目錄中。使用此選項或 -t,不能同時使用兩者。
只比對非二進位檔案。此比對會在每個檔案上使用 file (1) 指令來決定該檔案是否為文字檔案。使用此選項或 -i,不能同時使用兩者。
將差異的輸出重新導向至 outfile。
指定比對至使用中啟動環境的啟動環境名稱。
在此範例中,目前的啟動環境 (來源) 會與 second_disk 啟動環境進行比對,並將結果傳送至檔案。
# /usr/sbin/lucompare -i /etc/lu/compare/ -o /var/tmp/compare.out second_disk |
lumount 指令可為非全域區域提供權限,以便存取其位於非使用中啟動環境中的對應檔案系統。當全域區域管理員使用 lumount 指令來掛載非使用中的啟動環境時,非全域區域也會一併掛載啟動環境。
在下列範例中,會為位於全域區域的 /mnt 上的啟動環境 newbe 掛載適當的檔案系統。若為正在執行、已掛載或準備使用的非全域區域,其在 newbe 內的對應檔案系統亦會在每個區域內的 /mnt 上提供。
# lumount -n newbe /mnt |
如需掛載的更多資訊,請參閱「lumount(1M) 線上手冊」。