四.卷组管理
讨论可以在VG中完成的功能.象PV一样,VG可以被创建/删除/更改属性.还可以激活或去活一个VG.
6.4.1 加入一个VG.一个VG要被加入系统需要系统中存在一个或多个PV,这些PV必须是可用状态且没有被其它VG使用.在加入一个VG之前,需要确定一些重要 信息,如VG名和要被加入到VG中的PV.新VG可以通过用mkvg命令或smit加入系统.所有属性在VG创建时设置,以下是非常重要的一些问题:VG 名在系统中必须是唯一的;所有要在VG中使用的PV的名字;VG可以容纳的PV的最大数量;VG中的PP的大小;每次启动系统时自动激活VG的标识.下面 用mkvg命令创建一个名为myvg的VG,使用hdisk1和hdisk5两个PV,每个PP的大小是4k,该VG限制能容纳最多10个PV.命令如 下:
mkvg -y myvg -d 10 -s 8 hdisk1 hdisk5
也可以使用smitty mkvg来创建,在界面各个域中输入属性值即可.smitty mkvg会用varyonvg自动激活VG.但smit命令与命令行方式相比,限制了以下功能:smitty mkvg不提供-d参数设置能容纳的最多PV个数,仅使用默认的32个;不提供-m参数设置PV的最大容量,该参数决定多少PP被使用,默认的是1016 个分区;smitty mkvg用-f参数强制创建VG.注意:每用mkvg创建一个新VG,根文件系统至少应该有2MB自由空间(可以用df命令来检查),因为每创建一个新 VG,/etc/vg目录就会写入一个文件.
6.4.2修改VG属性
修改活动属性用以下命令可以让名为newvg的VG在每次系统启动时自动被vary on:
chvg -ay newvg
如果要关闭自动vary on功能,用:
chvg -an newvg.
对VG解锁当LVM命令在操作时因为系统冲突异常中断,VG将被锁住,要解锁可以用:
chvg -u newvg
加入一个PV要增加VG的空间需要VG中额外的PV可用.加PV的命令是extendvg,下面是一个加PV的例子:
extendvg newvg hdisk3
注意:如果一个要加的PV已经属于一个vary on的VG,扩展会失败,如果属于一个vary off的VG,用户也会被提示是否确定要继续.也可以使用smitty vgsc命令来实现,要选择Add a PV to a VG.
删除一个PV要减少VG的PV,VG必须是vary on的.下面是删除的例子:
reducevgmyvg hdisk3
可以用smitty reducevg从一个VG中删除一个PV.注意:reducevg命令提供了-d和-f参数.-d参数很危险,因为它会在从VG中删除PV之前自动删除 所有在PV上的LV数据,如果一个LV跨越了多个PV,那么任何这种PV的删除会危害整个LV的完整性.而-f参数则使-d参数更危险,它禁止和用户交 互,无法让用户确认是否要删除.
如果在要被删除的PV上的LV跨越了VG中其它PV,删除操作会破坏这些LV的完整性而不管它们所在的PV.如果删除一个VG中所有PV,则VG本身也被删除.
删除PV的参数有时从系统中删除磁盘没有先运行reducevg,VGDA仍 然保存了被删除的磁盘的参数,而PV名已经不存在或被重分配了.要删除这些参数,仍然可以在reducevg命令中使用被删除的PV的PVID.如要删除 PVID为000005265ac63976则可以用:reducevg newvg 000005265ac63976.
6.4.3导入导出VG
有时候一个VG需要被从一个系统移动到另外一个系统,以便于其中的LV和文件 系统可以在目标系统中被直接访问.要删除ODM数据库中一个VG的系统定义,该VG需要用exportvg命令导出.该命令不会删除VG 中的任何用户数据而只删除它在ODM数据库中的定义.同样,当一个VG被迁移了,目标系统需要加入该VG的定义.这可以通过用importvg命令导入 VG来完成,这会在ODM数据库中加入一个条目.例子:导出myvg的定义:exportvg myvg;导入myvg:importvg -y myvg hdisk12可以使用smitty exportvg或smitty importvg来导入或导出.如果指定的VG名正在使用,importvg命令将会失败,因为相同的VG名是不被允许的.在该实例中该命令可以返回一个 独特的指定的VG名.该命令也可以没有-y参数或VG名得到返回,但这样执行时,被给定了一个默认唯一的导入名.
也有可能某些LV名与系统中已有的冲突.importvg命令将自动以系统默 认名命名.重要的是要记住当移动VG时,exportvg命令总是在源系统中执行并且先于导入目标系统的操作.假设到一个VG被导入系统Y没有在系统X上 实际完成exportvg.如果系统Y对VG作了诸如删除PV的改变,而后来VG又被导回系统X,系统X上的ODM数据库将和VG上改变过的信息不一致, 但在移动前没有在源系统上导出,那就没有什么意义了.也可用exportvg和importvg改变用户定义的VG名.如以下命令:lspv列出所有的 PV,varyoffvg vg00,exportvg vg00,importvg -y cadsvg hdisk1,lspv就可以发现两次lspv的不同.注意:如果当前系统包含一个相同的名字的LV,importvg命令改变被导入的LV的名字.同时 如果一个LV被改名,一个错误消息被打印到标准错误输出,如果没有冲突,该命令还创建文件mount点和/etc/filesystems中的条目.
有页面文件的VG中,如果页面文件是活动的,VG不能被导出.在导出一个包含活动页面的VG之前,确认页面空间不会在系统初始化时自动激活,要使用:chps -a n page_space_name,然后重启系统.
如果不能用smitty importvg命令激活VG,必须用varyonvg命令来使文件系统和LV可用.
如果导入的VG包含文件系统或者通过smitty importvg激活了VG,建议在mount文件系统之前使用fsck命令检查文件系统.如果移动一个VG到其它系统,确认在移动前反配置这些盘(即导出).
smitty exportvg命令删除在/etc/filesystems中的文件系统参数,但留下mount点在系统中.
6.4.4打开关闭一个VG
一个VG存在,就可以使用varyonvg命令使其可以被系统管理活动可用.这个处理包含的步骤如下:
1.一个VG的每个PV中的每个VGDA要被读取;
2.每个VGDA的头部和尾部的时间戳被读取,这个时间戳必须匹配一个有效的VGDA;
3.如果多数VGDA(成为quorum)可用,varyon就会处理,否则就处理就会失败;
4.系统会用最新的VGDA数据去覆盖所有其它VGDA,这样它们就都匹配了;
5.sync命令被运行用来重新同步任何过时的分区(镜象被采用了);
varyonvg命令有以下选项可以被用于克服VG结构损坏或给出状态信息:
1.-f参数可以被用于强制一个VG被vary on,甚至有冲突的时候.该冲突通常是因为ODM数据库中每个VG的配置数据和VGDA不同;
2.-n 参数将会禁止syncvg命令在vary on时使用.当一个VG被vary on,过时的分区被探测到时,vary on进程将会调用syncvg命令来同步过时分区.在希望谨慎地覆盖一个VG,想确认没有意外地写一个坏镜象的数据副本到好的副本中时,该参数非常有用;
3.-s参数允许一个VG被以维护模式或系统管理模式vary on.LV命令可以操作该VG,但是没有LV可以被打开进行输入输出操作.
例子:激活VG newvg:varyonvg newvg,也可以用simtty varyonvg.
varyoffvg 可以去活一个VG和他关联的LV.这要求LV是关闭的(即其中的文件系统是unmounted的).varyoffvg命令也允许-s参数使用改变VG到 维护模式或系统管理模式.去活一个VG:varyoffvg myvg.也可以用smitty varyoffvg,其中也可以把VG改变到系统管理模式.
6.4.5监控VG
lsvg命令询问ODM数据库当前所有系统中的VG.下面是一些例子:
列出VG:不带参数列出所有VG.
lsvg -o列出所有被vary on的VG.
lsvg VGNAME列出名为VGNAME的VG的所有详细信息和VG属性的状态.
列出在VG中的PV的状态:lsvg -p VGNAME.该命令对于集中系统中的自由空间非常有用.
其中DISTRIBUTION五列分别表示:outside edge,outsidemiddle,center,inside middle,inside edge.
6.4.6重组一个VG
用reorgvg命令为一个VG根据每个LV的分配属性重组PP分配.
语法:reorgvg [-i] volgrpname [lgcvolname...]
在使用reorgvg命令之前VG必须被vary on并且有自由分区.每个LV的可重定位参数必须通过chlv -r命令被设置为y才能使重组生效.否则LV就被忽略.注意:reorgvg命令不重组已分配的条带化的LV的PP的位置.该命令要运行成功指定的VG中至少有一个自由PP.如果reorgvg命令后带VG名,再没有其它参数,那就只重组VG中的第一个LV.也可以使用smitty reorgvg命令完成重组.
-i参数指定从标准输入获取PV名.只有这个指定的PV上的分区被组织.
重组VG的例子:重组vg02上的lv03/lv04/lv07:
reorgvg vg02 lv03 lv05 lv07
重组位于vg02 VG中的lv203和lv205中disk04和hdisk06 PV上的分区:echo "hdisk04 hdiak06"|reorgvg -i vg02 lv203 lv205
6.4.7同步VG
syncvg命令用来同步LV过时的副本,语法:
syncvg [-f][-i][-H][-P NumParallelLPs]{-l|-p|-v}Name...
syncvg命令同步过时的源PP的副本PP.该命令可以用于LV/PV/VG,只要指定它们的名字即可.同步进程是很费时的,依硬件属性和数据量的不同而有所变化.
当 -f参数使用的时候,一个没有损坏的物理副本被选择并传播到所有其它LP的副本检验它们是否损坏.当VG被varyonvg命令激活的时候,对于在VG中 的副本,除非同步功能不可用,否则它们总是被自动同步.sync的-p参数指出代表PV设备名的名字样式.-v参数指出代表VG设备名的名字样式.下面的 例子显示了如何使用syncvg:同步在PV hdisk04和hdisk05上的副本:syncvg -p hdisk04 hdisk05;同步在VG vg04和vg05上的副本:syncvg -v vg04 vg05.
阅读(2616) | 评论(0) | 转发(0) |