AIX 文件系统和存储部署 | 周末送资料
社区会员黄建亮分享
文件系统的管理是AIX存储结构中的最后一环。定义完lv后,可采用如下两种方式使用lv:
a.作为裸设备(raw)使用,一般是数据库型的应用
b.在lv上定义文件系统,并提供文件和数据的存储服务
AIX提供和支持的文件系统类型
a.JFS/JFS2 日志文件系统(Journaled FileSystem),JFS2是增强版,该文件系统将基于数据库的日志技术来记录文件系统上发生的元数据改变,每个JFS/JFS2会在存储结构上独立使用一个lv,形成严格的“lv-文件系统”一对一关系。如:/、/usr、/home、/admin等
b.NFS 网络文件系统(Network FileSystem),它通过访问其他UNIX系统上的文件和目录,来提供分布式的文件存储服务,类似于Windows系统中的“共享文件夹”
c.GPFS 集群文件系统(GeneralParallel File System),是IBM用在集群环境下共享文件的文件系统,资源组内的所有节点可并行访问GPFS文件系统,GPFS文件系统定义在可共享连接的磁盘阵列设备上,用户可对此文件系统执行标准的UNIX操作,GPFS文件系统需要特定的管理命令。如:Oracle的RAC集群的一种典型拓扑结构使用的就是GPFS。
d.CDROM CDRFS类型的文件系统,是访问DVD/CD-ROM设备中光盘文件内容的标准接口文件系统
查看文件/文件夹的i-nodes信息,文件类型、UID、GID、链接数
#istat /filename
管理文件系统
#smit fs
查看文件系统
#lsfs 文件系统名
创建文件系统
1.#smit mkfs
2.#smit crfs
上面两个命令都是用来创建文件系统的,其中crfs首先会调用mklv来创建lv,然后调用mkfs在lv上创建文件系统,最后在ODM库和/etc/filesystems中增加适当的记录
crfs命令常用选项:
-v:指定文件系统类型
-g:文件系统所在卷组
-a:文件系统的大小,实际按照lv的整数倍进行调整
-m:文件系统挂载点(若挂载点不存在,则系统会自动创建)
-A:新创建的文件系统是否在系统初启动时自动安装
-p:安装的文件系统是以只读(ro)还是读写(rw)方式安装
例:#crfs -v jfs2 -g rootvg -a size=10M -p rw -m /liang 该命令会创建一个文件系统,名称随机,被置于rootvg逻辑卷上,属性为读写,并挂载到/liang目录下,大小为10M
挂载文件系统
#mount [选项]
常用选项:
-a:挂载所有未挂载的文件系统
-f:强制挂载文件系统
device:文件系统所在的设备(lv)
directory:文件系统的挂载点
挂载已存在的lv到创建的文件系统
#smit crfs
在smit中选择已存在的lv进行挂载
文件系统的卸载和删除
卸载
1.卸载文件系统的命令时umount
2.某些针对文件系统的操作只有在其卸载后才可以进行,如:UI文件系统的参数调整、执行文件系统的删除操作
3.若有用户正在使用需要卸载的文件系统,则卸载操作会失败,(可用#fuser -ku 挂载目录)结束正在使用该文件系统的用户相关进程,然后继续卸载
删除
1.可使用#smit 菜单,或者高级命令#rmfs文件系统挂载点
2.rmfs命令会同时从ODM库和/etc/filesystems中删除有关被删除文件系统和逻辑卷的相关信息,并且删除对应的逻辑卷
文件系统的自动挂载
1.文件系统的定义信息存储在/etc/filesystems中,如果某个文件系统定义了mount=true或mount=automatic属性,则该文件系会在AIX系统启动的第三阶段后半部分自动挂载
/etc/filesystems部分内容如下:
其中常见属性有
check:用于确定是否使用fsck命令来检查文件系统内,true表示允许检查
dev:文件系统所对应的逻辑卷设备文件
mount:
automatic,文件系统在系统启动时自动挂载
true,在系统初始化期间运行mount all命令自动挂载这些系统
false,文件系统不自动挂载
vfs:指定要挂载的文件系统类型
vol:使用mkfs命令为新的文件系统定义挂载点
log:在文件系统被修改时,用来存储日志数据的设备,仅对日志文件系统有效
注意:如果执行#umount all命令,mount属性为automatic的文件系统不会被卸载,而mount属性为true的文件系统则会被卸载
文件系统的容量管理
当文件系统的使用率达到100%或者AIX的/、/var等已完全被占满时,AIX的操作将会毫无疑问的被挂起。
因此,经常使用df命令来查看磁盘空间的使用情况十分必要,工程上往往通过定期运行df命令进行日常检查并生成报告。
显示文件系统的总长度和空间情况
#df -m
显示文件或目录所占用的磁盘块数
#du /usr | sort -r -n
EXPLAIN:文件系统所在卷组上还有足够的可用空间(空闲PP),是AIX动态扩展文件系统空间的唯一条件。通常通过chfs命令来实现动态扩展(增加、减小),一般在使用过程中先用df命令确定一下文件系统当前使用状态、使用比例等信息。然后将这个文件系统需要添加的大小折合成数据块(521B)数(也可使用chfs命令支持的其他空间度量单位,如:M),最后,使用chfs命令设定文件系统的新尺寸
#smit chjfs
进入smit菜单更改文件系统空间大小
#chfs -a size=+100M /test
增加文件系统/test100M空间
#chfs -a size=-100M /test
减小文件系统/test100M空间
扩展:AIX提供一种用备份(mksysb备份)来缩小文件系统的方法。该方法的宗旨是:如果在使用mksysb进行rootvg卷组恢复的过程中,指定收缩(“shrink”)文件系统的选项,则AIX在恢复中将会自动收缩文件系统及其对应的逻辑卷
文件系统的一致性管理
背景:UNIX的一个文件系统有超级块(SuperBlock)开始,然后是记录文件系统信息的索引点(i-nodes),最后则是文件的真正存储位置“数据块”。如果这个文件系统的超级块、索引节点被损坏,或者信息存储不一致,会导致文件系统挂载失败,或者已挂载文件系统的文件数据访问失败
检查文件系统信息一致性,并支持修复稳健性系统命令
#fsck 选项 文件系统
常用选项
-f:快速检查,仅检查未执行正确卸载操作的文件系统,即那些在AIX关闭时仍未卸载的文件系统,那些已成功卸载的文件系统不参与检查
-p:不显示不严重的文件系统问题,但执行自动修复操作
-y:对fsck命令执行中的交互性问题自动提供肯定的答复,以允许fsck命令执行任何修复操作(有一定风险),所以只针对严重损坏的文件系统使用
注意:fsck命令检查和修复文件系统时应当在文件系统挂载前将其运行,前提条件时能够读取文件系统对应的逻辑卷设备
检查文件系统/dev/fslv00,并执行错误修复操作
#fsck -p /dev/fslv00
检查文件系统/dev/fslv00的完整性
#fsck /dev/fslv00
对于文件系统超级块损坏的问题,传统的UNIX会使用被分块恢复的方法(dd count=1 bs=4k skip=31 seek=1 if=/dev/fslv00 of=/dev/fslv00)将其修复,而在AIX中并不需要这样,只要使用#fsck-p 或 #fsck -y直接修复即可
文件系统的卸载失败
可能原因:
a.文件系统中的文件处于打开状态
b.如果没有用户打开文件系统的文件,仍然显示busy,且卸载失败,这可能是一个引用了文件系统的内核扩展(kernel extension)被载入内核
c.当前有用户正在这个文件系统的挂载点上
d.当前有文件系统挂载在要卸载文件系统的目录树上
查看文件系统中文件的使用途径的、获得“谁”正在访问指定的文件系统(用进程ID号表示进程细节)等相关信息:
#fuser -xc /tmp /hacmp.out
注意:fuser命令不会显示内核扩展的载入情况,因此,当出现b情况时,fuser返回为空,且文件系统仍然拒绝卸载
文件系统的快照管理
注意:快照不是将文件系统整个的“搬到”快照位置,而是仅复制那些“发生改变”的内容,也就是说,如果原文件系统中发生了写入或删除操作,即原文件系统的数据块发生了改变,则这个数据块就会被复制到快照点上。AIX将更改后的数据复制到快照点。那些大部分尚未发生改变的内容将直接通过映射到源文件的方法实现,因此快照位置的空间占用不会和原文件系统相同,一般仅占百分之几到十几
AIX的JFS2文件系统快照支持的两种类型:
外部快照:创建一个独立的逻辑卷来存储快照映像数据
内部快照:使用原始文件系统空间
创建文件系统外部快照
创建文件系统/db的外部快照,使用空间为500MB
#snapshot -o snapfrom=/db -o size=500M
查看/db快照设置,包括快照日期、位置、空间大小、空间剩余量等信息
#snapshot -q /db
AIX支持文件系统快照的挂载。由于快照复制了原文件系统(改变部分),是一个文件系统的当前复制品,因此被挂载的快照应能够反应出完整的文件系统数据。
挂载/db文件系统的快照到另外一个目录(挂载点为/home/oracle/db_snap),并使用-o snapshot选项来声明这是一个快照挂载
#mkdir -p /home/oracle/db_snap
#mount -v jfs2 -o snapshot /dev/fslv02/home/oracle/db_snap
对于快照方式挂载的文件系统,文件系统的其他操作命令同样可以运行,如:查看快照文件系统的空间使用情况
#df -g /home/oracle/db_snap
创建内部快照
创建文件系统/db时设置内部快照使用情况
#crfs -vjfs2 -g rootvg -m /db -A -aisnapshot=yes
位/db创建内部快照dbsnap1
#snapshot -o snapfrom=/db -n dbsnap1
#snapshot -q /db
可以看到,在/db下出现了一个特殊目录.snapshot,可以进入该目录进行只读访问:
#cd /db/.snapshot
#ls -l
因此,内部快照无需挂载快照文件系统就可以使用快照中的文件。
创建外部快照语法
#snapshot -o snapfrom=snappedFS snapshotLV
#snapshot -o snapfrom=snappedFS -osize=Size
创建内部快照语法
#snapshot -o snapfrom=snappedFS -nsnapshotName
删除外部快照语法
#snapshot -d snapshotLV
删除内部快照语法
#snapshot -d -n snapshotName snappedFS
查询文件系统快照信息
#snapshot -q snappedFS
查询外部快照
#snapshot -q snapshotLV
查询内部快照语法
#snapshot -q -n snapshotName snappedFS
修改外部快照
#snapshot -o size=Size snapshotLV
注意:快照并不能取代常规系统的备份计划和手段,更不能以此替换系统备份、savevg卷组备份、backup文件系统备份、tar文件目录备份等
LVM常用命令总结
AIX的存储结构从卷组开始,一直到文件系统为止,历经物理卷管理—>卷组管理—>逻辑卷管理—>文件系统管理四个阶段
针对物理卷的操作命令
#lsdev列出ODM中的设备,可按照支持的设备、已安装的设备分项查看
#chdev
修改一个AIX设备的属性
#mkdev
创建一个AIX设备,并用来调整设备的状态
#chpv
修改物理卷的状态和属性
#lspv
查看AIX中关于物理卷的相关信息
#migratepv
讲一个pv中的pp(数据)迁移到另一个pv中
针对卷组的操作命令
#mkvg
创建新卷组
#extendvg
为vg增加新的pv,用于对vg扩容
#reducevg
从卷组中删除pv,用来缩减vg的尺寸
#chvg
改卷组的属性
#lsvg
查看卷组的相关信息
#importvg
将卷组导入到AIX系统中
#exportvg
将卷组导出AIX系统(从ODM删除卷组信息)
#reorgvg
重组卷组的数据分析,常用于卷组的I/O优化
#syncvg
同步卷组中逻辑卷上的数据
#varyonvg
激活一个AIX卷组,使其可用
#varyoffvg
关闭(去活)一个卷组,使其不可用
针对逻辑卷的操作命令
#mklv
创建一个逻辑卷
#lslv
查看逻辑卷的特征
#rmlv
删除一个逻辑卷和逻辑卷上的数据
#extendlv
增加逻辑卷的大小,为逻辑卷扩容
#chlv
修改逻辑卷的属性
#mklvcopy
为逻辑卷增加镜像副本,使其被镜像
#rmlvcopy
删除逻辑卷的镜像副本
针对文件系统的操作命令
#chfs
修改文件系统的属性
#crfs
创建一个新的文件系统
#rmfs
删除文件系统,同时删除文件系统中的数据
#lsfs
显示一个文件系统的特征
#mount
挂载一个文件系统到挂载点上,使其可用
#fsck
检查一个文件系统的一致性,并可(交互式)修复该文件系统
#umount
卸载一个已安装的文件系统,这个文件系统中的目录和文件不能在被访问
#df
查看文件系统的空间使用状态
点击阅读原文可下载
长按下图二维码关注