引言
保持使用最新的 AIX Technology Level (TL) 一直是實現(xiàn)更好的可用性、可靠性和安全的最佳方法。TL 是為 AIX 版本或新硬件支持所添加的一組修復程序或新特性。
以下是決定您應該更新到新版本 TL 的原因:
- 新版本 TL 提供了一個您需要的新功能。
- 當前版本的 TL 不能使用或?qū)⒉恢С中碌男迯秃头⻊粘绦虬?li>系統(tǒng)目前需要一個修復程序,但是這個程序只在新版本 TL 中支持。
本文將詳細說明 TL 的多種更新和回滾方法。它介紹了 IBM 提供的已批準和支持的 TL 升級方法。
開始前準備
TL 應用必須以組為單位。安裝一個 TL 是一個 “全或無” 的操作。從支持的觀點上看,安裝一部分 TL 是不可能。
應用一個 TL 之前,您一定要先備份您當前的安裝環(huán)境,然后要計劃一個最壞的情況—在需要的時候?qū)⑾到y(tǒng)回滾到之前的版本。
同時,TL 更新必須提交,因為它們是不能夠被拒絕的。如果一個 TL 已經(jīng)應用但是您需要返回之前的版本,那么您就需要使用一個回滾計劃。
一般的經(jīng)驗法則是一定要在更新之前創(chuàng)建一個備份。這個備份可以是任何一種鏡像備份(mksysb 鏡像、sysback 鏡像等)。
備用鏡像創(chuàng)建好之后,就可以開始升級了。
同時,一個很好的實踐方法是創(chuàng)建一個健康檢查表,保存盡可能多的系統(tǒng)信息(netstat、ifconfig、lsvg、lsdev、lscfg、prtconf 等),并將它保存在服務器升級所在位置之外的某個位置。要記住這些信息會在遇到問題時作為支持材料使用。
如果準備安裝的 TL 版本是 AIX 5.3 TL10 和 AIX 6.1 TL2 之前的,那么一定要刪除系統(tǒng)的所有臨時修復程序(ifix)。清單 1 顯示了如何檢查已安裝的 ifix 列表,而清單 2 則顯示了如何刪除一個 ifix。
清單 1. 檢查已安裝的 ifix 列表
清單 2. 刪除一個 ifix
# emgr –r –L <ifix Label> |
更多關于 emgr 命令使用方法的信息,請參考 IBM 文檔或網(wǎng)站主頁。
如果您準備更新到 AIX 5.3 TL10 或 AIX 6.1 TL3,那么您不需要執(zhí)行這些步驟,因為這些版本的 installp 和 emgr 已經(jīng)改進為自動刪除 TL 中出現(xiàn)的 ifix。否則,您需要手動刪除這些 ifix。
檢查所有的文件集是否均已應用且有效,如清單 3 所示。
清單 3. 檢查已安裝的文件集的一致性
# instfix –i | grep ML# lppchk –v |
如果運行這些命令時有錯誤,那么要先解決這些問題。應用 TL 到不一致的 AIX 不僅會破壞操作系統(tǒng),而且它可能導致操作系統(tǒng)無法啟動。
接下來,所有狀態(tài)為 APPLIED 的文件集都應該 COMMENTED。要提交這些文件集,您可以參考清單 4 所的例子。
清單 4. 提交所有狀態(tài)為 APPLIED 的文件集
或者,可以使用 Smitty 提交,并根據(jù)屏幕的指示進行操作。
備用磁盤(Alternate Disk)
這是一個最廣泛使用的應用新版本 TL 的方法。它包含在 IBM 技術文檔和書籍中。使用一個備用磁盤有以下方法:
- 使用第二個磁盤并將 TL 應用到這個磁盤中,而不中斷原來的磁盤,在 TL 升級完成后重新啟動— IBM 建議升級時終止所有進程,并且注銷所有用戶(本文將會介紹這個過程)。
- 重新啟動到第二個磁盤,然后在主磁盤上運行 TL 升級—有一些系統(tǒng)管理員經(jīng)常使用這個方法,它能保證系統(tǒng)以一致的狀態(tài)運行,并且在重新啟動后不會出現(xiàn)問題和沖突。
無論使用哪一種方法,您都需要使用一個空閑的磁盤作為備用磁盤。
對于這個備用磁盤更新方法,所更新的服務器有一個具有兩塊鏡像磁盤的 rootvg。因此,在開始之前要解除這些鏡像,并使用第二塊磁盤作為備用磁盤安裝,如清單 5 所示。
清單 5. 解除 rootvg 鏡像
如果配置備用轉(zhuǎn)儲設備來使用備用磁盤,那么要使用 migratepv 將它的 LP 轉(zhuǎn)移到保留的磁盤或者不配置備用轉(zhuǎn)儲設備。
將這個磁盤從 rootvg 刪除(假定 X 是磁盤設備號),如清單 6 所示。
清單 6. 將磁盤從 rootvg 刪除
現(xiàn)在可以創(chuàng)建備用磁盤,然后將 TL 更新應用到這個磁盤上。正如本文所介紹的,TL 文件可以存儲在本地、遠程 NFS 或 CD-ROM 中。
您可以使用 Smitty 快捷方法 smitty alt_clone,或者 alt_disk_copy 命令。圖 1 顯示了初始 Smitty 屏幕。
圖 1. 初始 Smitty alt_clone 屏幕
記住,如果不確定某個域,您可以按 F1 鍵查看幫助文檔。
接下來,使用 hdisk1 目錄,而 TL 文件則位于本地文件系統(tǒng)的 /stage_TL 目錄,如圖 2 所示。
圖 2. 添加用于安裝的 hdisk1 和 bundle、圖像所在目錄、以及許可協(xié)議驗收
所有操作都將會被記錄到 /var/adm/ras/alt_disk_inst.log。要查看這個過程,可以輸入 tail –f’。
服務器需要在更新過程完成后重新啟動,所以要保證啟動列表顯示目標備用磁盤作為啟動設備(如清單 7 所示)。
例 7. 檢查啟動設備順序
# bootlist –m normal –ohdisk1 blv=hd5 |
當服務器啟動后,輸入命令 oslevel –s 或 oslevel –r,檢查 OS 級別現(xiàn)在是否為更新的 TL,如清單 8 所示。
清單 8. 檢查運行的 AIX 版本
# oslevel –s5300-10-01-0921 |
如果更新成功,rootvg 就可以再次映射。清單 9 顯示了如何再次映射 rootvg。
清單 9. 重新映射 rootvg
# exportvg old_rootvg# extendvg –f rootvg hdisk0# mirrorvg rootvg |
在 hdisk0 上創(chuàng)建一個新的啟動鏡像,并將它添加到啟動列表上,如清單 10 所示。
清單 10. 創(chuàng)建一個啟動鏡像
# bosboot –ad /dev/hdisk0# bootlist –m normal –o hdisk0 hdisk1 |
Multibos
這是迄今為止最好的升級 AIX 的方法。它是 AIX 5.3 TL3 所引入的。其優(yōu)點在于 rootvg 上只需要一塊磁盤,而不需要任何空閑磁盤作為備用磁盤。
Multibos 在相同的 rootvg 上創(chuàng)建并維護了兩個不同的可啟動的 AIX 實例。它類似于備用磁盤方式。在這種情況下,其中最大的差別是 Multibos 只會創(chuàng)建和復制以下邏輯卷(LV):
- /;
- /usr;
- /var;
- /opt;
- hd5(啟動的邏輯卷)。
雖然您可以指定和復制更多的邏輯卷,所有其他的 LV 都會共享給原始啟動卷組。Multibos 支持一個新的 TL 更新,但是 Multibos 不支持 AIX 版本升級。
這一部分所提到任務之外,還要確定有足夠的空閑空間,以便將所有 BOS 邏輯卷復制到同一個根卷組磁盤中,否則 Multibos 將不會生效。
通過運行 Multibos 命令創(chuàng)建一個新的 BOS 備用實例。在您開始操作之前要閱讀它的選項和文檔。清單 11 顯示了如何創(chuàng)建一個新的 BOS 備用實例。
清單 11. 創(chuàng)建 Multibos 備用 BOS 的預覽信息
這里顯示了將要執(zhí)行的 Multibos 預覽信息。更詳細的信息在其日志文件(/etc/multibos/logs/op.alog)中。如果預覽信息顯示一切正常,那么您可以不使用預覽標記(-p)而再執(zhí)行一次這個命令,如清單 12 所示。
例 12. 創(chuàng)建 Multibos 備用 BOS
復制所有的內(nèi)容需要幾分鐘時間,而在完成后,所有新的 LV 將會被加上前綴 “bos_”。清單 13 顯示了新備用 BOS 創(chuàng)建后的 rootvg 信息。
清單 13. 創(chuàng)建的 Multibos 備用 BOS
# lsvg –l rootvg
rootvg:
LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT
hd5 boot 1 1 1 closed/syncd N/A
hd6 paging 192 192 1 open/syncd N/A
hd8 jfs2log 1 1 1 open/syncd N/A
hd4 jfs2 1 1 1 open/syncd /
hd2 jfs2 17 17 1 open/syncd /usr
hd9var jfs2 8 8 1 open/syncd /var
hd3 jfs2 4 4 1 open/syncd /tmp
hd1 jfs2 1 1 1 open/syncd /home
hd10opt jfs2 1 1 1 open/syncd /opt
lvdump1 sysdump 22 22 1 open/syncd N/A
lvdump2 sysdump 22 22 1 open/syncd N/A
bos_hd5 boot 1 1 1 closed/syncd N/A
bos_hd4 jfs2 1 1 1 open/syncd /bos_inst
bos_hd2 jfs2 17 17 1 open/syncd /bos_inst/usr
bos_hd9var jfs2 8 8 1 open/syncd /bos_inst/var
bos_hd10opt jfs2 1 1 1 open/syncd /bos_inst/opt
|
一個很好的做法是進入最新創(chuàng)建的 BOS 實例 Shell,驗證它的當前 TL,如清單 14 所示。要退出 Multibos 環(huán)境,您只需要輸入‘exit’:
清單 14. 進入 Multibos Shell 并檢查 AIX 版本
# multibos –S
Initializing multibos methods ...
Initializing log /etc/multibos/logs/op.alog ...
Gathering system information ...
+-----------------------------------------------------------------------------+
Multibos Shell Operation
+-----------------------------------------------------------------------------+
Verifying operation parameters ...
+-----------------------------------------------------------------------------+
Mount Processing+-----------------------------------------------------------------------------+
Mounting all standby BOS file systems ...
Mounting /bos_inst
Mounting /bos_inst/usr
Mounting /bos_inst/var
Mounting /bos_inst/opt
+-----------------------------------------------------------------------------+
Multibos Root Shell
+-----------------------------------------------------------------------------+
Starting multibos root shell ..
.Active boot logical volume is hd5.
Script command is started. The file is /etc/multibos/logs/scriptlog.090904032855.txt.
MULTIBOS> oslevel –s
5300-06-08-0831
|
如果所有前提任務都已經(jīng)完成,TL 更新就會啟動。清單 15 中所使用的命令將會更新您新創(chuàng)建的備用 BOS 實例。
清單 15. 更新備用 BOS 實例
# multibos –Xac –l /stage_TL |
在命令完成后,再次進入 Multibos Shell,檢查當前的 TL,如清單 16 所示。
清單 16. 進入 Multibos Shell
# multibos –S
Initializing multibos methods ...
Initializing log /etc/multibos/logs/op.alog ...
Gathering system information ...
+-----------------------------------------------------------------------------+
Multibos Shell Operation
+-----------------------------------------------------------------------------+
Verifying operation parameters ...
+-----------------------------------------------------------------------------+
Mount Processing
+-----------------------------------------------------------------------------+
Mounting all standby BOS file systems ...
Mounting /bos_inst
Mounting /bos_inst/us
rMounting /bos_inst/var
Mounting /bos_inst/opt
+-----------------------------------------------------------------------------+
Multibos Root Shell
+-----------------------------------------------------------------------------+
Starting multibos root shell ...
Active boot logical volume is hd5.
Script command is started. The file is /etc/multibos/logs/scriptlog.090904035718.txt.
MULTIBOS> oslevel –s
5300-10-01-0921
|
配置并保證啟動列表將備用 BOS 作為第一啟動設備,如清單 17 所示。
清單 17. 設置啟動到您新的 BOS 備用實例
# multibos –B
# bootlist –m normal –o
hdisk0 blv=bos_hd5
hdisk0 blv=hd5
|
如果更新過程失敗,那么就需要進行一個回滾操作,并將啟動列表設置回之前的啟動 LV,然后重啟— 這將使系統(tǒng)返回舊版 AIX。過程如清單 18 所示。
清單 18. 將啟動設備改回初始的 rootvg
# bootlist –m normal –o hdisk0 blv=hd5 hdisk0 blv=bos_hd5
# bootlist –m normal –o
hdisk0 blv=hd5
hdisk0 blv=bos_hd5
|
但是,如果更新過程沒有出現(xiàn)問題,而且備用 BOS 不再需要了,那么它可以通過清單 19 的命令刪除。
清單 19. 刪除掉的 rootvg
同一磁盤
這是最簡單的方法。這個方法的缺點是回滾時需要兩個啟動方式。
在本例中,備用磁盤將在更新過程之前進行備份。所以,再次使用 smitty alt_clone,如圖 3 所示,選擇要求的備份磁盤,使用默認值執(zhí)行操作。
圖 3. smitty alt_clone 菜單
您也可以使用清單 20 所列的命令。
清單 20. 克隆 rootvg 的命令
# alt_disk_copy -P "all" -d "hdisk1" -B |
想要了解備用任務的執(zhí)行過程,可以查看備用磁盤日志文件 /var/adm/ras/ alt_disk_inst.log。
備用磁盤準備好后,就可以執(zhí)行更新過程了。您可以使用 Smitty 快捷方法 smitty update_all 或在命令行中使用install_all_updates。清單 21 顯示的是更新過程。
進入包含 TL 文件集的目錄:
清單 21. 同一磁盤更新過程
然后創(chuàng)建一個 Table of Contents (ToC) 文件:
當目錄仍然包含這些文件集時,運行我們的 smitty update_all 命令,如圖 4 所示。
圖 4: smitty update_all initial 屏幕
第一個屏幕將會詢問文件集的位置,輸入一個 “.”(點)然后回車。
圖 5 顯示了 smitty 菜單。
圖 5. smitty update_all 菜單及選項
更新過程結束后,重啟服務器。
服務器重啟后,輸入命令 oslevel –s 或 oslevel –r ,然后檢查 OS 級別現(xiàn)在是否在 TL 級別,如清單 22 所示。
清單 22: 檢查更新后的 AIX 版本
# oslevel –s
5300-10-01-0921
|
如果更新成功,rootvg 就可以再次映射了。根據(jù)清單 23 的例子重新映射 rootvg,并在 hdisk1 上創(chuàng)建一個啟動鏡像,并將它添加到啟動列表。
清單 23. 重新映射 rootvg
# exportvg alt_inst_rootvg
# extendvg –f rootvg hdisk1
# mirrorvg rootvg
# bosboot –ad /dev/hdisk1
# bootlist –m normal –o hdisk0 hdisk1
|
使用一個 NIM 服務器
這也是更新 AIX 服務器的最常用方法之一。然而,在這種情況中需要使用正常運行的 NIM 服務器。
本文并不準備介紹如何配置一個 NIM 服務器及其組件:spots、lpp_sources、machines 等。
如果符合,就根據(jù)圖 6 的例子開始:
圖 6. 進入 smitty nim 菜單
這樣會進入主 NIM 服務器 smitty 菜單,如圖 7 所示。在第一個界面中選擇 “Perform NIM Software Installation and Maintenance Tasks”。
圖 7. 主 NIM 服務器 smitty 菜單
接下來,選擇 “Alternate Disk Installation”,如圖 8 所示。
圖 8. 選擇 “Alternate Disk Installation”
選擇 “Alternate Disk Installation” 選項后,再選擇 “Clone rootvg to an Alternate Disk”。
圖 9. 選擇 “Clone the rootvg to an Alternate Disk”
下一個界面中所有設置都已完成。
選擇客戶端主機(將要更新的服務器),輸入將要應用 TL 的磁盤— 因為它將會成為一個備用磁盤,要保證這個磁盤沒有被任何其他卷組(VG)使用。參照圖 10 中顯示的所有菜單項。
圖 10. Alternate Disk Install 的 NIM 設置
在您確定和輸入這些值后,NIM 將會自動開始更新客戶端。
您可以從兩個日志文件(/var/adm/ras/nimlog 和 /var/adm/ras/alt_disk_inst.log)查看客戶端的更新過程。
在更新過程完成后,重啟服務器。
當服務器重新啟動完成后,輸入命令 oslevel –s 或 oslevel –r,然后檢查現(xiàn)在 OS 級別是否為所應用的 TL 級別。
# oslevel –s
5300-10-01-0921
|
如果更新成功,那么 rootvg 就可以重新映射:
# exportvg alt_inst_rootvg
# extendvg –f rootvg hdisk1
# mirrorvg rootvg
|
在 hdisk1 上創(chuàng)建一個新的啟動鏡像,并將它添加到啟動列表中:
# bosboot –ad /dev/hdisk1
# bootlist –m normal –o hdisk0 hdisk1
|