aix上vgpvfilesystem基础.docx

上传人:b****7 文档编号:8707619 上传时间:2023-02-01 格式:DOCX 页数:8 大小:23.29KB
下载 相关 举报
aix上vgpvfilesystem基础.docx_第1页
第1页 / 共8页
aix上vgpvfilesystem基础.docx_第2页
第2页 / 共8页
aix上vgpvfilesystem基础.docx_第3页
第3页 / 共8页
aix上vgpvfilesystem基础.docx_第4页
第4页 / 共8页
aix上vgpvfilesystem基础.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

aix上vgpvfilesystem基础.docx

《aix上vgpvfilesystem基础.docx》由会员分享,可在线阅读,更多相关《aix上vgpvfilesystem基础.docx(8页珍藏版)》请在冰豆网上搜索。

aix上vgpvfilesystem基础.docx

aix上vgpvfilesystem基础

AIX上vg ,pv,filesystem原理基础

(2012-03-0720:

27:

56)

转载▼

我们在使用PV之前必须将其“加入”到VolumeGroup(VG,卷组)中,或直接在上面创建卷组。

当PV从属于一个VG后,其空间被分为许多大小相同的最小分配单元,每一块被称为一个PhysicalPartitions(PP物理分区)。

这如建筑时将各种不规整的石头切成同样大小“砖头”同一个样,目的是以后建筑的过程中可以按照需要取用“砖头”堆砌,而不会受到“石头”形状、大小的限制。

因此,VG中的PP大小都相等,无论原有磁盘大小多少。

我们可以继续在VG上创LogicalVolume(LV,逻辑卷),这是留给程序使用的设备,可以跨多个磁盘(即PV),但是不能跨越VG。

创建逻辑卷时需要给逻辑卷指定名称和大小,大小的单位是PP的大小,即最少要占用1个PP大小的空间,最多

没有特别的限制。

但在默认情况下,每个LV可能有256或512(根据不同操作系统版本)个PP的限制,不过这个限制是软限制,可以任意修改。

组成逻辑卷的真正单位是PP,但被称为LP,即Logical Partitions(LP,逻辑分区),引入额外的LP的原因是镜像。

AIX正是通过PP和LP之间的倍数对应关系,来实现数据镜像的。

每个LP根据镜像要求,对应到1-3个PP的物理空间上,对应1代表没有镜像,2表示一份镜像,3表示两份镜像。

在AIX中,逻辑卷被当作一种特殊的块设备,在/dev/目录下能看到对应的设备名,例如:

/dev/rmylv->charact(字符)类型的设备名

/dev/mylv->block(块)类型的设备名

逻辑卷可以直接被应用程序使用,这种使用方式叫做裸设备方式;也可以在逻辑卷上创建文件系统,然后按照普通文件操作方式使用。

当AIX识别到一个新PV时,先检查它是否有PVID。

PVID是分配给每个PV的唯一识别号,记录在磁盘的操作系统保留区内,如果AIX已经(或者曾经)识别了这个磁盘,则会在ODM中也记录一份PVID。

