在AIX环境中为rootvg创建镜像,是系统运维中常见但需谨慎处理的任务。本文将详细解析整个流程,所有命令均在AIX 5.4平台上实际验证,可供直接参考。
AIX rootvg镜像核心操作步骤
首先查看当前系统的物理卷状态,这是每次操作前必须执行的步骤:
# lspv
hdisk0 000a1ddc7f36a2f0 rootvg active
hdisk1 none None
可以看到hdisk0已属于rootvg,而hdisk1处于空闲状态。接下来需要将新盘准备就绪:
# chdev -l hdisk1 -a pv=clear
# chdev -l hdisk1 -a pv=yes
需要特别说明的是,执行chdev -l hdisk1 -a pv=yes是安全的,因为mkvg创建卷组时底层调用的正是该命令。若此步失败,后续创建卷组将无法进行。
再次检查,PVID已成功分配:
# lspv
hdisk0 000a1ddc7f36a2f0 rootvg active
hdisk1 000a1ddcd9e3cc9e None
接着将hdisk1加入rootvg。注意一个风险点:如果hdisk1中原本存有数据,执行extendvg时会清除这些数据。
# extendvg rootvg hdisk1
若该磁盘此前被其他卷组使用过,需使用-f参数强制加入:
# extendvg -f rootvg hdisk1
操作完成后确认状态:
# lspv
hdisk0 000a1ddc7f36a2f0 rootvg active
hdisk1 000a1ddcd9e3cc9e rootvg active
现在两块磁盘已处于同一卷组中,可以开始创建镜像:
# mirrorvg rootvg hdisk1
# mirrorvg rootvg
0516-1124 mirrorvg: Quorum requirement turned off, reboot system for this
to take effect for rootvg.
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.
如何确认镜像完成状态
最直接的方式是查看以下输出:
# lsvg -l rootvg
rootvg:
LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT
hd5 boot 1 2 2 closed/syncd N/A
hd6 paging 2 4 2 open/syncd N/A
hd8 jfslog 1 2 2 open/syncd N/A
hd4 jfs 1 2 2 open/syncd /
hd2 jfs 33 66 2 open/syncd /usr
hd9var jfs 1 2 2 open/syncd /var
hd3 jfs 1 2 2 open/syncd /tmp
hd1 jfs 1 2 2 open/syncd /home
Hd10opt jfs 4 8 2 open/syncd /opt
判断标准十分简明:LP×2=PP表示一份镜像成功;LP=PP则代表未做镜像;LP×3=PP则表明创建了双份镜像。简而言之,一份LP数据对应两份PP数据,即物理上存在两份拷贝。
接着查看卷组的整体属性:
# lsvg rootvg
重点观察QUORUM值:QUORUM: 1表示未开启quorum,QUORUM: 2则表示已开启。
配置引导信息
镜像创建完成后,还需确保两块磁盘均能引导系统。首先查看当前引导顺序:
# bootlist -m normal -o
hdisk0
为新磁盘创建引导信息:
# bosboot -ad /dev/hdisk1
设置引导顺序,将hdisk1置于首位:
# bootlist -m normal hdisk1 hdisk0
确认配置:
# bootlist -m normal -o
hdisk1
hdisk0
最后重启系统:
# shutdown -Fr
这一做法的优势显而易见——当主启动硬盘发生故障时,系统能够从另一块硬盘正常启动。
取消镜像的操作步骤
如需撤销镜像,请按以下流程操作:
# unmirrorvg rootvg hdisk1 // 去掉mirror
# chpv -c hdisk1 // 去掉引导信息
# reducevg rootvg hdisk1 // 从rootvg删除
# rmdev -dl hdisk1 // 删除硬件设备(加-R强制删除)
# bootlist -m normal hdisk0
需特别强调:执行unmirrorvg rootvg时不指定磁盘存在很大风险,因此建议每次操作都明确指定目标磁盘。
完整流程总结
将上述步骤归纳,完整操作链如下:
a) 查看可用磁盘
# lspv
hdisk0 0002d74f0e69d97a rootvg
hdisk1 0002d74fea8ad09d none
hdisk2 000214dadca3a694 dbbakvg
hdisk3 0002d74f1e67ac3b dbbakvg
hdisk1显示none表示尚未被占用,可用于创建镜像。
b) 检查是否可引导
# bootinfo -B hdisk1
返回1表示可以引导,其他值则说明该磁盘不适合作为rootvg镜像。
c) 扩展rootvg
# extendvg rootvg hdisk1
d) 取消quorum限制
# chvg -Qn rootvg
再次执行lsvg rootvg,QUORUM项将变为1。
e) 创建镜像
# mirrorvg -c 2 rootvg
该过程耗时取决于rootvg当前已用的空间大小。经实际测试,95GB的空间约需2小时完成。
f) 创建引导信息
# bosboot -ad hdisk0
# bosboot -ad hdisk1
g) 设置启动顺序
# bootlist -m normal hdisk0 hdisk1 cd0
至此,rootvg镜像的全部配置工作完成。
补充说明:新硬盘的发现与加入
大致流程为:添加新硬盘 → 扫描设备 → 查看设备状态 → 添加PVID → 加入卷组 → 创建镜像 → 添加引导信息 → 配置引导顺序。
若无法扫描到新硬件,可使用以下命令:
cfgmgr -v
检查磁盘状态:
lsdev -Cc disk
添加PVID:
chdev -l hdiskn -a pv=yes
删除PVID的命令为:
chdev -l hdisk1 -a pv=clear
加入卷组时,若hdiskn原先存有数据,extendvg会将其清除。两块磁盘做镜像时可以直接使用mirrorvg rootvg,但三块磁盘时必须指定源和目标:
mirrorvg -c 3 rootvg hdisk0 hdisk1
更换硬盘的处理方法
假设需要更换某块磁盘,首先执行unmirror,然后将该盘从卷组中移除,接着通过rmdev删除设备。关机更换新盘后开机,将新盘加入卷组,再利用migratepv将旧盘数据迁移过来。其余磁盘依次类推即可。
