免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1727 | 回复: 0
打印 上一主题 下一主题

[故障求助] 删除逻辑卷后如何恢复文件系统 [复制链接]

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-03-23 17:36 |只看该作者 |倒序浏览

                     
文件系统是在逻辑卷的基础上建立的,没有逻辑卷的话,就无法mount文件系统。
在删除逻辑卷的时候,rmlv删除的只是在ODM和VG里的PV上VGDA区域里的相关lv的信息,也就是被删除lv上第一个PP上的头512字节 LVCB信息。即三个地方的信息被删除
1,              ODM
2,              VGDA
3,              Lv上的lvcb信息
只要你在原来lv所分配的pp上mklv添加上lvcb信息,就可以重新mount文件系统,访问文件系统数据,因为rmlv并不删除lv上的用户数据。
以下是恢复过程:
1,  需要知道原来逻辑卷所使用的pp
2,fs未被删除,即superblock等存在于pp上
3,删除lv后,未对现有系统的卷组结构做过改动

使用lspv –p hdiskx查看原有lv所使用的逻辑卷
ibm150:[/]#lspv -p hdisk0
hdisk0:
PP RANGE  STATE  REGION     LV ID          TYPE       MOUNT POINT
1-109    free     outer edge
110-110   used     outer middle   loglv00           jfslog     N/A
111-210   used     outer middle   lv00              jfs        /oracle
211-217   used     outer middle   lv02              jfs        /sun
218-310   used     center        lv02             jfs        /sun
311-325   free     center
326-433   free     inner middle
434-542   free     inner edge

由上可知/sun 文件系统对应的是lv02逻辑卷,且pp分布于hdisk0的211-310上,共100个pp

ibm150:[/]#getlvcb -AT lv02
        AIX LVCB
        intrapolicy = m
        copies = 1
        interpolicy = x
        lvid = 000af70d00004c0000000106e3964781.3
        lvname = lv02
        label = /sun
        machine id = AF70D4C00
        number lps = 100
        relocatable = y
        strict = y
        stripe width = 0
        stripe size in exponent = 0
        type = jfs
        upperbound = 32
        fs = log=/dev/loglv00:options=rw:account=false
        time created  = Fri Oct 14 10:53:10 2005
        time modified = Fri Oct 14 14:03:52 2005

ibm150:[/]#lqueryvg -Atp datavg
Max LVs:        256
PP Size:        25
Free PPs:       341
LV count:       3
PV count:       1
Total VGDAs:    2
Conc Allowed    0
MAX PPs per     1016
MAX PVs:        32
Conc Autovar    0
Varied on Co    0
Logical:        000af70d00004c0000000106e3964781.1   loglv00 1
               000af70d00004c0000000106e3964781.2   lv00 1
               000af70d00004c0000000106e3964781.3   lv02 1
Physical:       000af70de396426b                2   0
Total PPs:      542
LTG size:       256
HOT SPARE:      0
AUTO SYNC:      0
VG PERMISSIO    0

ibm150:[/]#cd  sun
ibm150:[/sun]#ls
lost+found  sun
知道sun下有文件sun

现在删除逻辑卷lv02
ibm150:[/]#umount /sun
ibm150:[/]#rmlv -f lv02
rmlv: Logical volume lv02 is removed.


ibm150:[/]#mount /sun
mount: 0506-324 Cannot mount /dev/lv02 on /sun: A file or directory in the path
name does not exist.
ibm150:[/]#cd sun
ibm150:[/sun]#ls
ibm150:[/sun]#
可以看到不能访问文件系统sun,且sun下也没有我们想要的数据。

在重建逻辑卷的时候,我们需要pp的一个mapfile,这可以通过之前的lspv -p hdisk0得知,文件格式如下:
ibm150:[/]#more ppmap.txt
hdisk0:211-310
具体信息可man mklv

ibm150:[/]#mklv -y lv02 -m ppmap.txt datavg 100
lv02
ibm150:[/]#mount /sun    因/etc/filesystems中还有/sun这个表项,mount会读取该文件
ibm150:[/]#cd sun
ibm150:[/sun]#ls
lost+found  sun

可见文件系统恢复。
现在我们再来看看pp的分布

