文件系统是在逻辑卷的基础上建立的,没有逻辑卷的话,就无法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名