码迷,mamicode.com
首页 > 其他好文 > 详细

第八章 存储管理

时间:2015-09-26 13:25:01      阅读:367      评论:0      收藏:0      [点我收藏+]

标签:

一、基本概念

1)物理卷(Physical Volume,PV):即直接访问设备(Direct Access Storage Device,DASD),有固定和移动之分。有代表性的DASD就是硬盘,硬盘分为内置硬盘和扩展硬盘,自带硬盘用于安装AIX操作系统,扩展硬盘用于存储数据,主要是用来存放用户数据。一个硬盘就是一个物理卷,设备中有多少块硬盘,就有多少个物理卷。物理卷一般是hdiskN的形式。

2)卷组(Volume Group,VG):AIX系统中最大的存储单位,一个卷组由一组屋里硬盘组成,也就是说由一个或多个物理卷构成。AIX4.3.3及以前的版本,一个VG最多32个PV,AIX5L中,最多可有128个PV。一个系统中,至少要有一个VG,这就是rootvg,rootvg是最基本的VG,BOS安装在rootvg中,rootvg在安装操作系统的时候创建。除了rootvg以外,可以创建其他卷组,如果一个设备只连了两个PV,那么最多创建两个VG(因为rootvg一定有,且最少包含一个PV)。

3)物理分区(Physical Partition,PP):把PV分成连续,大小相当的存储单位。VG是由PP组成,一个VG中的所有PP都大小相等。PP是PV上最小的分配单位。

4)逻辑分区(Logical Partition,LP):LP是映射PP的逻辑单位。一个LP可以对应一个PP,也可以对应多个PP。LP所对应的PP是真正存放数据的地方,但是文件系统层面只看得到LP。一个VG中,LP大小与PP大小一致,默认是4MB。PP和LP的大小范围是1MB到1024MB。从用户角度/应用程序角度看,LP是连续的,而LP所映射的PP对于用户/应用程序是透明的,PP可能是不连续的。

5)逻辑卷(Logical Volume,LV):指的是在一个VG中由多个LP组成的集合,在一个LV中,LP是连续的,但是LP映射的PP是否连续未知。因此:都成LV的PP可以在一个PV上,也可以分别存在于多个PV上,如果对等分布在多个PV上,就构成了我们所说的mirror。——LV是逻辑上的空间,是面向用户和应用程序的存储结构,而PV是物理上的空间,是面向操作系统和机器的存储结构,他们之间通过PP和LP之间的映射关系建立联系。

6)文件系统(File System,FS):FS是在AIX系统中,面向用户的存储空间,一个文件系统就是一个目录树,用户在文件系统中可以建立子目录和文件。AIX通过LV来管理存储空间,但是用户通过操作系统中的命令是无法对LV进行读写操作的,只有在LV上建立FS,用户通过对FS的操作才能完成对LV的访问(因此,我们常称一个没有FS的LV为生设备或原始设备或裸设备,对应于生设备的概念,FS称之为熟设备

一个LV对应一个FS,一个LV只能建立一个FS,删除LV,同时也就删除了上边建立的FS。

二、存储机构

        AIX系统中,文件系统是建立在LV上,LV是属于某一个VG的,VG是有一个或几个PV组成的。LV在实际物理硬盘中可是是不连续的,它能够跨越多个物理硬盘(PV)而存在。系统管理员可以动态的改变LV的大小,LV还可以被mirror,所以在AIX系统中可以动态的增加FS的空间,拷贝FS。在AIX中,VG是最大的存储单位,系统管理员能够很容易地向VG中添加硬盘,还可以动态地分配一个VG中所有的LV。AIX系统中存储管理是由逻辑卷管理器(LVM)完成的。

        LV是位于PP上信息的集合,通常在LV上创建日志型文件系统(JFS)、页面空间(Paging Space)、日志记录(Journal Log)或引导逻辑卷(Boot Logical Volume)等。LV上的LP可以映射到一个PP,也可以映射到多个PP,这种方式就成为逻辑卷镜像(Mirroring)。在Mirroring下,可以为一个LP创建2到3个PP。如果不做Mirror,那么LP和PP是一一对应的。LV中的LP对用户来说是连续的,且是按照顺序排列的,但对应的物理分区是可以分散的,无序的。

AIX的存储管理从底层到高层是由LVM控制的。AIX的系统由低到高是由PV、VG、PP、LP、LV,FS、目录和文件组成。其中PV、VG、PP、LP、LV是面向操作系统的概念。而FS,目录,文件是面向用户的概念。

技术分享

三、逻辑卷管理器(LVM)

1)LVM由下面各个组件构成:

        ·高层命令——位于/usr/sbin,大多数都是shell脚本或由C写的二进制程序。

        ·中间层命令——被高层命令调用,位于/usr/sbin,全部都是二进制程序。

        ·LVM接口函数库

        ·逻辑卷设备驱动程序(Logical Volume Device Driver,LVDD)

        ·磁盘设备驱动程序

        ·适配器设备驱动程序