ibm150:[/]#getlvcb -AT lv02
        AIX LVCB
        intrapolicy = m
        copies = 1
        interpolicy = x
        lvid = 000af70d00004c0000000106e3964781.3
        lvname = lv02
        label = None
        machine id = AF70D4C00
        number lps = 100
        relocatable = y
        strict = y
        stripe width = 0
        stripe size in exponent = 0
        type = jfs
        upperbound = 32
        fs =
        time created  = Fri Oct 14 14:13:28 2005
        time modified = Fri Oct 14 14:13:28 2005

ibm150:[/]#lspv -p hdisk0
hdisk0:
PP RANGE  STATE   REGION        LV ID               TYPE       MOUNT POINT
1-109   free    outer edge
110-110   used    outer middle  loglv00             jfslog     N/A
111-210   used    outer middle  lv00                jfs        /oracle
211-217   used    outer middle  lv02                jfs        /sun
218-310   used    center        lv02                jfs        /sun
311-325   free    center
326-433   free    inner middle
434-542   free    inner edge

ibm150:[/]#lqueryvg -Atp datavg
Max LVs:        256
PP Size:        25
Free PPs:       341
LV count:       3
PV count:       1
Total VGDAs:    2
Conc Allowed    0
MAX PPs per     1016
MAX PVs:        32
Conc Autovar    0
Varied on Co    0
Logical:        000af70d00004c0000000106e3964781.1   loglv00 1
               000af70d00004c0000000106e3964781.2   lv00 1
               000af70d00004c0000000106e3964781.3   lv02 1
Physical:       000af70de396426b                2   0
Total PPs:      542
LTG size:       256
HOT SPARE:      0
AUTO SYNC:      0
VG PERMISSIO    0


我们再来看看如果把逻辑卷建在其他卷组上,是不是还能恢复?
ibm150:[/]#umount /sun
ibm150:[/]#rmlv -f lv02
rmlv: Logical volume lv02 is removed.
ibm150:[/]#mklv -y lv02 datavg 100    这里未指定pp的位置
lv02

ibm150:[/]#mount /sun
mount: 0506-324 Cannot mount /dev/lv02 on /sun: A system call received a paramet
er that is not valid.
结果无法mount 文件系统
ibm150:[/]#lspv -p hdisk0
hdisk0:
PP RANGE  STATE   REGION        LV ID               TYPE       MOUNT POINT
1-9     free    outer edge
10-109   used    outer edge    lv02                jfs        /sun
110-110   used    outer middle  loglv00             jfslog     N/A
111-210   used    outer middle  lv00                jfs        /oracle
211-217   free    outer middle
218-325   free    center
326-433   free    inner middle
434-542   free    inner edge

我们发现逻辑卷使用的pp位置发生改变了,虽然其他信息没有改变。


现在我们看看如果在原来lv使用的pp位置 重新建一个不一样的lv,注意确保lvid相同,但名字不同。   如果lvid不同呢???理论上效果是一样的,(但没有验证)。
ibm150:[/]#mklv -y lv03 -m ppmap.txt datavg 100
lv03
ibm150:[/]# mount /sun
mount: 0506-324 Cannot mount /dev/lv02 on /sun: A file or directory in the path
name does not exist.
ibm150:[/]#getlvcb -AT lv03
        AIX LVCB
        intrapolicy = m
        copies = 1
        interpolicy = x
        lvid = 000af70d00004c0000000106e3964781.3
        lvname = lv03
        label = None
        machine id = AF70D4C00
        number lps = 100
        relocatable = y
        strict = y
        stripe width = 0
        stripe size in exponent = 0
        type = jfs
        upperbound = 32
        fs =
        time created  = Fri Oct 14 14:30:25 2005
        time modified = Fri Oct 14 14:30:25 2005

还是不能mount,原因很简单,lv名改变了,导致与/etc/filesystems的dev名不一致,需要修改/etc/filesystems文件。


总结:
在删除逻辑卷以后,恢复文件系统需要注意两个地方
1,  重建的逻辑卷需要重建在之前使用的pp上
2, 逻辑卷名字不要擅自改动,如果改动的话,在新的逻辑卷建立以后,还必须修改/etc/filesystems文件中的dev名


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/16252/showart_89872.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP