- 招聘 : 系统集成
- 论坛徽章:
- 0
|
背景:一个关于数据丢失后的恢复问题,在LU中引起热烈的讨论,在相关的讨论帖中,qintl对LVM底层数据结构做了详细而精彩的演讲,受益匪浅。现将qintl主要讲稿内容整理如下,以便大家阅读。
相关讨论帖地址:
http://www.loveunix.com/viewthread.php?tid=76187&extra=page%3D5%26amp%3Bfilter%3Ddigest
http://www.loveunix.com/viewthread.php?tid=75851&highlight=%B6%AA%CA%A7
一个硬盘在AIX系统下系统保留区数据结构,AIX下的Block其实就是512Byte,编号从0开始,跟我们所说的扇区是一样的。以下是我机器上某块盘的信息
想了解更多的东西,请阅读:
http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp?topic=/com.ibm.aix.kernelext/doc/kernextc/logival_vol_subsys.htm
硬盘物理位置,用扇区标记(sec)
Readvgda结果(readvgda -s hdisk10)
0 sec(开始)
boot record
bad-block directory
LVM record(7 sec和70 sec)
Readvgda会调用LVM record中的数据
mirror write consistency (MWC) record
LVM record记录着lvmarea最基本的参数
127 sec(结束)
lvmid: 1598838349
vgid: 0037521400004c00000000dc6ffba362
lvmarea_len: 4212 --> (vgda_len + vgsa_len) * 2
vgda_len: 2098
vgda_psn[0]: 136
vgda_psn[1]: 2242
reloc_psn: 286749223
pv_num: 1
pp_size: 28
vgsa_len: 8
vgsa_psn[0]: 128
vgsa_psn[1]: 2234
version: 8
vg_type: -8739
图片是7sec的十六进制视图,可以通过十六进制转换成上面某些参数的十进制数值。
128 sec(开始)
VGSA数据区
135 sec(结束)
*****************************************
VGSA at block 128
*****************************************
*****************************************
vgsa beg: timestamp 946773107 (386e9c73), 314919315 (12c54993)
vgsa beg: timestamp Sat Jan 1 18:31:47 CST:2000
vgsa.pv_missing: 0
vgsa.stalepp[0]: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
vgsa.stalepp[1]: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
vgsa.stalepp[2]: ff 3f 0 ff ff ff ff ff 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
vgsa.factor: 1
vgsa.pad2: 0 0 0
vgsa end: timestamp 946773107 (386e9c73), 314919315 (12c54993)
vgsa end: timestamp Sat Jan 1 18:31:47 CST:2000
*****************************************
136 sec(开始)
VGDA数据区
LP/PP MAP
2233 sec(结束)
*****************************************
VGDA at block 136
*****************************************
*****************************************
vgh.vg_id: 0037521400004c00000000dc6ffba362
vgh.numlvs: 1
vgh.maxlvs: 256
vgh.pp_size: 28
vgh.numpvs: 3
vgh.total_vgdas: 3
vgh.vgda_size: 2098
vgh.quorum: 1
vgh.auto_varyon: 1
vgh.check_sum: 0
vgda hdr: timestamp 946773107 (386e9c73), 352680539 (15057a5b)
vgda hdr: timestamp Sat Jan 1 18:31:47 CST:2000
以上是从136扇区读取的
********** Logical Volume: datalv4 ***********
lve.lvname: 0
lve.maxsize: 512
lve.lv_state: 1
lve.mirror: 3
lve.mirror_policy: 2
lve.num_lps: 10
lve.permissions: 1
lve.bb_relocation: 1
lve.write_verify: 2
lve.mirwrt_consist: 1
lve.stripe_exp: 0
lve.striping_width: 0
lve.lv_avoid: 0
lve.child_minor_num: 0
********** Physical Volume: 1 ***********
pvh.pv_num: 1
pvh.pv_id: 003752146ff9501b
pvh.pp_count: 546
pvh.pv_state: 1
pvh.pvnum_vgdas: 1
pvh.psn_part1: 4352
* pv_num:pp_num:pp_state lv_name:lp_num:pp_copy_val:pv_fst_mir:part_fst_mir:p
v_snd_mir:part_snd_mir
* pv1:111:1 datalv4:1:1:3:15:2:4
* pv1:112:1 datalv4:2:1:3:16:2:5
* pv1:113:1 datalv4:3:1:3:17:2:6
* pv1:114:1 datalv4:4:1:3:18:2:7
* pv1:115:1 datalv4:5:1:3:19:2:8
* pv1:116:1 datalv4:6:1:3:20:2:9
* pv1:117:1 datalv4:7:1:3:21:2:10
* pv1:118:1 datalv4:8:1:3:22:2:11
* pv1:119:1 datalv4:9:1:3:23:2:12
* pv1:120:1 datalv4:10:1:3:24:2:13
第一个PV的Map表,MAP表的开头是某个PV的pvh.pv_id
********** Physical Volume: 2 ***********
pvh.pv_num: 2
pvh.pv_id: 003752146ff979f4
pvh.pp_count: 15
pvh.pv_state: 1
pvh.pvnum_vgdas: 1
pvh.psn_part1: 4352
* pv_num:pp_num:pp_state lv_name:lp_num:pp_copy_val:pv_fst_mir:part_fst_mir:p
v_snd_mir:part_snd_mir
* pv2: 4:1 datalv4:1:3:1:111:3:15
* pv2: 5:1 datalv4:2:3:1:112:3:16
* pv2: 6:1 datalv4:3:3:1:113:3:17
* pv2: 7:1 datalv4:4:3:1:114:3:18
* pv2: 8:1 datalv4:5:3:1:115:3:19
* pv2: 9:1 datalv4:6:3:1:116:3:20
* pv2: 10:1 datalv4:7:3:1:117:3:21
* pv2: 11:1 datalv4:8:3:1:118:3:22
* pv2: 12:1 datalv4:9:3:1:119:3:23
* pv2: 13:1 datalv4:10:3:1:120:3:24
********** Physical Volume: 3 ***********
pvh.pv_num: 3
pvh.pv_id: 003752146ff9a31b
pvh.pp_count: 67
pvh.pv_state: 1
pvh.pvnum_vgdas: 1
pvh.psn_part1: 4352
* pv_num:pp_num:pp_state lv_name:lp_num:pp_copy_val:pv_fst_mir:part_fst_mir:p
v_snd_mir:part_snd_mir
* pv3: 15:1 datalv4:1:2:1:111:2:4
* pv3: 16:1 datalv4:2:2:1:112:2:5
* pv3: 17:1 datalv4:3:2:1:113:2:6
* pv3: 18:1 datalv4:4:2:1:114:2:7
* pv3: 19:1 datalv4:5:2:1:115:2:8
* pv3: 20:1 datalv4:6:2:1:116:2:9
* pv3: 21:1 datalv4:7:2:1:117:2:10
* pv3: 22:1 datalv4:8:2:1:118:2:11
* pv3: 23:1 datalv4:9:2:1:119:2:12
* pv3: 24:1 datalv4:10:2:1:120:2:13
*****************************************
vgt.concurrency: 0
vgda trl: timestamp 946773107 (386e9c73), 352680539 (15057a5b)
vgda trl: timestamp Sat Jan 1 18:31:47 CST:2000
2234 sec(开始)
VGSA数据区(备份)
2241 sec(结束)
2242 sec(开始)
VGDA数据区(备份)
LP/PP MAP
4339 sec(结束)
4340 sec(开始)
4351 sec
4352 sec (物理硬盘第1PP开始)
LV开始
N sec(结束)(硬盘总扇区数)
硬盘的PVID
一个硬盘要被操作系统正常使用,必须先分配PVID,硬盘的PVID在以后加入某个VG、LV都是要用到的。
分配PVID的过程就像windows下的初始化硬盘操作,就是把硬盘0扇区改写成符合操作系统使用的格式,只改写0扇区,别的地方没有任何改变。
用lspv命令就可以知道哪些硬盘还没有分配PVID,用#chdev -l hdiskX -a pv=yes就可以给硬盘分配PVID,当一个硬盘在操作系统中已经有了PVID,#chdev -l hdiskX -a pv=yes命令不会改变原来的PVID。
如果要修改某块盘的PVID,我们要先清除掉原先的PVID,然后再生成,可以用以下命令:
#chdev -l hdiskX -a pv=clear
#chdev -l hdiskX -a pv=yes
chinadns的Blog有对PVID的详细介绍:
http://blog.chinaunix.net/u/16252/showart_94788.html
我们从底层观察chdev -l hdiskX -a pv=yes对硬盘0扇区的改动:
# lspv
hdisk0 003752149a0b2b91 rootvg
hdisk10 none None
hdisk11 003752146ff979f4 None
hdisk12 003752146ff9a31b None
hdisk10没有分配PVID,我们看看0扇区的十六进制代码:
# lquerypv -h /dev/hdisk10 0 200 (结果:第一列是序号,后4列是十六进制数据)
00000000 C9C2D4C1 00000000 00000000 00000000 |................|
00000010 00000000 00000000 00000000 00000000 |................|
00000020 00000000 00000000 00000000 00000000 |................|
00000030 00000000 00000000 00000000 00000000 |................|
00000040 00000000 00000000 00000000 00000000 |................|
00000050 00000000 00000000 00000000 00000000 |................|
00000060 00000000 00000000 00000000 00000000 |................|
00000070 00000000 00000000 00000000 00000000 |................|
00000080 00000000 00000000 00000000 00000000 |................|
00000090 00000000 00000000 00000000 00000000 |................|
000000A0 00000000 00000000 00000000 00000000 |................|
000000B0 00000000 00000000 00000000 00000000 |................|
000000C0 00000000 00000000 00000000 00000000 |................|
000000D0 00000000 00000000 00000000 00000000 |................|
000000E0 00000000 00000000 00000000 00000000 |................|
000000F0 00000000 00000000 00000000 00000000 |................|
00000100 00000000 00000000 00000000 00000000 |................|
00000110 00000000 00000000 00000000 00000000 |................|
00000120 00000000 00000000 00000000 00000000 |................|
00000130 00000000 00000000 00000000 00000000 |................|
00000140 00000000 00000000 00000000 00000000 |................|
00000150 00000000 00000000 00000000 00000000 |................|
00000160 00000000 00000000 00000000 00000000 |................|
00000170 00000000 00000000 00000000 00000000 |................|
00000180 00000000 00000000 00000000 00000000 |................|
00000190 00000000 00000000 00000000 00000000 |................|
000001A0 00000000 00000000 00000000 00000000 |................|
000001B0 00000000 00000000 00000000 00000000 |................|
000001C0 00000000 00000000 00000000 00000000 |................|
000001D0 00000000 00000000 00000000 00000000 |................|
000001E0 00000000 00000000 00000000 00000000 |................|
000001F0 00000000 00000000 00000000 00000000 |................|
# chdev -l hdisk10 -a pv=yes
hdisk10 changed
# lspv
hdisk0 003752149a0b2b91 rootvg
hdisk10 0037521474170251 None
hdisk11 003752146ff979f4 None
hdisk12 003752146ff9a31b None
# lquerypv -h /dev/hdisk10 0 200
00000000 C9C2D4C1 00000000 00000000 00000000 |................|
00000010 00000000 00000000 00000000 00000000 |................|
00000020 00000000 00000000 00000000 00000000 |................|
00000030 00000000 00000000 00000000 00000000 |................|
00000040 00000000 00000000 00000000 00000000 |................|
00000050 00000000 00000000 00000000 00000000 |................|
00000060 00000000 00000000 00000000 00000000 |................|
00000070 00000000 00000000 00000000 00000000 |................|
00000080 00375214 74170251 00000000 00000000 |.7R.t..Q........|
00000090 00000000 00000000 00000000 00000000 |................|
000000A0 00000000 00000000 00000000 00000000 |................|
000000B0 00000000 00000000 00000000 00000000 |................|
000000C0 00000000 00000000 00000000 00000000 |................|
000000D0 00000000 00000000 00000000 00000000 |................|
000000E0 00000000 00000000 00000000 00000000 |................|
000000F0 00000000 00000000 00000000 00000000 |................|
00000100 00000000 00000000 00000000 00000000 |................|
00000110 00000000 00000000 00000000 00000000 |................|
00000120 00000000 00000000 00000000 00000000 |................|
00000130 00000000 00000000 00000000 00000000 |................|
00000140 00000000 00000000 00000000 00000000 |................|
00000150 00000000 00000000 00000000 00000000 |................|
00000160 00000000 00000000 00000000 00000000 |................|
00000170 00000000 00000000 00000000 00000000 |................|
00000180 00000000 00000000 00000000 00000000 |................|
00000190 00000000 00000000 00000000 00000000 |................|
000001A0 00000000 00000000 00000000 00000000 |................|
000001B0 00000000 00000000 00000000 00000000 |................|
000001C0 00000000 00000000 00000000 00000000 |................|
000001D0 00000000 00000000 00000000 00000000 |................|
000001E0 00000000 00000000 00000000 00000000 |................|
000001F0 00000000 00000000 00000000 00000000 |................|
这样我们就知道chdev -l hdisk10 -a pv=yes更改了哪些数据了。
lquerypv -h /dev/hdisk10 0 200 这个命令行很有用,你可以查看硬盘中任何一个扇区的内容,后面两个参数的具体意思:
lquerypv -h /dev/hdisk10 0 200
0 -- 从硬盘哪个字节开始查看,是十六进制
200 -- 输出到屏幕上的字节数,十六进制,十六进制200转换成十进制,512,就是一个扇区的大小。
假如我们要查看128扇区数据,命令应该是:
lquerypv -h /dev/hdisk10 10000 200
10000怎么换算来的? 128*512=65536(十进制),转换成十六进制是10000,因为我们要看一个扇区的数据,后面的参数就是512字节,转换成十六进制就是200。
mkvg对硬盘的数据改动
我们来看一下操作
# lspv
hdisk0 003752149a0b2b91 rootvg
hdisk13 003752147454a336 None
hdisk14 003752147454c64c None
hdisk15 003752147454e7cd None
# mkvg -s 256 -y testvg hdisk13 hdisk14 hdisk15
# lspv
hdisk0 003752149a0b2b91 rootvg
hdisk13 003752147454a336 testvg
hdisk14 003752147454c64c testvg
hdisk15 003752147454e7cd testvg
***************************************************************************
# readvgda -s hdisk13
lvmid: 1598838349
vgid: 0037521400004c00000000dc74595c25
lvmarea_len: 4212
vgda_len: 2098
vgda_psn[0]: 136
vgda_psn[1]: 2242
reloc_psn: 286749223
pv_num: 1
pp_size: 28
vgsa_len: 8
vgsa_psn[0]: 128
vgsa_psn[1]: 2234
version: 8
vg_type: -8739
(这是LVM record,在硬盘前128个扇区,分别在7sec和70sec)
*=============== 1ST VGDA-VGSA: hdisk13 ===============*
*****************************************
VGSA at block 128
*****************************************
*****************************************
vgsa beg: timestamp 946844818 (386fb492), 357026209 (1547c9a1) --这个是时间戳,在128sec开头8个字节。
vgsa beg: timestamp Sun Jan 2 14:26:58 CST:2000
vgsa.pv_missing: 0
vgsa.stalepp[0]: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
vgsa.stalepp[1]: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
vgsa.stalepp[2]: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
vgsa.factor: 1
vgsa.pad2: 0 0 0
vgsa end: timestamp 946844818 (386fb492), 357026209 (1547c9a1)--这个是时间戳,在135sec结尾8个字节。
vgsa end: timestamp Sun Jan 2 14:26:58 CST:2000
(从LVM record知道,VGSA大小是8sec。mkvg时VGSA只写入时间戳)
*****************************************
VGDA at block 136
*****************************************
*****************************************
vgh.vg_id: 0037521400004c00000000dc74595c25
vgh.numlvs: 0
vgh.maxlvs: 256
vgh.pp_size: 28
vgh.numpvs: 3
vgh.total_vgdas: 3
vgh.vgda_size: 2098
vgh.quorum: 1
vgh.auto_varyon: 1
vgh.check_sum: 0
vgda hdr: timestamp 946844818 (386fb492), 402158211 (17f87283)
vgda hdr: timestamp Sun Jan 2 14:26:58 CST:2000
(这是真正的VGDA头部信息,在硬盘136sec)
********** Physical Volume: 1 ***********
pvh.pv_num: 1
pvh.pv_id: 003752147454a336
pvh.pp_count: 546
pvh.pv_state: 1
pvh.pvnum_vgdas: 1
pvh.psn_part1: 4352
(这是Physical Volume: 1的LP MAP表头部信息,在153sec)
********** Physical Volume: 2 ***********
pvh.pv_num: 2
pvh.pv_id: 003752147454c64c
pvh.pp_count: 15
pvh.pv_state: 1
pvh.pvnum_vgdas: 1
pvh.psn_part1: 4352
(这是Physical Volume: 2的LP MAP表头部信息,在188sec)
********** Physical Volume: 3 ***********
pvh.pv_num: 3
pvh.pv_id: 003752147454e7cd
pvh.pp_count: 67
pvh.pv_state: 1
pvh.pvnum_vgdas: 1
pvh.psn_part1: 4352
(这是Physical Volume: 3 的LP MAP表头部信息,在189sec)
*****************************************
vgt.concurrency: 0
vgda trl: timestamp 946844818 (386fb492), 402158211 (17f87283)
vgda trl: timestamp Sun Jan 2 14:26:58 CST:2000
*=============== 2ND VGDA-VGSA: hdisk13 ===============*
*****************************************
VGSA at block 2234
*****************************************
*****************************************
vgsa beg: timestamp 946844818 (386fb492), 357026209 (1547c9a1)
vgsa beg: timestamp Sun Jan 2 14:26:58 CST:2000
vgsa.pv_missing: 0
vgsa.stalepp[0]: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
vgsa.stalepp[1]: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
vgsa.stalepp[2]: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
vgsa.factor: 1
vgsa.pad2: 0 0 0
vgsa end: timestamp 946844818 (386fb492), 357026209 (1547c9a1)
vgsa end: timestamp Sun Jan 2 14:26:58 CST:2000
*****************************************
VGDA at block 2242
*****************************************
*****************************************
vgh.vg_id: 0037521400004c00000000dc74595c25
vgh.numlvs: 0
vgh.maxlvs: 256
vgh.pp_size: 28
vgh.numpvs: 3
vgh.total_vgdas: 3
vgh.vgda_size: 2098
vgh.quorum: 1
vgh.auto_varyon: 1
vgh.check_sum: 0
vgda hdr: timestamp 946844818 (386fb492), 402158211 (17f87283)
vgda hdr: timestamp Sun Jan 2 14:26:58 CST:2000
********** Physical Volume: 1 ***********
pvh.pv_num: 1
pvh.pv_id: 003752147454a336
pvh.pp_count: 546
pvh.pv_state: 1
pvh.pvnum_vgdas: 1
pvh.psn_part1: 4352
********** Physical Volume: 2 ***********
pvh.pv_num: 2
pvh.pv_id: 003752147454c64c
pvh.pp_count: 15
pvh.pv_state: 1
pvh.pvnum_vgdas: 1
pvh.psn_part1: 4352
********** Physical Volume: 3 ***********
pvh.pv_num: 3
pvh.pv_id: 003752147454e7cd
pvh.pp_count: 67
pvh.pv_state: 1
pvh.pvnum_vgdas: 1
pvh.psn_part1: 4352
*****************************************
vgt.concurrency: 0
vgda trl: timestamp 946844818 (386fb492), 402158211 (17f87283)
vgda trl: timestamp Sun Jan 2 14:26:58 CST:2000
从readvgda 得到的信息,当mkvg的时候,对硬盘的写操作范围是128sec+lvmarea_len: 4212sec,即4340个扇区
其中128sec以前的LVM record很重要,从128-4339扇区,可以说是原先的数据全部被破坏,相当于先全部清0每个扇区,然后写入vgsa、vgda信息。
重新mkvg过的的VG,原来每个硬盘的LP/PP MAP信息全部被破坏。
下面我们来看一下7sec十六进制数据(为了对比我把硬盘先每个字节都填上DD,然后才mkvg):
7sec
#lquerypv -h /dev/hdisk13 E00 200
00000E00 5F4C564D 00375214 00004C00 000000DC |_LVM.7R...L.....|
00000E10 74595C25 00001074 00000832 00000088 |tY\%...t...2....|
00000E20 000008C2 11177227 00000100 0001001C |......r'........|
00000E30 00000008 00000080 000008BA 0008DDDD |................|
00000E40 00000000 DDDDDDDD DDDDDDDD DDDDDDDD |................|
00000E50 DDDDDDDD DDDDDDDD DDDDDDDD DDDDDDDD |................|
00000E60 DDDDDDDD DDDDDDDD DDDDDDDD DDDDDDDD |................|
00000E70 DDDDDDDD DDDDDDDD DDDDDDDD DDDDDDDD |................|
00000E80 DDDDDDDD DDDDDDDD DDDDDDDD DDDDDDDD |................|
00000E90 DDDDDDDD DDDDDDDD DDDDDDDD DDDDDDDD |................|
00000EA0 DDDDDDDD DDDDDDDD DDDDDDDD DDDDDDDD |................|
00000EB0 DDDDDDDD DDDDDDDD DDDDDDDD DDDDDDDD |................|
00000EC0 DDDDDDDD DDDDDDDD DDDDDDDD DDDDDDDD |................|
00000ED0 DDDDDDDD DDDDDDDD DDDDDDDD DDDDDDDD |................|
00000EE0 DDDDDDDD DDDDDDDD DDDDDDDD DDDDDDDD |................|
00000EF0 DDDDDDDD DDDDDDDD DDDDDDDD DDDDDDDD |................|
00000F00 DDDDDDDD DDDDDDDD DDDDDDDD DDDDDDDD |................|
00000F10 DDDDDDDD DDDDDDDD DDDDDDDD DDDDDDDD |................|
00000F20 DDDDDDDD DDDDDDDD DDDDDDDD DDDDDDDD |................|
00000F30 DDDDDDDD DDDDDDDD DDDDDDDD DDDDDDDD |................|
00000F40 DDDDDDDD DDDDDDDD DDDDDDDD DDDDDDDD |................|
00000F50 DDDDDDDD DDDDDDDD DDDDDDDD DDDDDDDD |................|
00000F60 DDDDDDDD DDDDDDDD DDDDDDDD DDDDDDDD |................|
00000F70 DDDDDDDD DDDDDDDD DDDDDDDD DDDDDDDD |................|
00000F80 DDDDDDDD DDDDDDDD DDDDDDDD DDDDDDDD |................|
00000F90 DDDDDDDD DDDDDDDD DDDDDDDD DDDDDDDD |................|
00000FA0 DDDDDDDD DDDDDDDD DDDDDDDD DDDDDDDD |................|
00000FB0 DDDDDDDD DDDDDDDD DDDDDDDD DDDDDDDD |................|
00000FC0 DDDDDDDD DDDDDDDD DDDDDDDD DDDDDDDD |................|
00000FD0 DDDDDDDD DDDDDDDD DDDDDDDD DDDDDDDD |................|
00000FE0 DDDDDDDD DDDDDDDD DDDDDDDD DDDDDDDD |................|
00000FF0 DDDDDDDD DDDDDDDD DDDDDDDD DDDDDDDD |................|
对照:
lvmid: 1598838349
vgid: 0037521400004c00000000dc74595c25
lvmarea_len: 4212
vgda_len: 2098
vgda_psn[0]: 136
vgda_psn[1]: 2242
reloc_psn: 286749223
pv_num: 1
pp_size: 28
vgsa_len: 8
vgsa_psn[0]: 128
vgsa_psn[1]: 2234
version: 8
vg_type: -8739
如果熟悉了这种对照方式,哪些地方出错还可以重新填写构造出来。
以上是VG创建过程中的一些数据改动细节,让我们知道其实mkvg不会造成用户数据区的丢失,只是改动硬盘系统保留区的数据。
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/23610/showart_443562.html |
|