技术分享

2)LVM的配置数据

卷组描述区(VGDA),卷组状态区(VGSA)和逻辑卷控制块(LVCB)构成了LVM的配置数据。

在每个PV的开始部分存放着这个物理卷所属VG的VGDA和VGSA数据。VGDA是卷组描述区信息,包含着VG中所有的LV和PV。VGSA是卷组状态区信息,包含着VG中PV和PP的状态信息。VGDA记录着VG中每一个LV的LP与PP的映射关系,在激活一VG的时候,VGSA可以确定VG中哪些PP是无效的(陈旧的),哪些PV已经丢失,进而可以确定VG中的PV是否可用。

        VGDA和VGSA都有开始时间戳和结束时间戳,在激活某一个VG的时候,这类的时间戳可以用来确定哪一份VGDA和VGSA是最新的。LVM要求所选择的VGDA和CGSA都要有相同的时间戳。

        AIX系统从一个硬盘读取VGDA,来得知这个VG包含哪些PV和LV,一个卷组中所有PV上的VGDA都相同,也就是说VGDA能够同步。如果VG中某个硬盘出现错误而不能运行,则会导致VGDA不能同步,也无法更新这个硬盘上的VGDA。因此当恢复损坏的硬盘之后,再激活卷组的同时,要更新这个硬盘上的VGDA数据。

        在把一个硬盘变成PV的时候,就在这个硬盘的开始保留了一个存放VGDA的空间,当把这个PV添加到VG中去的时候,才把VGDA的具体信息写入这个个区域。当把这个PV从VG中删除的时候,同时也吧VGDA信息删除。

        描述LVM的构成信息不会存放在一个地方,关于VG、LV,PV的数据分别存放在操作系统的各个地方。AIX的大多数系统配置信息都存放在ODM数据库中。导出/导入卷组都需要同时删除/添加VGDA信息到ODM数据库。

        逻辑卷控制块(LVBC)位于每个逻辑卷的开始,它包含着有关于该逻辑卷的信息,并占了数百个字节。

四、磁盘Quorum

        当一个卷组只包含一个PV的时候,则这个PV就包含两份VGDA和VGSA信息;如果两个PV上创建一个VG,那么这个VG的一块硬盘上包含两份VGDA和VGSA,另一块硬盘上包含一份VGDA和VGSA;如果由三个或更多的PV来组成VG,则每个PV包含一份VGDA和VGSA。

        磁盘Quorum是一个卷组中可以正常访问的VGDA和VGSA份数占改卷组中VGDA和VGSA总份数的比率,开启了磁盘Quorum的VG,只有当这个比率大于51%的时候,VG才可以被激活。有一点需要注意,由两个PV组合而成的VG, 如果那个包含两份VGDA和VGSA的PV挂掉了,那么就有失去了66%,这时候,这个VG是不能被激活的。因此三个或多磁盘的卷组更能提供高可靠性。

技术分享

可以在任何VG上关闭磁盘Quorum功能,关闭磁盘Quorum的检查功能,可以保证大多数VGDA和VGSA或磁盘Quorum丢失的情况下卷组仍然处于激活状态。这时卷组可以正常工作——这样就提供了廉价的镜像制作方案,但却是增加了丢失数据的风险。

五、逻辑存储管理的限制

技术分享

六、物理卷(PV)

        在把一个硬盘添加到某VG之前,必须在系统中把这个硬盘配置为PV,给它分配一个唯一的物理卷标识符和物理卷名,同时要使他处于可用状态。当一个硬盘变成PV后,它就被分成一些512字节大小物理块。

        根据逻辑卷在硬盘上的位置不同,可以讲硬盘的截面分为5个同心的区域:外边缘(Outer-Edge),外中间(Outer-Middle),中央(Center),内中间(Inner-Middle),内边缘(Inner-Edge)

技术分享

        边缘(Edge)区域的搜索时间最长,所以,在边缘存放的应用程序需要频繁访问的数据时不明智的选择,中央区域搜索时间最短,这里应该放最常用的数据。

