解决LVM和硬盘PVID问题

解决LVM和硬盘PVID问题

问与答

 

该技术说明讨论了PVID的各种问题以及如何解决它们。

回答

AIX上的逻辑卷管理器(LVM)使用物理卷标识符(PVID)来跟踪属于LVM卷组的磁盘驱动器。这是系统生成的16位数字,实际存储在硬盘驱动器上并读入ODM。LVM还将此PVID存储在卷组的卷组描述符区域(VGDA)中。系统上的每个PVID唯一标识一个物理卷。

PVID问题

重复的PVID
同一PVID显示在多个磁盘上。

问题诊断
1.验证多个磁盘上是否有重复的PVID。
$ lspv

如果您知道导入的卷组的名称有问题,请使用:
$ lspv | grep VGNAME

lspv命令从ODM中读取,它不从磁盘读取PVID。我们需要检查ODM中列出的PVID是否与磁盘上的PVID相同。

2.要从磁盘读取PVID,必须以root或su身份登录到该磁盘,然后使用:
#lquerypv -h / dev / hdisk7 80 10

输出示例:


00000080 00021AC8 E561D594 00000000 00000000 | ..... a .......... |

磁盘的PVID在第2列和第3列中。


可能的原因和解决方案1:磁盘上的ODM和PVID不匹配

如果磁盘上的PVID与lspv的ODM输出不匹配,请使用chdev命令重新读取正确的信息。从磁盘输入PVID,然后重新填充ODM。

示例:
#lspv | grep hdisk24
hdisk24 deadbeefdeadbeef无

检查写入磁盘的PVID是否正确:
#lquerypv -h / dev / hdisk24 80 10
00000080 00050A85 577D8A61 00000000 00000000 | .... W} .a ........ |

因此,ODM版本与写入磁盘的版本不匹配。验证此问题的另一种方法是直接查询ODM:

#odmget -q“名称= hdisk24和属性= pvid” CuAt

CuAt:
        名称=“ hdisk24”
        属性=“ pvid”
        值=“ deadbeefdeadbeef0000000000000000”
        类型=“ R”
        泛型=“ D”
        rep =“ s”
        nls_index = 2

强制系统重新读取磁盘上的PVID并重新填充ODM:

#chdev -a pv = yes -l hdisk24
hdisk24已更改

现在检查lspv是否显示正确的PVID:
#lspv | grep hdisk24
hdisk24 00050a85577d8a61无

您也可以直接仔细检查ODM:

#odmget -q“ name = hdisk24 and attribute = pvid” CuAt

CuAt:

        属性=“ pvid”
        值=“ 00050a85577d8a610000000000000000”
        类型=“ R”
        泛型=“ D”
        rep =“ s”
        nls_index = 2


可能的原因和解决方案2:磁盘相互复制

近年来,SAN存储已成为一种使用光纤通道网络将新磁盘连接到系统的流行方法。这些SAN存储系统中的某些包含一种为每个磁盘(或LUN)逐位复制以将其带到另一个站点或计算机的方法。副本是精确的,直到LUN的VGDA和PVID区域。如果将这两个磁盘(原始磁盘和副本)都分区到同一主机,并且被cfgmgr看到,它将导致系统在命令中显示重复的PVID,例如作为lspv,lsvg,

由于重复的PVID,Varyyonvg(从importvg或Vareonvg调用)将失败:

#importvg -y datavg hdisk20
0516-1775varyonvg:物理卷hdisk21和hdisk20具有相同的PVID(00050a85470c2eeb)。
0516-780 importvg:无法从hdisk20导入卷组。

答:找出这些磁盘是否确实是彼此的副本。如果不需要第二个磁盘(或一组磁盘)上的卷组副本,则可以擦除VGDA和PVID区域,从而允许用户在磁盘上创建新的卷组。

一句话警告,这是对磁盘的永久更改。

首先,使用以下方法擦除驱动器上的PVID:
#chdev -a pv = clear -l hdiskX  (如果使用其他路径管理器,则名称可能会有所不同)

接下来,清除驱动器上的VGDA:
#chpv -C hdiskX

然后,您可以使用mkvg命令在磁盘上创建新的卷组,或将它们添加到现有卷中与extendvg组。


