天地不仁,以万物为刍狗!

AIX常用操作汇总(四)

上一篇 / 下一篇  2008-03-08 10:43:27 / 个人分类:UNIX/LINUX

LVM的结构信息

   该笔记中要用到以下缩写:ITPUB个人空间`R(n;\(\zG#m*_
    1. VGITPUB个人空间+K5~7X6L9K fj3ou
        Volume Group
6b.Sn"@0x&p+U)~+z.{~0    2.LV
Dda_CK0        Logical Volume
n-}'Q S-d{0    3. PV
h.MT-E hF;kUd\0        Physical VolumeITPUB个人空间!Yz)^_3M5{?| Su
    4. PVG
s/N-uW|"nQCU0        Physical Volume Group
2r`z+qH*IAF0    5. PEITPUB个人空间4LwO2_Z3t4ET
        Physical ExtentITPUB个人空间ibK,V3m-? p:_:k(C
    6. LE
4Y3G8x Y A0        Logical ExtentITPUB个人空间pi j ge)~+|
    7. FS
@wV(re+I0        File System
HO L!H-`#l4a0    8. VGRAITPUB个人空间| e{ip/~
        Volume Group Reserved Area
0s*VVVN;}O,f`0    9. VGDA
:Oc"{3xf^A0        Volume Group Descriptor AreaITPUB个人空间.W$`4k,J!~/U Y/b
    10. VGSA
8m$Ls}t;L7z0        Volume Group Status Area
i#z/fkE%vr0    11. MCR
8NS3u&n.N%f:ca0        Mirror Consistency RecordITPUB个人空间c,p J1q)v6\,c:L*i
    12. PVRAITPUB个人空间5^0M3Y+w c [4[_
        Physical Volume Reserved Area
;cj$ch0K+F R0    13. BDRA
O:r3QY[RQ0        Boot Data Reserved Area
_R*[j;m5Ph%Rb0   ITPUB个人空间.x#B/k\.u
    LVM
结构信息
1p5m:grl8@l0    LVM
的结构信息存在于每块LVM硬盘开头的保留区域中(PVRAVGRA),这块区域被叫做LVM表头(LVM header)。下面的图显示了LVM盘的结构:
X6~ G"h*C%[7LG0    1.
非启动盘
(I9W%v |;Y.wjz0        |------------------|
C,V f I.sW7g)]0        |       PVRA       |
P-|dQ~ v(n0        |------------------|ITPUB个人空间Ys)H hxl[
        |       VGRA       |
D5s!a B e\Qb0        |------------------|
4K*UA'?P6S+v0        |                  |
ZQ?Zm0        |                  |ITPUB个人空间 j*q2u JJ| F[
        |                  |
-x+Ed%zN*z8e0        |     User Data    |ITPUB个人空间7G'Iu'M*F%Q!L/s
        |                  |
&Yee;?%Y cbUn0        |                  |
f0H:j1R/E-`0        |                  |ITPUB个人空间%c2UN^!g tWyg
        |------------------|ITPUB个人空间1JZ s;b)^S @
        |  Bad block pool  |
~fBee0        |------------------|ITPUB个人空间f*pn.{~E OAF,[
    2.
启动盘
q4QdH(H g$e-N2A0        |------------------|-----
ewp-HEax0        |    LIF header    |     \ITPUB个人空间Q&Z,u dNA.] J
        |------------------|      \
9i eCGr8W f!k0        |       PVRA       |       \ITPUB个人空间OX's+^1Vzh!}+d|
        |------------------|        \ITPUB个人空间7V-VD%AU!h
        |       BDRA       |         |-->2912KITPUB个人空间 L |9w$O\Ne
        |------------------|        /ITPUB个人空间/TF Rv/L-s(x i
        |    LIF volume    |       /ITPUB个人空间 yJ!|"?d#\#gQ
        |------------------|      /
/h$M8U O.J(t~ X4m M4{0        |       VGRA       |     /ITPUB个人空间1iH _;R/^ `+R\6s U
        |------------------|-----
4@4n U)VD]0F7r0        |                  |
R Wlq5pE0        |                  |
NNs6vz0        |                  |
3M1Qp1Apw&\-uc^P0        |     User Data    |
q!w R5Z4P6ne0        |                  |ITPUB个人空间x4\0Z%iR;mN2h
        |                  |
&?%I+h(P XAL0        |                  |ITPUB个人空间]5E.E y:` s]m Q)JW
        |------------------|ITPUB个人空间Ba/Aa9{1q
        |  Bad block pool  |
(|&\/[7` @]$Rx&yu0        |------------------|ITPUB个人空间?:Nw^y&n
   
注意:ITPUB个人空间$s,wl%qH$X(`k
        a.
启动盘的LVM表头(LVM header)总是2912KB,而对于非启动盘来说,LVM header的大小是不固定的。它取决于VG的配置参数PVs/VG-p max_pv),PEs/PV-e max_pe)和LVs/VG-l max_lv),但是一般来说,非启动盘的LVM header的大小总是比启动盘的要小一些。而且,VGVGRA一定不能大于一个单独的块的大小。
e"^JKRf/gg[U0        b.
安腾(Itanium systems)系统(UX11.2011.2211.23)在硬盘的开头区域有一个100MBEFI区域。这部分的详细资料可以参考安腾系统的相关章节。

    PVRABDRAVGRAITPUB个人空间*Dueo8Ef'L.B
    1. PVRA
?4g!D}7k0   
VG中的每个PV来说,PVRA是唯一的,它包括:

%dL0y|y v0        <1>LVMREC
PV-IDVG-IDVGPV的数量,PE的大小来描述PVVGRABDRA(如果有),BBDIRUser DataBad Block Pool的开始点和空间大小;如果配置了ServiceGuard Cluster的话,还包括Cluster IDCluster Lock Area的相关信息。ITPUB个人空间*LL2BErd
        <2>BBDIR
Bad Block Directory,用来维护Bad Block Pool的信息)ITPUB个人空间 Ks g(VD^7Y+P%`f
    2. BDRA
(使用pvcreate -B命令的时候才会产生)包含了启动的相关信息,例如:
$gp2W3pq9dr2z.p6{}:V0        <1>
启动VG中的PVs信息
]&ve:R&zm0        <2>Boot/Swap/Root LVs
major/minor numbers,等等)的信息
p$i fuR"Y0    3.
对同一VG当中的任何PV来说,VGRA都是相同的,它包括:ITPUB个人空间y8g3f6cE#TH
        <1>VGDA
用下列信息来描述VGITPUB个人空间r{6ycW
            a. VG-ID
,限定max_lvmax_pvmax_peITPUB个人空间u/|&t7wzf!M"Re
            b.
每个LV的信息:LV flagssizeschedule strategynumber of mirrorsstripesstripe size,等等

N&A&z6gE0            c.
每个PV的信息:PV-IDPV sizePV flagsExtent mapping,等等
b@ r.w*Ps2Y+?0        <2>VGSA
包含了丢失的PVs的信息(missing PVs)和stale extents的信息
(^l1~'{J,ojl:f:?0        <3>MCRs
是用来处理Mirror Write Cache handling

    LIF表头(LIF Header)和LIF卷(LIF VolumeITPUB个人空间qs I7~$fR%v!J
    LIF
Logical Interchange Format的缩写。对每块启动盘来说,LIF表头(LIF header)占据了硬盘最开头的8KB的空间。它包含了位于BDRA之后的LIF卷(LIF volume)的目录。可以用lifls1M)命令来显示:
Z"C_T @R0    #lifls -l /dev/rdsk/c1t6d0ITPUB个人空间,t+tCelq
    volume ISL10 data size 7984 directory size 8
] UPQ?yz@0    filename type start size implement created
N4}5L1l)v#c+I)t0    ===============================================================
.UR^oap1WM)f0    ISL  -12800 584 306 0  00/11/08 20:49:59ITPUB个人空间 `8l\#G7R._s's
    AUTO -12289 896 1 0  00/11/08 20:49:59ITPUB个人空间Xm,eY)D+j+m
    HPUX -12928 904 848 0  00/11/08 20:50:00
v'U,nc7x&~LV!B0    PAD  -12290 1752 1580 0  00/11/08 20:50:00ITPUB个人空间!luD Kh }
    LABEL BIN 3336 8 0  99/10/08 02:48:02ITPUB个人空间,\7eXPTx%y$zUW"uH1h
    LIF
卷(LIF volume)包含了启动所需要的文件:ISLHPUXLABELAUTO(给自动引导用的)。可以查看引导的相关章节来获得LIF文件的详细描述。

    PV-IDVG-IDITPUB个人空间/n,W-HpO,@!`;TB
   
