分类:
2006-05-05 17:33:11
title:存储管理(上、中)
time:13:13 2006-5-4
第一、物理卷相关命令
a.查看当前pv [对应菜单smit makdsk]
lspv//不带任何参数,如下可以看到3列数据,[PVNAME/PVID/WHAT VG?]
# lspv
hdisk0 0007f82fbf333702 rootvg
hdisk1 0007f82ff27eac8e datavg
pvname由系统分配,不需要修改,一般来说,系统也会给它识别出来的pv添加pvid,但是有时候会没有添加,使用chdev -l hdisk1 -a pv=yes修改,把这个硬盘变成系统的PV。
PS:添加硬盘系统识别的过程:系统开机时候会运行cfgmgr来识别硬件,如果可以识别就会把一个硬盘识别为系统的一个pv,并分配pvid,然后等待用户进一步操作,比如建立或加入vg,然后建立lv或者直接建立fs等操作就可以读写了。有2步是系统会尝试做的。1、识别硬盘。2、分配pvid。如果1步系统没有识别到,可以手动添加,命令:mkdev -c Disk -s Subclass -t Type -p ParentName
-w Locdationcode,如果2步未完成就使用则使用之前的命令。
b.修改pv的属性(仅仅2个属性可以修改分配权和使用状态)[对应菜单smit chpv]
chpv -c hdisk1 //清除hdisk1上的引导记录
chpv -v hdisk1 //激活hdisk1为可用状态
c.显示pv信息
c1.显示系统中所有pv lsdev -Cc disk//列标题[pvname,stats,LocationCode,type]
# lsdev -Cc disk
hdisk0 Available 10-80-00-0,0 Other SCSI Disk Drive
hdisk1 Available 10-80-00-1,0 Other SCSI Disk Drive
c2.显示某一个pv的详细属性 lspv pvname [会显示具体所有属性:pvName,vg,pvid,vgid...]
# lspv hdisk1
PHYSICAL VOLUME: hdisk1 VOLUME GROUP: datavg
PV IDENTIFIER: 0007f82ff27eac8e VG IDENTIFIER 0007f82ffb604093
PV STATE: active
STALE PARTITIONS: 0 ALLOCATABLE: yes
PP SIZE: 128 megabyte(s) LOGICAL VOLUMES: 5
TOTAL PPs: 68 (8704 megabytes) VG DESCRIPTORS: 2
FREE PPs: 10 (1280 megabytes)
USED PPs: 58 (7424 megabytes)
FREE DISTRIBUTION: 00..00..00..00..10
USED DISTRIBUTION: 14..14..13..13..04
C3.显示物理卷上分配的逻辑卷 lspv –l hdisk0
# lspv -l hdisk0
hdisk0:
LV NAME LPs PPs DISTRIBUTION MOUNT POINT
hd5 1 1 01..00..00..00..00 N/A
hd6 64 64 00..64..00..00..00 N/A
lv00 1 1 00..01..00..00..00 /testfs
hd8 1 1 00..00..01..00..00 N/A
hd4 1 1 00..00..01..00..00 /
hd2 19 19 00..00..19..00..00 /usr
hd9var 1 1 00..00..01..00..00 /var
hd3 1 1 00..00..01..00..00 /tmp
hd1 1 1 00..00..01..00..00 /home
test 5 5 00..00..00..03..02 N/A
可以看出来,这个pv上有给10个lv分配了空间,空间分配的PP、LP数量,分配的位置以及mount point这些信息。
PS:hd3在这个pv上分配到1个lp,并不是说hd3只要1个lp,它有可能在其他pv中还有空间,应该lv是可以跨pv的。
C4:显示物理卷上的物理分区的分布状态 lspv –p hdisk0
# lspv -p hdisk1
hdisk1:
PP RANGE STATE REGION LV NAME TYPE MOUNT POINT
1-12 used outer edge paging00 paging N/A
13-13 used outer edge lv01 jfs /home/ftpDir
14-14 used outer edge loglv00 jfslog N/A
15-28 used outer middle t2 jfs N/A
29-35 used center t2 jfs N/A
36-41 used center t3 jfs N/A
42-54 used inner middle t3 jfs N/A
55-58 used inner edge t3 jfs N/A
59-68 free inner edge
内容也是一目了然,pp range是指pp范围。
C5.显示物理分区以逻辑分区的对应情况lspv –M hdisk0 //列内容[pvname:pp lvname:lp]
# lspv -M hdisk1
hdisk1:1 paging00:1
hdisk1:2 paging00:2
.
.
hdisk1:13 lv01:1
hdisk1:14 loglv00:1
.
.
.
hdisk1:21 t2:7
hdisk1:22 t2:8
.
.
.
hdisk1:59-68
特别说明一下,上面标红的这行,没有任何pvname:lp信息,这表明59~68pp没有分配给任何lv,是free的。对应free,pv的free跟lv的free应该是有差别的,pv的free是没有分配的空间。类型于windows中的未划分的分区。而lv中的free的空间就是已经从pv申请而没有存放任何文件的空间。而pv的free肯定是不包括lv中的free空间的。说得比较多余了,想想2者的关系跟windows中未划分的空间等c:、d:中的空闲空间的关系是一样的,自然就明白了。
C6.删除pv。Rmdev –l hdisk1 –d
这个命令会删除ODM中的hdisk1 的记录,但是执行这个命令之前必须把其上面的pv等东西清空,否则肯定会报错如下。
# rmdev -l hdisk1 -d
Method error (/etc/methods/ucfgdevice):
0514-062 Cannot perform the requested function because the
specified device is busy.
C7. 迁移pv上的内容 Migratepv [-i][-l lvName] SourcePv DestPv
1.此命令必须的pv必须在同一个vg中,否则如下报错
# migratepv -l lv00 hdisk0 hdisk1
0516-806 migratepv: Destination physical volume hdisk1 belongs
to wrong volume group.
2.可以看出,如果需要把整个pv迁移到另外一个pv,那么不用-l的参数,如果需要迁移SourcePv 中某个lv那么就指定。这种情况下此命令作用类似cplv命令。(一个cut一个copy)。
3.如果vg被激活为并发访问模式,或者LV已经做的条带化,那么无法使用这个命令。
4.移动引导逻辑卷(hd5)比普通的lv会多一个重要过程。第一要清除SourcePv 的引导记录。否则可能导致系统挂起。对于这条内容,需要以后在学习。
5.如果需要移动的lv是一个基本dump设备,在移动过程中系统无法使用该dump设备,所以迁移过程中必须先使用sysdumpdev分配一个基本dump设备或定义一个次要dump设备。
第二、卷组相关命令
a.创建一个vg。Mkvg
基本要求:
1、 vg Name必须唯一。
2、 要确定vg包括那些pv。并且这些pv必须是可用的状态。
3、 确定行的vg的pp大小。可以是1~1024M。一个pv最多可以包含1016个pp。
4、 确定新vg在系统启动时是否自动被激活。
5、 确定vg最多可以容纳多少个pv。
例如:
#mkvg –y datavg –d 6 –s 8 hdisk2 hdisk2
-y 指定vgName,pvname可以为N个pv,这时候逐个列出并使用空格隔开即可。由于mkvg参数比较多,最好使用smit mkvg 菜单。
Add a Volume Group Type or select values in entry fields. Press Enter AFTER making all desired changes. [Entry Fields] VOLUME GROUP name [] Physical partition SIZE in megabytes 4 + * PHYSICAL VOLUME names [] + Activate volume group AUTOMATICALLY yes + at system restart? Volume Group MAJOR NUMBER [] +# Create VG Concurrent Capable? no + Auto-varyon in Concurrent Mode? no + F1=Help F2=Refresh F3=Cancel F4=List F5=Reset F6=Command F7=Edit F8=Image F9=Shell F10=Exit Enter=Do |
重点说明一下,Auto-varyon in Concurrent Mode?选项时自动激活到并发访问模式,如果使用了HACMP产品,必须Yes,并且此选项是仅仅针对HACMP产品,如果系统没有使用这个产品,那么这个选项是无效的。
Volume Group MAJOR NUMBER[]选项作用是选定主设备号,系统会自动分配,可以不用指定,并且主设备号主要也是用在HACMP和HANFS中。
b.显示vg信息
1、显示系统中所有vg:lsvg, //[vgName]
#lsvg:显示所有vg。
#lsvg -o :显示所有已经激活的vg。
2、显示vg的属性:lsvg vgname
# lsvg datavg VOLUME GROUP: datavg VG IDENTIFIER: 0007f82ffb604093 VG STATE: active PP SIZE: 128 megabyte(s) VG PERMISSION: read/write TOTAL PPs: 68 (8704 megabytes) MAX LVs: 256 FREE PPs: 10 (1280 megabytes) LVs: 5 USED PPs: 58 (7424 megabytes) OPEN LVs: 2 QUORUM: 2 TOTAL PVs: 1 VG DESCRIPTORS: 2 STALE PVs: 0 STALE PPs: 0 ACTIVE PVs: 1 AUTO ON: yes MAX PPs per PV: 1016 MAX PVs: 32 |
3、显示vg中的lv:lsvg -l vgname
# lsvg -l datavg datavg: LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT t2 jfs 21 21 1 closed/syncd N/A t3 jfs 23 23 1 closed/syncd N/A loglv00 jfslog 1 1 1 open/syncd N/A lv01 jfs 1 1 1 open/syncd /home/ftpDir paging00 paging 12 12 1 closed/syncd N/A |
上门2个命令中留意一下他们的一个类似字段,
VG STATE:[ active/Complete全部PV激活;active/partal部分pv激活,inactive非活动状态]
LV STATE:[open/syncd 打开和同步;close/syncd关闭和同步]
Open指fs正在使用lv或者lv已经安装到mount point上。
Close指fs没有正在使用lv或者lv没有安装到mount point上。
4、修改vg的属性:chvg
#chvg –a 是否自动激活 -u 解锁(AIX4之前的版本一个非正常介绍的LVM命令可能会锁定一个lv)-L (LTG大小)vgname
说明一下LTG,logical track group 是硬盘I/O的最大传输单位,默认是128K。使用这个选项可以调整硬盘最好的磁盘性能。查询系统支持最大的LTG可以使用lquereypv -M。返回是KB为单位的最大LTG大小。
为了确保vg的完整性,修改LTG时,必须保证varoff这个vg。
6、 设置vg的hot spare特性:chpv –hy vgname即可
不过这个命令是在5L之后才增加的。
C.向vg添加pv :extendvg datavg hdisk1
hdisk1必须是Available状态。另外如果hdisk1如果属于另外一个已经激活的vg,这个操作会失败,如果属于未激活的vg,那么系统会提示是否继续操作。
D.从VG中删除PV.
#reducevg datavg hdisk1
执行这个命令之前,必须使用rmlv删除hdisk1上的所有lv,或者使用-d 参数的reducevg命令。但是不得不说明一下,如果自动删除的lv属于不同的pv,使用-d参数时,那么就是导致这个lv 不完整。那样的后果的不可预见。
E.激活/停用一个卷组
1、激活 :varyonvg
激活的过程:读取这个卷组每个VGDA信息,读取每个VGDA的开始和结束时间戳,这些时间戳必须与有效的VGDA相匹配。如果大多数VGDA有效,那么就继续激活vg。激活之后系统获得最新的VGDA的时间戳,然后把这个时间戳回写到其他所有的VGDA中。使他们保持一致;当这个vg存在镜像,那么就会调用syncvg命令同步镜像。
此命令有2个重要的维护时候的参数;-f强制激活vg,-n禁止同步镜像。另外在维护模式下还有一个-s参数,可以使vg激活后可以接受lv管理命令而无法对lv进行读写。5L之后的版本增加-r只读命令参数。
2、停用:varyoffvg
执行此命令之前应该使得这个vg的所有lv处于关闭状态,同时还有卸载上面的fs。如果不使用此命令而直接卸载硬盘,会引起严重的问题,同时会丢失VGDA和某些vg中的数据。
F.导入导出卷组
导入卷组技术报卷组的定义信息导入到系统中,并保存在ODM中。让系统能够识别到这个vg。导出就是从ODM中删除卷组的定义信息。这个操作主要是在不同的RS6000之间移动硬盘时可以用。
1、 导出卷组 exportvg datavg
过程:先varyoff这个vg,如果这个vg包括已经正在使用的paging空间,那么应该swapoff关闭这个paging。另外swapoff这个命令在5L被支持,如果以前的版本,必须是#chps –a n pagingName。后重启系统。
2、 导入 importvg –y vgname pvname
这个操作是把这个pv的VGDA写入新系统的ODM中。读取过程是先读取VGDA数据,然后读取每个逻辑卷的LVCB,然后确定是否有JFS文件系统,如果有就添加相应的文件系统到/etc/filesystem中。同时在/etc和/dev中创建vg的设备文件。
G、卷组的同步syncvg
同步是指一个LV 的多份拷贝内容不一致的时候,可以通过同步这个Vg的操作。同步这些LV的拷贝内容。
H、重新定义卷组 redefinevg
此命令作用好像就是当VGDA和ODM数据不一致时,可以让ODM重新来识别一次。具体作用不太明白。好像等效于一个导出导入操作。
I、重新创建卷组
recreatevg
一个可以看到的例子是,当使用dd命令复制了整个硬盘,如果直接导入这个vg,就会导致这个vgid,lvid等等内容一致,而用recreatevg命令可以避免情况。
J、镜像vg mirrorvg同步一个卷组
这个命令其实是调用mklvcopy命令逐个完成所有lv的镜像。