vk

    技术2024-06-09  97

    大多数系统管理员都遇到以下情况:

    ML升级失败。 一天到头了。 您无法修复它。 现在要通过第三方支持解决该问题为时已晚。 您需要退出。

    通常,无论使用磁带mksysb还原还是网络引导还原,这种情况都需要rootvg还原。 毫无疑问,这很痛苦! 使用alt_disk_copy方法获取rootvg的副本仅需要进行重新引导以将rootvg恢复到升级前事件所需的时间。 本文演示了在应用AIX升级时如何实现alt_disk_copy以及如何恢复rootvg。 alt_disk_copy也可以用于测试两个不同版本的AIX。 您只需升级一个磁盘然后将其启动,然后在需要返回到另一个版本时,只需将该磁盘启动即可。 实际上,alt_disk_copy通常用于将rootvg克隆到备用磁盘上,以进行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中当前安装的文件系统。 无需停止执行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上使用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,因为如果这样做,取消镜像将失败。 当然,如果取消镜像失败,您总是可以执行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

    您不能将克隆的rootvg重命名为altinst_rootvg。 它是保留名称。

    从这一点来看,根据修复的成功程度,系统现在是否可以使用前面所述的命令运行。

    如果该修补程序适用于(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

    相关资源:IBM AIX alt_disk_install快速复制系统介绍
    Processed: 0.020, SQL: 9