向系统中添加一块硬盘:

1)方法一:离线添加硬盘后,开机时系统自动运行cfgmgr,然后进入系统后lspv查看,如果发现新发现的PV没有PVID,那么需要执行以下命令(假设是hdisk2):

#chdev -l hdisk2 -a pv=yes    ---->该命令给硬盘hdisk2分配一个唯一的PVID,并将PVID写在该硬盘的引导记录中。

2)方法二:在线添加硬盘后,运行#cfgmgr -没有PVID,然后,lspv查看新添加的硬盘,如果依然出现了

没有PVID的硬盘,则再使用方法一手动添加成PV。

3)方法三:如果cfgmgr也认不出硬盘,则需要mkdev或者#smitty makdsk手动添加硬盘。

迁移物理卷上的内容:

#lsvg -p rootvg    ---->看一下卷组中包含哪些PV

#lsdev -Cc disk    ---->列出系统中有哪些PV

#extendvg rootvg hdisk2    ---->把这个新的PV加入到rootvg中去

#lspv hdisk0|grep -i "used pps"    ---->看一下hdisk0用了多少PP

#lspv hdisk2|grep -i "free pps"    ---->看一下hdisk2有多少可用PP,如果这个数量多于hdisk0数量,那么就可以移动了

#lspv -l hdisk0|grep hd5    ---->看一下引导逻辑卷有没有在hdisk0上

#migratepv -l hd5 hdisk0 hdisk2    ---->如果有,把这个引导逻辑卷迁移到hdisk2上

#bosboot -a -d /dev/hdisk2    ---->在hdisk2上建立引导镜像

#bootlist -m normal hdisk2    ---->添加hdisk2到启动设备列表

#mkboot -c -d /dev/hdisk0    ---->删除原来这个hdisk0,(该命令不推荐,那不推荐怎么办,一般这样的硬盘该拔掉了)

#smitty migratepv    ---->如果不是迁移rootvg的数据,而是一个用户自定义的VG的数据,直接执行这个即可

#reducevg VGname hdiskN    ---->从VG中移除某个PV

#rmdev -dl hdiskN    ---->从系统中彻底移除某个PV

七、卷组(VG)

        在系统安装时,会创建一个rootvg卷组,一个系统只能有一个rootvg。该卷组最好只包含内置硬盘,因为扩展硬盘可移动,移动之后还需要配置,rootvg卷组中的逻辑卷会相应的受到影响。

        创建卷组的时候,需要以下几个方面加以考虑:

1)卷组名必须唯一,最好能体现该卷组的作用

2)明确该VG包含哪些PV,PV在系统中要处于可用状态,且没有被其他VG使用

3)确定新VG中PP大小,范围是1MB-1024MB,由于一个PV最多包含1016个PP,所以一个VG中如果包含一个大于4.5G的PV,,那么PP必须要大于4MB

4)新建的VG是否在系统启动时自动激活

5)要确定新VG中最多能容纳多少PV。

LTG(Logical Track Group,逻辑记录组)

        LTG是磁盘写操作中的一个概念,它相当于允许磁盘I/O的最大传输单位。任何超过LTG大小的写操作都会被自动分解成多份LTG大小的写操作。

        LTG是卷组的一个属性,一个卷组有固定的LTG大小。在一个卷组中可能存在多个物理卷,如果物理卷的类型各不相同,卷组允许的LTG大小最大值是这个卷组中所有磁盘能够支持的最小传输单位。

        5L以前的系统中,只支持128k的LTG大小,5L中的LTG可以取不同的值,默认任然是128KB,5L现在支持128KB,256KB,512KB和1024KB等

设置卷则的热备份(hot spare)特性

        在AIX5L中,可以将卷组中的一个磁盘定义为热备份磁盘,同时要指定磁盘失效时的热备份策略。chpv和chvg命令都为此增加了一个-h参数,此参数就是在一个卷组中定义一个热备份磁盘以及指定热备份策略。这些命令并不是完全代替SSA磁盘的备份可用特性,而是对它的补充,当卷组中添加一个热备份磁盘时也可以使用SSA磁盘。

