分类:
2011-03-09 13:11:26
一.逻辑卷管理概念
5个概念:
物理卷 physical volumes PV
每个独立的硬盘称作物理卷(PV),并有一个名字(如hdisk0);
卷组 logical volume group VG
所有的物理卷属于一个称作rootvg的卷组(VG);
物理分区 physical Partitions PP
所有在一个VG中的PV被分为相同大小的物理分区(PP);
逻辑卷 logical volumes LV
每个VG中可以定义一个或多个逻辑卷(LV),LV是位于PV上的信息的组合,在LV上的数据可以连续或者不连续地出现在PV
逻辑分区 LP
每个LV包含一个或多个逻辑分区(LP),每个LV相当至少一个PP,如果对LV指定了镜象,就要有双倍的PP被分配用来存储每个LP的备份.
LV 可以提供许多系统需要的服务(如页面空间),但是每个存储了一般系统/用户数据或程序的LV都包含一个单独的日志式的文件系统(JFS),每个JFS包含 一群页面大小(4K)的块.AIX4.1以后,一个给出的文件系统可以被定义为拥有小于4k的片断.系统安装完毕后,有一个VG(rootvg),包含一 套系统启动的基本的LV和其它在安装脚本中指定的VG.
二.逻辑卷管理器
操作系统命令/库子程序/其它工具允许建立和控制LV存储,成为逻辑卷管理器(LVM).LVM通过简单而灵活地在存储空间的逻辑视图和实际物理盘之间映射来管理磁盘资源.
1.LVM配置数据
描述LMV的组件的数据存放在好几个地方.理解这些关于VG/LV/PV的描述性的数据放在几个地方是很重要的.
1)ODM 数据库
ODM数据库包含了所有PV,VG,LV的配置信息.这些信息与VGDA中的信息互为镜象.ODM数据也和LV控制块中的信息相互镜象;
2)VG描述区(VGDescriptorArea)
VGDA 位于每个物理卷的开头,它包含所有属于本VG的LV和PV的信息.VGDA被几乎所有的LVM命令更新.VGDA产生每个VG的自述.AIX可以读取每个 磁盘的VGDA,从VGDA中,可以获知哪些PV和LV属于这个卷组.每个盘至少包含一个VGDA,时间的变化很重要,VGDA中的时间戳用于确定哪个 VGDA正确地反映了VG的状态.如果VG中一个盘出错,VGDA可能无法同步磁盘,这样磁盘上的VGDA就无法在磁盘不运行的时候更新.所以需要一种方 法来更新VGDA刚在线的磁盘,这就是处理进程要做的.
当磁盘被创建为一个PV(以mkdev命令)的时候,VGDA也被创建,这时 会在盘开始保留一段空间给VGDA.当PV被分派到一个VG(用mkvg或extendvg)的时候实际的VG信息就被写到VGDA中去.当一个PV从 VG中删除的时候(用reducevg),VG信息也从VGDA中删除.
3)VG状态区(VGSA)
VGSA包含了PP和PV的状态信息.如VGSA知道一个VG中的PV是否不可用.VGDA和VGSA都有非常重要的开始和结束时间戳.时间戳可以让LVM了解最近的VGDA和VGSA的拷贝在时间上的变化.
LVM要求选择VGDA的时间戳和选择VGSA的时间戳是相同的.
4)LV控制块(LVCB)
LVCB位于每个LV的开头.它包含了LV的一些信息,占用几百个字节.可以使用getlvcb命令获取某个LV的LVCB信息并显示出来.如:getlvcb -TA hd2显示了hd2 LV的LVCB信息.
2.磁盘quorum
每个VG中的物理盘至少有一个VGDA/VGSA.一个盘中VGDA的数量根据VG中的盘的总数而变化.变化规律如下:
VG中有一个PV两个VGDA在一个盘上
VG中有两个PV两个VGDA在一个盘上,一个在另外一个盘上
VG中有两个以上的PV每个盘上有一个VGDA
quorum是一种状态,这种状态确保一个VG中一半以上的PV是可以访问的,是活动的VGDA/VGSA的数量决策,它可以确保在发生磁盘出错的时候的数据完整性.
如果quorum失败,VG会关闭自身,使磁盘不再可以由LVM访问,防止磁 盘进一步读写而导致的数据丢失.另外错误日志中也会记录该错误.这也暗示了磁盘镜象的某些注意的地方,在一个双盘镜象的系统中,如果第一个盘出错那么就丢 失了66%的VGDA,整个VG就变得不可用.这就失去了镜象的目的.由于这种原因,两个以上的盘(通常是奇数)提供了更高的可用性,特别是想使用镜象的 时候.
也可以关闭任何VG的quorum保护.关闭quorum保护可以使一个VG在出现前面的情况的时候仍然在线.这种能力提供了相对廉价的镜象方案,但是有数据丢失的危险.磁盘出错后,数据可以访问,但是不再被镜象了.
3.磁盘镜象
磁盘镜象是两个或三个PP的联合与每个LV中的LP的联合.当数据被写到LV中的时候,也被写入与该LV的LP关联的PP中,所以镜象数据提高了数据的可用性.AIX和LVM提供了在LV级别上的镜象工具.如果镜象建立,当LV创建的时候就可以实现.
mklv 命令允许为每个LV选择一到两个额外副本.镜象也可以被加入到一个已经存在的LV中,需要使用mklvcopy命令.采用以下镜象选项可以进一步提高数据 可用性:三个数据副本比两个数据副本更可靠;把LP副本分布在不同的PV上比分配在一个PV上可靠.进一步地,可以把数据副本存放在不同适配器上的不同 PV中.
mirrorvg命令镜象一个VG中所有的LV.相同的功能也可以对VG中的每个LV用mklvcopy命令人工完成.使用mklvcopy时,要被镜象的目标物理驱动器必须是该VG的成员.使用语法:
mirrorvg [ -S | -s ] [ -Q ] [ -c Copies] [ -m ] VolumeGroup [ PhysicalVolume .. ]
默认情况下,mirrorvg试图镜象LV到VG中的任何盘上.mirrorvg命令使用LV被镜象时的默认设置镜象LV.如果想改变镜象创建策略,必须用mklvcopy手工去创建所有的镜象.
也可以使用smitty mirrorvg完成VG镜象:
三重镜象一个VG:mirrorvg workvg -c 3 workvg,在workvg中的LV中的LP就有三个副本.
默认镜象rootvg:mirrorvg rootvg rootvg就有两个数据副本
在镜象VG中替换失败盘:unmirrorvg workvg hdisk7>>reducevg workvg hdiak7>>rmdev -l hdisk7 -d.替换失败的磁盘,然后命名为hdisk7:extendvg workvg hdisk7>>mirror workvg.默认情况下,mirrorvg将试图为workvg中的LV创建两个副本,试图创建新的镜象到被替换的磁盘.但是,如果原系统是三重镜象 的,可能就没有新的镜象创建到hdisk7上,因为该LV中的其它副本可能已经存在.
同步新创建的镜象:mirrorvg -S -c 3 workvgc参数指出mirrorvg后每个LV必须有的副本数.而-S参数指出立即返回mirrorvg命令并完成VG的后台同步.当镜象同步的时候不会显示出来,但是一旦准备好,可以立即被系统使用.
创建一个原样的镜象VG: mirrorvg -m datavg hdisk2 hdisk3-m参数允许在PP层次镜象一个LV,该LV的PP可以组织已经在源副本上组织好的数据.
rootvg镜象:rootvg镜象完成,要完成以下任务:
1.bosboot命令从RAM文件系统和核心创建一个引导镜象.该命令在自定义新的镜象盘上的引导记录时是被要求使用的.
2.bosboot命令总是为硬盘保存设备配置数据,不更新NVRAM中的引导设备列表,要修改列表,使用bootlist.
3. 最后,mirrorvg命令关闭quorum功能.要关闭rootvg的该功能系统必须重启.注意:如果bosboot命令没有成功创建引导盘,不要重 启.这个问题应该被解决并且bosboot命令成功完成运行.bosboot要求一些/tmp和目标保存的文件系统中的空间(如果该镜象存在).
非 rootvg镜象:如果一个非rootvg被镜象,quorum状态是去活的.要使所有quorum去活,所有开放的LV必须被关闭.然后VG varyoff再vary on使quorum改变生效.如果VG的vary on没有完成,尽管镜象正常运行,但quorum的改变没有生效.
rootvg 和非rootvg镜象:系统dump设备(主:/dev/hd6次:/dev/sysdumpnull)不应被镜象,在某些系统中,页面设备和dump设 备是相同的,而用户想对页面设备做镜象.当mirrorvg探测到一个dump设备和页面设备相同时,该LV就会自动被镜象.如果mirrorvg发现 dump设备和页面设备在不同的LV,页面设备自动镜象,而dumpLV不会.dump设备可以用sysdumpdev命令来查询和修改.