LVM 故障诊断.docx
《LVM 故障诊断.docx》由会员分享,可在线阅读,更多相关《LVM 故障诊断.docx(20页珍藏版)》请在冰点文库上搜索。
LVM故障诊断
LVM故障诊断任务
本文中的主题提供诊断和恢复过程在遇到以下问题之一时使用:
∙磁盘驱动器问题
∙物理或逻辑卷错误
∙卷组错误
磁盘驱动器问题
如果磁盘驱动器用尽了可用空间,请参阅获取磁盘驱动器上的更多空间。
如果怀疑磁盘驱动器机械性故障或已发生故障,请使用以下过程在磁盘上运行诊断:
1.使用root用户权限,在命令行中输入以下SMIT快速路径:
smitdiag
2.选择当前Shell诊断以进入“AIX®诊断”工具。
3.阅读“诊断操作说明”屏幕后,按下Enter键。
4.选择诊断例程。
5.选择系统验证。
6.在列表上滚动以查找和选择想要测试的驱动器。
7.选择提交。
基于诊断结果,应该能够确定磁盘的情况:
∙如果检测到磁盘驱动器发生故障或已发生故障,则最重要的事情是从该磁盘恢复数据。
如果磁盘仍是可访问的,请尝试完成迁移物理卷的内容中的过程。
迁移是从发生故障的磁盘恢复数据的首选方式。
以下过程描述如何在迁移无法成功完成的情况下恢复逻辑卷中的数据。
∙如果驱动器发生故障,并且可以不必重新格式化该驱动器就可以修复它,则无数据会丢失。
请参阅在不必重新格式化的情况下恢复磁盘驱动器。
∙如果磁盘驱动器必须重新格式化或更换,请进行备份,如果可能,请在更换它之前从其卷组和系统配置中卸下该磁盘驱动器。
单一副本文件系统中的一些数据可能丢失。
请参阅使用重新格式化的磁盘驱动器或更换磁盘驱动器来进行恢复。
∙如果您的系统支持热可移动性功能,请参阅当系统保持可用时从磁盘故障恢复。
获取磁盘驱动器上的更多空间
如果用尽了磁盘驱动器上的空间,有几种方式纠正该问题。
可以自动跟踪并除去不想要的文件,限制用户访问某些目录,或从另一个磁盘驱动器安装空间。
必须具有root用户、系统组或管理组权限以执行这些任务。
自动清除文件系统
使用skulker命令通过除去不想要的文件清除文件系统。
从命令行输入以下内容:
skulker-p
skulker
命令用于定期从文件系统清除废弃或不需要的文件。
候选文件包括/tmp目录中的文件、超过指定时限的文件、a.out文件、核心文件或ed.hup文件。
skulker命令通常每天运行,作为非高峰时数期间通过cron命令运行的记帐过程的一部分。
限制用户访问某些目录
另一种释放磁盘空间并可以保持其不被使用的方式是限制和监控磁盘使用情况。
∙通过输入以下命令限制用户访问某些目录:
chmod655DirName
此命令设置所有者(root用户)具有读和写许可权,并设置组和其他用户具有只读许可权。
DirName是想要限制的目录的全路径名。
∙监控个别用户的磁盘使用情况。
进行此操作的一种方式是将以下行添加到/var/spool/cron/crontabs/adm文件:
02**4/usr/sbin/acct/dodisk
此行在每星期四(4)的凌晨2时(02)执行dodisk命令。
dodisk命令启动磁盘使用情况记帐。
此命令通常作为非高峰时数期间通过cron命令运行的记帐过程的一部分来运行。
从另一个磁盘驱动器安装空间
在磁盘驱动器上获取更多空间的另一种方式是从另一个驱动器安装空间。
使用以下方式,可以将空间从一个磁盘驱动器安装到另一个磁盘驱动器:
∙使用smitmountfs快速路径。
∙使用mount命令。
例如:
mount-nnodeA-vnfs/usr/spool/usr/myspool
mount命令使文件系统可在指定的位置使用。
迁移物理卷的内容
要将属于一个或多个指定逻辑卷的物理分区从一个物理卷移动到卷组中的其他一个或多个物理卷,请使用以下说明。
更换或修复有故障的磁盘前,也可以使用此过程从有故障的磁盘移动数据。
此过程可以用于root卷组或用户定义的卷组中的物理卷。
注意:
从物理卷迁移引导逻辑卷时,必须清除源中的引导记录,否则它可能导致系统挂起。
当执行bosboot命令时,也必须执行以下过程的步骤4中描述的chpv-c命令。
1.如果想将数据迁移到新磁盘,请执行以下步骤。
否则,继续步骤2。
a.通过输入以下内容检查磁盘是否可由系统识别并且可用:
lsdev-Ccdisk
输出与以下类似:
hdisk0可用10-60-00-8,016位LVDSCSI磁盘驱动器
hdisk1可用10-60-00-9,016位LVDSCSI磁盘驱动器
hdisk2可用10-60-00-11,016位LVDSCSI磁盘驱动器
b.如果列出了磁盘并且它处于可用状态,则通过输入以下内容检查它是否不属于另一个卷组:
lspv
输出看起来类似如下:
hdisk00004234583aa7879rootvg活动
hdisk100042345e05603c1无活动
hdisk200083772caa7896eimagesvg活动
在该示例中,hdisk1可以用作目的地磁盘,因为第三个字段显示其未被卷组使用。
c.通过输入以下内容将新磁盘添加到卷组:
extendvgVGNamediskname
此处VGName是卷组的名称而diskname是新磁盘的名称。
在先前步骤中所示的示例中,diskname应该替换为hdisk1。
2.源和目的地物理卷必须在相同的卷组中。
要确定两个物理卷是否都在卷组中,请输入:
lsvg-pVGname
此处VGname是卷组的名称。
root卷组的输出看起来与以下类似:
rootvg:
PV名称PV状态PP总数可用PP可用分发
hdisk0活动5428500..00..00..26..59
hdisk1活动54230600..00..00..00..06
请注意“可用PP”的数量。
3.检查对想要移动的源的目标磁盘是否有足够空间:
a.通过输入以下内容确定源磁盘上的物理分区的数量:
lspvSourceDiskName|grep"USEDPPs"
此处SourceDiskName是源磁盘的名称,例如,hdisk0。
输出看起来与以下类似:
USEDPPs:
159(636兆字节)
在此示例中,需要目的地磁盘上的159“可用PP”以成功完成迁移。
b.比较源磁盘的“已使用的PP”的数量与目的地磁盘或磁盘组上的“可用PP”的数量(步骤2)。
如果“可用PP”的数量大于“已使用的PP”的数量,则有足够的空间来迁移。
4.仅在将数据从rootvg卷组中的磁盘迁移时才按此步骤进行操作。
如果正在将数据从用户定义的卷组中的磁盘迁移,则继续步骤5。
通过输入以下内容查看引导逻辑卷(hd5)是否在源磁盘上:
lspv-lSourceDiskNumber|grephd5
如果没有获取输出,则引导逻辑卷不是位于源磁盘上。
继续步骤5。
如果获取与以下类似的输出:
hd52202..00..00..00..00/blv
则运行以下命令:
migratepv-lhd5SourceDiskNameDestinationDiskName
您将接收到警告您在目的地磁盘上执行bosboot命令的消息。
也必须执行mkboot-c命令来清除源上的引导记录。
输入以下命令序列:
bosboot-a-d/dev/DestinationDiskName
bootlist-mnormalDestinationDiskName
mkboot-c-d/dev/SourceDiskName
5.通过输入以下SMIT快速路径迁移数据:
smitmigratepv
6.列出物理卷并选择先前检查的源物理卷。
7.转至目的地物理卷字段。
如果接受缺省值,则卷组中的所有物理卷可用于传送。
否则,选择一个或多个对您移动(从4步骤)的分区提供了足够的空间的磁盘。
8.愿意的话,请转至属于此逻辑卷字段的“仅移动数据”,并且列出和选择逻辑卷。
仅可以移动分配给逻辑卷的物理分区,该逻辑卷被指定位于所选择作为源物理卷的物理卷上。
9.按下Enter键以移动物理分区。
此时,数据现在驻留在新的(目的地)磁盘上。
然而,原(源)磁盘保留在卷组中。
如果磁盘仍然可靠,则可以继续将其用作热备用磁盘。
特别是在磁盘有故障时,建议执行以下步骤:
1.要从卷组除去源磁盘,请输入:
reducevgVGNnameSourceDiskName
2.要从系统物理上除去源磁盘,请输入:
rmdev-lSourceDiskName–d
在不必重新格式化的情况下恢复磁盘驱动器
如果在不必重新格式化坏磁盘的情况下修复坏的磁盘并将其放回系统中,则可以让系统在引导时自动激活并重新同步驱动器上的旧文件物理分区。
旧文件物理分区包含您的系统不能使用的数据。
如果怀疑旧文件物理分区,请在命令行中输入以下命令:
lspv-MPhysVolName
其中PhysVolName是您的物理卷的名称。
lspv命令输出将列出您的物理卷上的所有分区。
以下是示例输出的摘录:
hdisk16:
112lv01:
4:
2旧文件
hdisk16:
113lv01:
5:
2旧文件
hdisk16:
114lv01:
6:
2旧文件
hdisk16:
115lv01:
7:
2旧文件
hdisk16:
116lv01:
8:
2旧文件
hdisk16:
117lv01:
9:
2旧文件
hdisk16:
118lv01:
10:
2旧文件
第一列显示物理分区,第二列显示逻辑分区。
任何旧文件物理分区记录在第三列。
使用重新格式化的磁盘驱动器或更换磁盘驱动器来进行恢复
本节描述当必须重新格式化或更换发生故障的磁盘时如何从发生故障的磁盘驱动器恢复数据。
注意:
在重新格式化或更换磁盘驱动器之前,请将所有到非镜像文件系统的引用从发生故障的磁盘中除去,并且从卷组和系统配置除去磁盘。
如果不这样做,则在ODM(对象数据管理器)和系统配置数据库中创建问题。
这些基本步骤的说明包含在『在更换或重新格式化已发生故障或正发生故障的磁盘之前』下的以下过程中。
以下过程使用的情况中,名为myvg的卷组包含三个磁盘驱动器,称为hdisk2、hdisk3和hdisk4。
在此情况中,hdisk3已毁坏。
非镜像的逻辑卷lv01和mylv逻辑卷的副本包含在hdisk2上。
mylv逻辑卷已制作了镜像并具有三个副本,每个副本占用其磁盘上的两个物理分区。
发生故障的hdisk3包含mylv的另一个副本和名为lv00的非镜像的逻辑卷。
最后,hdisk4包含mylv的第三个副本以及名为lv02的逻辑卷。
下图显示此情况。
此过程分为以下关键段:
∙在更换或重新格式化发生故障的磁盘之前为保护数据而做的事情
∙要重新格式化或更换磁盘而遵循的过程
∙在重新格式化或更换磁盘后为恢复数据而做的事情
在更换或重新格式化已发生故障或正发生故障的磁盘之前:
1.使用root用户权限登录。
2.如果不熟悉在发生故障的驱动器上的逻辑卷,请使用运转正常的磁盘查看发生故障的磁盘的内容。
例如,要使用hdisk4查看hdisk3,请在命令行中输入以下命令:
lspv-M-nhdisk4hdisk3
lspv命令显示有关卷组内的物理卷的信息。
输出看起来与以下类似:
hdisk3:
1mylv:
1
hdisk3:
2mylv:
2
hdisk3:
3lv00:
1
hdisk3:
4-50
第一列显示物理分区,第二列显示逻辑分区。
分区4至50可用。
3.如果可能,备份发生故障的设备上的所有单一副本逻辑卷。
4.如果具有单一副本文件系统,则从磁盘卸下它们。
(可以从lspv命令的输出中标识单一副本文件系统。
单一副本文件系统具有与输出上的物理分区相同数量的逻辑分区。
)不必卸下镜像的文件系统。
在该情况下,发生故障的磁盘hdisk3上的lv00是单一副本文件系统。
要卸下它,请输入以下命令:
unmount/dev/lv00
如果不知道文件系统的名称,则假定/etc/filesystems文件不是单独位于已发生故障的磁盘上,请在命令行中输入mount以列出所有安装的文件系统并查找与您的逻辑卷关联的名称。
还可以使用/etc/filesystems文件上的grep命令以只列出与您的逻辑卷关联的文件系统名称(如果有)。
例如:
greplv00/etc/filesystems
输出看起来类似如下:
dev=/dev/lv00
log=/dev/loglv00
注:
a.如果您正在尝试卸下的文件系统当前正在使用,则unmount命令失败。
unmount命令仅在无文件系统的文件打开和无用户的当前目录在该设备上时执行。
b.unmount命令的另一个名称是umount。
这两个名称可互换。
5.通过输入rmfs命令从已发生故障的物理卷除去所有单一副本文件系统:
rmfs/FSname
6.除去所有位于发生故障的磁盘的镜像的逻辑卷。
注:
不能对rootvg卷组中物理卷的hd5和hd7逻辑卷使用rmlvcopy。
因为这些逻辑卷只有一份副本,所以系统不允许除去这些逻辑卷。
rmlvcopy命令从每个逻辑分区除去副本。
例如,输入:
rmlvcopymylv2hdisk3
通过除去hdisk3上的副本,将属于mylv逻辑卷的每个逻辑分区的副本数量从三个减少为两个(hdisk4上一个,hdisk2上一个)。
7.如果发生故障的磁盘是root用户卷组的一部分,并且包含逻辑卷hd7,则请通过在命令行中输入以下命令来除去主转储设备(hd7)
sysdumpdev-P-p/dev/sysdumpnull
sysdumpdev命令更改运行系统的主或辅助转储设备位置。
当重新引导时,转储设备返回到其原位置。
注:
从AIX5.3开始,您可以选择转储到DVD设备。
8.使用以下命令除去任何位于磁盘上的调页空间:
rmpsPSname
其中PSname是要除去的调页空间的名称,它实际上是调页空间所驻留的逻辑卷的名称。
如果rmps命令没有成功,则在继续此过程之前必须使用smitchps快速路径释放主调页空间并重新引导。
如果有活动的调页空间,则步骤10中的reducevg命令可能失败。
9.使用rmlv命令,从卷组中除去任何其他逻辑卷,如那些不包含文件系统的逻辑卷。
例如,输入:
rmlv-flv00
10.使用reducevg命令从卷组中除去已发生故障的磁盘。
例如,输入:
reducevg-dfmyvghdisk3
如果不能执行reducevg命令,或者如果该命令未成功,则在重新格式化或更换驱动器后,步骤13中的过程可以帮助清除VGDA/ODM信息
更换或重新格式化已发生故障或正发生故障的磁盘:
11.下一个步骤取决于是否想要重新格式化或更换磁盘以及您正在使用的硬件的类型:
a.如果想要重新格式化磁盘驱动器,请使用以下过程:
a.使用root用户权限,在命令行中输入以下SMIT快速路径:
smitdiag
b.选择当前Shell诊断以进入“AIX诊断”工具。
c.阅读“诊断操作说明”屏幕后,按下Enter键。
d.选择任务选择。
e.在任务列表上滚动以查找和选择格式化介质。
f.选择想要重新格式化的磁盘。
在确认想要重新格式化磁盘后,磁盘上的所有内容都将擦除。
磁盘重新格式化后,请继续步骤12。
b.如果您的系统支持热交换磁盘,请使用当系统保持可用时从磁盘故障恢复中的过程,然后继续步骤13。
c.如果系统不支持热交换磁盘,请执行以下操作:
a.使用SMIT快速路径smitrmvdsk断开旧驱动器的电源。
将数据库字段中的KEEP定义更改为“否”。
b.请联系系统支持的下一个级别以更换磁盘驱动器。
在更换或重新格式化已发生故障或正发生故障的磁盘后:
∙按照配置磁盘和将可用的磁盘制作为物理卷中的说明操作。
∙如果在磁盘格式化(步骤10)之前不能使用旧卷组中磁盘上的reducevg命令,则以下过程可帮助清除VGDA/ODM信息。
d.如果卷组仅由一个重新格式化的磁盘组成,请输入:
exportvgVGName
其中VGName是卷组的名称。
e.如果卷组由多于一个磁盘组成,请在命令行中输入以下命令:
varyonvgVGName
系统显示有关丢失或不可用磁盘的消息,并列出新的(或重新格式化的)磁盘。
请注意新磁盘的物理卷标识(PVID),它在varyonvg消息中列出。
它是丢失的磁盘的名称和标签PVNOTFND之间的16个字符的字符串。
例如:
hdisk300083772caa7896ePVNOTFND
请输入:
varyonvg-fVGName
丢失的磁盘现在使用PVREMOVED标签显示。
例如:
hdisk300083772caa7896ePVREMOVED
然后,输入命令:
reducevg-dfVGNamePVID
其中PVID是物理卷标识(在此情况中为00083772caa7896e)。
∙要将新的磁盘驱动器添加到卷组,请使用extendvg命令。
例如,输入:
extendvgmyvghdisk3
∙要在新的(或重新格式化的)磁盘驱动器上重新创建单一副本逻辑卷,请使用mklv命令。
例如,输入:
mklv-ylv00myvg1hdisk3
此示例重新创建hdisk3驱动器上的lv00逻辑卷。
1意味着此逻辑卷未制作镜像。
∙要重新创建逻辑卷上的文件系统,请使用crfs命令。
例如,输入
crfs-vjfs-dlv00-m/dev/lv00
∙要从备份介质恢复单一副本文件系统,请参阅从备份映象恢复个别用户文件。
∙要重新创建逻辑卷的镜像的副本,请使用mklvcopy命令。
例如,输入:
mklvcopymylv3hdisk3
此示例创建hdisk3上的mylv逻辑卷的镜像的第三个分区。
∙要将新镜像与其他镜像(在此示例中为hdisk2和hdisk4)上的数据同步,请使用syncvg命令。
例如,输入:
syncvg-phdisk3
此时,所有镜像的文件系统都应该恢复并是最新的。
如果能备份单一副本文件系统,则它们也将准备使用。
应该能够继续使用正常系统。
从已发生故障的磁盘驱动器恢复的示例
要从已发生故障的磁盘驱动器恢复,请逆序执行创建时的步骤;也就是列出创建卷组的步骤,然后依次倒退执行。
以下示例是此技术的说明。
它显示如何创建镜像的逻辑卷以及如何在磁盘发生故障进行更改(每次逆序执行一个步骤)。
注:
以下示例说明特定的实例。
它不打算成为任何一般恢复过程所基于的常规原型。
1.系统管理员Jane通过输入以下命令在hdisk1上创建名为workvg的卷组:
mkvg-yworkvghdisk1
2.然后她通过输入以下命令为此卷组又创建了两个磁盘:
3.extendvgworkvghdisk2
4.
extendvgworkvghdisk3
5.Jane创建了具有三个副本的40MB的逻辑卷。
每个副本分别在包含workvg卷组的三个磁盘的每个磁盘上。
她使用以下命令:
6.mklv-ytestlvworkvg10
7.
mklvcopytestlv3
Jane创建了镜像的workvg卷组后,hdisk2发生故障。
因此,她采取以下步骤恢复:
1.她通过输入以下命令从hdisk2除去逻辑卷副本:
rmlvcopytestlv2hdisk2
2.她通过输入以下命令,从系统拆离hdisk2,以便更新ODM和VGDA:
reducevgworkvghdisk2
3.通过输入以下命令,从系统配置中除去hdisk2以准备更换:
rmdev-lhdisk2-d
4.她通过输入以下命令,选择关闭系统:
shutdown-F
5.她更换了磁盘。
新磁盘不具有与以前的hdisk2相同的SCSI标识。
6.她重新引导系统。
因为具有新的磁盘(系统发现此磁盘上有新的PVID),系统选择首先打开hdisk名。
因为在步骤3中使用了-d标志,释放了名称hdisk2,因此系统选择hdisk2作为新磁盘的名称。
如果没有使用-d标志,则已选择hdisk4作为新的名称。
7.Jane通过输入以下命令,将此磁盘添加到workvg卷组中:
extendvgworkvghdisk2
8.她通过输入以下命令,创建了逻辑卷的两个镜像的副本:
mklvcopytestlv3
“逻辑卷管理器”自动将第三个逻辑卷副本放置在新的hdisk2上。
当系统保持可用时从磁盘故障恢复
使用热可移动性功能从磁盘故障恢复的过程大部分都与在不必重新格式化的情况下恢复磁盘驱动器中描述的内容相同,以下是例外情况:
1.要卸下磁盘上的文件系统,请使用安装JFS或JFS2过程。
2.要从其卷组和操作系统卸下磁盘,请使用卸下没有数据的磁盘过程。
3.要用新磁盘更换已发生故障的磁盘,不需要关闭系统。
使用以下顺序的过程:
a.当系统保持可用时添加磁盘
b.配置磁盘
c.继续使用重新格式化的磁盘驱动器或更换磁盘驱动器来进行恢复中的13步。
当卷组由一个磁盘组成时更换磁盘
如果可以将正毁坏的磁盘作为卷组的一部分访问,请使用以下过程之一:
∙将没有数据的固定磁盘添加到现有的卷组(smitextendvg)
∙将没有数据的固定磁盘添加到新卷组(smitmkvg)
∙迁移物理卷的内容
如果磁盘毁坏并无法访问,请遵循这些步骤:
1.导出卷组。
2.更换驱动器
3.从存在的备份介质重新创建数据。
物理或逻辑卷错误
本节包含物理或逻辑卷错误的可能问题和解决方案。
热点问题
当访问逻辑卷时,如果注意到性能退化,可能在正遇到太多磁盘I/O的逻辑卷中具有热点。
LVCB警告
逻辑卷控制块(LVCB)是逻辑卷的第一个512字节。
此区域包含重要信息,如逻辑卷的创建日期、有关镜像副本的信息以及JFS中可能的安装点。
作为LVM中算法的部分,更新LVCB需要某些LVM命令。
读取并分析旧的LVCB以确定其是否有效。
如果该信息是有效的LVCB信息,则更新LVCB。
如果该信息无效,则不执行LVCB更新,并可能收到以下消息:
警告,不能写lv控制块数据。
大多数时间,当数据库程序忽略JFS并将原始逻辑卷作为存储介质访问时,该消息产生。
当发生这种情况时,该数据库信息完全覆盖LVCB。
对