任何PV都有唯一的8位(byte)长的标识,这就是PV-IDVG-ID对属于该VGPV来说,也是唯一的,而且也是8位长。它们都保存在PVRA当中。可以用lvm命令来显示完整的LVM header
ITPUB个人空间 q+VKGq:yp p#K
    #lvm -p -d /dev/rdsk/c1t2d0 | more
]^0q$Q:WR0    ......
#v0W%C qF0    ......ITPUB个人空间$u.TdcPQks
    /* The physical volume ID. */ 2000252410 965817345
o*_:Eawo*H ?.e0    i.e. pvcreate(1m) was run on CPU with ID 2000252410 at Wed Aug 9ITPUB个人空间y}%G o wDE
    12:35:45 2000ITPUB个人空间%tnH;o0hy`9w
    /* The volume group ID. */ 2000252410 965817462ITPUB个人空间Zh9G1@[cKB r
    i.e. vgcreate(1m) was run on CPU with ID 2000252410 at Wed Aug 9ITPUB个人空间+U jI~:u` N
    12:37:42 2000ITPUB个人空间Nc,[(d7h
    ......
m]:AE0HZ"ncR0   
如果lvm命令在某个HP-UX版本中不能使用的话,还可以使用任何HP-UX系统都能够使用的命令来读取PV-IDVG-IDITPUB个人空间Z:UmT*L e J2k
    1.
使用xd(1)命令来获取PV-ID
VG-ID
8jcie J4J;q0        #xd -j8200 -N16 -tu /dev/rdsk/c1t2d0
t"ONa4Q0        0000000 2000252410 965817345 2000252410 965817462
f$[~,Jk0         PV CPU-ID PV timestamp VG CPU-ID VG timestamITPUB个人空间 Ly}!^\!lE{
       
从以上信息可以知道如下的信息:

)Yf'M Bq8A2q{~mi!fv0        <1>pvcreate
vgcreate运行在systemIDuname -i)为2000252410的系统上
e6sQ8Lx0        <2>pvcreate
执行的时间戳(timestamp)是965817345seconds after Jan 1st 1970 0:00 UTC
E:~)G.h C0        <3>vgcreate
执行的时间戳(timestamp)是965817462117 seconds laterITPUB个人空间:o!mZ&I|pl
    2.
