您的位置:首页 > 大数据 > 人工智能

UNIX.AIX.PV.VG.PP.LV.LP之四:物理卷管理

2013-07-29 11:56 316 查看
五.逻辑卷管理
PV和VG不能由用户和程序直接存取数据,不能为用户和程序提供磁盘空间.但是LV提供了使磁盘可用的机制.当创建LV的时候,要指定LP的个数.一个LP根据镜象方式可以映射1个/2个或三个PP.
6.5.1加入一个LV
可以用mklv创建一个新LV,该命令允许你指定LV名,定义诸如LP数量等属性,在创建LV中,默认的最大尺寸为128个LP.mklv的语法如下:
mklv [ -a Position ] [ -b BadBlocks ] [ -c Copies ] [ -d Schedule ][ -e Range ] [ -i ] [ -L Label ] [ -m MapFile ] [ -r Relocate ] [ -s Strict ][ -t Type ] [ -u UpperBound ] [ -v Verify ] [ -w MirrorWriteConsistency ][ -x Maximum ] [ -y NewLogicalVolume | -Y Prefix ] [ -S StripeSize ][ -U Userid ] [ -G Groupid ] [-P Modes ] VolumeGroup Number[ PhysicalVolume ... ]
参数意义:
-c copies设置镜象数,最多三个,默认为1
-i从标准输入获得PV样式,该参数只用于PV通过标准输入加入的情况
-L设置LV卷标,默认值为没有.最大127字符,如果该卷被用于JFS,JFS将使用该值记录该LV中的JFS的mount点
-P modes为LV特殊文件指定文件模式许可
-t type设置LV类型.标准类型是JFS,JFSLOG,paging,也可用于定义其它LV类型(boot类型除外),默认JFS
如果为一个文件系统创建了log,在log被使用之前用户要用logform命令清除干净新的JFSLOG,用以下命令格式化名为logdev的LV:
logform /dev/logdev.
-y newlv为LV指定名字,该名在本机上必须是唯一的,可以用1-15个字符.如果VG是以并发模式varyon的,新名字要在所有的并发节点中唯一.该名字也不能和设备配置数据库中的PdDv类定义的前缀相同.
例子:用mklv来创建一个名为newlv的新LV到rootvg中,该LV含10个LP,每个LP对应两个PP.
mklv -y newlv -c 2 rootvg 10.
用 smit创建一个LV:运行smitty mklv,然后按F4选择一个vg,输入LV名字,然后在number of LP域输入想分配到新LV的LP数目.在PVname域输入想用于该LV的PV名,若未指定,默认系统中第一个PV.在Number of copies域输入LP镜象数.回车即创建.
6.5.2删除LV:rmlv [-f][-p PVname]lvname...-f表示不提示确认直接删除,-p PVname 仅仅删除指定PV中的LP.除非LV中所有的LP均在该PV中,否则LV不会删除.也可使用smitty rmlv删除.
6.5.3减少LV的大小:备份LV的所有数据->删除LV->以更少的LP建立LV->恢复数据
6.5.4 增加LV大小:可以用extendlv或smitty extendlv来增加,如果LV被用于JFS,也可以用chfs或smitty chfs来完成.语法:extendlv [ -a Position ] [ -e Range ] [ -u Upperbound ] [ -s Strict ] LV Partitions [PV ... ],如要加入3个新的LP到LV中:extendlv newlv 3.
6.5.5 拷贝LV:如要拷贝lv1的内容到lv2,两者都在myvg中,则用cplv -v myvg -y lv2 lv1.如果没有指定vg,新LV会创建在与旧lv相同的vg中.要拷贝一个LV到一个存在的LV中,用以下命令:cplv -e existinglv oldlv,该命令会使existinglv上的内容被覆盖.如果existinglv小于oldlv,会造成数据丢失,损坏文件系统.如果在并发模式 下,该命令创建新lv会失败.使用smitty cplv拷贝一个LV,目的卷有三种模式:一个已有的LV,一个系统新建LV,一个用户新建LV.可能会遇到警告说目标LV没有被设置为copy类型.这 种情况可以用以下命令:chlv -t copy DstLV.
6.5.6分割LV的副本:splitlvcopy命令从一个LV中分割副 本, 创建新的独立的LV.语法:splitlvcopy [ -f ] [ -y NewLogicalVolumeName ] [ -Y Prefix ] LogicalVolume Copies [ PhysicalVolume ... ].注意:尽管该命令可以分割开放的LV以及其中已经mount的文件系统,但这么做如果被多处理器系统同时访问可能会失去两个LV之间的连贯性,在分割 这些LV的时候,有丢失数据和数据损坏的危险。
要分割属于有3个副本的oldlv的LV每个LP的副本并创建newlv,使用:splitlvcopy -y newlv oldlv 2,结果oldlv中有两个副本,newlv中有两个副本。
6.5.7列出LV:系统安装时会自动创建以下LV:
hd5引导LV,只在系统引导时可用;
hd6默认页面LV;
hd8默认日志空间;
hd4用于根文件系统;
hd2/usr文件系统;
hd9var/var文件系统;
hd3/tmp文件系统;
hd1/home文件系统.
列出这些LV用命令:lsvg|lsvg –il.

