歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> Unix基礎知識 >> 使用alt_disk_copy克隆rootvg

使用alt_disk_copy克隆rootvg

日期:2017/2/25 10:12:50   编辑:Unix基礎知識

簡介

大多數系統管理員都遇到過以下情況:

  • 一次 ML 升級失敗了。
  • 問題一直持續到快下班時。
  • 您無法解決問題。
  • 叫第三方支持來解決它已經太晚了。
  • 您要下班了。

通常,這種情況下需要 rootvg 恢復,無論是使用磁帶 mksysb 恢復,還是網絡引導恢復。毫無疑問,這是讓人難受的!使用 alt_disk_copy 方法復制 rootvg 所需的時間很少,與重新引導以將 rootvg 恢復到升級之前的狀態所需的時間差不多。本文講解在應用 AIX 升級時如何使用 alt_disk_copy 以及如何恢復 rootvg。還可以使用 alt_disk_copy 測試兩個不同版本的 AIX。只需升級一個磁盤,然後從它引導;當需要返回到另一個版本時,只需從另一個磁盤引導。對於 rootvg 的定期在線備份,常常使用 alt_disk_copy 把 rootvg 克隆到空閒磁盤上。它還可以作為 rootvg 的硬件遷移工具。

本文主要關注典型的 rootvg 兩磁盤軟件鏡像設置。但是,alt_disk_copy 不僅適用於這種兩磁盤設置;相同的原理也可以應用於多種軟件鏡像解決方案。

alt_disk 實用程序由以下命令組成:

  • alt_disk_copy 執行磁盤克隆。
  • alt_rootvg_op 在克隆的 rootvg 上執行維護操作。
  • alt_disk_mysysb 執行 mksysb 復制。

本文不討論 alt_disk_mysysb。

這些 alt 命令需要的文件如下:

bos.alt_disk_install.boot_images
bos.alt_disk_install.rte     
bos.msg.en_US.alt_disk_install.rte


概述

因為 alt_disk_copy 命令把當前正在運行的 rootvg 復制到另一個磁盤,所以一定要掛載希望克隆的所有文件系統。alt_disk_copy 只復制 rootvg 中當前掛載的文件系統。執行 rootvg 不需要停止進程;但是,這個過程要花費一段時間,所以最好在午餐時或晚上執行(請記住,它復制正在運行的 rootvg)。復制完成之後,就有了兩個 rootvg 卷組:

rootvg
altinst_rootvg

其中的 altinst_rootvg 是克隆的非活躍/不變的 rootvg。在克隆的 rootvg 中,所有邏輯卷名前面有 ‘alt’ 前綴。引導列表也改為從 altinst_rootvg 引導。AIX 喜歡這樣做;它假設您希望從克隆的 rootvg 而不是真實的 rootvg 引導。如果現在重新引導系統,當系統運行起來之後,原來的 rootvg 將變成:

old_rootvg

altinst_rootvg 變成:

rootvg

如果決定從 old_rootvg 重新引導,當系統運行起來之後,old_rootvg 變成:

rootvg

rootvg 變成:

altinst_rootvg

不必擔心原來的和克隆的 rootvg 的重命名。稍後討論這個問題。

在成功地完成升級之後,可以使用 alt_rootvg_op 銷毀包含克隆的 rootvg 的磁盤,重新建立鏡像。如果升級失敗,也沒問題 —— 只需制作第三方支持所需的快照,然後從原來的 rootvg 引導。對於登錄的用戶來說,沒有什麼影響。

當從第三方支持收到修復建議時,只需從克隆的 rootvg 重新引導並糾正問題。不需要重新應用升級,因為在克隆的 rootvg 上已經應用了升級。測試升級結果,如果一切正常,就銷毀原來的 rootvg,重新建立鏡像。

在克隆的 rootvg 上不要使用 importvg 或 exportvg;而是應該使用 alt 命令。

對於克隆的 rootvg,可以使用 alt_rootvg_op 喚醒它,從而掛載文件系統。可以在克隆的文件系統上執行所需的任何操作,比如糾正鏈接、為第三方支持收集信息等,然後讓這個磁盤繼續休眠,這也會卸載文件系統。

在執行克隆時排除某些目錄

在執行克隆時,可以通過創建 /etc/exclude.rootvg 文件排除某些目錄。文件中的條目應該以 ^./ 開頭。‘^’ 表示搜索行開頭的字符串,‘./’ 表示相對於當前目錄。建議您這麼做,因為 alt_disk_copy 使用 grep 搜索字符串,這麼做它就不會誤解命令。例如,要想排除以下目錄,就要提供完整的路徑名並加上前綴 ‘^.’:

/home/reps
/opt/installs

可以在 /etc/exclude.rootvg 文件中插入:

^./home/reps
^./opt/installs

要確保最後一個條目後面沒有空行。



開始克隆吧!

現在,我們先看看典型的克隆。假設您有 rootvg 的兩磁盤(hdisk0 和 hdisk1)軟件鏡像,將在這個系統上進行 ML 升級(或對安裝在 rootvg 中的應用程序進行升級)。我將講解如何執行克隆,以及在成功地升級之後,如何讓這個磁盤回到 rootvg 中並重新建立鏡像。還會講解在升級失敗時可以采取的措施。

