大多数系统管理员都遇到以下情况:
- ML升级失败。
- 一天到头了。
- 您无法修复它。
- 现在要通过第三方支持解决该问题为时已晚。
- 您需要退出。
通常,无论使用磁带mksysb还原还是网络引导还原,这种情况都需要rootvg还原。 毫无疑问,这很痛苦! 使用alt_disk_copy方法获取rootvg的副本仅需要进行重新引导以将rootvg恢复到升级前事件所需的时间。 本文演示了在应用AIX升级时如何实现alt_disk_copy以及如何恢复rootvg。 alt_disk_copy也可以用于测试两个不同版本的AIX。 您只需升级一个磁盘然后将其启动,然后在需要返回到另一个版本时,只需将该磁盘启动即可。 实际上,alt_disk_copy通常用于将rootvg克隆到备用磁盘上,以进行rootvg的常规在线备份。 它也可以用作rootvg的硬件迁移工具。
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中当前安装的文件系统。 无需停止执行alt_disk_copy的进程; 但是,此过程可能会花费一些时间,因此最好在午餐时间或晚上进行此操作(请记住要进行连续复印)。 复制完成后,将显示两个rootvg卷组:
rootvg
altinst_rootvg
其中altinst_rootvg
是克隆的非活动/可变的rootvg。 克隆的rootvg的所有逻辑卷均以名称“ alt”为前缀。 引导列表也已更改为从altinst_rootvg引导。 AIX喜欢做这样的事情; 它假定您将要引导克隆的而不是真正的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,您可以使用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,因为如果这样做,取消镜像将失败。 当然,如果取消镜像失败,您总是可以执行migrationpv来移动丢失的LV。 检查您是否正在镜像的一种简单方法是发出以下命令:
lsvg -l rootvg
对于数据输出的每一行,请检查PPs列的输出是否是LPs列的输出的两倍。
检查是否已镜像的另一种方法是使用: lspv -l <hdiskx>
并比较输出,以确保两个磁盘上的每个LV都有条目。
接下来,发出bosboot命令。 我个人总是在重启或涉及rootvg的磁盘操作之前执行此操作。 这是一个好习惯:
# bosboot -a
bosboot: Boot image is 35803 512 byte blocks.
用于此演示的磁盘列表如下:
# lspv
hdisk0 0041a97b0622ef7f rootvg active
hdisk1 00452f0b2b1ec84c rootvg active
接下来,取消镜像rootvg并从rootvg中取出将用于克隆的磁盘。 此演示使用hdisk1克隆rootvg,因此发出unmirrorvg命令:
# unmirrorvg rootvg hdisk1
0516-1246 rmlvcopy: If hd5 is the boot logical volume, please run 'chpv -c <disk
name>'
as root user to clear the boot record and avoid a potential boot
off an old boot image that may reside on the disk from which this
logical volume is moved/removed.
0516-1804 chvg: The quorum change takes effect immediately.
0516-1144 unmirrorvg: rootvg successfully unmirrored, user should perform
bosboot of system to reinitialize boot records. Then, user must modify
bootlist to just include: hdisk0.
接下来,将hdisk1从rootvg中取出,以准备进行克隆:
# reducevg rootvg hdisk1
确认磁盘现在未分配给任何卷组:
# lspv
hdisk0 0041a97b0622ef7f rootvg active
hdisk1 00452f0b2b1ec84c None
运行alt_disk_copy
现在您可以发布alt_disk_copy了。 只需提供hdisk1作为命令的参数即可。 基本格式为:
alt_disk_copy -d <hdisk to clone rootvg>
要使用排除列表,基本格式为:
alt_disk_copy -e /etc/exclude.rootvg -d <hdisk to clone rootvg>
alt_disk_copy命令的以下输出已被截断:
# alt_disk_copy -d hdisk1
Calling mkszfile to create new /image.data file.
Checking disk sizes.
Creating cloned rootvg volume group and associated logical volumes.
Creating logical volume alt_hd5
Creating logical volume alt_hd6
Creating logical volume alt_hd8
Creating logical volume alt_hd4
Creating logical volume alt_hd2
Creating logical volume alt_hd9var
Creating logical volume alt_hd3
Creating logical volume alt_hd1
Creating logical volume alt_hd10opt
Creating /alt_inst/ file system.
Creating /alt_inst/home file system.
Creating /alt_inst/opt file system.
Creating /alt_inst/tmp file system.
…......
…......
for backup and restore into the alternate file system...
Backing-up the rootvg files and restoring them to the
alternate file system...
Modifying ODM on cloned disk.
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
…..
…..
Changing logical volume names in volume group descriptor area.
Fixing LV control blocks...
Fixing file system superblocks...
Bootlist is set to the boot disk: hdisk1
在此阶段,您现在已经克隆了一个名为altinst_rootvg的rootvg。 注意,在先前的输出中,alt_disk_copy已更改了引导列表,以引导克隆的rootvg(现在为hdisk1)启动。
# lspv
hdisk0 0041a97b0622ef7f rootvg active
hdisk1 00452f0b2b1ec84c altinst_rootvg
可以通过发出bootlist命令来确认:
# bootlist -m normal -o
hdisk1 blv=hd5
现在,可以安装ML升级了。 ML升级后,您将需要重新引导系统。 对于此演示,ML升级将安装在实际的rootvg(即hdisk0)上,因此,您现在需要更改引导列表,因为您希望系统提供新的升级运行。
# bootlist -m normal hdisk0
确认引导列表的更改:
# bootlist -m normal -o
hdisk0 blv=hd5
接下来,安装ML升级,然后重新启动。 重新引导后,系统显示以下rootvg和克隆的rootvg。 可以看出,没有根卷组已被重命名,因为我们是从真实的rootvg(hdisk0)启动的:
# lspv
hdisk0 0041a97b0622ef7f rootvg active
hdisk1 00452f0b2b1ec84c altinst_rootvg
接下来,假设升级并支持用户一切正常,并且系统管理员已将其签名且未发现任何问题。 现在可以销毁alt_disk_copy,并将磁盘带回到rootvg中进行镜像。 使用带有X参数的alt_rootvg_op命令销毁克隆的rootvg。 基本格式为:
alt_rootvg_op -X < cloned rootvg to destroy>
# alt_rootvg_op -X altinst_rootvg
Bootlist is set to the boot disk: hdisk0
接下来,扩展rootvg以带入hdisk1,然后镜像磁盘:
# extendvg -f rootvg hdisk1
# mirrorvg rootvg hdisk1
0516-1804 chvg: The quorum change takes effect immediately.
0516-1126 mirrorvg: rootvg successfully mirrored, user should perform
bosboot of system to initialize boot records. Then, user must modify
bootlist to include: hdisk0 hdisk1.
更改引导列表以包括两个磁盘并运行bosboot:
# bootlist -m normal -o hdisk0 hdisk1
hdisk0 blv=hd5
hdisk1
# bosboot -a
bosboot: Boot image is 35803 512 byte blocks.
# bootlist -m normal -o
hdisk0 blv=hd5
hdisk1 blv=hd5
对于此演示,仅此而已:任务已完成。 pgrade安装成功。 系统正在运行。 如果一切正常,这几乎就是alt_disk_copy的工作方式。 但是,如果升级失败了怎么办? 您有什么选择? 接下来让我们看看。
请恢复职位
现在,假设您已经安装了ML升级并重新启动,并且发现AIX的运行运行存在问题。 请记住,您当前的磁盘处于以下状态:
# lspv
hdisk0 0041a97b0622ef7f rootvg active
hdisk1 00452f0b2b1ec84c altinst_rootvg
在这一点上,应该为正在运行的系统制作快照,以准备获得第三方支持,以便您毫无疑问地记录该呼叫。 评估当前情况,您可以:
-
rootvg
:带有升级后的问题。 -
altinst_rootvg
:具有良好的复制前升级。
带我回去
要返回到升级前,只需更改启动列表以启动(altinst_rootvg)hdisk1,然后重新启动即可。 就这么简单:
# bootlist -m normal -o hdisk1
hdisk1 blv=hd5
# bootlist -m normal -o
hdisk1 blv=hd5
# shutdown -Fr
重新引导后,将显示以下rootvg磁盘:
# lspv
hdisk0 0041a97b0622ef7f old_rootvg
hdisk1 00452f0b2b1ec84c rootvg active
接下来,发布一个bosboot并确认启动列表:
# bosboot -a
bosboot: Boot image is 35803 512 byte blocks.
# bootlist -m normal -o
hdisk1 blv=hd5
系统现在返回到升级前状态。
升级后修复
在最终用户同意的方便的时间表上,并使用第三方支持提供的信息,然后可以从ML失败的升级磁盘(hdisk0)引导并应用可能解决此问题的修复程序,因此请进行更改要引导(old_rootvg)hdisk0并重新引导的引导列表:
# bootlist -m normal -o hdisk0
# shutdown -Fr
重新引导后,准备应用此修复程序,将为您提供以下rootvg磁盘:
# lspv
hdisk0 0041a97b0622ef7f rootvg active
hdisk1 00452f0b2b1ec84c altinst_rootvg
接下来,应用修复程序或有关如何进行修复的说明,并假定系统现在可以再次运行。
对系统进行测试并注销后,请引入hdisk1,请使用前面描述的命令:
#
alt_rootvg_op -X altinst_rootvg
Bootlist is set to the boot disk: hdisk0
# extendvg -f rootvg hdisk1
# mirrorvg rootvg hdisk1
bootlist -m normal -o hdisk0 hdisk1
hdisk0 blv=hd5
hdisk1
# bosboot -a
bosboot: Boot image is 35803 512 byte blocks.
# bootlist -m normal -o
hdisk0 blv=hd5
hdisk1 blv=hd5
# lspv
hdisk0 0041a97b0622ef7f rootvg active
hdisk1 00452f0b2b1ec84c rootvg active
唤醒磁盘
在克隆的rootvg环境中,您可以唤醒克隆的rootvg以使其处于活动状态。 来自克隆的rootvg的所有克隆的文件系统都将被挂载。 这非常有用,因为您有一个运行良好的系统,但同时从克隆的rootvg挂载文件系统以进行进一步研究或修改文件。 唤醒克隆的rootvg时,它将重命名为:
altinst_rootvg
在克隆的rootvg文件系统仍处于挂载状态时,请勿发出重新引导信息,因为可能会发生意外结果。 您也可以重命名克隆的rootvg,这在您有多个克隆的rootvg时很有用。
假设您的磁盘处于以下状态:
# lspv
hdisk0 0041a97b0622ef7f old_rootvg
hdisk1 00452f0b2b1ec84c rootvg active
要唤醒磁盘,基本格式为:
alt_rootvg_op -W -d < hdisk>
现在让我们唤醒old_rootvg(hdisk0):
# alt_rootvg_op -W -d hdisk0
Waking up old_rootvg volume group ...
检查磁盘状态,您可以看到old_rootvg已重命名为altinst_rootvg,并且现在处于活动状态。
# lspv
hdisk0 0041a97b0622ef7f altinst_rootvg active
hdisk1 00452f0b2b1ec84c rootvg active
克隆的文件系统已挂载,前缀为/ alt_:
# 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
。
有时最好回到磁盘的原始状态以免造成混乱,特别是如果您有多个克隆的磁盘。 因此,将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
从这一点来看,根据修复的成功程度,系统现在是否可以使用前面所述的命令运行。
如果该修补程序适用于(old_rootvg)hdisk0,请使用新的ML版本运行。
确认磁盘将从hdisk0启动:
# bootlist -m normal -o hdisk0
重启:
# shutdown -Fr
销毁新克隆的磁盘(我们从old_rootvg重新启动;现在变为altinst_rootvg)hdisk1:
# 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
销毁克隆的磁盘(old_rootvg)hdisk0:
# 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以测试迁移过程时,它也非常有用。
翻译自: https://www.ibm.com/developerworks/aix/library/au-alt_disk_copy/index.html