#chvg -h hotsparepolicy -s syncpolicy VolumeGroup

        其中,hotsparepolicy参数有4种取值:

        ·y    ---->自动把一个故障磁盘上的分区内容迁移到一个热备磁盘上。卷组中如果有多个热备份磁盘(一般称为热备份磁盘池),那么会从中选择一个容量最小且足够替换故障磁盘的磁盘。

        ·n    ---->不自动迁移物理分区内容,对于卷组来说,这个是默认的策略

        ·Y    ---->自动把一个故障磁盘上的分区内容迁移到一个热备份磁盘上,但是可能会使用热备份磁盘池中的所有磁盘

        ·r    ---->删除热备份磁盘池中的所有磁盘

        synpolicy参数有两种

        ·y    ---->自动尝试同步旧分区

        ·n    ---->不自动尝试同步旧分区,卷组默认方式。

导入/导出一个卷组

        在AIX系统中,设备的定义信息都存放在系统的ODM数据库中,导入一卷组,就是讲这个卷组的定义信息导入到系统中,并保存在ODM数据库,让系统能够识别这个卷组;导出一个卷组,就是将这个卷组的定义信息从系统的ODM数据库中删掉,但其组织结构仍然存在于该卷组中的每个物理卷的VGDA中——导出一个卷组并不是删除该卷组上的数据,只是删除ODM中关于该卷组的定义信息。

1)导出卷组之前,必须先用varyoffvg命令将该VG停用

2)#exportvg datavg    ---->该命令仅是将datavg卷组的定义信息从ODM数据库中删掉,并不删除该卷组中的数据

3)exportvg命令会从/etc/filesystem中删除卷组中的文件系统,并不删除这些文件系统的安装点

4)如果要导出的卷组中包含页面空间(Paging Space),则还需要把该页面空间改为非活动状态:

#swapoff paging_space_name该命令仅显示5L以后的系统,5L以前的系统,需要#chps -a n paging_space_name使得该页面空间不会被自动启动,然后重启系统

5)#importvg -y datavg hdisk5    ---->该命令将datavg导入目标系统中,importvg命令必须制定一个PV名(这里是hdisk5),importvg会自动通过这个PV的VGDA找到卷组中的其他所有的PV。

6)当指定的卷组名在目标系统中已经存在时,importvg命令会失败,需要重新指定新的不重复的卷组名,同时,如果不用-y参数指定卷组名,系统会给要导入的卷组分配一个默认的名字。

在ODM中重新定义卷组

        在系统正常运行的过程中,设备配置数据库中的信息与物理卷保留区上的逻辑卷管理器的信息是一致的。设备配置数据库是ODM数据库的一部分,而每个物理卷开始部分都保存这这个物理卷所属的卷组的配置信息,一般是物理卷上的VGDA和VGSA信息。这两种信息正常情况下必须保持一致,如果出现不知义,可以用redefinevg命令来同步设备配置数据库和具体卷组、物理卷之间的信息

#redefinevg -d hdisk0 rootvg    ---->其中hdisk0是rootvg卷组中的任意一个物理卷,用来从VGDA中读取VGID等信息。

        要恢复ODM数据库中关于卷组的定义信息,还有一个简单的方法:先varyoff这个VG,再exportvg,在importvg,最后varyon这个VG

用recreatvg命令重新创建卷组

        当要完成从一个磁盘到另一个磁盘的复制时,如果原磁盘是一个已经存在卷组中的物理卷,目标磁盘是对原磁盘的镜像,此时要在目标磁盘(已创建镜像的磁盘)上创建一个新的卷组,而且要求新组名在系统中唯一,那么就需要用recreatvg命令。

        当使用dd命令直接做磁盘复制,就会把一个磁盘中的所有信息(包括VGDA和LV)都复制到另一个磁盘上,从而产生两个一摸一样的磁盘,此时如果不在目标磁盘上创建卷组,就无法使用目标磁盘上的内容,因为此时如果直接用目标磁盘来导入卷组,就会造成系统中卷组ID,逻辑卷ID,和文件系统安装点冲突。而用recreatvg命令可以避免产生重复的卷组、逻辑卷和文件系统安装点。

#chdev -l hdiskN -a pv=clear    ---->清除目标磁盘PVID,因为这个PVID是源物理卷的标识符

#recreatevg -y newvg_name -L /newfs -Y newlv hdiskN    ---->newvg_name是新分配的卷组名,newlv和newfs则是这个卷组中新分配的逻辑卷名和文件系统名的前缀,这些前缀用来修改原逻辑卷名和原文件系统名。

