AIX文件系统和存储部署(转)
文件系统和存储部署
文件系统的管理是AIX存储结构中的最后一环。定义完lv后,可采用如下两种方式使用lv:
a.作为裸设备(raw)使用,一般是数据库型的应用
b.在lv上定义文件系统,并提供文件和数据的存储服务
AIX提供和支持的文件系统类型
a.JFS/JFS2 日志文件系统(Journaled File System),JFS2是增强版,该文件系统将基于数据库的日志技术来记录文件系统上发生的元数据改变,每个JFS/JFS2会在存储结构上独立使用一个lv,形成严格的“lv-文件系统”一对一关系。如:/、/usr、/home、/admin等
b.NFS 网络文件系统(Network File System),它通过访问其他UNIX系统上的文件和目录,来提供分布式的文件存储服务,类似于Windows系统中的“共享文件夹”
c.GPFS 集群文件系统(General Parallel 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 -a
isnapshot=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 -o
size=Size
创建内部快照语法
#snapshot -o snapfrom=snappedFS -n
snapshotName
删除外部快照语法
#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
查看文件系统的空间使用状态
AIX文件系统和存储部署(转)的更多相关文章
- FAT32文件系统的存储组织结构(一)
对磁盘的物理结构,逻辑结构和存储结构有了比较深入的了解后,我们来仔细探讨FAT32文件系统的存储组织结构.说到文件系统的组织结构,我们应该马上意识到,这指的是文件系统在同一个分区内的组织结构,在这个话 ...
- Hadoop基础-HDFS分布式文件系统的存储
Hadoop基础-HDFS分布式文件系统的存储 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.HDFS数据块 1>.磁盘中的数据块 每个磁盘都有默认的数据块大小,这个磁盘 ...
- 分布式部署网站---文件系统的存储--ftp上传图片到指定文件服务器
问:通常一个网站程序发布在一个iis服务器上,但是如果要分布式部署网站.文件系统该如何存储呢? 答:通常的就是给网站文件系统一个子域名.比如 https://images.web.com. 网站程序内 ...
- openstack-swift云存储部署(二)
接上篇,swift-proxy和swift-store的安装 先说一下服务器分配 swift-proxy和keystone部署在192.168.25.11 swift-store是两台 分别是192 ...
- 报表在IBM AIX系统下resin部署
报表是用java开发的,具有良好的跨平台性.不仅可以应用在windows.linux.操作系统,还可以应用在AIX等等的unix操作系统.在各种操作系统上部署过程有一些差别.下面说一下在AIX操 ...
- openstack-swift云存储部署(一)
最近因为工作的需要搭建了一套swift云存储架构 我们先来解读一下里面的技术知识点:swift服务是属于openstack中的一种组件服务,openstack中的组件服务还有keystone.Nova ...
- AIX之ASM存储扩容
ASM存储扩容操作其实很简单,无非就是向DiskGroup(简称DG)里添加物理磁盘,增加DG的存储空间.说来简单,其实操作过程中有很多小细节要注意,否则,带来的后果是灾难性的. ASM扩容操作步骤( ...
- FAT32文件系统的存储组织结构(二)
前面已经基于一个格式化的空U盘分析了一下FAT32文件系统存储的组织结构,下面我们从文件操作的角度来分析一下文件系统的运作机制.由于换了个U盘,所以仍然贴出刚格式化的空U盘的几个重要的数据区如下: ...
- Rancher2.0中使用外置NFS存储部署Nginx实验
目录: 1.环境准备工作 1.1 准备好Rancher2.0集群环境 1.2 准备好外部NFS服务器 2.Rancher2.0中使用NFS存储的方法 2.1 在集群中创建持久卷(PV) 2.2 在项目 ...
随机推荐
- StyleCop 代码走错 去掉 修改csproj文件
<Import Project="..\packages\StyleCop.MSBuild.4.7.55.0\build\StyleCop.MSBuild.Targets" ...
- Django Web开发学习笔记(3)
1.创建一个简单视图 这章是按照DgangoBook的说明.在我们创建的工程目录下面DjangoE_1(这是我为自己的工程命名的名字)新建一个view.py的文件,并在该文件下添加如下代码 from ...
- Struct2 (一)
STRUCT2 权威指南(1) MVC思想将一个应用分成三个基本部分:Model(模型).View(视图)和Controller(控制器),这三个部分以最少的耦合协同工作,从而提高应用的可扩展性及可维 ...
- 如何永久删除git仓库中敏感文件的提交记录
如何永久删除git仓库中敏感文件的提交记录 参考: 1. https://help.github.com/articles/remove-sensitive-data/
- SNF快速开发平台3.0之BS页面展示和九大优点-部分页面显示效果-Asp.net+MVC4.0+WebAPI+EasyUI+Knockout
一)经过多年的实践不断优化.精心维护.运行稳定.功能完善: 能经得起不同实施策略下客户的折腾,能满足各种情况下客户的复杂需求. 二)编码实现简单易懂.符合设计模式等理念: 上手快,见效快.方便维护,能 ...
- layui table 根据条件改变更换表格颜色 高亮显示 数据筛选
请问想让当layui表格的某个字段符合某个条件的时候,让该行变颜色.这样可以实现么. layui数据表格怎么更换表格颜色 layui表格 通过判断某一行中的某一列的值进行设置这一行的颜色 LayUI之 ...
- [svc]rsync简单部署
安装rsync服务端-backup服务器 yum install rsync -y useradd rsync -s /sbin/nologin -M chown -R rsync.rsync /da ...
- Oralce 日期操作
1.日期比较 --1.在确定时间之前: select * from up_date where update < to_date('2018-06-05 00:00:00','yyyy-mm-d ...
- 【iCore1S 双核心板_ARM】例程三:EXTI中断输入实验——读取ARM按键状态
实验原理: 按键的一端与STM32的GPIO(PB9)相连,且PB9外接一个1k大小的限流上接电阻. 初始化时把PB9设置成输入模式,当按键弹起时,PB9由于上拉电阻的作用呈高电平(3.3V): 当按 ...
- 【iCore1S 双核心板_FPGA】例程十二:基于单口RAM的ARM+FPGA数据存取实验
实验现象: 核心代码: module single_port_ram( input CLK_12M, input WR, input RD, input CS0, inout [:]DB, input ...