lslv命令用于察看与lv有关的属性.如:lslv newlv

6.5.8LV大小=PP大小×分配到LV的LP数×镜象数

六.日志文件系统管理
文件系统是文件/目录以及其他结构的集合.文件系统还可能包含引导块,超级 块,位图和一个或多个分配组(allocation group).一个分配组包含磁盘i节点和片断.AIX支持三种文件系统:JFS/NFS/CDFS.每个JFS分别在不同的LV中.初始化时,系统会 mount一些系统和引导需要的文件系统.NFS是一种分布式文件系统.
JFS把LV分为一些固定大小的逻辑块.逻辑块有以下组件构成:0逻辑块/超 级块/分配组.0逻辑块是系统保留的,被引导程序或其他信息使用,不能被文件系统使用.超级块是从1到30块,包含诸如整个文件系统的块数 (512k/块)文件系统名,文件系统日志设备,版本号和文件系统状态等数据.31块用来备份.文件系统中的逻辑块休止符被分为一些分配组.一个分配组包 含i节点和数据块,当分配组被分配到目录或文件中去的时候会参考那些数据块.那些组可以被用于安排数据的物理位置.
6.6.1JFS的属性:i节点数/分配组大小/文件系统片断可访问能力/文件系统日志大小/最大文件系统容量,这些属性在文件系统被创建的时候就被定义了.
i 节点数目:该数目决定了该文件系统中的文件数目和文件系统的大小.JFS提供了nbpi(Num of bytes per i-node)样式,该样式影响文件系统的i节点数.JFS支持的nbpi值有512/1024/2048…/131072.32768以后的值只在 AIX4.2以后的支持.如果要创建一个8M的文件系统,其nbpi为4096,则每4096字节的数据就会得到一个i节点.这就使得该文件系统中最多有 2048个节点,也就是说文件系统中最多2048个文件.JFS限制所有的文件系统中最多16M(2的24次方)个i节点.
分配组大小:JFS按i节点和块的分组为用户数据分割文件系统空间.分配组大小是8M/16M/32M/64M.每个分配组大小有一个关联的nbpi范围.具体如下:
Allocation Group size in MBMaximum number of i-nodes
8 512, 1024, 2048, 4096, 8192, and 16384
16 1024, 2048, 4096, 8192, 16384, and 32768
32 2048, 4096, 8192, 16384, 32768, and 65536
64 4096, 8192, 16384, 32768, 65536, and 131072
文件系统片断
f45c
可访问性:JFS支持4种片断大小:512,1024,2048,4096字节的连续空间.JFS维护在i节点和块中的地址,一共有28位.每个片断必须可以可以通过一串0到2^28的数字访问.
JFS 日志:JFS日志大小为4M,初始安装后,所有的在rootvg下的文件系统默认使用hd8作为日志文件的lv,默认大小为4M,大小为一个分区,如果文 件系统超过2G或使用一个log的总计文件系统空间超过2G,默认log大小需要增加.JFS日志限制最大为256M.
最大JFS大小:在文件系统创建时定义的.例如选择文件片断为512,则文件 系统最大为512×2^24=8G.当创建一个JFS,所有属性(nbpi/fragment size/分配组大小)都要考虑好.文件系统大小=nbpi*2^24=fragment size*2^28.
6.6.2创建文件系统
1.执行smitty crjfs;
2.选择Add a Standard JFS;
3.选择要创建的文件系统的VG;
4.在视图中输入文件系统大小(块数).如果想创建一个4M的文件系统,可以用4乘以2048得到块数;
5.在MOUNT POINT域输入想mount的全路径;
6.回车会显示创建过程.
注意:AIX中的所有I/O都是以4KB的块来进行的,但是这里空间的计算是 以512K的块来计算的,这主要是为了和其他UNIX保持兼容.最小的文件系统大小是一个PP,因而如果指定的块数目不够一个PP,系统会仍然创建一个 PP容量的文件系统.可以使用命令行方式来完成:crfs –v jfs –g VGNAME –a size=BLOCKS –m MOUNTPOINT.
6.6.3Mount一个文件系统
mount是一个使文件系统或文件或设备或特殊文件可用的操作.它是使一个文 件系统可用的唯一方法.注意,如果mount点是一个已经mount过的文件夹,已mount的文件系统的根目录不许mount.通常容易出错的是执行 pwd命令,没有查找已经mount完成的文件夹的许可,pwd命令将返回拒绝消息.如果设置 mount的文件夹的目录许可为111就不会出现这种问题.
用命令行方式mount一个文件系统:mount /filesysX,如果知道设备连接到系统的名字,可以直接使用设备名mount最新创建的文件系统.如果想mount所有的文件系统,可以使用mount –a或all.
使用smit mount文件系统:执行smitty mount->在视图中选择mount a filesystem回车->在DIR over which to mount域按F4可以得到已经定义的文件系统的mount点.然后选择想mount的文件系统,回车选择->按回车就可以mount成功.
自动mount:在系统初始化时,文件系统可以被自动mount,有两种类型 的自动mount:1.那些在引导时要求的mount,/etc /filesystems文件关于这些文件系统的定义中有mount=automatic的描述.如果多用户初始化启动后运行了mount all,/etc/rc脚本不会试着再去mount这些文件系统.通常运行umount all,这些文件系统不会umount.
2.第二种是用户控制的,这些文件系统在初始化时被/etc/rc脚本的mount all命令执行.用户控制自动mount的定义在/etc/filesystems中有mount=true.
除以上两种方法之外,可以把在文件系统创建时的自动mount域中设置为true,或者使用chfs –A yes FILESYSTEM命令.
显示已mount的文件系统:mount
6.6.4删除文件系统:
1.使用mount命令检查当前mount的文件系统;
2.如果文件系统已mount,先umount并检查是否成功,如果未mount则继续;
3.运行smitty rmjfs;
4.按下F4得到所有在系统中定义的文件系统列表,选择要删除的回车;
5.如果要保留mount点,按回车完成,否则把RM mountpoint设为YES回车.
也可以在确认要删除的文件系统umount之后,使用命令rmfs FSname来完成.如果要删除mount点,带上-r参数.
6.6.5增加文件系统大小.如果文件系统的剩余空间太小,会出现不可预料的问题.
1.使用df命令得到文件系统的当前大小;
2.计算需要增加的块数;
3.在命令行方式下输入:chfs –a size=NewBlocks FileSysName
NewBlocks是增加后的大小,不是要增加的大小.
用smit方式的步骤:
1.运行smitty chjfs;
2.选择想改变的文件系统回车,会出现报告文件系统的信息;
3.在SIZE of filesystem域输入新块数,回车即可成功.
6.6.6减少文件系统大小:
1.对要减少的文件系统做一个备份,如/usr.备份命令可以使用4个,cpio/ backup/tar/savevg;
2.如6.6.4所述删除文件系统;
3.创建新的文件系统,使用更小的空间,要有相同的名字.
注意:如果创建的空间太小不能容纳已有数据,恢复将会失败,使用df -k命令看当前在文件系统中的数据的块数.
4.恢复文件系统备份.
也可用mksysb命令减少文件系统,在从一个mksysb恢复rootvg时,有一个选项是shrink磁盘上的文件系统.如果选择该项,VG中的LV和文件系统被重建为包含该数据的最小尺寸.用户定义的VG也可以用restvg –s人工恢复.
6.6.7文件系统连贯性
fsck命令检查文件系统连贯性并交互地修复文件系统.常用语法是:
fsck [ -n ] [ -p ] [ -y ] [ -d BlockNumber ] [ -f ] [ -ii- NodeNumber ][ -o Options ] [ -t File ] [ -V VfsName ] [ FileSystem1 - FileSystem2 ... ]
参数意义:
-f 完成快速检查,如果系统被不正常关闭而文件系统已mount,容易受到影响.该参数提示fsck命令不要检查已经umount的文件系统.而fsck命令 通过检查文件系统的超级块可以确定是否mount.无论一个文件系统是被mount还是被clear,只要被umount,都要设置此参数.如果文件系统 被成功umount,不可能有任何其它问题.因为多数文件系统被成功umount,不再检查这些文件系统可以减少时间.
-p不要显示关于镜象的问题消息,但自动修复它们.该参数不允许大规模的许可(象-y参数一样),当系统正常启动时,该参数对完成自动检查很有用.应该把该参数作为系统启动过程的一部分.该参数允许并行检查.如果主超级块损坏,次超级块被校验并拷贝到主块.
-tFile 如果fsck命令不能获得足够的内存保存被检查的文件系统的表, 在其他文件系统中指定一个草稿文件.如果不指定-t参数,而fsck命令需要一个草稿文件,系统会提示输入草稿文件名.如果指定了-p参数,fsck命令 将会失败.如果草稿文件不是特殊用途文件,fsck命令结束时将删除文件.
-y设定用yes回答所有的被fsck命令提出的问题.该参数让fsck命令采取任何认为必要的操作.只有在文件系统严重损坏的时候才使用该参数.
Fsck命令检查并交互修复不一致的文件系统,应该在mount文件系统之前使用该命令.必须可以读取文件系统所在的设备文件.
通常,文件系统是一致的,fsck命令仅仅报告文件的数目,使用的块数,自由块数.如果文件系统不一致,fsck命令显示找到的不一致的信息并提示允许修复它们.如果文件系统不能修复,从备份恢复这些数据.
Mount不一致的文件系统可能导致系统冲突.如果不用样式指定文件系统名,fsck命令将check所有的文件系统(/etc/filesystem中的check=TRUE).
注意:默认情况下,/,/usr,/var,/tmp文件系统的在/etc /filesystem中的check属性设为False,因为:1.引导进程在这些文件系统明确运行fsck命令;2.这些文件系统在脚本/etc /rc运行时被mount,fsck命令不会修改一个已mount的文件系统.fsck命令在mount的文件系统中上运行的结果是不可预知的.
6.6.8初始化JFS日志设备:logform命令初始化一个用于JFS日志设备的LV.该LV存储了关于文件系统大量改变的交互信息,并能在系统冲突时用于部分回滚操作.语法为:
logformLOGNAME
注意:该命令有破坏性,会清除所有在LV中的数据;意外运行该命令会完全毁坏 文件系统的数据.如果一个日志设备因为要被文件系统使用而开放,文件系统应该先 umount再对日志设备运行logform.logform命令毁坏所有在设备上的日志记录,可能会造成文件系统数据的丢失.可用以下命令确认log日 志被关闭了:lsvg –l VGNAME.
6.6.9JFS日志设备的位置:JFS日志LV应该被放置在一个与最经常读写的文件系统不同的PV中,最好放在一个最少读写的盘中,以增加并发资源使用.系统也支持每个文件系统有独立的JFS日志.但特别要考虑的是,应该尽量避免多个JFS日志放置到相同的盘上.
6.6.10 支持大文件的文件系统:对于超过2G的文件,64位处理器可以不用任何特殊指令打开文件.4.2以前版本的没有潜在的支持大文件.在支持大文件的文件系统 中,存储在4MB文件偏移量之前的文件数据被以4096字节的块分配,超过4M文件偏移量的以128K的大块保存.大块实际上是32个连续的小块.如 132M的文件有1024个小块和1024个128K的大块.在规则的文件系统中,132M的文件要求33个独立间接块(每块以1024个4K的磁盘地址 填满).但是大文件系统中只要求2个独立间接块.
察看文件系统是否支持大文件:lsfs –q FILESYS.其中的bf域的值表示是否支持大文件.

阅读(824) | 评论(0) | 转发(0) |

0
上一篇:PV.VG.PP.LV.LP之三:卷组管理

下一篇:linux more 用法

相关热门文章
承接自动化测试培训、外包、实...

Solaris PowerTOP 1.0 发布

For STKMonitor

项目小体会

不用学的汉字输入法 智能H3输...

文件去重,如何解决Hash冲突的...

配置CI框架的rewrite 老是出...

CentOS下,PHP如何实现SSH2扩...

做数据统计有没有比较好的PHP...

C++ 拷贝一个对象是什么意思...

给主人留下些什么吧!~~

评论热议
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: