1、aix上vgpvfilesystem基础AIX上vg,pv,filesystem原理基础(2012-03-07 20:27:56) 转载我们在使用PV之前必须将其“加入”到Volume Group(VG,卷组)中,或直接在上面创建卷组。当PV从属于一个VG后,其空间被分为许多大小相同的最小分配单元,每一块被称为一个Physical Partitions(PP 物理分区)。这如建筑时将各种不规整的石头切成同样大小“砖头”同一个样,目的是以后建筑的过程中可以按照需要取用“砖头”堆砌,而不会受到“石头”形状、大小的限制。因此,VG中的 PP大小都相等,无论原有磁盘大小多少。我们可以继续在VG上创Lo
2、gical Volume(LV,逻辑卷),这是留给程序使用的设备,可以跨多个磁盘(即 PV),但是不能跨越VG。创建逻辑卷时需要给逻辑卷指定名称和大小,大小的单位是PP的大小,即最少要占用1个PP大小的空间,最多没有特别的限制。但在默认情况下,每个LV可能有256或512(根据不同操作系统版本)个PP的限制,不过这个限制是软限制,可以任意修改。 组成逻辑卷的真正单位是PP,但被称为LP,即Logical Partitions(LP,逻辑分区),引入额外的LP的原因是镜像。AIX 正是通过PP和LP之间的倍数对应关系,来实现数据镜像的。每个LP根据镜像要求,对应到1-3个PP的物理空间上,对应1
3、代表没有镜像,2表示一份镜像,3表示两份镜像。在AIX中,逻辑卷被当作一种特殊的块设备,在/dev/目录下能看到对应的设备名,例如:/dev/rmylv -charact(字符) 类型的设备名/dev/mylv -block (块) 类型的设备名逻辑卷可以直接被应用程序使用,这种使用方式叫做裸设备方式;也可以在逻辑卷上创建文件系统,然后按照普通文件操作方式使用。当AIX识别到一个新PV时,先检查它是否有PVID。PVID是分配给每个PV的唯一识别号,记录在磁盘的操作系统保留区内,如果AIX已经(或者曾经)识别了这个磁盘,则会在ODM中也记录一份PVID。如果旧磁盘被移走,AIX中对应的设备(h
4、disk 会变成defined状态。但hdisk设备号保留,当磁盘“还”回来,使用cfgmgr会重新看到这一hdisk变为available状态。如果它是全新的磁盘,没有PVID,AIX只能看到磁盘设备available,而PVID一项是none。此时对此PV除了在其上创建VG或将其加入到某个已经建立的VG中、设置一个新的PVID、从系统中删除此PV之外,不能进行其它操作。而创建VG和加入VG动作将自动给这个 PV分配新的PVID 。重新置PVID命令有两个:#chdev -l hdiskx -a pv=yes-强制hdiskx分配一个新的PV ID#chdev -l hdiskx -a pv
5、=clear -强制清除hdiskx已经使用的PV ID注意:系统中管理PV完全依靠PV ID,尽管有诸如hdiskx这样的设备号可用,但是操作系统对于磁盘的识别仍然是依靠PVID的,也就是说hdisk 数字可能会变,即使对于同一台小型机也是如此,而PVID永远不会改变,即使拿到另一台机器上PVID也不变(直到执行了以上可以改变PVID的操作)。保持PVID不变,靠PV ID识别共享磁盘也是双击热备份的基础。从另一个方面来讲,如果你用上面的命令改变了 PV ID,操作系统就认为原来的磁盘消失了,而且再也不能找回来。更不巧的是如果原有的PV还属于某个VG,那么这个VG再也发现不了它原来的成员盘(
6、PVID已经改变),这个盘上的数据就无法找回,虽然磁盘和数据依然在那里。修复这个问题只能直接用底层的ODM操作,已经超出了本书的范围,有兴趣的朋友可以自己研究下相关的材料。VG被激活后才能被访问(读/写及察看VG信息等操作),同时此VG也被执行激活命令的操作系统映像“锁住”,不允许别的操作系统映像访问(包括执行激活命令)。激活与释放VG的命令分别是:#varyonvg vg_name 激活此VG,不允许别的操作系统映像访问#varyoffvg vg_name 释放此VG,允许别的操作系统映像访问但要注意,这个锁只是逻辑的锁(在磁盘上做一个标记),而且当VG被激活后,如果发生机器突然宕机,操作系
7、统可能没有能执行磁盘解锁的命令(清除标志位),则其它机器就无法再激活此卷组了!需要执行带-f参数的强制命令激活此卷组:#varyonvg -f vg_name有时甚至需要使用更底层的命令手工清除锁标志,此命令为lquerypr或pcmquerypr。由于此命令属于底层命令,对于初学者,容易操作不当,导致错误的结果,请谨慎使用。VGDA(Volume Group Descriptor Area)把PV加入VG之后才可以使用,一个PV只能属于一个VG(一个VG根据其类型不同可能拥有最多32-1024个PV)。VG中包含哪些PV都写在VG中的一个区域中,这个区域就是VGDA,VGDA中记录了很多VG
8、的重要信息,包括VG中包含的所有PV的PVID。由于VGDA内的信息非常重要,因此VGDA被保存了多份。如果VG中只有一块磁盘( PV ),则在此磁盘上存有两份VGDA;如果VG中有两块磁盘,则第一块磁盘有两份VGDA,第二块磁盘上有一份;如果VG中包含三块或更多的磁盘,则每块磁盘上都有一个VGDA的 copy.完好的VGDA数量与VG中总磁盘数之比被称为Quorum,如果Quorum小于50%,此VG将不能被继续访问(如果已经被激活,则会自动关闭),这样做是为了防止数据被进一步破坏,而等待专业人员修复(这是基于这样一种设计理念:如果可能发生危害数据的操作,什么都不做的结果远远好于人有该操作为
9、所欲为)。由于在每块磁盘上都至少有一份VGDA,所以在一个新小型机上,只要给出位置VG中的一块磁盘,就可以正确识别出全部VG信息,并“注册”到新的小型机上,这个过程叫做import,命令是:#importvg -y vg_name hdiskx其中vg_name是你希望的VG名,hdiskx是此VG中任一磁盘。由于在执行importvg命令的时候可以自定义VG名,因此系统中并没有更改VG名称的命令,如果你想改VG的名称,则需要先执行exportvg命令(把此VG在系统中的定义删除掉,再用新名字importvg进来)反之,如果想把某个VG的信息从一台小型机上删除,则需要执行#exportvg v
10、g_name此操作并没有对磁盘做任何操作,磁盘上的数据依然存在,包括VGDA里面的内容。此命令只是将此VG在AIX操作系统中的定义删除了,任何时候你还可以再重新imprt回来。在执行importvg 的时候,操作系统可以指定磁盘上读到VG中所有磁盘(PV)的定义(还记得VG中每块磁盘上都至少有一份VGDA,也就是全部VG信息的定义么),如果操作系统发现此VG的一些磁盘并没有被系统标识到(通过PVID找寻到,即VGDA中包含某个PVID在操作系统中所有磁盘设备上都找不到,可能的原因即包括该磁盘不存在,也可能是PVID没有正确读出来),那么系统将计算Quorum。如果Quorum50%,则依然可以
11、执行importvg,但会有警告信息;而当Quorum察看vg 参数是否在启动后激活VG:双机共享的VG(磁盘)不能设置自动激活,否则可能引起冲突(一台机器启动后激活VG,并将磁盘锁住;而另一台机器启动的时候,也试图激活此VG,如果不是并行卷,两台机器同时激活同一个VG会产生错误)。反之如果单机使用,则通常要选择自动激活,这样避免了手工操作的麻烦。是否需要Quorum:如果打开Quorum,当VG中不可访问的磁盘数超过一半,系统会强制禁止使用此VG(如果此VG已经被varyon,则自动执行varyoffvg命令)或者不可以激活此卷足(如果此VG还没有被varyon),以防止数据进一步损坏,等待
12、专业人员处理。enhanced-capable模式:如果安装了 文件集(非缺省安装,需要自己选择),则增加了另一个VG模式参数:enhanced-capable。此模式可以与任何VG类型并存,需要通过smitty chvg 或者chvg 命令修改,此模式是为了配合HACMP(PowerHA)而设置。AIX本身不支持并行文件系统,所以文件系统不能同时被两个AIX内核mount (就是双机同时mount 共享文件系统),以避免双方同时写入数据,损坏文件系统。HA在进行切换接管的时候,就需要在一个节点umount文件系统,varyoffvg,再从另一个节点varyonvg 、mount文件系统。尽管
13、这些操作都是由HA自动完成,但操作本身还是延长了接管时间。enhanced-capable 模式正好配合HA,它允许主节点正常使用VG,mount文件系统;备用节点虽然也varyonvg,但处于只读状态,并不mount文件系统,这样VG接管步骤省略,接管时间减少。concurrentVG模式:VG 还有一种concurrent 模式,它与刚才提到的enhanced-capable 不同,这是完完全全的并行模式,也是配合HACMP使用,但这种情况下的VG不能(可以创建,但不应当创建)存在文件系统,只能有裸设备(即LV),由应用程序控制数据读写锁,保证数据一致性,操作系统只管埋头读写。以上两种模式
14、(他们不会并存),都需要HACMP控制VG的varyon/off,操作系统不能开机自动varyonvg。如果为了管理需要可以手工varyonvg.File System;文件系统参数AIX通常使用JFS( Jonural File System,日志文件系统,也可能是第二代:JFS2文件系统)。常见的文件系统是NFS和CD-ROM文件系统。JFS通常与UNIX/Linu下的文件系统类似,但略有不同,它使用类似数据库循环log的重做日志方案对所有文件系统操作(不包括数据操作,只对修改文件系统结构的操作有效,例如修改文件名、文件大小等)进行跟踪。在真正执行此操作之前,先在log中记录,然后才做更新
15、,如果在更新过程中(可能需要修改磁盘上的多处信息),小型机发生故障停机,会造成更新不完全,数据丧失一致性。但由于在AIX中有log机制,当小型机重新启动时,可以查询log,重做最后的更新,这样保证了数据的一致性。此机制在数据库应用中广为采用,在文件系统中使用的比较少。因此大部分UNIX系统在宜昌停机后重启动的时候,往往都需要执行文件系统检查和恢复(全文件系统fsck检查)操作而AIX可以避免不必要的修复工作,大大加快了重启动的时间。AIX文件系统有许多参数可以调整:允许大文件:允许在此文件系统上创建大文件(超过2GB,当然还要考虑/etc/security/limits中fsize的限制)。N
16、BPI:Number of bytes per I-node,每个inode能代表的磁盘空间大小。Fragment碎片大小:以前版本遗留技术,已经很少使用,JFS2 此参数为固定值,已经不再考虑。AG大小:Allocation Group文件分配组大小,每次增加文件系统大小的最小单位。User quota:用户使用空间配额,限制用户过度使用文件系统。我们知道,每个文件在UNIX中占用一个或者多个inode所代表的存储空间,如果文件有很多,每个文件很少,则希望inode代表的空间少一点,从而提高存储利用率;反之,如果文件较少,每个文件很大,则需要inode代表的空间大一点,减少inode数量(i
17、node本身也占据空间),也能提高存储利用率。所以在创建文件系统的时候,需要做好平衡。由于每个inode代表的空间(也就是NBPI)在创建文件系统的时候设定,并且不能更改。所以为了提高效率,要仔细考虑。一般来说,可以用表4-20所示的参数设定文件系统。查看文件系统是否使是Large File Enabled(支持Large File 的文件系统)的命令是:$lsfs -q /homeName Nodename Mount pt vfs Size Options Auto Accounting/dev/hd1 - /home jfs 131072 - yes no(lv size:131072
18、,fs size 131072,frag size :512 ,nbpi :4096 ,compress :no ,bf false,ag : 8)bf:false 表示普通文件系统 standard file systembf:true 表示Large File Enhanced file systemAuto:yes 表示系统启动后自动mount 此文件系统。Accounting:no 表示不对此文件系统进行配额限制。当许多用户公用同一个文件系同时,可以通过对用户使用空间的配额限制,来防止他过度使用此文件系统。由于使用配额限制需要耗用一定的系统资源,因此对于通常AIX系统,如果不是提供给终
19、端用户登录使用,通常不需要进行配额限制。JFS2 文件系统JFS2 扩展了许多新功能,例如目录排序、动态空间分配等。由于JFS2 使用了BTree 作为新的元数据(metadata) 排序算法,许多JFS中的限制都被解除了:(1) inode数量动态分配,仅受限于文件系统大小(2)文件系统大小仅受限于磁盘空间(IBM 测试过 1PB=1000TB=1000000GB)(3)文件系统中文件数量也仅受限于磁盘空间(IBM 测试过 1PB)(4)JFS log可以保存在文件系统所在的逻辑卷中(inline方式),而不用再使用另一个专门的逻辑卷(JFS要求每个VG中至少要有一个用于存放JFS log
20、的逻辑卷,但在同一VG中的文件系统可以公用同一个JFS log逻辑卷)问题:JFS 或者JFS2文件系统的log是做什么用的?答案:任何文件系统都要考虑自身的强壮性问题,也就是要求文件系统在发生一些异常情况的时候,依然能保证自身数据结构的正确性,而不会出现严重的问题。例如,在磁盘正在写入数据的时候,如果机器掉电,则当前写入数据失败。但有的时候,数据写入并非完全失败,可能一般已经写入到磁盘,而系统中没有任何地方可以记录这种情况,此时磁盘上的数据是混乱的。特别是当系统支持并行写入的时候,问题尤其严重,如果发生异常停机,一定会出现错误的数据。为了避免发生这种情况,AIX采用了逻辑卷日志技术,每次磁盘
21、写入时限在一个被称为逻辑卷log的小空间记录要改写哪些数据(并不记录数据本身,只记录数据所在的位置)。这样当实际写数据时,逻辑卷日志一定已经记录了什么地方的数据会被改写。系统重新启动时,只需要系统扫描一下逻辑卷日志,核对最后几笔数据的正确性,就能保证整个文件系统的结构不会混乱,当然,数据还是可能丢失的,但至少结构是正确的。逻辑卷日志技术不需要进行全盘结构校验,比激活其他非日志方式的文件系统快很多,对于拥有几百GB数据的文件系统尤其重要,因为扫描几百GB的文件系统,检查结构是否正确可能需要几个小时的时间。log对文件系统性能也会有影响,特别是如果同一个VG有许多文件系统,并且访问频繁(文件结构变化,例如创建、删除、增大、缩小,存放位置变化),则由于这些文件系统需要共用同一个log设备,导致log写操作非常频繁,因此会影响性能。处理方法是为每个比较繁忙的文件系统创建自己单独的log设备,存放在不同的磁盘上,这样提高了并行性,从而提高了文件系统性能。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1