如果旧磁盘被移走,AIX中对应的设备(hdisk会变成defined状态。

但hdisk设备号保留,当磁盘“还”回来,使用cfgmgr会重新看到这一hdisk变为available状态。

如果它是全新的磁盘,没有PVID,AIX只能看到磁盘设备available,而PVID一项是none。

此时对此PV除了在其上创建VG或将其加入到某个已经建立的VG中、设置一个新的PVID、从系统中删除此PV之外,不能进行其它操作。

而创建VG和加入VG动作将自动给这个PV分配新的PVID。

重新置PVID命令有两个:

#chdev-lhdiskx-apv=yes------>强制hdiskx分配一个新的PVID

#chdev-lhdiskx-apv=clear------>强制清除hdiskx已经使用的PV ID

注意:

系统中管理PV完全依靠PVID,尽管有诸如hdiskx这样的设备号可用,但是操作系统对于磁盘的识别仍然是依靠PVID的,也就是说hdisk数字可能会变,即使对于同一台小型机也是如此,而PVID永远不会改变,即使拿到另一台机器上PVID也不变(直到执行了以上可以改变PVID的操作)。

保持PVID不变,靠PVID识别共享磁盘也是双击热备份的基础。

从另一个方面来讲,如果你用上面的命令改变了PVID,操作系统就认为原来的磁盘消失了,而且再也不能找回来。

更不巧的是如果原有的PV还属于某个VG,那么这个VG再也发现不了它原来的成员盘(PVID已经改变),这个盘上的数据就无法找回,虽然磁盘和数据依然在那里。

修复这个问题只能直接用底层的ODM操作,已经超出了本书的范围,有兴趣的朋友可以自己研究下相关的材料。

VG被激活后才能被访问(读/写及察看VG信息等操作),同时此VG也被执行激活命令的操作系统映像“锁住”,不允许别的操作系统映像访问(包括执行激活命令)。

激活与释放VG的命令分别是:

#varyonvgvg_name    激活此VG,不允许别的操作系统映像访问

#varyoffvgvg_name  释放此VG,允许别的操作系统映像访问

但要注意,这个"锁"只是逻辑的锁(在磁盘上做一个标记),而且当VG被激活后,如果发生机器突然宕机,操作系统可能没有能执行磁盘解锁的命令(清除标志位),则其它机器就无法再激活此卷组了!

需要执行带-f参数的强制命令激活此卷组:

#varyonvg-fvg_name

有时甚至需要使用更底层的命令手工清除锁标志,此命令为lquerypr或pcmquerypr。

由于此命令属于底层命令,对于初学者,容易操作不当,导致错误的结果,请谨慎使用。

VGDA(VolumeGroupDescriptorArea)

把PV加入VG之后才可以使用,一个PV只能属于一个VG(一个VG根据其类型不同可能拥有最多32-1024个PV)。

VG中包含哪些PV都写在VG中的一个区域中,这个区域就是VGDA,VGDA中记录了很多VG的重要信息,包括VG中包含的所有PV的PVID。

 

由于VGDA内的信息非常重要,因此VGDA被保存了多份。

如果VG中只有一块磁盘(PV),则在此磁盘上存有两份VGDA;如果VG中有两块磁盘,则第一块磁盘有两份VGDA,第二块磁盘上有一份;如果VG中包含三块或更多的磁盘,则每块磁盘上都有一个VGDA的copy.完好的VGDA数量与VG中总磁盘数之比被称为Quorum,如果Quorum小于50%,此VG将不能被继续访问(如果已经被激活,则会自动关闭),这样做是为了防止数据被进一步破坏,而等待专业人员修复(这是基于这样一种设计理念:

如果可能发生危害数据的操作,什么都不做的结果远远好于人有该操作为所欲为)。

由于在每块磁盘上都至少有一份VGDA,所以在一个新小型机上,只要给出位置VG中的一块磁盘,就可以正确识别出全部VG信息,并“注册”到新的小型机上,这个过程叫做import,命令是:

#importvg -yvg_namehdiskx

其中vg_name是你希望的VG名,hdiskx是此VG中任一磁盘。

由于在执行importvg命令的时候可以自定义VG名,因此系统中并没有更改VG名称的命令,如果你想改VG的名称,则需要先执行exportvg命令(把此VG在系统中的定义删除掉,再用新名字importvg进来)

反之,如果想把某个VG的信息从一台小型机上删除,则需要执行

#exportvgvg_name

此操作并没有对磁盘做任何操作,磁盘上的数据依然存在,包括VGDA里面的内容。

此命令只是将此VG在AIX操作系统中的定义删除了,任何时候你还可以再重新imprt回来。

在执行importvg的时候,操作系统可以指定磁盘上读到VG中所有磁盘(PV)的定义(还记得VG中每块磁盘上都至少有一份VGDA,也就是全部VG信息的定义么),如果操作系统发现此VG的一些磁盘并没有被系统标识到(通过PVID找寻到,即VGDA中包含某个PVID在操作系统中所有磁盘设备上都找不到,可能的原因即包括该磁盘不存在,也可能是PVID没有正确读出来),那么系统将计算Quorum。

如果Quorum>50%,则依然可以执行importvg,但会有警告信息;而当Quorum<50%时,则不允许import此VG。

 

关于PVID的思考

AIX操作系统没有提供任何直接的命令可以设定PVID,在创建VG或者将磁盘(PV)添加到VG中时,操作系统会自动根据本机的系列号、当前时间等参数,随即指定一个PVID。

因此系统中生成的PVID是不能重复的,当你使用chpv命令清除一块磁盘的PVID之后,除非使用底层磁盘编辑命令,直接写入需要的PVID,否则没有办法恢复磁盘原有的PVID,PVID改变,也就意味着此盘完全是一块新磁盘,系统不会承认此磁盘仍然属于原有的VG。

因此在执行更改PVID的操作的时候,一定要知道可能的后果是什么,因为操作往往会导致不可恢复的数据丢失。

普通VG的VGDA空间大小只能存放32个PV的信息,因此普通VG只支持32个磁盘;如果是big(“大”)VG,VGDA可以存放128个PV的信息;最新的scalable(“扩展”)

VG则可以支持1024个PV。

VGSA(VolumeGroupStatusArea)

VGSA也是VG中的一块重要区域,它由127个字节组成。

每个PV有一个VGSA,每一位代表这个PV的一个PP的状态,最多可以对应1016个PP(128*8=1024位,其中有8位留作他用,剩余1016位),它限制了一个PV最多有1016个PP。

VGSA用每一位代表PP的状态,操作系统向镜像的PP写数据的时候,难免会有时间差,如果恰好在跟新了一个PP之后,系统出现问题,另一个PP没有更新,此PP与其互为镜像的PP(还记得前面提到的一个LP可能对应1-3个PP吗对应于同一个LP的几个PP的关系,就是镜像关系)相比没有被跟新,数据较旧,则操作系统通过VGSA将这几个VGSA标记为stale状态。

stale状态说明互为镜像的PP数据不一致,要从“好”的镜像PP重新同步数据。

当操作系统激活(varyonvg)VG的时候,会自动检查此VG中所有磁盘上是否有"Stale"的PP,如果有,则自动进行同步;如果VG在正常使用状态,则操作系统不会主动去同步,需要手工执行命令进行同步,可以以PV,LV或者整个VG为单位进行stale的PP同步。

在smitvg的菜单可以找到同步VG的选项。

BigVG,ScalableVG

由于VG在创建的时候,就固定了VGDA和VGSA的大小,所以VG所能容纳的磁盘数量和每个磁盘最多的PP数就已经确定:

每个VG最多32个PV,总计256个LV(逻辑卷,包括一个保留给LVM内部使用,实际可用是255个)。

在BIGVG中,这些限制都被打破,PV扩大到128个,LV扩大到512个。

可以直接创建“大”VG,也可以把“小”VG扩大为“大”VG。

如果是ScalableVG则最多支持1024个PV,256(可以在创建的时候设定为最大支持4096)个LV。

下面的命令可以创建Scalable的VG(注意在执行的时候还要附带在那个PV上创建的参数)。

#mkvg-Svg_name

本质上,这几种VG类型并没有什么特别的区别,其差别是系统保留了多大的VGDA空间。

显然,要想VG中支持更多的磁盘,VGDA空间越大。

把“小”VG转换成“大”VG的过程中,AIX不过是扩大了VGDA的空间。

由于VGDA在每个PV的开始,并且必须连续,如果磁盘已经创建了LV,空间被分配,可能会发生VGDA空间无法扩大的情况,更改VG类型操作就会失败。

如果VG总体还有剩余空间,此时可以使用迁移PP的命令,将占用未来VGDA空间的PP数据迁移到其它位置。

下面是个示范的命令(注意,这是LVM底层命令,最好在测试系统验证后再使用),供读者参考

#lmigratepp-gVGID-pold_PVID-nold_PPNum-Pnew_PVID-Nnew_PPNum

VGID可以通过lsvgvg_name获得,old_PVID和new_PVID分别是源盘和目标盘的PVID,old_PPNum是1也就是第一个PP(我们想把第一个PP的数据移走,以便空余位置给VGDA),new_PPNum是new_PVID对应的某个空闲PP,可以通过lspv-Mhdiskx获得。

PhysicalVolume(PV)控制

PV有一个参数控制是否允许分配此物理卷上的PP给逻辑卷使用。

在扩充、创建LV和创建文件系统的时候,系统会自动分配此VG中可分配的PP,如果希望告诉系统不要使用

某个PV上的空余空间,那就可以通过此参数不允许使用此PV。

命令是:

#chpv-anhdiskx不使用此PV(hdiskx)

#chpv-ayhdiskx可以使用此PV(hdiskx)

或者用smit命令的快捷索引:

#smitchpv

VG的一些参数说明

#lsvgvg_name->察看vg参数

是否在启动后激活VG:

双机共享的VG(磁盘)不能设置自动激活,否则可能引起冲突(一台机器启动后激活VG,并将磁盘锁住;而另一台机器启动的时候,也试图激活此VG,如果不是并行卷,两台机器同时激活同一个VG会产生错误)。

反之如果单机使用,则通常要选择自动激活,这样避免了手工操作的麻烦。

 

是否需要Quorum:

如果打开Quorum,当VG中不可访问的磁盘数超过一半,系统会强制禁止使用此VG(如果此VG已经被varyon,则自动执行varyoffvg命令)或者不可以激活此卷足(如果此VG还没有被varyon),以防止数据进一步损坏,等待专业人员处理。

 

enhanced-capable模式:

如果安装了文件集(非缺省安装,需要自己选择),则增加了另一个VG模式参数:

enhanced-capable。

此模式可以与任何VG类型并存,需要通过smittychvg或者chvg命令修改,此模式是为了配合HACMP(PowerHA)而设置。

AIX本身不支持并行文件系统,所以文件系统不能同时被两个AIX内核mount(就是双机同时mount共享文件系统),以避免双方同时写入数据,损坏文件系统。

HA在进行切换接管的时候,就需要在一个节点umount文件系统,varyoffvg,再从另一个节点varyonvg、mount文件系统。

尽管这些操作都是由HA自动完成,但操作本身还是延长了接管时间。

enhanced-capable模式正好配合HA,它允许主节点正常使用VG,mount文件系统;备用节点虽然也varyonvg,但处于只读状态,并不mount文件系统,这样VG接管步骤省略,接管时间减少。

concurrent

VG模式:

VG还有一种concurrent模式,它与刚才提到的enhanced-capable不同,这是完完全全的并行模式,也是配合HACMP使用,但这种情况下的VG不能(可以创建,但不应当创建)存在文件系统,只能有裸设备(即LV),由应用程序控制数据读写锁,保证数据一致性,操作系统只管埋头读写。

以上两种模式(他们不会并存),都需要HACMP控制VG的varyon/off,操作系统不能开机自动varyonvg。

如果为了管理需要可以手工varyonvg.

 

FileSystem;文件系统参数

AIX通常使用JFS(JonuralFileSystem,日志文件系统,也可能是第二代:

JFS2文件系统)。

常见的文件系统是NFS和CD-ROM文件系统。

JFS通常与UNIX/Linu下的文件系统类似,但略有不同,它使用类似数据库循环log的重做日志方案对所有文件系统操作(不包括数据操作,只对修改文件系统结构的操作有效,例如修改文件名、文件大小等)进行跟踪。

在真正执行此操作之前,先在log中记录,然后才做更新,如果在更新过程中(可能需要修改磁盘上的多处信息),小型机发生故障停机,会造成更新不完全,数据丧失一致性。

但由于在AIX中有log机制,当小型机重新启动时,可以查询log,重做最后的更新,这样保证了数据的一致性。

此机制在数据库应用中广为采用,在文件系统中使用的比较少。

因此大部分UNIX系统在宜昌停机后重启动的时候,往往都需要执行文件系统检查和恢复(全文件系统fsck检查)操作而AIX可以避免不必要的修复工作,大大加快了重启动的时间。

AIX文件系统有许多参数可以调整:

允许大文件:

允许在此文件系统上创建大文件(超过2GB,当然还要考虑/etc/security/limits中fsize的限制)。

NBPI:

NumberofbytesperI-node,每个inode能代表的磁盘空间大小。

Fragment碎片大小:

以前版本遗留技术,已经很少使用,JFS2此参数为固定值,已经不再考虑。

AG大小:

AllocationGroup文件分配组大小,每次增加文件系统大小的最小单位。

Userquota:

用户使用空间配额,限制用户过度使用文件系统。

我们知道,每个文件在UNIX中占用一个或者多个inode所代表的存储空间,如果文件有很多,每个文件很少,则希望inode代表的空间少一点,从而提高存储利用率;

反之,如果文件较少,每个文件很大,则需要inode代表的空间大一点,减少inode数量(inode本身也占据空间),也能提高存储利用率。

所以在创建文件系统的时候,需要做好平衡。

由于每个inode代表的空间(也就是NBPI)在创建文件系统的时候设定,并且不能更改。

所以为了提高效率,要仔细考虑。

一般来说,可以用表4-20所示的参数设定文件系统。

查看文件系统是否使是LargeFileEnabled(支持LargeFile的文件系统)的命令是:

$lsfs-q/home

Name        Nodename   Mount pt vfs Size Options AutoAccounting

/dev/hd1     --        /home jfs131072--yes no

(lvsize:

131072,fssize131072,fragsize:

512,nbpi:

4096,compress:

no,bffalse,ag:

8)

bf:

false 表示普通文件系统standardfilesystem

bf:

true 表示LargeFileEnhancedfilesystem

Auto:

yes表示系统启动后自动mount此文件系统。

Accounting:

no表示不对此文件系统进行配额限制。

当许多用户公用同一个文件系同时,可以通过对用户使用空间的配额限制,来防止他过度使用此文件系统。

由于使用配额限制需要耗用一定的系统资源,因此对于通常AIX系统,如果不是提供给终端用户登录使用,通常不需要进行配额限制。

JFS2文件系统

 JFS2扩展了许多新功能,例如目录排序、动态空间分配等。

由于JFS2使用了BTree作为新的元数据(metadata)排序算法,许多JFS中的限制都被解除了:

(1)inode数量动态分配,仅受限于文件系统大小

(2)文件系统大小仅受限于磁盘空间(IBM测试过1PB=1000TB=1000000GB)

(3)文件系统中文件数量也仅受限于磁盘空间(IBM测试过1PB)

(4)JFSlog可以保存在文件系统所在的逻辑卷中(inline方式),而不用再使用另一个专门的逻辑卷(JFS要求每个VG中至少要有一个用于存放JFSlog的逻辑卷,

但在同一VG中的文件系统可以公用同一个JFSlog逻辑卷)

问题:

JFS或者JFS2文件系统的log是做什么用的?

答案:

任何文件系统都要考虑自身的强壮性问题,也就是要求文件系统在发生一些异常情况的时候,依然能保证自身数据结构的正确性,而不会出现严重的问题。

例如,在磁盘正在写入数据的时候,如果机器掉电,则当前写入数据失败。

但有的时候,数据写入并非完全失败,可能一般已经写入到磁盘,而系统中没有任何地方可以记录这种情况,此时磁盘上的数据是混乱的。

特别是当系统支持并行写入的时候,问题尤其严重,如果发生异常停机,一定会出现错误的数据。

为了避免发生这种情况,AIX采用了逻辑卷日志技术,每次磁盘写入时限在一个被称为逻辑卷log的小空间记录要改写哪些数据(并不记录数据本身,只记录数据所在的位置)。

这样当实际写数据时,逻辑卷日志一定已经记录了什么地方的数据会被改写。

系统重新启动时,只需要系统扫描一下逻辑卷日志,核对最后几笔数据的正确性,就能保证整个文件系统的结构不会混乱,当然,数据还是可能丢失的,但至少结构是正确的。

逻辑卷日志技术不需要进行全盘结构校验,比激活其他非日志方式的文件系统快很多,对于拥有几百GB数据的文件系统尤其重要,因为扫描几百GB的文件系统,检查结构是否正确可能需要几个小时的时间。

log对文件系统性能也会有影响,特别是如果同一个VG有许多文件系统,并且访问频繁(文件结构变化,例如创建、删除、增大、缩小,存放位置变化),则由于这些文件系统需要共用同一个log设备,导致log写操作非常频繁,因此会影响性能。

处理方法是为每个比较繁忙的文件系统创建自己单独的log设备,存放在不同的磁盘上,这样提高了并行性,从而提高了文件系统性能。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1