使用adb(1)命令来获取PV-IDVG-IDITPUB个人空间W3~a.I2N:^ D-wv
        <1>
获取
PV-ID
XL7C"~'IA [@.h {[0            #echo "0d8200?UY" | adb /dev/dsk/c1t2d0ITPUB个人空间Lm]C? o(A;`(q"w
            2008: 2000252410 2000 Aug  9 12:35:45ITPUB个人空间YU J5T!lX l(\)|
        <2>
获取
VG-ID
)m*]'s#\{SF%O#H0            #echo "0d8208?UY" | adb /dev/dsk/c1t2d0
` J|N0Vla;e0            2010: 2000252410 2000 Aug  9 12:37:42

    vgcfgbackup(1M)
(Mi!J?5pn/]lO0    LVM
表头(LVM header)有一份备份存放在文件系统当中(/etc/lvmconf/*.conf)。任何对LVM结构的改动,例如通过LVM命令lvcreatelvchangevgextend等等,都会自动调用vgcfgbackup(1M)命令来保存一次。
ITPUB个人空间s&M#zR3rs1G7LM;o
   
你也可以在任何时候运行vgcfgbackup(1M)命令来手工保存:
-m!o#K7Dl#v3h;J @[ [v0        #vgcfgbackup vgXY
*_/C}/om1{A!P\/@w&j0        Volume Group configuration for /dev/vgXY has been saved in /etc/lvmconf/vgXY.conf
:l$S(]8fa \{.s0   
保存的文件内容是二进制(binary)的,不过也可以使用vgcfgbackup-l选项来显示VG中所包含的硬盘的:ITPUB个人空间8ypD6h;v2Z
        #vgcfgbackup -l -n vgXYITPUB个人空间f#ug @'z.sv
        Volume Group Configuration information in "/etc/lvmconf/vgXY.conf"ITPUB个人空间i2t7G q4B6s
        VG Name /dev/vgXYITPUB个人空间 A9Dy/za#F
        ---- Physical volumes : 1 ----
.~x3a4|'J+YJ b5J)ZlD0            /dev/rdsk/c1t6d0 (Bootable)ITPUB个人空间U M!U"zB+m`5u"t
   