B.但是,如果磁盘是彼此的副本以用于备份策略,并且源卷和备份(或目标)卷组都需要存在于同一台机器上,则将需要导入目标卷组使用recreatevg。使用recreatevg的好处是,它可以在导入卷组时更改磁盘的PVID,并使用这些新的PVID更新VGDA。

此时应注意,AIX不允许两个逻辑卷具有相同的名称,或两个文件系统具有相同的安装点。默认情况下,recreatevg命令将更改逻辑卷名和安装点,因为它是用于重新创建现有卷组的。

缺省情况下,recreatevg将更改现有逻辑卷名称,方法是在名称前添加字符串“ fs”,并在文件系统安装点路径前添加“ / fs”。可以通过使用-L和-Y标志重新创建vg来更改它们。

例如,如果我有一个带有文件系统和日志设备的卷组“ origvg”,并且在hdisk6上有它的SAN副本:#lsvg

-l origvg
origvg:
LV名称类型LP PPs PV PV LV状态安装点
loglv01 jfs2log 1 1 1已关闭/已
同步N / A fslv02 jfs2 256 256 1已关闭/已同步/ data


#lspv | grep的origvg
hdisk5的00050a85ef3356ec origvg活跃
hdisk6 00050a85ef3356ec origvg活跃

我可以清除掉PVID和hdisk6然后对其运行recreatevg:

#chdev命令-a PV =清除-l hdisk6
hdisk6改变

#LSPV
hdisk5的00050a85ef3356ec origvg活跃
hdisk6无无

#recreatevg -y copyvg hdisk6
copyvg

hdisk5 00050a85ef3356ec origvg有效
hdisk6 00050a85ee6d1446 copyvg active

#lsvg -l copyvg
copyvg:
LV名称类型LPs PPs PVs LV状态安装点
fsloglv01 jfs2log 1 1 1关闭/
同步N / A fsfslv02 jfs2 256 256 1关闭/同步N / ID


可能的原因和解决方案3在单个磁盘路径上存在,而不是在

使用SDD多路径的多路径设备示例中存在

vpath34可用的数据路径优化器伪设备驱动程序

此vpath由以下hdisk组成。

hdisk138可用01-01-02
U789D.001.DQD35BK-P1-C2-T2-W5005076801402F1D-L22000000000000 FC 2145
hdisk139可用01-01-02
U789D.001.DQD35BK-P1-C2-T2-W5005076801402F2D-L22000000000000 FC 2145
hdisk140可用03-00-02
U789D.001.DQD35PG-P1-C6-T1-W5005076801302F2D-L22000000000000 FC 2145
hdisk141可用03-00-02
U789D。 001.DQD35PG-P1-C6-T1-W5005076801302F1D-L22000000000000 FC 2145

----------------------------------- ----------------------------------

从lspv输出:

hdisk138无无
hdisk139无无
hdisk140无无
hdisk141无无
vpath34 00cb3e924851eb12 oravg1

这是vpath的正确配置,其中PVID与ODM中的vpath设备关联。

如果PVID出现在各个路径(hdisk)上,则可以使用以下两个SDD命令之一移动它:

hd2vp SDD脚本,可将hdisk设备卷组转换为
SDD vpath设备卷组。

dpovgfix 该命令用于修复混合了
vpath和hdisk物理卷的SDD卷组。

任何创建伪设备用于访问LUN的多路径驱动程序都可能发生这种情况。另一个示例是EMC PowerPath,它使用“ hdiskpowerX”伪设备,该设备应具有PVID,而各个路径均列为“ hdiskX”,没有pvid或卷组关联。

PVID错误

磁盘上的PVID显示在“ lspv”中,但它不是正确的PVID。同样,“ lspv”可能未显示与卷组关联的驱动器。

 

问题诊断


如果磁盘显示PVID但没有VG:

lspv输出:
hdisk11 00c7a967e5b40149无

检查磁盘本身上的PVID以确定它是否与lspv输出匹配:

#lquerypv -h / dev / hdisk11 80 10
00000080 00C7A967 E5B40149 00000000 00000000 |。 .g ... I ........ |

现在检查ODM以查看那里有什么PVID。通常这将与lspv输出匹配,因为lspv是从那里获取数据的。

#odmget -q“名称= hdisk11和属性= pvid” CuAt

CuAt:
        名称=“ hdisk11”
        属性=“ pvid”
        值=“ 00c7a967e5b401490000000000000000”
        类型=“ R”
        泛型=“ D”
        rep =“


因此,磁盘上的ODM和PVID匹配。

