兰州阳光灵迅电子科技有限公司
  • 首页
  • 公司简介
  • 新闻中心
  • 产品中心
  • 解决方案
  • 成功案例
  • 合作伙伴
  • 联系我们
当前位置:首页 » 解决方案 » AIX系统 修改EMC hdiskpower PVID

网站导航

公司简介
新闻中心
产品中心
解决方案
成功案例
合作伙伴
联系我们

联系我们

地址:兰州市城关区科技街88号

电话:(86)0931-8265989

传真:(86)0931-8260768

手机:13909315556

邮箱:ygb@lzyglx.com

AIX系统 修改EMC hdiskpower PVID

在AIX系统使用EMC盘阵的环境下,你可能会遇到hdiskpower与hdisk同时出现认到PVID的情况。这种情况的出现比较偶然,但也有一定的必然性。大多情况是由于使用了 chdev -l hdiskX -a pv=yes这样的命令误操作。
在这种情况下,你在importvg、varyonvg时候是会报pvid重复,从而报错,存储无法使用。

这时候需要使用一个比较笨的办法,直接在ODM库中的hdisk pvid信息改为none即可。办法虽然较笨,但是相对安全,不用对hdiskpower盘进行操作。

修改方法如下(以hdisk9为例):

1. odmget命令先拿到现有的pvid属性值的信息:

#odmget -q "name=hdisk9 and attribute=pvid" CuAt

CuAt:
        name = "hdisk9"
        attribute = "pvid"
        value = "000181cfdfdec9960000000000000000"
        type = "R"
        generic = "D"
        rep = "s"
        nls_index = 15

2. 将上面的输入写入一个文件中,然后在文件中修改pvid的值,如新的PVID为none,则文件的内容就是

CuAt:
        name = "hdisk9"
        attribute = "pvid"
        value = "none"
        type = "R"
        generic = "D"
        rep = "s"
        nls_index = 15

3. odmchange命令来更新ODM
假设文件放在/tmp/a
则 odmchange -o CuAt -q "name=hdisk9 and attribute=pvid" /tmp/a

此时hdisk9的PVID就会变成none,这样你去做hdiskpower的importvg时就不会再有报错。

同理你也可以将ODM库中错误的PVID信息修改成你想要的。但是这就存在很大的风险,谨慎。

在这里普及一个概念。

什么是PVID,个人理解PVID就是一个PV在ODM信息库中的唯一标识,hdiskX却不是,一块相同的盘,可以是hdisk9/hdisk10/hdisk100000 但是只要使用chdev命令第一次认到这块盘以后,他的pvid就固定下来了。一块盘的pvid生成原则是 主板序列号+形成pv时候的时间戳。这个信息是写在物理硬盘头信息里的。同时AIX ODM库里也存在。同时VGDA信息里也是存在的。这三个信息相互吻合,印证。走遍天下,都可以使用importvg来导入原有的VG信息,同时数据也都是有保障的。

在AIX操作系统中,绝对不能对于已有数据的EMC盘包括hdisk hdiskpower使用 chdev -l hdiskX -a pv=clear命令。绝对不能。为什么呢?接下来详细解释。

你对一块盘执行pv=clear后,物理硬盘头信息的pvid就会被清除,重新 pv=yes之后,生成,认到的就是一个全新的PVID,同时这个PVID是会直接写入到物理硬盘的头信息里。此时,悲剧来了,VGDA信息里依旧保留的是之前老的pvid信息,而AIX ODM与硬盘上记录的PVID已经是完全不一样一个新的PVID。操作系统就认为这块硬盘就是一块全新的硬盘,不存在于任何已知的VG中。同时你对原有的VG进行importvg varyonvg时候均会提示你VG信息不完整而报错。数据这时候就离丢不远了。

再次唠叨一下,绝对不能对于已有数据的EMC盘包括hdisk hdiskpower使用 chdev -l hdiskX -a pv=clear命令。绝对不能。

但是,如果出现这种情况,就是说,硬盘现有的pvid,AIX ODM记录的PVID信息与硬盘中记录的VGDA信息PVID不一致的时候,数据还有的救么?答案是:有的。

此时,你需要仔细核对EMC盘阵的物理信息,每一块emc的hdiskpower都是由若干个hdisk组成。但是相同物理设备的hdisk与hdiskpower都是有唯一的识别码,一个4位的16进制数,使用EMC的命令可以查看。通过这个数你可以确定他们物理关系。然后在原有的主机下得到原来的那个正确的pvid,然后使用如下方法将出错的pvid直接写回到硬盘的头信息里去,然后rmdev -Rdl hdiskpower,然后cfgmgr就可以恢复原有的PVID信息。下面要说的这个方法是直接修改硬盘头上记录的pvid信息,使用重认后,系统会自动更新pvid信息。同理,你也可以直接修改VGDA里面的pvid信息,但这将是一种将错就错的方法,个人认为风险较大。

具体方法如下:

1. 首先一定备份好VGDA信息和ODM信息:

(1) 备份VGDA信息:
   # dd if=/dev/hdiskpower9 of=/tmp/vgda/hdiskpower9.dd bs=1024 count=10000
   # readvgda /dev/hdiskpower9 > /tmp/vgda/readvgda.hdiskpower9
   # lqueryvg -Atp hdiskpower9 > /tmp/vgda/lqueryvg.hdiskpower9.out
   # lquerypv -h /dev/hdiskpower9 > /tmp/vgda/lquerypv.hdiskpower9.out
   # tar -cvf vgda.tar vgda
   # gzip vgda.tar
  
(2) 收集一份snap:
 # snap -gfLc

2. 用脚本修复pvid的方法:

(1) 将脚本chpvid,以bin方式上传到服务器.

(2) 给chpvid脚本加上可执行权限(-rwxr-xr-x):
 # chmod +x chpvid
 # ls -al | grep chpvid
  -rwxr-xr-x   1 root     system          330 Sep 30 16:59 chpvid

(3) 下面我们以hdiskpower9和testvg为例,您可以参考如下的步骤:

 hdiskpower9属于testvg,现在的pvid为3039333337323037,把它修复为005d25cf4ffeaf14.

 #script /tmp/chpvid.script (开启一个script,所有操作完毕,执行exit.只在一个session有效.)
     
 #lspv
  hdiskpower7          none                None
  hdiskpower8          none                None
  hdiskpower9          3039333337323037    None
  hdiskpower10         none                None
 
 #./chpvid 005d25cf4ffeaf14 hdiskpower9 (将hdiskpower9的pvid修复为005d25cf4ffeaf14)

然后使用rmdev -Rdl hdiskpower9,然后cfgmgr就可以恢复原有的PVID信息。至此原有的VG就可以正常importvg了。

这个分享查看VGDA信息命令

lqueryvg -Atp hdiskpower9 可以看到VGDA信息,这个信息是直接写在硬盘头信息里的。包含了这个硬盘所在的VG所有相关的盘的PVID信息。

这个命令的输出需要与lspv中的显示的PVID信息完全一致。

  • 上一篇:AIX tar命令详解
  • 下一篇:浅析磁盘阵列最大可用容量等内容
更新时间:2015-10-12 11:16:45

www.lzyglx.com 兰州阳光灵迅电子科技有限公司 电话:(86)0931-8265989

地址:甘肃省兰州市城关区科技街88号 邮箱:ygb@lzyglx.com 邮箱登陆