AIX 5L 系统管理技术 —— 存储管理——卷组
卷组
在安装系统时,就会创建一个rootvg卷组。包含自带硬盘(内置硬盘)和系统逻辑卷,一个系统只能有一个rootvg卷组。一般情况下rootvg卷组最好只包含自带硬盘。
一、创建卷组
在创建卷组之前,系统管理员必须知道如下所列的信息。
(1)卷组的名字在系统中必须是唯一的。卷组名要求时一个字符串,长度时1至15字符。
(2)要确定新卷组中包含哪些物理卷,并保证这些物理卷再系统中是可用状态,而且没有被其他卷组使用。要能知道这些物理卷的名称。
(3)确定新卷组中的物理分区大小,它的范围时1到1024MB。一个物理卷最多能包含1016个物理分区,因此一个卷组中如果包含一个大于4.5G的物理卷,则这个卷组中物理分区的大小必须大于4MB。
(4)新创建的卷组再系统启动时是否自动被激活。
(5)要确定新卷组中最多能够容纳多少个物理卷。
这些信息再创建新卷组时是必需的,而且它们也将是新卷组的属性,因此,在创建卷组之前,确定这些信息是非常重要的。
例:添加一个新卷组datavg,是专用于存放数据的卷组,包含的物理卷由hdisk6、7、8,该卷组中的物理分区大小为8MB,要求该卷组中最多由6个物理卷,并且在系统启动时自动激活新卷组。
#mkvg -y datavg -d 6 -s 8 hdisk6 hdisk7 hdisk8
在AIX 5L Version5.1中,mkvg命令能够自动确定恰当的PP大小。在使用mkvg命令时,如果没有使用-s参数指定PP大小,mkvg命令就会根据卷组所使用的磁盘计算出一个恰当的PP大小。
在AIX 5L Version5.2中,mkvg命令增加了一个-B 参数,它的作用是创建大卷组(BigVG),默认情况下mkvg命令创建的卷组最多能够容纳255个逻辑卷和32个物理卷,如果使用了这个参数,可达到512个逻辑卷和128个物理卷。
注意:用-B 参数创建的大卷组不能导入到AIX Version 4.3.1或更低版本的系统中。
或者使用SMIT工具创建卷组,SMIT快捷路径如下:
#smit mkvg
"VOLUME GROUP name"栏目输入要创建的新卷组名,在“Physical partition SIZE in megabytes"栏目选择要创建卷组的PP大小,在”PHYSICAL VOLUME names“栏目中选择或输入该卷组所包含的物理卷名,若有多个物理卷,各个物理卷名之间用空格隔开。
在”Activate volume group AUTOMATICALLY at system restart?“栏目中指出在系统启动时是否自动激活这个卷组。如果不经常用,不要在系统启动时自动激活,因为激活状态的卷组会占用系统的资源。
在”Volume Group MAJOR NUMBER"栏目中指定卷组的主设备号。如果不指定主设备号,系统会自动分配一个主设备号。系统内核通过设备的主设备号和副设备号来访问设备,同样,系统也通过卷组的主设备号和副设备号来访问卷组,按F4键或Esc+4键列出可用的主设备号。主设备号主要用于HANFS(高可用性网络文件系统)和HACMP(高可用性集群管理系统)中。
如果要创建一个具有并发能力的卷组,就把“Create VG Concurrent Capable”栏目中的值设置为yes(相当于在mkvg命令时指定了-c 参数),否则设置为no(no是默认值)。只有在系统中使用了HACMP或HACMP ES产品,才能创建一个具有并发能力的卷组。如果在系统中没有使用HACMP产品,并发访问能力对卷组也没有任何影响。此外,只有在Seriak DASD和SSA磁盘建立一个具有并发能力的卷组,增强并发能力的卷组可以在任何类型的磁盘上创建。要创建增强并发能力的卷组,用mkvg命令时指定-C 参数。
如果系统中使用了HACMP产品,在系统启动时需要自动激活该卷组到并发访问模式,就在“Auto-varyon in Concurrent Mode?"栏中选择yes,否则,该项只对使用HACMP产品的系统才有意义。为了在系统启动时使卷组自动varyon到并发模式下,需要在/etc/inittab文件中添加下面一条记录(应添加在启动srcmstr的记录之后)。
rc_clvmv:2:wait:/usr/sbin/clvm_cfg 2>&1
在”LTG Size in Kbytes"栏中指出LTG的大小,默认值时128KB。
用SMIT工具创建CG时,它调用mkvg命令,只是在命令中使用-f 参数强制性创建一个卷组,而不是使用-d 参数来确定卷组中最大的PV数,VG中最大的PV数默认时32个;而且也步使用-m 参数指定PV的最大容量,-m 参数决定一个PV上有多少个PP,如果没有使用-m 参数,则认为时1016个PP。
在用mkvg命令添加一个新VG时,必须保证根文件系统(/)最少有1~2MB的空闲空间。根文件系统大小可以用df命令来检查。因为在添加新VG时,要在/etc/vg目录中写一个文件,如果根文件系统空间不够,则mkvg空间不够,则命令就会失败,所以应该保证/etc/vg目录有大于2MB的空间,可以删除一些无用文件释放空间。
二、显示卷组的信息
1.显示系统中的卷组的卷组名
不带任何参数的lsvg命令显示系统中所有的卷组的卷组名,命令如下:
#lsvg
newhbvg
rootvg
使用-o 参数显示当前系统中处于激活状态的卷组的卷组名,命令如下:
#lsvg -o
rootvg
2.显示卷组的属性
例:显示rootvg卷组的详细信息及状态
#lsvg rootvg VOLUME GROUP: rootvg VG IDENTIFIER: 00c55d2200004c000000012649e24f51 VG STATE: active PP SIZE: 256 megabyte(s) VG PERMISSION: read/write TOTAL PPs: 1092 (279552 megabytes) MAX LVs: 256 FREE PPs: 402 (102912 megabytes) LVs: 13 USED PPs: 690 (176640 megabytes) OPEN LVs: 12 QUORUM: 1 (Disabled) TOTAL PVs: 2 VG DESCRIPTORS: 3 STALE PVs: 0 STALE PPs: 0 ACTIVE PVs: 2 AUTO ON: yes MAX PPs per VG: 32512 MAX PPs per PV: 1016 MAX PVs: 32 LTG size (Dynamic): 256 kilobyte(s) AUTO SYNC: no HOT SPARE: no BB POLICY: relocatable
各项目的含义如表所示
项目 | 含义 |
VOLUME GROUP | 指卷组的名字 |
VG STATE |
卷组的状态,也就是卷组是否被激活。可能的值有:
|
VG PERMISSION | 指卷组的访问权限,可以时只读权限,也可以同时具有读写权限 |
MAX LVs | 指在这个卷组中能够创建逻辑卷的最大个数,一般是256个 |
LVs | 指在这个卷组中已经存在的逻辑卷个数 |
OPEN LVs | 指在这个卷组中有多少个逻辑卷当前时打开的,可以进行逻辑I/O操作 |
TOTAL PVs | 指这个卷组中物理卷的总数 |
STALE PVs | 指在这个卷组中有多少个陈旧的物理卷,即逻辑卷镜像中未同步的物理卷数 |
ACTIVE PVs | 指在这个卷组中有多少个物理卷处于活动状态 |
MAX PPs per VG | 指每个卷组中允许包含的最大物理分区数 |
MAX PPs per PV | 指每个物理卷中允许包含的最大物理分区数 |
LTG size (Dynamic) | 指LTG(逻辑记录组)的大小 |
HOT SPARE | 指是否支持热备用 |
VG IDENTIFIER |
指卷组的标识符,卷组的标识符在系统范围内时唯一的,它时由字母和数字组成; 在AIX 5L之前的版本中卷组的标识符只有16位,在AIX 5L中增加到32位 |
PP SIZE | 指这个卷组中物理分区的大小,单位是MB,在创建卷组已指定 |
TOTAL PPs | 指这个卷组中物理分区的总数 |
FREE PPs | 在这个卷组中有多少个物理分区还没分配,是空闲的 |
USED PPs | 在这个卷组中有多少个物理分区已经分配了 |
QUORUM | 指卷组的磁盘Quorum数 |
VG DESCRIPTORS | 指卷组中的VGDA数 |
STALE PPs | 指卷组中有多少个陈旧的物理分区 |
AUTO ON | 指在系统启动时,是否自动激活该卷组 |
MAX PVs | 指这个卷组中允许包含的最大物理分区数 |
BB POLICY | 坏块的状态? |
注意:LTG size,AUTO SYNC和HOT SPARE这3个选项时AIX 5L中新增的。
3.显示卷组中的逻辑卷
使用-l 参数的lsvg命令可以显示一个卷组中所有的逻辑卷的信息,包含逻辑卷的名称、类型、逻辑分区和物理分区的比例,逻辑卷所在的物理卷、逻辑卷的状态和文件系统的安装点。
例:显示rootvg卷组的逻辑卷信息如下:
#lsvg -l rootvg rootvg: LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT hd5 boot 1 2 2 closed/syncd N/A hd6 paging 24 48 2 open/syncd N/A hd8 jfs2log 1 2 2 open/syncd N/A hd4 jfs2 2 4 2 open/syncd / hd2 jfs2 12 24 2 open/syncd /usr hd9var jfs2 8 16 2 open/syncd /var hd3 jfs2 8 16 2 open/syncd /tmp hd1 jfs2 2 4 2 open/syncd /home hd10opt jfs2 3 6 2 open/syncd /opt hd11admin jfs2 1 2 2 open/syncd /admin lg_dumplv sysdump 4 4 1 open/syncd N/A livedump jfs2 1 2 2 open/syncd /var/adm/ras/livedump app_lv jfs2 280 560 2 open/syncd /app
各列的含义如表所示。
列标题 | 含义 |
LV NAME | 显示逻辑卷的名称 |
TYPE | 显示逻辑卷的类型,逻辑卷类型有paging(页面设备)、boot(引导设备)、jfs(日志文件系统)、jfslog(JFS日志)和sysdump(系统Dump设备),如果在创建逻辑卷时指定的类型是由用户定义的,则也会显示用户定义的类型,如果用户定义了一个类型时raw(生设备),则就会显示出raw类型 |
LPs | 显示逻辑卷拥有的LP的数量 |
PPs | 显示分配给逻辑卷的PP的数量,如果逻辑卷做了镜像,则显示LP的数量与镜像副本数的乘积 |
PVs | 显示逻辑卷占有的物理卷数量,也就是LV跨越在多少个硬盘上 |
LV STATE | 显示逻辑卷的状态,状态有open/syncd(打开和同步)和close/syncd(关闭和同步),打开(Open)是指有应用程序正在使用LV或者LV作为文件系统已经被安装在MOUNT POINT上,关闭(Close)是指没有应用程序在使用LV或者LV作为文件系统没有被安装 |
MOUNT POINT | 在逻辑卷上所创建文件系统的安装点,如果逻辑卷上没有创建文件系统,则显示N/A |
4.显示卷组中的物理卷信息
使用带-p 参数的lsvg命令可以显示一个卷组中的所有物理卷信息,包括物理卷的名称、物理卷的状态和物理分区的分配情况。
例:
#lsvg -p rootvg rootvg: PV_NAME PV STATE TOTAL PPs FREE PPs FREE DISTRIBUTION hdisk0 active 546 199 109..22..00..00..68 hdisk1 active 546 203 109..26..00..00..68
各列含义如下
列标题 | 含义 |
PV_NAME | 显示物理卷的名称 |
PV STATE | 显示物理卷的状态,是否处于激活状态 |
TOTAL PPs | 显示物理卷上物理分区的总数 |
FREE PPs | 显示物理卷上目前没有被分配给逻辑卷和文件系统的物理分区数,也就是空闲物理分区数 |
FREE DISTRIBUTION |
显示未分配物理分区的分布情况,它的格式是外边缘..外中间..中央..内中间..内边缘 |
三、修改卷组的属性
1.设置卷组再系统启动时是否自动被激活
在系统启动时,除了rootvg卷组始终被自动激活外,其他卷组可以自动被激活,也可以通过手工方式激活。用户可以通过chvg命令来设置设个属性。
例:下面时设置datavg卷组在系统启动时自动被激活
#chvg -ay datavg
设置datavg卷组在系统启动时不能自动被激活
#chvg -an datavg
2.给一个卷组解锁
在进行LVM操作时,由于系统的问题可能会导致正在运行的LVM命令非正常结束,这时可能会使一些卷组被上锁。在AIX 4版本中,对一个加锁的卷组进行解锁时可能的,下面命令就是对datavg卷组解锁。
#chvg -u datavg
3.修改LTG的大小
LTG(Logical Track Group,逻辑记录组)是磁盘写操作中的一个概念,它相当于允许磁盘I/O的最大传输单位。任何超过LTG大小的写操作都会被自动分解成多份LTG大小的写操作。
在AIX 5L之前的版本系统中,只支持128KB的LTG大小,在AIX 5L中LTG的大小可以取不同的值,但是LTG大小的默认值仍时128KB(32个页(Page),一个页是4KB),可利用这些不同的传输单位来获取更好的磁盘性能。AIX 5L现在支持128KB,256KB,512KB和1024KB的LTG大小(现在很多磁盘都支持128KB以上的传输单位),甚至在未来的AIX版本中可能会支持更大的传输单位。
LTG是卷组的一个属性,一个卷组有固定的LTG大小。在创建卷组时可以用mkvg命令指定LTG大小,也可以用chvg命令修改已存在的卷组的LTG大小。在一个卷组中可能存在多个物理卷,如果物理卷的类型各不相同,卷组允许的LTG大小最大值是这个卷组中所有磁盘能够支持的最小传输单位。用SMIT感觉中的mkvg时,在选择LTG大小的对话框中有4个可选值,但在执行smit chvg命令后的LTG选项中只显示卷组中所有磁盘允许的取值。使用ioctl(IOCINFO)系统调用可以获得磁盘支持的最大传输单位。
例:把testvg卷组的LTG大小从128KB改为256KB
#chvg -L256 testvg
为了确保卷组的完整性,在更改过程中这个命令要关闭(baryoff)这个卷组。在mkvg命令中同样也有一个-L 参数,与chvg命令中的-L 参数含义相同,即指定LTG的大小。。
要查询某个物理卷最大支持的LTG大小,可以使用带-M 参数的lquerypv命令,它会以KB为单位给出最大LTG大小。
例:
#/usr/sbin/lquerypv -M hdisk0 256
4.打开和关闭坏块弄分配策略
AIX 5L Version 5.2引入了再分配策略,并许用户打开或关闭某个卷组的坏块再分配策略。磁盘出现了坏块,LVM会标记出这些坏块。默认情况下,坏块再分配资源是打开的。用chvg命令可以打开和关闭坏块再分配的策略格式如下:
#chvg -b [y/n] vgname
其中y表示打开,n表示关闭。对于RAID设备和存储子系统应该关闭坏块再分配策略,除非设备厂商有声明。
5.用SMIT工具修改卷组属性
#smit chvg
在“VOLUME GROUP name”栏中输入要修改属性的卷组的名字。
注意:卷组的名字是不能更改的,如果更改卷组的名字,只能是先备份要更名卷组中的数据,然后将卷组删掉,再添加一个新名字的卷组,并恢复数据。
如果要设置一个卷组在系统启动时自动被激活,就把“Activate volume group AUTOMATICALLY at system restart?"栏的值设置为yes,要使卷组后来由手工方式激活设置为no。
在”A QUORUM of disks required to keep the volume group on-line?"栏设置当前卷组丢失了磁盘Quorum时,是否就迫使该卷组处于非激活状态。默认值是yes,表示该卷组丢失了51%的VGDA后就不可再用了。
在“Convert thi VG to Concurrent Capable?"栏设置是否使用该卷组具有被并发访问的能力,也就是有被多少个系统同时使用的能力。
在”Autovaryon VG in Concurrent Mode?"栏中设置自动激活卷组时,是否把卷组激活成并发访问模式。只有系统中使用了HACMP(高可用性群集多重处理)才将设置该栏的值为yes。
在“LTG Size in kbyte”栏中修改逻辑记录组的大小,单位为KB,可选值有128,256,512和1024,默认值是128KB。
在“Set hotspare characteristics"栏中设置卷组的热备份特性,对应chvg命令中的-h参数。
在”Set synchonization characteristics of stale"栏中设置是否对陈旧分区进行自动同步,对应chvg命令中的-s 参数,可取值有y和n。y表示允许自动同步陈旧分区,n表示禁止自动同步陈旧分区。这个选项对没有镜像逻辑卷的卷组时没有意义的。
四、设置卷组的(hot spare 热备份)特性
在AIX 5L中,可以将卷组中一个磁盘定义为热备份磁盘,同时要指定磁盘失效时的热备份策略。chpv和chvg命令都为此增加了一个-h 参数,此参数就是在一个卷组中定义一个热备份磁盘及指定热分配策略。这些命令并不是完全代替SSA磁盘的备份可用特性,而是对它的补充,当向卷组中添加一个热备份磁盘时也可以使用SSA磁盘。
注意:只有在卷组中有镜像逻辑卷时chpv命令和chvg命令的-h 参数才有效。
下面的命令是将hdisk1定义成一个热备份磁盘:
#chpv -hy hdisk1
这个命令把hdisk1物理卷标记成热备份磁盘。如果在这个磁盘中没有已分配的逻辑分区,那么这个命令就能执行成功。如果把上面命令中的y换成n 就表示删除hdisk1中的热备份标记,使它成为一个非热备份磁盘。此外,也可以在SMIT菜单中把一个物理卷标记成热备份磁盘。
用lspv 命令可以查看hdisk1磁盘是否为热备份磁盘。
#lspv hdisk1 PHYSICAL VOLUME: hdisk1 VOLUME GROUP: rootvg PV IDENTIFIER: 00c55d22043e6b61 VG IDENTIFIER 00c55d2200004c000000012649e24f51 PV STATE: active STALE PARTITIONS: 0 ALLOCATABLE: yes PP SIZE: 256 megabyte(s) LOGICAL VOLUMES: 12 TOTAL PPs: 546 (139776 megabytes) VG DESCRIPTORS: 1 FREE PPs: 203 (51968 megabytes) HOT SPARE: no USED PPs: 343 (87808 megabytes) MAX REQUEST: 256 kilobytes FREE DISTRIBUTION: 109..26..00..00..68 USED DISTRIBUTION: 01..83..109..109..41 MIRROR POOL: None
如果要在卷组中添加一个硬盘,并且还要把它做成热备份磁盘,这个磁盘的容量至少必须与卷组中最小磁盘的容量相等。
当把一个或多个磁盘标记成热备份磁盘后,用户必须决定在一个磁盘开始失效的情况下使用的策略。使用-h 参数可以指定4种不通的热备份策略和2种同步策略。
#chvg -h hotsparepolocy -s synepolocy VolumeGroup
在AIX 5L的chvg命令中增加了一个新参数-s ,它定义了卷组的同步特性。
hostsparepolicy参数可以取下面4种值:
y | 这个策略表示自动地把一个故障磁盘上的分区内容迁移到一个热备份磁盘上,卷组中如果有多个热备份磁盘(一般称为热备份磁盘池),那么会从其中选择一个容量最小且能足以替换故障磁盘的磁盘。 |
n | 不自动迁移物理分区的内容。对于卷组来说,这是默认的策略。 |
Y | 这个策略会自动地把一个故障磁盘上的分区内容迁移到一个热备份磁盘上,但是可能会使用热备份磁盘池中的所有硬盘。 |
r | 删除热备份磁盘池中的所有磁盘。 |
syncpolicy参数可以取y或n两种值:
y | 自动尝试同步陈旧的分区 |
n | 不自动尝试同步陈旧的分区,这是卷组默认的方式。 |
完成这些设置之后,一旦卷组状态区(VGSA)或镜像写一致性(MWC)写失败,LVM就把失败的磁盘标记为丢失,同时开始把磁盘数据向热备份磁盘中迁移。
五、向一卷组中添加物理卷
要扩充一个文件系统或逻辑卷的空间,其前提条件是文件系统或逻辑卷所在卷组必须有空闲的物理卷,如果卷组中未用的PP很少或者没有时,则无法给文件系统或逻辑卷增加空间。当卷组中未使用的PP数不足于扩充文件系统或逻辑卷空间时,就必须向该卷组中再添加一个物理卷。
例:要向datavg添加hdisk6
#extendvg datavg hdisk6
如果hdisk6已经属于其他处于激活状态的卷组,则上面的命令就会执行失败;如果hdisk6已经属于其他处在非激活状态的卷组,则在运行上面命令时,会询问用户是否继续添加。如果物理卷的状态为已定义,而不是可用的(lsdev -Cc disk命令查看),则extendvg命令不能执行成功,因此必须用下面的命令将物理卷的状态改为可用状态(Available):
#mkdev -l hdisk6
hdisk6 Available
使用下面的SMIT快捷路径也可以向卷组中添加物理卷。
#smit extendvg
如图,在“VOLUME GROUP name”栏中输入要添加PV的卷组名,在“PHYSICAL VLOUME names”栏中输入被添加的物理卷名即可给指定卷组团价指定的物理卷。
六、从卷组中删除一个物理卷
要减少一个卷组的空间,也就是从卷组中删除一个物理卷,这必须在卷组处于激活状态下就行。由于物理卷上存在着逻辑卷或文件系统,所以在用reducevg命令删除物理卷之前,必须用rmlv命令删除该物理卷上的所有逻辑卷。
例:从datavg卷组中删除一个hdisk6物理卷。
#reducevg datavg hdisk6
在用reducevg命令从datavg中删除hdisk6之前,必须用rmlv命令删除hdisk6上所有逻辑卷,或者使用带-d 参数的reducevg命令。使用-d 参数删除某个物理卷时,会自动删除该物理卷上所有逻辑卷。如果某个逻辑卷跨越多个物理卷存在时,删除该逻辑卷所在的任何一个物理卷,都会导致该逻辑卷的数据不完整,因此使用带-d 参数的reducevg命令就比较危险。如果在使用带-d 参数的reducevg命令时,没有带-f 参数,会让用户确认是否继续删除该物理卷上的逻辑卷,否则就不会出现让用户确认的信息。
reducevg命令还可以删除一个硬盘或多个硬盘。如果要从一饿个卷组中删除多个硬盘,则按如下格式使用reducevg命令:
#reducevg VGName PV1Name PV2Name PV3Name
当把一个卷组中所有的硬盘删除完之后,这个卷组也就被自动删除了。reducevg命令只能由root用户和system组的成员执行。
如果先用reducevg命令把物理卷从卷组中删除,而将物理卷直接从系统中删除了,则VGDA中还有该物理卷的信息,然而此物理卷的名字在系统中已经不存在了,或者可能已经将该PV的名字分配给其他物理卷了。要从VGDA中彻底清除已被删除物理卷的信息,可以继续使用reducevg命令删除VGDA中的物理卷信息,但是要用已被删除物理卷的PVID代替该PV的名字,其格式如下:
#reducevg VGName PVID
除了使用手工方式的命令从卷组中删除物理卷外,还可以用SMIT工具来完成这些工作。
#smit reducevg
七、激活/停用一个卷组
卷组有两种状态,一种是激活状态,另一种是非激活状态。卷组只有处于激活状态时,才能接受访问,处于非激活状态时,不能被使用。改变卷组的状态的命令是由LVM来管理的。LVM用varyonvg命令激活(Activate)卷组,用varoffvg命令改变卷组的状态为非激活(Deactivate),即停用一个卷组。卷组在使用之前必须被 激活。在激活卷组时,LVM会从卷组中的物理卷上读取一些管理数据,即VGDA和VGSA。
1.激活卷组
激活一个卷组的过程是:
(1)读取这个卷组中每个物理卷上的VGDA信息;
(2)读取每个VGDA中的开始和结束时间戳,这些时间戳必须与有效的VGDA相匹配;
(3)如果大多数VGDA是有效的,也就是说磁盘Quorum存在,则继续激活卷组,否则激活卷组的过程就会失败;
(4)系统获得最新的VGDA(在所有VGDA中找最新的时间戳),然后把它重写到其他所有的VGDA上,使它们之间保持一致;
(5)当有镜像存在时,还会执行syncvg命令来使所有陈旧的物理分区同步。
例:datavg处于非激活状态,可使用下面的命令把它激活:
#varyonvg datavg
当卷组再ODM数据库中的配置信息与VGDA不一致时,可以用带-f 参数的varyonvg命令强制性地激活这个卷组;如果卷组中存在镜像,也可以使用-n 参数来禁止同步所有陈旧的物理分区,因为当卷组被激活时,如果发现陈旧的物理分区varyonvg命令就会调用syncvg命令来同步所有陈旧的物理分区,所以使用-n 参数的目的主要是防止意外地把错误数据分区写到正确数据分区上;在维护或系统管理模式下,使用-s 参数激活卷组,对卷组可以使用逻辑卷管理命令,但是无法对逻辑卷进行读写操作(逻辑卷管理命令也无法对逻辑卷进行读写操作)。
在AIX 5L中,新增了一个-r 参数,它表示把卷组激活到只读模式下。在只读模式下的卷组可以防止对逻辑卷实施写操作,也可以防止发生对LVM元数据的更新操作,还可以防止同步陈旧的物理分区。因此在这种模式下,凡是要求更新LVM元数据的LVM高级命令在执行时都会失败。
只要ODM设备配置数据库中的信息和LVM中的信息存在不一致,就会在标准输出上显示一个所有物理卷及其状态信息的列表。在这种情况下,指定的卷组可能被激活了,也可能没有被激活,因此用户必须仔细检查所显示的PV列表,根据所显示的每个PV状态而采取适当的措施来保护系统的完整性。
由于丢失了大多数PV而导致卷组不能被激活,同样也会显示一个所有PV及其状态的列表,在这种情况要激活卷组,需要使用带-f 参数的vartonvg命令来强行激活卷组。
如果无法访问大多数PV(即卷组Quorum不存在了),在激活卷组时varyonvg命令将会执行失败。即使关闭了检查Quorum功能,也不会改变丢失PV的情况,它只能保证在Quorum丢失的情况卷组处于激活状态。
如果任何一个PV处在PV_MISSING的状态而且关闭检查Quorum的功能,即使磁盘Quorum是可用的,卷组也不会被激活。在这种情况下要激活卷组,要么使用-f 参数强行激活,要么设置MISSINGPV_VARYON环境变量的值为TRUE(如果在系统启动时需要激活丢失磁盘的卷组,就在/etc/environment文件中设置MISSINGPV_VARYON环境变量)。
在以上面的情况下激活卷组(使用-f 参数强行激活或设置MISSINGPV_VARYON环境变量)的时候,用户要保证保持卷组的完整性。
也可以使用下面的SMIT快捷路径,来激活一个卷组。
#smit varyonvg
2.停用卷组
用varyoffvg命令来停用一个卷组,也就是使一个卷组和它相关的逻辑卷处于非激活状态。在执行该命令之前,应该使所有的逻辑卷处于关闭状态,同事还要卸载该卷组中的所有文件系统。
使用带-s 参数的varyoffvg命令能够把卷组放在维护管理模式下,处于系统维护模式下的卷组,只能用LVM的命令来管理它,用户无法访问其中的逻辑卷。
如果再没有停用卷组的情况下,从该卷组中移走一块硬盘,会引起一些严重的错误,同事会丢失VGDA和某些逻辑卷中的数据。
例:要停用datavg卷组
#varyoffvg datavg
使用下面的SMIT快捷路径,也可以停用一个卷组。
#smit varyoffvg
八、导入、导出一个卷组
在AIX系统中,设备的定义信息都存放在系统的ODM数据库中,导入一卷组,就是将这个卷组的定义信息导入到系统中,并保存在ODM数据库,让系统能够识别这个卷组;导出一个卷组,就是将这个卷组的定义信息从系统的ODM数据库中删掉,但其组织结构仍然存在于该卷组的VGDA中,这就说明导出一个卷组并不是删除该卷组上的数据,只是删除ODM中的关于该卷组的定义信息。
在很多情况下,需要将一个卷组从一个系统移到另一个系统中,并要保证移动后的卷组的文件系统和逻辑卷在目标系统中均能正常访问。这就应该先将该卷组从源系统中导出来,然后在将卷组的没一个物理卷移到目标系统中,再将该卷组导入到目标系统中。从此,该卷组在源系统中就不存在了,而它的定义信息保存在目标系统中。
1.导出卷组
在导出一个卷组之前,必须先用varyoffvg命令使该卷组处于停用状态(非激活状态),再用exportvg命令导出卷组,该命令仅仅将卷组的定义信息从ODM数据库中删除掉,并不删除该卷组中的数据。
例:用exportvg命令将datavg卷组从当前系统中导出来。
#exportvg datavg
exportvg命令会从/etc/filesystems中删除卷组中的文件系统,并不删除那些文件系统的安装点。
如果要导出的卷组包含页面空间(Paging Space),则当页面空间正在被使用时,不能导出这个卷组。在导出一个含活动页面空间的卷组之前,必须要使页面空间变成为非活动状态,使用下面的命令可以把页面空间的状态改为非活动状态:
#swapoff paging_space_name
swapoff命令只限于在AIX 5L及其以后的版本中使用。在AIX 5L之前的系统中,要使页面空间变为不活动的,则必须先执行下面的命令使页面空间在启动系统时不被自动激活,然后重新启动系统。
#chps -a n paging_space_name
2.导入卷组
用importvg命令导入卷组。当把一个卷组从一个系统中移到另一个系统后,就需要告诉目标系统此卷组的定义信息。相对于在目标系统中添加一个新的卷组,导入卷组只不过是这个卷组的结构已经定义好了,并白村在物理卷的VGDA中。VGDA中包含指定卷组的下面信息:
- 所有物理卷的PVID列表
- 所有逻辑卷的LVID列表
- 逻辑卷名字与每个LVID的对应表
- JFS逻辑卷的安装点(仅适用于大VGDA)
例: 用importvg命令将datavg卷组导入到目标系统中。
#importvg -y datavg hdisk5
在importvg 命令之后必须指定一个物理卷名(任意一个能够标识出卷组的物理卷),importvg命令会自动通过这个物理卷的VGDA找到卷组中的其他所有物理卷。VGDA中包含了组成卷组的物理卷列表,LVM会查询指定物理卷上的VGDA,检查VGDA的一致性,然后建立一个包含所有卷组和物理卷信息的列表,用这些数据更新ODM数据库中关于这个卷组的信息,同时在/dev和/etc目录下创建卷组的设备文件。
接着,读取VGDA中的所有逻辑卷信息,并把这些信息记录在ODM数据库中,同时创建逻辑卷的设备文件;再读取每个逻辑卷上的LVCB(逻辑卷控制块),然后检查每个逻辑卷,确定它是否关联着一个JFS文件系统的信息,如果有则在/etc/filesystems文件中添加一个文件系统节,并创建一个文件系统安装点。
当指定的卷组名在目标系统中已经存在时,importvg命令就会运行失败,由于系统中不允许存在两个相同的卷组名,因此在运行importvg时,必须指定一个在系统中不存在的卷组名。在运行importvg命令时,可以不指定卷组名,即不带-y 参数,则系统会给要导入的卷组分配一个默认的名字。
也可以使用下面的SMIT快捷路径导入一个卷组
#smit importvg
九、重新分配卷组中的物理分区
为了提高磁盘的性能,需要重新组织卷组中的物理分区的分布。reorgvg命令时按照每个逻辑卷的分配策略重新组织卷组中的物理分区分布。
#reorgvg [ -i ] VolumeGroup [ LogicalVolume...]
在使用该命令时,要注意指定的逻辑名必须存在于指定的卷组中。而且在使用之前,卷组必须是激活的,而且卷组中必须有空闲的物理分区。在重新分配卷组之前,必须设置逻辑卷的重新分配标志(RELOCATABLE)为yes(用chlv -r y 命令),否则这个逻辑卷会被忽略掉(不会重组它)。由VolumeGroup参数指定被重组的卷组名,如果指定了LogicalVolume参数,表示只重组指定逻辑卷。
如果使用-i 参数,则从标准输入读取指定的物理卷,这样只重新分配指定物理卷上的物理分区。
注意:如果卷组中的某些物理分区已经被分配给条带化的逻辑卷,reocrvg命令不会重新分配这些物理分区的分布。要使reorgvg命令执行成功,该卷组至少有一个物理分区时空闲的。如果只带卷组名参数执行该命令,则它将只重新分配该卷组中第一逻辑卷,使用lsvg -l ngname命令可以列出卷组中第一逻辑卷。同时在使用该命令之前,应该停止其他用户或程序读写要被重组的卷组。
例:重新分配datavg卷组的lv1,lv3逻辑卷上的物理分区,命令如下:
#reorgvg datavg lv1 lv3
其中lv1,lv3是datavg卷组上的逻辑卷。
还可以使用smit工具该重新分配卷组的分区。
#smit reorgvg
十、用syncvg命令同步卷组
一个逻辑卷可以有多份拷贝,但如果这几分拷贝的内容如果出现了不一致的情况,也就说在这个逻辑卷对应的物理卷中存在着陈旧的物理分区,这时包含这个逻辑卷的卷组中也相应地存在着未同步的物理卷。为了解决这种问题,就需要同步这个卷组,使得这个卷组中所有逻辑卷的多份拷贝内容保持一致。
#syncvg [ -f ][ -i ][ -H ][ -P NumParallelLps] { -l | -p | -v} Name...
syncvg命令作用是同步物理分区。这些物理分区是原始物理分区的拷贝,而他们的内容并不是最新的,也就说这些拷贝的内容与原始的内容出现了不一致,即存在一些物理分区的内容是最新的,另一些物理分区的内容是陈旧的。syncvg命令就是用最新物理分区的内容重写陈旧物理分区的内容。
syncvg命令可以用于同步逻辑卷,同步物理卷或者同步卷组,这是由Name 参数来决定,即Name 参数可以是逻辑卷名、物理卷名或卷组名。当使用-I 时,Name 参数就指逻辑卷名;当使用-p 参数时,Nmae参数所指出的名称就是物理卷名;当使用-v 参数时,Name参数就指卷组名。使用-i 参数表示从标准输入读入一个名称。依据物理硬件的特性和数据的数量,同步过程可能要花费很长的时间。
当使用-f 参数时,该命令就会选择一份最新的物理拷贝,然后把它复制到这些逻辑分区(LP)的所有其他物理拷贝中,而不管其他物理拷贝的内容是否陈旧。
-P NumParallelLps 参数指定了并行同步逻辑分区(LP)的数量,由NumParallelLps参数指定LP的数量,其取值范围是1到32。NumParallelLps 参数的大小必须适应机器、卷组中的磁盘、系统资源和卷组的模式。
一个集群中的所有节点(机器)对卷组的访问如果是并发模式,那么在某一个节点上执行带-H 参数的syncvg 命令时,其他节点对这个卷组的写操作会推迟到这个同步操作完成以后。当使用了-H 参数,并不要求集群中所有节点都支持-P 参数。如果卷组没有被激活或并发访问模式,syncvg命令会忽略-H 参数。
当用varyonvg命令激活一个卷组时,这个卷组中的拷贝会被自动同步,除非系统管理员把这个功能关掉。
例:要同步物理卷hdisk03和hdisk05上的拷贝,执行下面的命令:
#syncvg -p hdisk03 hdisk05
要同步卷组vg05和vg06上的拷贝,执行下面的命令:
#syncvg -v vg05 vg06
此外,还可以执行smit syncvg命令在SMIT菜单中同步卷组(smit syncvg_vg),逻辑卷(smit syncvg_lv)或物理卷(smit syncvg_pv)。
十一、用readefinevg 命令在ODM中重新定义卷组
在系统正常运行的过程中,设备配置数据库中的信息与物理卷保留区上的逻辑卷管理器的信息时一致的。设备配置数据库就是ODM数据库中的一部分,而每个物理卷的开始部分都保存着这个物理卷所属卷组的配置信息,一般是物理卷上的VGDA和VGSA信息。这两种信息在正常情况下必须保持一致。如果两种信息出现不一致时,readefinevg命令能够测定出哪些物理卷属于指定的卷组,并且将这些信息重新写入到设备配置数据库中。redefinevg命令通过读取系统中所有已配置的物理卷上的VGDA和VGSA信息来检查是否存在矛盾。
下面是redefinevg命令的使用格式:
#redefinevg { -d Device | -i Vgid } VolumeGroup
其中VolumeGroup 参数是指定的卷组名:-d Device 参数表示能够从中读取卷组ID(Vgid)的任意一个物理名,Device参数指定物理卷名:-i Vgid参数指出将要被重新定义的卷组标志号,即卷组ID。
例:要在设备配置数据库中重新定义rootvg卷组:
#redifinevg -d hdisk0 rootvg
提示:要恢复ODM数据库关于卷组的定义信息,还有一个简单方法先varyoff(停用)这个卷组,然后exportvg(导出),再importvg(导入),最后varyon(激活)。
十二、用recreatevg命令重新创建卷组
当需要完成一个磁盘到另一个磁盘的复制时,如果源磁盘是一个已存在卷组中的物理卷,目标磁盘是对源磁盘的镜像,此时要在目标磁盘(已创建镜像的磁盘)上创建一个新的卷组,而且要求新卷组名在系统中是唯一的,则应用recreatevg命令在目标磁盘上创建一个唯一的卷组,
当使用dd命令直接做磁盘复制,就会把一个磁盘中的所有信息(包括VGDA和LV)都复制到另一个磁盘上,从而产生两个一模一样的物理卷,如果不在目标磁盘上创建卷组,就无法使用目标磁盘上的内容,此时如果直接用目标磁盘来导入卷组,就会导致系统中卷组ID、逻辑ID和文件系统安装点的冲突,而用recreatevg命令可以避免产生重复的卷组、逻辑卷和文件系统安装点,因为使用该命令的一些参数可以指定新逻辑卷名、卷组名的前缀,默认情况下该命令会自动分配这些名字。
在用ESS的FlashCopy功能或相似的功能做完物理卷的复制工作之后,如果要用recreatevg命令在目标磁盘上创建一个唯一卷组,还要避免部分LVM组件(如PVID、VGID、卷组名、逻辑卷名和文件系统名)的冲突,则必须按照下面的顺序执行命令:
#chdev -l hdiskX -a pv=clear(清除目标物理卷的PVID) #recreatevg -y newvg_name -L /newfs -Y newlv hdiskX
其中hdiskX是目标物理卷名,newvg_name是新分配的卷组名,newlv和/newfs分别是在这个卷组中新分配逻辑卷名和文件系统名的前缀,这些前缀用来修改原逻辑卷名和原文件系统名。
十三、用mirrorvg 命令镜像一个卷组
用mirrorvg命令镜像一个卷组,相当于镜像了整个卷组的所有逻辑卷。
#mirrorvg [ - S | -s ] [ -Q ] [ -c Copies ] [ -m ] VolumeGroup [ PhysicalVolume... ]
mirrorvg命令各个参数的含义如下表所示
参数 | 含义 |
- S | 后台同步。mirrorvg命令创建了逻辑卷副本之后就立即结束运行,但是它结束之前在后台对这个卷组执行了一个syncvg命令。使用了这个参数,镜像副本的同步在何时全部完成并不显示,但是只要有一部分镜像完成了同步,操作系统会立即使用它们 |
-s | 关闭同步。mirrorvg命令创建了逻辑卷副本之后就立即结束运行,并不执行任何类型的镜像同步。使用了这个参数,逻辑卷的镜像虽然存在,操作系统并不会使用它们,除非它们被同步了 |
- Q | 默认情况下,mirrorvg命令会对卷组信息做镜像,这样会关掉卷组的Quorum功能。如果用户希望在完成镜像之后继续保留卷组的Quorum功能,就使用-Q 参数 |
-c Copies | 指出在执行mirrorvg命令之后没一个逻辑卷必须拥有的最小副本数。由Copies 参数指出最小副本数。它的最大值是3,最小值是2。如果Copies=1,则忽略该命令 |
- m | 在指定的物理卷上严格按照原逻辑卷副本中物理分区的排列顺序来镜像逻辑卷(使用原逻辑卷上的PP和LP之前的映射),使用此参数必须指定PhysicalVolume 参数 |
VolumeGroup | 被镜像的卷组名 |
mirrorvg 命令作用是对一个卷组中的所有逻辑卷做镜像,这个功能也可以用mklvcopy 命令来完成,即单独地对卷组中的每一个逻辑卷做镜像。用mklvcopy命令给逻辑卷做镜像时,目标物理卷和逻辑卷必须属于同一个卷组。要向卷组中添加物理卷就用extendvg命令。
默认情况下,mirrorvg 命令会把逻辑卷镜像到卷组中的任何硬盘上,如果要把镜像副本保存到指定的物理卷中,必须用PhysicalVolume 参数指定目标物理卷列表,各个物理卷名之间用空格隔开。当用mirrorvg命令镜像逻辑卷时,它就强制实施严格镜像策略,使用原逻辑卷的默认属性。如果打算不使用默认属性和严格镜像策略,则必须用mklvcopy命令对没一个逻辑卷单独做镜像。
默认情况下,一旦执行mirrorvg命令,则在完成之前必须要完成镜像副本的同步工作。如果逻辑卷比较大,那么同步镜像副本可能需要花费很长的时间。如果在执行该命令过程中不希望它有较长的延迟,就使用-S 或-s 参数。此外,一个逻辑卷在被镜像之后默认是两个副本,要使镜像之后的副本数大于两个,就使用-c 参数。
注意:运行mirrorvg命令可能要花费大量的时间,因为它要进行复杂的错误检查。此外,卷组中的逻辑卷镜像和对镜像的同步都是运行时间长的原因。
如果要给rootvg 卷组做镜像,则必须执行bosboot,bootlist和reboot命令。bosboot命令的作用是在新镜像的驱动器上创建引导记录(Boot Record);bootlist命令的作用是定制一个容易从镜像设备启动系统的引导设备列表;最后,因为mirrorvg 命令会默认地关掉rootvg卷组的Quorum功能,所以,必须用reboot命令重新启动系统(对rootvg卷组用varyoffvg命令)。
如果要给非rootvg 卷组的卷组做镜像,mirrorvg命令会默认地关掉卷组的Quorum功能,隐刺用户必须关闭所有的逻辑卷,再对这个卷组支持vartoffvg和varyonvg命令,让卷组继续以它原来的Quorum设置工作。
系统的dump设备(基本设备和次要设备)不应该被镜像,系统的dump设备可以位于rootvg卷组或非rootvg卷组上。在一些系统中,系统的dump设备和页面设备(页面空间设备)是同一设备。然而,大多数用户希望对页面设备做镜像,当mirrorvg命令检测到dump设备和页面设备不相同时,会自动给页面设备做镜像,而dump设备不会自动被镜像。用sysdumpdev命令可以查询和修改dump设备。
例:对datavg卷组做镜像,执行下面的命令之后,datavg卷组中的逻辑卷就会有3个副本。
#mirrorvg -c 3 datavg
如果要在后台同步datavg卷组镜像,命令如下:
#mirrorvg -S -c 3 datavg
要替换镜像卷组中的一块坏硬盘(hdisk7),按照下面的命令进行:
#unmirrorvg data hdisk7 (删除hdisk7上的所有镜像)
#reducevg datavg hdisk7 (从datavg卷组中删除hdisk7物理卷)
#redev -l hdisk7 -d (从系统中删除hdisk7物理卷)
然后替换磁盘,把新磁盘配置成物理卷,并改名成hdisk7,再执行下面的命令:
#extendvg datavg hdisk7 (向datavg卷组中添加hdisk7物理卷)
#mirrorvg datavg (给datavg卷组中的所有逻辑卷做镜像)
要从已镜像的卷组中删除一份或两份镜像副本,可使用unmirrorvg命令,其使用格式如下:
#unmirrorvg [ -c Copies ] VolumeGroup [ PhysicalVolume ... ]
-c Copies 参数指出在unmirrorvg命令执行之后每一个逻辑卷必须拥有的最小副本数,Copies 参数的默认值是1。如果打算删除指定物理卷上的镜像副本,就用PhysicalVolume参数指出包含镜像的物理名。由VolumeGroup参数指出包含镜像的卷组名。
使用smit工具也可以给一个卷组做镜像,命令如下:
#smit mirrorvg
十四、镜像卷组的快照(Snapshot)
镜像卷组的快照条件是:一个卷组中所有逻辑卷除了原拷贝之外,还必须有一个镜像拷贝,而且镜像必须存在于一个磁盘上,或者在一组磁盘上只包含一组镜像拷贝。如果一个卷组满足快照的条件,那么可以把这个卷组中的一个镜像拷贝并分割成一个快照卷组。
分割镜像拷贝时,原始卷组会停用分割给快照卷组的磁盘。在快照卷组中将创建新的逻辑卷和文件系统安装点。
两个卷组都保存着物理分区变化的痕迹,以便在快照卷组重新合并(Rejoin)到原始卷组时,使卷组合并之后的数据保持一致。在分割出快照卷组之后,如果对原始卷组中的一个物理分区执行了写操作,那么快照卷组中相应的物理分区就会被标记成陈旧状态(Stale);如果对快照卷组中的一个物理分区执行了写操作,那么快照卷组中的这个物理分区也被标记成陈旧状态。在重新合并的过程中,把由所有的陈旧的物理分区组成的列表合并到卷组中,然后在后台对这些陈旧分区进行同步。因此,用户在合并前的原始卷组中见到的数据与在合并后的卷组中见到的数据是相同的。
分割镜像卷组的命令时splitvg 命令,把快照卷组再合并到原始卷组的命令时joinvg 命令。
在分割一个镜像卷组时,有下面所列的一些限制条件。
(1)不能分割一个具有传统并发访问模式的卷组;
(2)虽然可以分割一个具有增强并发访问模式的卷组,但是快照卷组并不具备增强并发访问能力;
(3)快照卷组不具备并发访问或增强并发访问能力;
(4)在快照卷组上执行chvg命令只允许使用的参数有:-a,-R,-S和-u;
(5)在原始卷组上执行chvg命令只允许使用的参数有:-a,-R,-S,-u和-h;
(6)在快照卷组上不允许改变分区的分配;
(7)如果在卷组中丢失一个磁盘,那么这个卷组就不能被分割;
(8)在分割卷组的过程中,如果出现系统崩溃或者丢失了卷组Quorum,那么必须执行joinvg命令把磁盘再次合并到原始卷组中,
下面时splitvg命令的使用格式:
#splitvg [ -y SnapVGname ] [ -c Copy ] [ -f ] [ -i ] VGname
splitvg 命令各个参数的含义如表所示
参数 | 含义 |
-y SnapVGname | 指定快照卷组名,卷组名由1到15个字符组成,指定的卷组名在系统的设备名中必须是唯一的。如果没有指定该参数,在分割卷组镜像时由系统自动生成一个快照卷组名,并在命令结束时显示出来 |
-c Copy | 指把哪一个镜像拷贝分割出去,Copy参数可以时1,2或3。默认是第2个拷贝 |
-f | 强行分割镜像拷贝,即使将要被创建的快照卷组中包含着陈旧的分区 |
-i | 把一个卷组的镜像拷贝分割成不能再合并到原始卷组中的一个新卷组 |
例:分割datavg卷组的命令如下:
#splitvg datavg
这个命令把datavg卷组中的第二个镜像拷贝分割出来建立一个快照卷组,在该命令执行完之后,就会显示由系统分配的快照卷组名。
如果要分割datavg卷组的第1个镜像拷贝,并指定快照卷组名位snapvg,则可执行如下命令:
#splitvg -y snapvg -c 1 datavg
把快照卷组合并到原始卷组的命令是joinvg命令,它的使用格式如下:
#joinvg [ -f ] Vgname
joinvg 命令把由splitvg命令分割的快照卷组又合并到原始卷组中,其中Vgname参数就是被splitvg命令分割的原始卷组名。在合并过程中,joinvg命令会删除快照卷组,同时子啊原始卷组中将重新激活并入的磁盘,并在后台同步所有陈旧的分区。当没有激活快照卷组中的磁盘时,使用-f 参数可以强行合并卷组。位于非激活磁盘上的镜像拷贝将会从原始卷组中被删除。
例:在datavg卷组对/data文件系统做了从hdisk2到hdisk3的镜像,要把这个卷组的镜像拷贝分割成一个快照卷组,并要在快照卷组中对/data文件系统再做在线备份,命令如下:
#splitvg -y snapvg datavg (分割datavg卷组,创建快照卷组)
此外也创建了/fs/data文件系统的安装点。
#backup -f /dev/rmt0/fs/data (在磁带上按i-node对/fs/data文件系统做在线备份(即在不卸载文件系统的情况下做备份))
#joinvg datavg (把datavg卷组的快照卷组合并到原始卷组中)
把快照卷组snapvg重新合并到原始卷组datavg中,同时在后台同步所有陈旧的分区。