操作前檢查

在取消 rootvg 的鏡像之前,首先花些時間確認鏡像是正確的,沒有過時的 LV,因為如果有這種情況,unmirrorvg 命令會失敗。當然,如果 unmirrorvg 失敗,可以使用 migratepv 在兩個磁盤之間相互復制缺少的 LV。檢查鏡像是否正確的簡單方法是執行以下命令:

lsvg -l rootvg


	

# df -m
Filesystem    MB blocks      Free %Used    Iused %Iused Mounted on
/dev/hd4         128.00    102.31   21%     2659    11% /
/dev/hd2        1968.00    111.64   95%    40407    58% /usr
/dev/hd9var      112.00     77.82   31%      485     3% /var
/dev/hd3          96.00     69.88   28%      330     3% /tmp
/dev/hd1         208.00    118.27   44%     1987     7% /home
/proc                 -         -    -         -     -  /proc
/dev/hd10opt    1712.00   1445.83   16%     6984     3% /opt
/dev/alt_hd4     128.00    102.16   21%     2645    11% /alt_inst
/dev/alt_hd1     208.00     33.64   84%     1987    21% /alt_inst/home
/dev/alt_hd10opt   1712.00   1445.77   16%     6984     3% /alt_inst/opt
/dev/alt_hd3      96.00     72.38   25%      335     2% /alt_inst/tmp
/dev/alt_hd2    1968.00    100.32   95%    40407    59% /alt_inst/usr
/dev/alt_hd9var    112.00     77.53   31%      477     3% /alt_inst/var

現在,可以在克隆的 rootvg 上修改文件或進一步進行研究。現在可以訪問克隆的文件系統。完成這些任務之後,讓克隆的 rootvg 恢復休眠狀態,同時對這個磁盤執行 bosboot。基本命令格式為:

alt_rootvg_op -S -t <hdisk>

現在,我們讓 altinst_rootvg 休眠:

# alt_rootvg_op -S -t hdisk0
Putting volume group altinst_rootvg to sleep ...
Building boot image on cloned disk.
forced unmount of /alt_inst/var
forced unmount of /alt_inst/usr
forced unmount of /alt_inst/tmp
forced unmount of /alt_inst/opt
forced unmount of /alt_inst/home
forced unmount of /alt_inst
forced unmount of /alt_inst
Fixing LV control blocks...
Fixing file system superblocks...

磁盤的當前狀態是:

# lspv
hdisk0          0041a97b0622ef7f                    altinst_rootvg
hdisk1          00452f0b2b1ec84c                    rootvg          active

可以看到克隆的 rootvg 的名稱仍然是 altinst_rootvg

為了避免混淆,有時候最好恢復磁盤原來的狀態,尤其是在有多個克隆的 rootvg 的情況下。所以把 altinst_rootvg 改名為 old_rootvg。基本格式是:

alt_rootvg_op -v <new cloned rootvg name> -d <hdisk>

所以對於這個示例,應該執行:

# alt_rootvg_op -v old_rootvg -d hdisk0
# lspv
hdisk0          0041a97b0622ef7f                    old_rootvg
hdisk1          00452f0b2b1ec84c                    rootvg          active

當然,如果願意,可以把克隆的 rootvg 改為更有意義的名稱。

 # alt_rootvg_op -v bad_rootvg -d hdisk0
bash-2.05a# lspv
hdisk0          0041a97b0622ef7f                    bad_rootvg
hdisk1          00452f0b2b1ec84c                    rootvg          active

不能把克隆的 rootvg 改名為 altinst_rootvg;這是一個保留的名稱。

現在,系統操作是否正常取決於應用的修復措施是否有效。

如果在 hdisk0 (old_rootvg) 上應用的修復措施是有效的,就用新的 ML 版本運行系統。

確認系統將從 hdisk0 引導:

# bootlist -m normal -o hdisk0

重新引導:

# shutdown -Fr

銷毀克隆的磁盤 hdisk1(我們從 old_rootvg 重新引導;它現在變成 altinst_rootvg):

# alt_rootvg_op -X altinst_rootvg

讓 hdisk1 回到 rootvg 中供鏡像使用:

# extendvg -f rootvg hdisk1
# mirrorvg rootvg hdisk1
# bosboot -a
# bootlist -m normal -o hdisk0 hdisk1

如果修復無效,就仍然使用原來的 ML 版本,以後再修復:

確認系統將從 hdisk1 引導:

# bootlist -m normal -o hdisk1

銷毀克隆的磁盤 hdisk0 (old_rootvg):

# alt_rootvg_op -X old_rootvg

讓 hdisk0 回到 rootvg 中供鏡像使用:

# extendvg -f rootvg hdisk0
# mirrorvg rootvg hdisk0
# bosboot -a
# bootlist -m normal -o hdisk0 hdisk1



結束語

本文講解了在 AIX 升級出現問題時如何使用 alt 命令快速恢復 rootvg,以及如何在正在運行的系統上掛載克隆的 rootvg 文件系統。還可以使用 alt 命令提供把 rootvg 磁盤遷移到另一種硬件的路徑。還可以對兩個不同的 AIX 版本使用 alt 命令,這對於測試遷移過程非常有用。

Copyright © Linux教程網 All Rights Reserved