**
第1节为lv迁移的一些介绍,需要更换步骤的可直接跳至第2节
**
在IBM pSeries小型机日常维护过程中,经常会遇到AIX操作系统所在rootvg故障盘的情况。系统换盘对于硬件维护人员来说是极为普通的一件事,但就在这常见的换盘流程里也隐藏许多让你一时不知所措的情况。
rootvg是AIX操作系统所存在的VG,在生产环境中rootvg的硬盘都做了冗余保护措施,它可以通过硬件raid卡来实现,但绝大多数情况却是通过LVM逻辑卷镜像的方式来做保护,本文我们就主要讨论通过LVM操作逻辑卷镜像硬盘更换时所遇到的各种情况。
一、定义报错故障硬盘的两种状态。
第一种,硬盘频繁报错,lsvg –p rootvg硬盘状态为active,但可以进行读写。
第二种,硬盘彻底损坏,lsvg –p rootvg硬盘状态为missing或者removed。
常见的rootvg大多有两个PV组成
rootvg中的lv通过mirrorvg 做了镜像关系。
如果硬盘出现故障,应该能看到lv status状态变为了stale,通过lslv -m hd2 查看lv的stale的状态。
二、开始模拟场景
场景一
部分lv未镜像,在unmirrorvg后,故障硬盘上仍然存在某些lv,导致无法reducevg 这块硬盘。
这时需要查看报错硬盘上lv的状态是否正常,如果可读写,可以通过migratepv 将lv从故障盘迁移到好盘。
通过lspv确认hdisk0上有足够的free pp,既可以执行迁移命令“migratepv -l sapsoftlv hdisk1 hdisk0”。
如果硬盘彻底损坏,就需要从系统中删除lv定义,建议直接删除文件系统,当删除文件系统的同时,对应的lv将自动被删除。如果只删除lv,文件系统的定义将依然存在于系统ODM库中和配置文件中。
删除故障盘上lv定义后,继续走更换流程,待更换完毕后再重建删除掉的lv及文件系统并恢复数据。这里可以看到平时对数据备份和lv进行镜像是非常重要的。
场景二
在unmirrorvg后发现有lv同时在两个pv上存在,即为lv跨pv的情况,这种情况和上面的处理方式一致。
1.如果故障盘还可以读写,尝试将故障盘上部分lv迁移至好的pv上。
此项操作的前提是好盘上存在足够的free pp可以使用,如果好盘上没有空间了,就无法进行操作了。如果主机本地还有空槽位,可以先增加一块盘到rootvg中,使用迁移命令将lv迁移到新硬盘 中,然后在踢出故障硬盘。这里除了migratepv命令,可能还会用到migratelp命令,我们将会在最后一个场景中介绍。
2.如果故障硬盘彻底损坏,删除lv对应的文件系统,尽管好盘上的部分lv还是好的。
场景三
在unmirrorvg后发现故障盘上还存在lg_dumplv的lv,好盘上却没有。
1.如果故障盘还能读写,通过migratepv将lg_dumplv迁移到好盘上即可。
2.如果故障盘彻底损坏,按以下方式操作。
1) sysdumplv -l查看当前的primary dump设备; 2) 在好盘上建立一个lv,取名dumplv,type设置为sysdump类型; 3) sysdumplv-P-p/dev/dumplv 4) sysdumplv -l 确认primary dump device已经改到新dump设备上; 5) 删除lg_dumplv。
此时要使用原来lg_dumplv的名字,按照上述步骤在好盘上再建立一个lg_dumplv,再将primary dump设备指向回来。这部分修改完成就可以按照正常换盘流程进行了
场景四
当发现Paging space空间除了hd6还有paging00并同时分布在两个盘且没有镜像,在Unmirrorvg后,报错硬盘上还是有paging00。这时候需要删除paging00,在镜像完成后确认是否再次创建paging space。
完成后将hdisk1上的paging00删除,走正常更换流程,更换完毕后,重新创建一个paging space
场景五
前面所说的都是rootvg中含有hdisk0和hdisk1两块硬盘的情况,如果rootvg包含超过两块硬盘,可按照以下方法操作。
多数情况下,硬盘过多是由于空间不足而进行扩容所导致的,并且硬盘大小也可能不一致,这种情况下就很可能造成lv跨卷,使lv的镜像分布在多块硬盘上。
这时需要活用lsvg,lspv,lslv等命令准确的分辨出每块硬盘上lv及其他lv在不同硬盘上的镜像情况和分布情况。往往此时unmirrorvg 不能达到理想的目的,所以最好使用rmlvcopy、mklvcopy等命令来精准调整lv在不同pv上的镜像情况。如果一个lv跨多个卷并且每一个pv 上的free pp都不能满足这个lv,就需要使用migratelv、migratelp等命令来调整lv的分布,最终达到更换故障硬盘的目的。
下面看一个例子,rootvg中存在4个pv,并且有硬盘大小不一致的情况。
首先通过rmlvcopy来解除lv的镜像关系
查看sapsoftlv的分布情况
假设hdisk1出现频繁报错,要将hdisk1上sapsoftlv的lp迁移到hdisk0和hdisk2上,通过migratelp来精准迁移。
将sapsoftlv分布在hdisk1上的lp分别迁移至hdisk0和hdisk2上后,使hdisk1上没有任何lv,就可以按照正常流程进行硬盘更换流程了。
如果已确认是HDISK0损坏,需要确认以下事项:
a、确认镜像盘在bootlist列表内:
bootlist -m normal -o
否则将镜像盘加入bootlist,例如:
在主机上执行bosboot –ad /dev/hdisk1
在主机上执行bootlist –m normal hdisk1
b、 确认hdisk0上/XXXX文件系统的重要性,如果重要先将数据备份出来
1.列出物理卷,这里要对预报警硬盘hdiskX进行更换。
查看disk是否处于可用状态
#lsdev -Cc disk
查看disk属于哪个vg,硬盘是否有PVID
# lspv
查看物理卷的物理分区的的分区范围,状态,在物理卷的位置,同时显示每一个逻辑卷的类型和文件系统的安装点
lspv hdiskX
查看VG STATE的状态
#lsvg rootvg
查看rootvg中含有那几块盘
#lsvg -p rootvg
查看LPs与PPs的数量对应关系,是否有未做镜像的LV,及LV STATE中是否有stale,若逻辑卷中的PPs是LPs的两倍,同时PV数是2,则说明该逻辑卷已经配置镜像
`lsvg -l rootvg`
#mklvcopy -k lvname 2 hdisk1
b. 如果存在STALE的LV,做同步,
#syncvg -v rootvg
#syncvg –p hdisk0 hdisk1
#syncvg -l lvname
通过
lslv lvname
可查看stale的PPs数量,减少到0时表示同步完成
或通过
#lspv –l hdisk0
#lspv –l hdisk1
分别查看hdisk0和hdisk1上的LV数量是否相同,
if要更换的hdisk上的LV比另一个hdisk少,可直接更换;
if要更换的hdisk上的LV比另一个hdisk多,需先将缺失的LV做镜像,防止数据丢失
c. 特别地,对于多块硬盘组成的raid1 vg,且每块硬盘上有单独的lv的,需要做以下处理:
首先比对出硬盘(PV)之间未同步的lv,之后根据实际情况可以做如下操作:
解镜像前:
mklvcopy -k lvname 2 hdiskX(在硬盘hdiskX上做逻辑卷lvname的第二份备份)
以下命令三选一
#syncvg -v rootvg
#syncvg –p hdisk0 hdisk1
#syncvg -l lvname
如果已经解除镜像,就只能做如下操作:
smit migratepv
将需要迁移的LV分别移动到目标盘中
移动结束后,检查pv信息,hdisk0为空。
3、 解磁盘镜像
# unmirrorvg rootvg hdiskX
4、 确认unmirror是否成功
# lsvg -l rootvg
5 dumplv处理
#查看lg_dumplv是否在更换的硬盘上(一般为hdisk0)
`lspv –l hdisk0`
如果lg_dumplv存在 :
#把primary dump device 转移到空dump设备上
sysdumpdev –Pp /dev/sysdumpnull
rmlv lg_dumplv
6、执行删除rootvg的物理卷hdiskX,可能会报0516-914错误,可以用smitty reducevg强制删除
# reducevg rootvg hdiskX
7.检查删除结果
lspv
hdisk0 0007f84c7ad7504c None
hdisk1 0007f84cd9f82d6c rootvg active
8.DIAG亮灯确定要换的盘的物理位置
1.登陆AIX,执行#diag
2.回车
3.选择“Task Selection”
4.按PgDn,选择“Hot Plug Task”
5.选择“SCSI and SCSI RAID Hot Plug Manager“
6.选择“Identify a Device Attached to aSCSI Hot Swap Enclosure Device”
7.选择想判定位置的目标DISK,比如:hdisk0
8.回车,这个时候去观察硬盘,你会发现硬盘的指示灯会显示“红色”,这个硬盘就是你需要判定的目标盘。
9.如果想把这个有故障的硬盘从SCSI剔除,返回上一级菜单选择“Replace/Remove a Device Attached to an SCSI Hot Swap Enclosure Device”
10.然后选择想剔除的硬盘即可。
9、删除坏硬盘或者用diag工具中Replace/Remove a Device Attached to an SCSI Hot Swap Enclosure Device 选项移除hdisk0
# rmdev -dl hdiskX
命令解释:*删除hdisk0,-l将状态改为defined,-d将hdisk的信息从ODM数据库中删除
#lspv
10、插入新硬盘,cfgmgr,lspv识别的新磁盘
#cfgmgr -v
#lspv
如果插上一块新硬盘hdisk0后PVID仍为none时,可用:
chdev -l hdisk0 -a pv=yes 即可有ID号了
如果无PVID,执行
# chdev -l hdiskX -a pv=yes
#查看系统盘的分配情况,本例以hdisk0 hdisk1镜像为例.
lsdev -Cc disk
lsvg –p rootvg
11、将更换后的硬盘添加如卷组当中做mirror
# extendvg rootvg hdiskX
特别地: #强制把hdisk0加入到rootvg中
extendvg -f rootvg hdisk0
12、做mirrorvg镜像
12.1 smit模式
用smit工具做mirrorvg镜像,选择 rootvg和hdisk0,同步模式选择background后台同步
smit extendvg 将hdisk0加入rootvg
smit mirrorvg 做mirror
做mirror的时候最好选择后台进行(background),这样可以同时做其他操作
使用lsvg –l rootvg可以显示做mirror的进度,查看stale partion的进度是否递减,到0表示mirrorvg完毕。另外还可以通过查看topas里面的读写速率来判断镜像是否完成
12.2 命令行模式
(不建议用命令行)
镜像系统卷,-S后台运行(不后台运行很有可能hang)
# mirrorvg -S -c 2 rootvg hdiskX //镜像rootvg
13 利用mirrorvg同步vg时,有些lv过大,可能会提示空间不足
手动mklvcopy将之前在hdisk0上的lv建立好
再利用syncvg -v rootvg同步vg数据
14、为hdiskX 建立引导信息
将引导信息加入新盘中
# bosboot -ad /dev/hdiskX
15、重新设置引导顺序,使之都能够引导系统
# bootlist -m normal hdisk0 hdisk1(自己定)
# bootlist -m normal -o
16、如果是hdisk0,则需要重建dumplv
16.1命令行模式
其中16为dump lv的PP数量,可以根据具体环境更改
sysdumpdev –e 估算dump设备所需要的大小
lsvg rootvg
PP SIZE: 128 megabyte(s)
查看每个PP的大小,估算的dump大小/每个PP大小=新建dump所需的PPs个数
在hdisk0上创建12个PPs大小的lg_dumplv
mklv -t sysdump -y lg_dumplv rootvg 12 hdisk0
3 重新把primary dump device 设置到lg_dumplv
sysdumpdev –Pp /dev/lg_dumplv
16.2 smit模式,需要之前先将dumplv迁移
#smit mklv->lg_dumplv (建立primary dump device)
#smit dump ->Change the Primary Dump Device
->Primary Dump Device [/dev/lg_dumplv]
#sysdumpdev –l 查看dump device
#migratepv –l lg_dumplv hdisk1 hdisk0
从物理卷hdisk1把lg_dumplv逻辑分区迁移到hdisk0
17、查看rootvg同步情况
# lsvg -l rootvg
18 diag关闭告警灯
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200529011758603.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjgwNDgxNA==,size_16,color_FFFFFF,t_70)![在这里插入图片描述](https://img-blog.csdnimg.cn/20200529011805308.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjgwNDgxNA==,size_16,color_FFFFFF,t_70)![在这里插入图片描述](https://img-blog.csdnimg.cn/20200529011836469.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjgwNDgxNA==,size_16,color_FFFFFF,t_70)
选第二个就可以,先Enter选中,再按F7 cmmit