镜像一个卷组

        默认情况下,mirrorvg命令会把逻辑卷镜像到卷组中的任何磁盘上如果要把镜像副本保存到指定的物理卷中,则必须指出这些PV列表。当用mirrorvg镜像逻辑卷的时候,它就强制执行严格镜像策略。

        如果要给rootvg做镜像,则必须执行bosboot,bootlist和reboot命令。bosboot用来在新镜像的驱动器上创建引导记录;bootlist用来订制一个容易从镜像设备启动系统的引导设备列表。最后,因为mirrorvg命令会默认关掉rootvg的Quorum功能,所以需要用reboot命令重启系统(对rootvg卷组用varyoffvg命令)

        如果要给非rootvg卷组的卷组做镜像,mirrorvg命令会默认关掉卷组的Quorum功能,因此用户必须关闭所有的逻辑卷,再对这个卷组执行varyoffvg和varyonvg命令,让卷组继续以它原来的Quorum设置(打开或是关闭)来工作。

        系统的dump设备不应该被镜像,mirrorvg命令检测到dump设备和页面设备相同时,会自动给这个逻辑卷设备做镜像,当mirrorvg检测到dump设备和页面设备不相同时,会自动给页面设备镜像,但是dump设备不会自动被镜像。

#unmirrorvg [-c Copies] VolumeGroup [PhysicalVolume]..    ---->-c用来指定unmirrorvg命令执行以后,剩余镜像数量。如果要拆掉指定的PV,则在PhysicalVolume处指定。

八、逻辑卷(LV)

        逻辑卷由逻辑分区(LP)组成,一个LP映射一个PP,如果做过mirror,那么一个LP映射多个PP。

逻辑卷大小(MB)=PP大小(MB)*LV包含LP的个数

        逻辑卷实际占用物理空间大小(MB)=PP大小(MB)*LV包含LP个数*LV的mirror数

        逻辑卷控制块(LVCB)保存着逻辑卷的重要信息,它位于逻辑卷的开始位置,占用512字节,包含得信息有:LV创建日期,LV的镜像拷贝数和安装点(只要在LV上创建了JFS文件系统才有安装点)。

        大多数情况下,用户为了能够让应用程序直接访问LV而会创建一个裸逻辑卷。应用程序可能会经常覆盖LV的LVCB内容,但用户仍然能够对这个裸逻辑卷执行读写操作。裸逻辑卷主要用户数据库管理系统。数据库管理系统能够直接访问裸逻辑卷,它在裸逻辑卷上存放数据。数据库管理系统使用裸设备存放数据可以提高数据库的性能。

        AIX系统中,要备份裸设备只能用dd命令,在用dd命令备份的时候,一定注意不要损坏裸逻辑卷的LVCB。

影响逻辑卷性能的策略

1)磁盘内部分配策略

2)磁盘之间分配策略:分布范围,严格分配策略

3)I/O操作调度策略:sequential(顺序)、parallel(并行),parallel/sequential(并行/顺序),parallel/round bobin(并行/循环)

4)写校验策略

条带化技术:AIX里边的raid0

镜像写一致性(MWC)

1)主动MWC:在内存中保存着一张LTG(Logical Track Group,逻辑记录组)写操作表,简称LTG表,同时在磁盘的一个单独区域也保存着一份LTG表,这个单独区域成为校验点区域,有一个写操作,就云歌内存中的LTG表刷新一次磁盘中的LTG表,如果突然崩溃了,就拿磁盘这个LTG表来恢复。

2)被动MWC:不用LTG表,而是使用了dirty(脏)位,只有成功同步并关闭逻辑卷,才清楚dirty位,如果系统发生奔溃情况,就根据这个dirty位来确定需要同步哪些数据。

rootvg卷组中的逻辑卷

技术分享

同步或重建LVM信息

        为使系统正常运行,保存在设备配置数据库(ODM的一部分)中的LVM信息必须和逻辑卷控制块(LVCB)中的LVM信息保持一致,它还要和物理卷上的VGDA信息保持一致。

        如果由于某些原因导致设备配置数据库和实际LVM信息不一致,则需要用sycnvodm命令同步或重建设备配置数据库中关于LVM的信息

命令格式:

#sycnlvodm -v -P [VolumeGroup] [LogicalVolume...]

        在同步过程中,VG必须是激活的。如果指定了逻辑卷名,则只更新与这个逻辑卷相关的信息。用VolumeGroup指定卷组名,用LogicalVolume指定逻辑卷名。如果使用了-P参数,则同步过程中,sycnvodm会保护逻辑卷设备文件的属主和权限。使用-v参数输出更多信息。

第八章 存储管理

标签:

原文地址:http://www.cnblogs.com/lqdflying/p/4840639.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!