资源描述
制作与删除rootvg镜像
如果系统的rootvg仅有一块硬盘,当灾难来临的时候,例如硬盘损坏,这就意味着系统就再也不能启动了。尽管可能拥有mksysb的磁带,但仍然需要花费很多的时间去处理这个原本很小的问题。rootvg镜像能够提供单机bos容错,使得能够用最短的时间摆脱这种困境,简单到只需要一次重新启动。
注意:检查镜像后的PV的hd5是否由连续的PP组成。
制作与删除rootvg镜像时先执行如下命令进行系统检查:
# lspv
# lsvg -l rootvg
# lsvg rootvg
# lsvg -p rootvg
# lslv -m lv_name
# lsvg -M rootvg
制作rootvg的标准步骤:
1、extendvg
2、chvg -Qn
3、mirrorvg -s
4、syncvg -v
5、bosboot -a
6、bootlist
7、shutdown -Fr
8、bootinfo -b
1、将一个PV加入到rootvg中,例如:hdisk1。
# extendvg rootvg hdisk1
2、如果使用一个PV做镜像,那么QUORUM是不需要的,请关闭它。
# chvg -Qn rootvg
此情况称之为单镜像(single mirroring),一般单镜像的卷组都需要将QUORUM关闭,否则卷组中拥有2份VGDA的磁盘不可用时,受QUORUM制约,整个卷组无法激活,从而失去镜像意义。
对于rootvg镜像更加需要关闭QUORUM,否则一旦包含2份VGDA的磁盘不可用时,系统在引导过程中将不能激活rootvg,从而引起启动失败。
该命令可在系统正常运行时随时补充执行,但需要重新启动才能生效。
如果始终没有执行过,当系统启动失败时,可以使用可引导介质进入维护模式,激活rootvg,获得shell时再执行此命令,然后正常启动即可。
3、建立rootvg所有LV的镜像,你可以使用mklvcopy一个一个去建立,当然更加简单的方法是使用卷组镜像命令。
# mirrorvg -s rootvg
-s Disable Sync 不进行任何类型的镜像同步就立即返回 mirrorvg 命令。如果使用了这个
选项,镜像也许存在于一个逻辑卷,但是直到由 syncvg 命令进行同步,操作系统才使
用它。
或者
# mklvcopy hd1 2 hdisk1
# mklvcopy hd2 2 hdisk1
# mklvcopy hd3 2 hdisk1
# mklvcopy hd4 2 hdisk1
# mklvcopy hd5 2 hdisk1
# mklvcopy hd6 2 hdisk1
# mklvcopy hd8 2 hdisk1
# mklvcopy hd9var 2 hdisk1
# mklvcopy hd10opt 2 hdisk1
后台同步卷组镜像:
# mirrorvg -S -c 3 vgname
4、接着需要进行镜像间的数据同步:
# syncvg –v rootvg
-v 指定Name 参数表示卷组设备名。
5、为了使rootvg中的任一PV都能够完成系统启动任务,需要执行bosboot:
# bosboot -a
bosboot: Boot image is 25166 512 byte blocks.
-a 创建完整的引导映像和设备。
因为hd5已经做了镜像,因此在执行该命令时无需使用-d选项指定磁盘,除非当在其他情况,如迁移hd5至其他磁盘时。
注意:如果bosboot命令没有成功创建引导盘,不要重启,很可能导致系统无法启动。bosboot要求一些/tmp和目标保存的文件系统中的空间。
或
# bosboot -ad hdisk0
bosboot: Boot image is 25166 512 byte blocks.
# bosboot -ad hdisk1
bosboot: Boot image is 25166 512 byte blocks.
6、更新引导设备顺序,实现单机bos容错:
# bootlist -m normal -o
hdisk0 blv=hd5
# bootlist -m normal hdisk1 hdisk0
# bootlist -m normal -o
hdisk1 blv=hd5
hdisk0 blv=hd5
此例表示在正常情况下,系统从hdisk1进行引导,当hdisk1不可用时将从hdisk0进行引导,以提供单机容错。
7、如果前面步骤执行了QUORUM关闭的操作,必须重新启动系统之后QUORUM才会生效:
# shutdown -Fr
8、引导过程检查,确认无误:
# bootinfo -b
hdisk1
注意:这样列出来,可以清晰的知道做镜像的过程。如果想简化的可以通过:
# mirrorvg -c 2 rootvg 或 # smitty mirrorvg
-c Copies 指定在 mirrorvg 命令执行完成后每个逻辑卷必须有的最小副本数。通过独立
使用 mklvcopy,某些逻辑卷在执行完 mirrorvg 命令后也许会有超过指定数
目的副本。最小值是 2,最大值是 3。忽略 1 值。
这样会自动关闭仲裁、并且自动同步的了。
另外补充一下:bosboot还有更新boot strap code(也就是硬盘上第0道的boot record)的作用。如果bosboot -a报找不到BLV,那就写全命令:# bosboot -ad /dev/hdisk# -l hd5
总结:
1、在single mirroring中1个PV的意思,即由2个PV组成一个VG,但其中1个PV是用作镜像的。
2、QUORUM close并非简单的关闭的理解,而是采用如下机制,例如在1个包含2个PV(hdisk0,hdisk1,假设hdisk0包含2份VGDG,hdisk1包含1份VGDA)的VG中,查询该VG信息(lsvg),可以发现VG DESCRIPTORS为3,QUORUM为2,该意思为这个VG包含3份VGDA,VG的正常状态应为至少检测到2份VGDA(2/3约等于66%>50%)方可正常工作,否则该VG无法激活(除非使用-f选项,但必须清楚后果,否则请小心使用)或导致VG不能访问。当使用了第二步操作之后,请大家再次观察VG的信息,会发现VG DESCRIPTORS为3,QUORUM变成为1,该意思表示为这个VG包含3份VGDA,VG的正常状态应为只需检测到1份(1/3约等于33%<50%)就可正常工作,这就是很多地方讲到的QUORUM close的真实表现,实际上QUORUM依然有效,只是检测值被降低到了最低的值,即无论该VG如何,只要有1个PV状态正常,该VG就能够被激活。但此项功能要谨慎使用,通常只建议对singl mirroring使用。
3、系统在引导过程使用特殊的varyonvg命令,即ipl_varyon,QUORUM对rootvg在启动过程中的激活同样有效。(可通过简单实验验证,步骤为除操作中第2步不做之外,按顺序做其他操作步骤,用lsvg rootvg检查确认QUORUM处于开启状态,关机,拆机断开hdisk0使其不能工作,再开机,LED会出现552,554或556显示并启动失败)
4、当非rootvg做镜像的时候,QUORUM关闭后,一定要varyoff/varyon一次,这样QUORUM=1这个参数才生效。否则,拔盘,VG马上就关闭了。非rootvg必须做varyoffvg和varyonvg才能生效,对于rootvg由于没办法varyoffvg,所以只能reboot了,因此整个过程才会有shutdown -Fr这一步。
5、QUORUM对卷组的激活和online都会起作用,但表现不同。
注意:系统dump设备(主:/dev/hd6 次:/dev/sysdumpnull)不应被镜像,在某些系统中,页面设备和dump设备是相同的,想对页面设备做镜像。当mirrorvg探测到一个dump设备和页面设备相同时,该LV就会自动被镜像。如果mirrorvg发现dump设备和页面设备在不同的LV,页面设备自动镜像,而dump LV不会被镜像。dump设备可以用sysdumpdev命令来查询和修改。
删除rootvg镜像
当用mirrorvg命令对rootvg做了镜像之后,需要取消镜像,可以用unmirrorvg rootvg命令来删除rootvg中的镜像副本,使得rootvg中的每个逻辑卷的COPIES值变为1。实际上unmirrorvg命令调用rmlvcopy命令来删除每个逻辑卷上的镜像。
由于unmirrorvg命令执行时要做错误检查,加上rootvg中的逻辑卷数量比较多,对每个逻辑卷都要做删除镜像操作,因此执行完unmirrorvg命令可能需要花费相当长的时间。
对rootvg做完镜像删除操作之后,必须依次执行bosboot、bootlist和shutdown三个命令。删除镜像之后,剩余磁盘上的引导记录可能发生了变化,此时的系统引导顺序列表与现实也不相符。需要对剩余磁盘上的引导记录重新初始化,因此要执行bosboot命令,同时还要指定系统引导顺序列表,因此需要执行bootlist命令,以便系统仅引导rootvg中剩余的磁盘。
由于删除rootvg镜像会恢复rootvg的QUORUM(定额),所以必须重新启动机器才能使该操作生效,所以需要执行shutdown -Fr命令。
例如rootvg中包含hdisk0和hdisk1两块物理卷,要删除hdisk1上的镜像,按照下面的命令步骤来执行:
1、# smitty unmirrorvg 或
# unmirrorvg rootvg hdisk1
0516-1246 rmlvcopy: If hd5 is the boot logical volume, please run 'chpv -c <diskname>' 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-1132 unmirrorvg: Quorum requirement turned on, reboot system for this to take effect for rootvg.
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.
2、# reducevg rootvg hdisk1
3、更新bootimage
# bosboot -a # 不能执行,原因如下
0301-168 bosboot: The current boot logical volume, /dev/hd5,does not exist on /dev/hdisk1.
执行:
# bosboot -ad /dev/hdisk0
bosboot: Boot image is 25166 512 byte blocks.
4、去除hdisk1的 boot record
# chpv -c hdisk1
5、更改bootlist
# bootlist -m normal -o
hdisk1
hdisk0 blv=hd5
# bootlist -m normal hdisk0
# bootlist -m normal -o
hdisk0 blv=hd5
6、更改卷组的qurom机制,将rootvg qurom机制打开
# lsvg rootvg
OPEN LVs: 10 QUORUM: 2
TOTAL PVs: 1 VG DESCRIPTORS: 2
# chvg -Qy rootvg # 此操作可以省略,在执行删除镜像时QUORUM已打开
7、# shutdown –Fr
注意:hd5如果超过一个LP,必须让镜像的hd5的PP连续。
展开阅读全文