现在,检查磁盘上VGDA中列出的PVID:

#lqueryvg -Ptp hdisk11
物理:00c7a967cc88015c 2 0

可能的原因和解决方案1:磁盘上的PVID已更改


如果磁盘上VGDA中的PVID不包含上述lquerypv命令中的PVID,则可能有人更改了磁盘上的PVID。这也可能使磁盘处于“丢失”状态。另一个症状是可能无法导入的vg。

#importvg -y datavg hdisk11
0516-1939:在VGDA中找不到PV标识符。
0516-780 importvg:无法从hdisk11导入卷组。

问题诊断:

检查磁盘上的PVID


#lquerypv -h / dev / hdisk11 80 10
00000080 00C7A967 E5B40149 00000000 00000000 | ... g ... I ........ |

将其与VGDA中的PVID进行比较:

#lqueryvg -Ptp hdisk11
物理:00c7a967cc88015c 2 0

因此,这里写入磁盘的PVID不是应该的。

解决方案
可以使用recreatevg命令解决此问题。我们将用recreatevg重写卷组中每个磁盘的所有PVID,并使用这些PVID更新VGDA,以便所有内容再次匹配。

我们将使用标志“ -Y NA”和“ -L /”,以便逻辑卷名称和文件系统安装点不会更改。如果没有这些选项,则recreatevg将采取默认操作,即更改逻辑卷名称并为每个安装点添加前缀。

属于卷组 的所有磁盘的名称必须包含在命令行中。这与importvg的行为不同,后者仅需要1个磁盘的名称。

#recreatevg -y datavg -Y NA -L / hdisk11
datavg

现在检查所有内容。

#lspv | grep hdisk11
hdisk11 00c7a967e61887e7 datavg active

#lsvg -p datavg
datavg:
PV_NAME PV状态总计PPs免费PPs免费分发
hdisk11 active 639 639 128..128..127..128..128

可能的原因和解决方案2:ODM中的PVID丢失或错误

问题诊断:


在这种情况下,lspv不显示有关磁盘的任何信息:

#lspv
hdisk4无无,

或者它可能显示PVID但没有关联的卷组:

hdisk4 abcdabcdabcdabcd无


其他症状可能是该卷组仅显示了磁盘的PVID,而没有显示名称:#lsvg

-p testvg
0516-304:在设备
        配置数据库中找不到设备ID 00c7a967e601c226 。
testvg:
PV ID PV状态总计PPs免费PPs免费分发
00c7a967e601c226有效639 639 128..128..127..128..128


如果磁盘上VGDA中的PVID与上述lquerypv命令中的PVID匹配,但与lspv输出或ODM不匹配,则可以将正确的PVID重新读入ODM。

首先,从存储它的磁盘位置读取现有的PVID:
#lquerypv -h / dev / hdisk4 80 10
00000080 00C7A967 E601C226 00000000 00000000 | ... g ...&........ |

现在,将其与我们在上面的lsvg -p输出中看到的PVID进行比较。

#lqueryvg -Ptp hdisk4
物理:00c7a967e601c226 2 0

在这种情况下,磁盘上的PVID很好,并且与VGDA中的PVID匹配,但是ODM错误。

解决方案
我们可以使用chdev修复ODM,以再次重新读取正确的PVID:

#chdev -a pv = yes -l hdisk4
hdisk4已更改

现在验证它是否已修复:

#lspv | grep hdisk4
hdisk4 00c7a967e601c226 testvg           active

#lsvg -p testvg
testvg:
PV_NAME PV状态总计PPs免费PPs免费分发
hdisk4 active 639639 128..128..127..128..128

#odmget -q“ name = hdisk4 and attribute = pvid“ CuAt

CuAt:
        名称=” hdisk4“
        属性=” pvid“
        值=” 00c7a967e601c2260000000000000000“
        类型=” R“
        泛型=” D“
        rep =” s“
        nls_index = 2

 

可能的原因和解决方案3:完全没有PVID

问题诊断:

如果ODM或磁盘上都没有PVID,则可以重写一个。卷组的VGDA也必须使用此新的PVID更新,否则LVM将不知道该磁盘属于正确的卷组。

解决方案:
按照与“可能的原因和解决方案1:磁盘上的PVID已更改”相同的步骤,使用recreatevg在ODM和卷组的VGDA中重写磁盘上的PVID。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值