本节将要创建和管理AIX上的存储组织结构,用来为Oracle的实施做存储上的准备。
通过lsvg命令可以查看系统中当前定义的卷组信息:
■ # lsvg或# lsvg –o命令用来显示系统卷组信息或当前激活状态的卷组信息。
■ # lsvg 卷组名 命令可以显示卷组的信息和状态。
例如,下面的命令显示了系统中当前激活的卷组信息,当前激活卷组为rootvg,其构造如图3-12 所示。
图3-12 查看rootvg卷组的信息
lsvg命令用来显示系统中的卷组。不带选项时,列出卷组名,-o选项列出活动卷组。还可以列出指定卷组的状态信息。上述命令给出了卷组的状态信息,显示了卷组的如下信息:
■ 卷组的名称为rootvg;
■ 卷组的状态(active/inactive/complete),当前为激活状态;
■ 卷组具有read-write访问权限;
■ 该卷组中允许的最大逻辑卷数量为 256;
■ 该卷组包含物理卷总数为 2 个;
■ 该卷组当前活动物理卷数量也是 2 个;
■ 卷组标识符 0004563f00004c0000000119dab27bda;
■ 该卷组物理分区设置为 16MB(默认值是 4MB);
■ 物理分区尺寸为 16MB,该卷组中当前打开逻辑卷 9 个
■ 该卷组中当前物理分区的总数为 1084 个PP,最多为 32512;
■ 该卷组中未分配物理分区(空闲物理分区数)的数量为 306 个;
■ 该卷组中的卷组描述符区数量为 3;
■ 该卷组在IPL时自动激活;
■ 该卷组允许的每个物理卷的最大物理分区数量为 1016;
■ 该卷组中允许的最大物理卷数量为 32 块;
■ 该卷组的逻辑磁道组大小为 256KB。
下面的命令列出了卷组datavg中包含的物理卷信息,如图3-13 所示。
图3-13 卷组datavg在物理盘上的空间分配状态
图3-13 中的结果显示:
■ datavg中包含的物理卷为hdisk2、hdisk3、hdisk4 和hdisk5 四块物理盘;
■ 这些盘当前处于活动的物理状态;
■ 每块盘各自拥有 7 个物理分区;
■ 每块物理盘的空闲物理分区数不等(1 到 2 个);
■ 每块盘上空闲物理分区在磁盘上的分布状态(边缘、中部、中心等位置)等。
这个卷组中包含的逻辑卷如图3-14 所示。
图3-14 卷组datavg中逻辑卷的分配和打开状态
图3-14 显示了datavg卷组上已经创建了的若干逻辑卷,内容包括:
■ 每个逻辑卷的逻辑卷名为lv_systems、lv_sysaux等;
■ 逻辑卷类型(例如文件系统、换页空间)为raw(裸设备);
■ 每个逻辑卷的逻辑分区数(LP数)、物理分区数(PP数)、放置的物理卷数(PV数);
■ 每个逻辑卷当前的活动状态(关闭)。
■ 对应文件系统挂载相关信息,本例中逻辑卷按照裸设备的使用情况,未定义文件系统。
如果定义了文件系统,则用如图3-15 所示的命令列出文件系统的挂载状态。
图3-15 列出文件系统的挂载状态
从结果来看,datavg上定义了两个逻辑卷lv_striped和loglv00,类型分别为JFS2文件系统和JFS2 文件系统日志。lv_striped逻辑卷拥有 60 个逻辑分区,对应 60 个物理分区,这 60 个物理分区分布在 5 块物理盘上(条带化处理),其文件系统的定义挂载点为/oracledata(将用来存放Oracle数据),但当前该文件系统并未挂载,其当前状态为关闭。
loglv00 逻辑卷为AIX在创建文件系统时自动创建的。
增加卷组是存储管理任务起点的部分。卷组要创建在物理卷之上,首先查看系统中物理卷的配置情况,如图3-16 所示。
图3-16 查看系统中磁盘的卷组归属
从上面的结果可以看到,当前系统中已经存在两个卷组“rootvg”和“datavg”,且当前处于激活状态,还有另外四块硬盘hdisk10~hdisk13 尚未分配。
在创建卷组之前,系统上必须存在至少一个未使用且当前可用的物理卷。上面的结果说明当前可用的有hdisk10~hdisk13 四块磁盘。
AIX提供了mkvg命令来创建卷组,也可以使用SMIT环境进行同样的操作。创建前需要进行如下的设计:
■ 卷组名,在系统中不和其他卷组冲突的名字;
■ 卷组中包含的物理卷;
■ 未来该卷组可能会扩充到多少磁盘;
■ 确定该卷组的分区(PP)大小;
■ 该卷组在启动时是否自动激活。
如果通过SMITTY工具增加卷组,可以使用如下的命令,结果如图3-17 所示。
图3-17 在SMITTY中创建卷组
可以看到,AIX支持三种类型的卷组,分别是常规卷组、大卷组、可变卷组。三种卷组适合于不同数据规模的系统,其具体区别如表3-1 所示。
表3-1 三种不同类型卷组的配置上限值
如果使用mkvg命令建立卷组,则创建时每个新卷组必须至少包含一个物理卷,-y选项用于指定新卷组名,如果不指定,则由系统命名。-s选项指定物理分区(PP)大小,单位是MB,必须为 2 的整次幂,默认值是 4MB。-n选项表示系统启动时卷组不自动激活。
下面的命令创建卷组test,使用hdisk10、hdisk11、hdisk12 三块硬盘。
在上面的过程中,我们创建了卷组test,该卷组使用了三块盘hdisk10、hdisk11 和hdisk12,物理分区(PP)大小为 4MB,不自动激活。创建完成后,检查系统中当前卷组的状态,结果如图3-18 所示。
删除卷组没有高级命令,只能通过reducevg命令删除卷组内的物理卷。当卷组的最后一个物理卷被删除时,卷组即被删除。
图3-18 卷组的创建
卷组的属性可以通过SMITTY工具进行设置,命令如下,结果如图3-19 及图3-20 所示。
图3-19 SMITTY中设定卷组的属性设定
图3-20 SMITTY中卷组属性的更改
对于卷组而言,常见的操作是通过添加磁盘来扩充卷组容量及通过删除磁盘来进行损坏磁盘替换。
extendvg命令用于为卷组增加新的物理卷,前提是这个物理卷处于空闲状态。下面的命令把磁盘hdisk13 添加到卷组test中:
通过下面的命令可知,磁盘已经被添加到test中,如图3-21 所示。
图3-21 扩展卷组的容量
显然,需要添加到卷组的物理卷不能属于系统中的某个卷组。如果这块磁盘属于一个卷组,且该卷组已激活,则extendvg毫无疑问会失败。如果这个卷组未激活,则AIX会提示用户确认是否要添加这块盘。
从卷组中删除物理卷应采用reducevg命令。如果这是卷组中的最后一块物理卷,则卷组被同时删除。下面命令将hdisk13 磁盘从test卷组中删除,如图3-22 所示。
图3-22 缩减卷组的容量
需要注意的是,一个卷组在删除物理卷前,必须处于激活(varyon)状态。如果要删除的物理卷上存在逻辑卷,甚至逻辑卷还跨越了卷组中的其他磁盘,则删除操作将破坏逻辑卷。
reducevg命令有两个参数,-d和-f选项。使用-d选项将导致卷组删除物理卷前自动删除该物理卷上的所有逻辑卷;-f选项带有强制操作的意味,不请求用户确认是否应该删除卷组上的逻辑卷定义,直接删除。因此,使用-d和-f选项是具有风险的。
AIX提供了reorgvg命令来重新分布卷组中逻辑卷的物理分区,根据逻辑卷优先分配策略,这有助于提高磁盘的使用性能。优先权取决于命令行中lvname参数的顺序,其命令语法为:
在下例中,我们认为test卷组中的fslv00 逻辑卷应具有优先分配的特征,因此需要进行卷组的重组,过程如图3-23 所示。
图3-23 查看卷组一个逻辑卷的动议
下面来重组卷组上的逻辑卷,如图3-24 所示。
在进行卷组重组操作前,该卷组必须处于激活状态,而且卷组必须具有空闲分区。但是,如果逻辑卷已被条带化处理,reorgvg 命令是不会重新组织条带化逻辑卷物理分区的。
图3-24 重组卷组上的逻辑卷
AIX中的卷组可以被激活,也就是使之处于使用状态,也可以被关闭,使之处于非激活状态。下面的命令激活了卷组test(使该卷组能被用户使用):
下面的命令停止了卷组test(使该卷组不能被用户使用):
varyonvg命令用来激活系统启动时非活动的卷组或启动后新增的卷组。varyoffvg命令则正好相反,它使卷组不激活。在使卷组激活前,卷组上的逻辑卷是不能被打开的。同样地,如果不停止卷组活动就删除磁盘,可能会引起卷组内卷组描述区的错误,甚至是逻辑卷的数据丢失。
在卷组激活的过程中,LVM将读取卷组中每个物理卷上的VGDA数据,确认所有VGDA头部和尾部的时间戳信息。在所有这些时间戳匹配的情况下,VGDA才是有效的。在大多数VGDA(>51%)有效的情况下,卷组激活继续完成。如果可用VGDA少于一半,则激活操作失败。
在激活过程中,如果出现了VGDA的不一致,则系统将使用最新的VGDA数据来同步其他VGDA,使其匹配后再激活卷组。
如果varyonvg命令失败,则下面的选项可用于卷组的强制激活。
■ -f选项:强制激活卷组,即使发现了卷组中所有的VGDA存在大于一半的不一致状态。
■ -n选项:禁止在激活卷组时同步(syncvg)卷组,避免在同步VGDA的过程中发生错误,进而造成更大的破坏。此选项在工程上很有意义。
■ -s选项:允许以维护或系统管理模式激活某个卷组。逻辑卷命令可以对卷组进行操作,但是不能打开任何逻辑卷来进行输入或输出操作。
AIX允许将一个卷组整体导出(rootvg除外),或者通过exportvg命令和importvg命令将外部的一个卷组整体导入到AIX系统。例如,我们将一个卷组建立在一个独立的存储设备上,卷组上存放着数据库备份数据。现在将这个存储设备整体切割给另外一套AIX系统,以便将数据库迁移到其他AIX环境中。这时,可以采用先从本系统导出、再在目标中导入的工程方法。
导出操作的结果是将卷组的系统定义从ODM数据库中删除,这就是exportvg命令导出卷组的内在含义。导出卷组不会对卷组中的任何数据产生影响,仅仅是删除了ODM数据库中关于卷组的定义而已。
因此,导入操作就是依据磁盘上的VGDA信息在目标系统的ODM中添加新卷组的定义而已,这就是importvg命令导入卷组的实质。
AIX中通过importvg命令和exportvg命令导入/导出卷组。在SMITTY环境下也可以完成同样的操作:
下面的示例将卷组test停止,然后使用exprotvg命令导出卷组test,如图3-25 所示。
图3-25 卷组的关闭和导出操作
执行完毕后,exprotvg命令从系统ODM数据库中删除了卷组test的所有信息,卷组test完成从当前系统的导出操作。
如果系统要访问一个导出的卷组,则首先必须用importvg命令将该卷组导入到系统中。
在导入操作中,如果导入的卷组名已经在目标AIX系统中使用过,则importvg命令失败,因为AIX不允许重名卷组。importvg命令以不带–y选项或不指定卷组名称的方式来导入卷组,在卷组导入后再谋求为卷组重新命名。命令示例如下:
如果导入时,被导入卷组的逻辑卷和当前系统中的逻辑卷名称冲突,importvg命令将自动为这些逻辑卷分配一个系统默认名称,以达到防止冲突的作用。在系统之间移动卷组时务必要记住的一件事情是,在将卷组导出到目标系统之前,要在源系统上运行exportvg命令。
逻辑卷的创建和维护既可以通过SMITTY工具菜单完成,也可以直接通过mklv命令来创建。通过下面的命令可以进入到SMITTY的逻辑卷创建菜单,如图3-26 所示。
图3-26 在SMITTY中创建逻辑卷
在创建逻辑卷的过程中,选择用来放置逻辑卷的卷组名(在SMITTY界面中可以使用F4 选择键来协助选择卷组),然后进入逻辑卷的定义区域。在该区域中确定逻辑卷名称,确定这个新逻辑卷的逻辑分区(LP)数量;确定逻辑卷宿主的物理卷(如果不指定则使用卷组中第一个PV);确定为数据保留的LP副本数量(取值范围为 1 到 3)。最后,设置其他可选项,例如物理分区的分配策略、镜像策略、写调度策略以及条带化策略等。
下面是在命令环境下创建逻辑卷的命令:
上述命令在rootvg中创建了一个逻辑卷testlv,它具有 10 个逻辑分区,每个逻辑分区由两个物理分区(镜像)组成。
逻辑卷的删除可以用rmlv命令或在smitty rmlv中进行。进入到SMITTY的逻辑卷删除菜单,如图3-27 所示。
同样地,可以使用F4 键来选择要删除的LV。如果逻辑卷被创建得太大,则可以采用备份后重构的方法缩减逻辑卷尺寸。首先备份该逻辑卷中的所有数据,然后删除该逻辑卷,最后重构逻辑卷并恢复数据。
图3-27 在SMITTY中删除逻辑卷
如果逻辑卷需要扩充,则可以使用extendlv命令或smitty extendlv工具来动态增加逻辑卷的尺寸。下面使用extendlv命令向逻辑卷中添加三个逻辑分区,逻辑卷将得到 3×PP尺寸大小的空间。
逻辑卷作为卷组上存储使用的具体实现方式,可以通过卷组工作状态进行查看。下面的命令列出了一个卷组datavg上所有逻辑卷的信息,如图3-28 所示。
图3-28 卷组上逻辑卷的当前状态查看
在图3-28 的显示结果中,我们能够得出以下结论:datavg中包含若干逻辑卷,类型为“raw”,当前处于关闭状态,未在这些逻辑卷上定义文件系统,同时能够看出各自的逻辑分区(LP)数和对应的物理分区(PP)数、物理存储跨越的物理卷数量。
如果要显示一个具体的逻辑卷信息,可以使用lslv命令。下例中我们查询了逻辑卷lv_systems的详细信息,如下列表所示:
结果表明,逻辑卷lv_systems 属于datavg卷组,类型为“raw”,当前处于关闭状态,定义了 4 个LP,每个LP对应 2 个PP(已被镜像处理),每个逻辑分区大小为 128MB,因此lv_systems大小为 512MB。该逻辑卷未定义文件系统。
逻辑卷创建后仍然有机会设置逻辑卷的特性,下面命令进入到逻辑卷的属性设置菜单,如图3-29 所示。
图3-29 在SMITTY中设置逻辑卷属性
逻辑卷属性的修改,包括物理分区分配策略、I/O调度策略等。其中最重要的,可能就是逻辑卷的空间扩展了。只要卷组中有足够的空间,随时都可以使用extendlv命令扩展逻辑卷。其他属性的修改则可以通过chlv命令实现。
在建立逻辑卷时,我们可以镜像逻辑卷中的逻辑分区,也就是一个逻辑分区映射到同一卷组的多个物理分区,这些物理分区互为镜像。这意味着每个逻辑分区将在磁盘上保存两到三个镜像分区,保证磁盘出错时数据不被损坏。通常,每个镜像副本应该驻留在不同的物理磁盘中,保证单盘损坏时不会导致系统损坏。如图3-30 所示,逻辑卷可以被镜像,也可以不被镜像。
在下面的示例中,我们要创建的逻辑卷lv_system02,该逻辑卷将定义在三块盘上,每个逻辑卷有 3 个副本,创建过程如图3-31 所示。
图3-30 通过镜像保护逻辑卷
图3-31 在SMITTY中创建镜像的逻辑卷
使用如下的语法查询这个逻辑卷:#lslv lv_system02 命令,返回信息如图3-32 所示。
图3-32 被镜像逻辑卷的空间占用
上面的命令给出了逻辑卷的物理分布状态,即在每个物理卷上的逻辑分区分布信息。数据显示,lv_system02 逻辑卷共有 3 个LP和 9 个PP,因此LP和PP的对应关系是 1:3,采用了并行写机制,同时启动镜像校验算法。
那么,这 9 个PP在 3 块盘上究竟如何存储呢?9 个PP集中在一块盘上,还是分散在 3 块盘上?下面的命令有效地回答了上述问题,如图3-33 所示。
可见,在hdisk10 上,003:000:000 中的 003 显示了第一个副本的信息,此处为 3 个物理分区。000:000 这两个域指示第二、第三副本的位置。从这里可以看出,逻辑卷的镜像副本是否在同一物理卷上(不在)。如果它们都在不同的物理卷上,则最后两个域显示为000。该命令也给出逻辑卷的逻辑分区、相关的物理分区及其所在的物理卷的对应关系。
图3-33 逻辑卷镜像中磁盘空间占用的分布
对于一个已经存在的逻辑卷,可以为其增加或者删除逻辑卷镜像副本,通过mklvcopy命令,或者在SMITTY工具下设置逻辑卷镜像:
mklvcopy命令可以为原先没有镜像的逻辑卷增加副本,或者将原来两个副本的镜像调整为 3 个副本。当然,前提条件是有足够的物理分区来存放镜像副本。
和mklvcopy 命令相反,rmlvcopy命令用来减少逻辑卷副本的总数,例如,将副本数从 3 减为 2,或从 2 减为 1。
在下面的示例中,我们创建了一个逻辑卷lv_test,置于rootvg逻辑卷中,同时创建了两个逻辑分区(2×16MB大小)。然后,使用mklvcopy命令为逻辑卷lv_test添加一个镜像副本。过程如图3-34 所示。
图3-34 逻辑卷被镜像处理的全过程
条带化是分布的数据存储技术,它使得访问条带设备上的连续数据时,多个磁盘驱动器并行操作,提高了I/O吞吐量。对于磁盘阵列设备来说,这称为RAID0。AIX本身也在逻辑卷的层面上支持条带化——将逻辑卷上的数据按照条带化分布的方式存储在多块磁盘上。
通过条带化设置逻辑卷通常可以提升I/O性能。AIX中逻辑卷可以按照条带化进行设置,但一经建立就不能再修改。
当逻辑卷设置为条带化方式访问时,将具有如下特点:
■ 连续的条带单元建立在不同的物理卷上,提高了顺序读写的吞吐量。
■ 条带尺寸(即条带单元的大小)在建立逻辑卷时设定。
下面的命令创建了条带化的逻辑卷lv_data1,条带尺寸为 2MB,使用了 4 块物理盘(hdisk10~hdisk13)。
在SMITTY环境中也可以完成同样的任务,但是在SMITTY环境下条带尺寸不能大于 128KB。
在AIX中,用lspv命令能够列出系统中当前的物理卷信息,不带任何参数的lspv命令可用来列出系统中所有物理卷名、物理卷标识符和所属卷组,如图3-35 所示。
图3-35 当前物理卷信息
上面的结果表明,系统当前有 8 块磁盘,分属两个卷组。下面的命令则显示了某一物理卷的详细信息,如hdisk0 的配置信息,如图3-36 所示。
图3-36 物理卷信息查看
该命令列出有关物理卷的详细状态信息,主要包括:
■ PHYSICAL VOLUME列显示了物理卷名;
■ VOLUME GROUP列声明了该物理卷所属的卷组名;
■ PV IDENTIFIER列显示了物理卷标识符;
■ VG IDENTIFIER列声明了该物理卷所属的卷组标识符;
■ PV STATE列表示了物理卷的可用性状态;
■ STALE PARTITIONS列出了不一致分区的个数;
■ ALLOCATABLE显示了是否可以使用该物理卷上的物理分区;
■ PP SIZE列显示了物理卷所属卷组的物理分区大小;
■ LOGICAL VOLUMES显示了当前该卷组中逻辑卷的数量;
■ TOTAL PPs列输出该物理卷上的物理分区总数;
■ VG DESCRIPTORS列显示了物理卷上VGDA(卷组描述区)的数量。
■ HOT SPARE列显示了该物理卷是否为热备盘;
■ FREE PPs列显示了物理卷上尚可用的分区数;
■ USED PPs列显示了物理卷上已用的分区数;
■ MAXREQUEST列显示了此物理卷的LTG大小;
■ FREE DISTRIBUTION 列输出了空闲物理分区在磁盘上的分布(外边缘到内边缘);
■ USED DISTRIBUTION列输出了已用物理分区在磁盘上的分布(外边缘到内边缘)。
下面的命令可以查看逻辑卷和物理卷的映射关系:
该命令显示物理卷hdisk0 中逻辑卷(LV)的定义信息,如图3-37 所示。
图3-37 逻辑卷和物理卷的映射关系
上面的命令显示了物理卷上的所有逻辑卷信息,包括逻辑分区数、物理分区数和在磁盘上的物理分区映射位置(从外边缘到内边缘)。更具体的物理分区信息,可以使用下面的命令,如图3-38 所示。
图3-38 逻辑卷的物理分布信息查看
lspv –p命令列出了磁盘上所有的逻辑卷及其逻辑分区映射到的物理分区信息。按物理分区顺序列出空闲和已分配分区的位置,即外部边缘、外部中部、中心等。
如果物理卷来自于外挂存储设备,物理卷是一个逻辑设备,则物理分区映射位置的概念也就没什么用处了。