如果LVM header被误写了,或者崩溃了,就可以通过vgcfgrestore命令来恢复该信息。
|6?:]HHAoM9O0   
通常,当一个硬盘坏了以后,可以通过vgcfgrestore命令来将备份的信息回写到新的硬盘:
;pPG9@N A$O+^ @0        #vgcfgrestore -n vgXY /dev/rdsk/c1t6d0ITPUB个人空间r p;B$O:?SM!o
        Volume Group configuration has been restored to /dev/rdsk/c1t6d0ITPUB个人空间F1v9}KR tW,ke
   
注意:
I{b S5DN0        a.
如果你修改了LVM的配置,而又不想备份文件被更新的话,可以使用LVM的相关命令接上"-A n"的参数。不管怎么样,先前的配置可以在/etc/lvmconf/*.conf.old找到
N4ee-lX'o }7h.x#~0        b. vgcfgrestore
不会恢复LIF卷(LIF volume),这要通过mkboot命令来恢复

    /etc/lvmtabvgscan(1M)
0Pcme q(BT0    /etc/lvmtab
文件包含了所有使用的VGs和它们所包含的PVs的信息。它主要在使用vgchange(1M)来激活VG的使用使用。lvmtab是一个二进制(binary)的文件,不过可以使用strings(1M)命令来显示其中的内容:
ITPUB个人空间9a-k4LUvx']!}
        #strings /etc/lvmtab
]5?q2e'i9iI/w0        /dev/vg00
] VkK&Qg[i0        /dev/dsk/c2t0d0
b t+Kl Fbo0        /dev/vgsapITPUB个人空间W1j:|[.}@6jG
        /dev/dsk/c4t0d0
#NmS7h@9b[F!Z0        /dev/dsk/c5t0d0
x;G{T/xa0        /dev/dsk/c4t1d0
z:~K3^i^_0        /dev/dsk/c5t1d0ITPUB个人空间:KX^:?J9p"y+T'qI h
        /dev/vg01ITPUB个人空间f,K!t%?;kfwR
        /dev/dsk/c6t0d0ITPUB个人空间 c U[V j0g.W
      
注意:这仅仅是lvmtab文件的可见部分。它也包含了VG-IDs,所有的VGs,每个VG中的PVs数量和状态信息。额外的被strings命令打印出来的奇怪字符都可以被认为是不重要的而忽略它们。
3o(M5Db(u ]&gQ0  
所有在lvmtab当中的VGs会在系统启动的时候被自动激活。其中的脚本是/sbin/lvmrc,相关的配置文件是/etc/lvmrc
V!\_(Rn!^ F6D0  
如果你觉得lvmtab的信息已经不可靠了,那么你可以很简单的使用vgscan(1M)命令来重新生成该文件。不过需要提醒的是,在这么做之前,最好先备份一下该文件:
U|9`yH1Q wr'j0       #cp /etc/lvmtab /etc/lvmtab.20060226
8AE(A9y2nh/C:P_3U0       #vgscan -v
!]ID @e\;N0      
所有的警告信息你都可以忽略。
k-Y4j2~&O1ow0      
注意:ITPUB个人空间vC M;g5N?1H8w!]
           a.
如果你不删除lvmtab而直接使用vgscan来创建一个新的lvmtab文件,那么是否成功就要取决于文件的内容。当然,你也可以删除lvmtab文件以后使用vgscan命令重新生成一个,不过这个时候需要注意的是,此时没有激活的VG是不会包含在新的文件当中的ITPUB个人空间~;q D8I`0C3|V
           b.
在配置了ServiceGuard的系统中,vgscan可能会失败。那么可以安装相关的patch来解决该问题。或者,很简单的,在使用vgscan命令之前先删除/dev/slvmvg文件
(moB8bL3xg'cy7[Q0           c.
当系统正在使用数据复制类的产品,比如BusinessCopy/XPContinousAccess/XPEMC SRDF或者EMC Timefinder的时候,vgscan可能会在VGs中加一些非预想中的PVs
$W/ZR&~.O~"x:G3y4W0           d. vgscan
不会注意可选路径(alternate links),它很可能会切换路径(可以参考“PV Links”的相关章)

 


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-07-09  
  12345
6789101112
13141516171819
20212223242526
2728293031  

数据统计

  • 访问量: 4077
  • 日志数: 259
  • 文件数: 2
  • 建立时间: 2007-12-01
  • 更新时间: 2008-07-03

RSS订阅

Open Toolbar