1、IBM AIX V5.3 系统管理(Test 222)认证指南系列 第 3 部分:文件系统(下) Shiv Dutta, 技术顾问, EMC Shiv Dutta 是 IBM Systems and Technology Group 的一名技术顾问,他帮助独立软件供应商在 IBM System p 服务器上启用他们的应用程序。Shiv 有作为软件开发人员、系统管理员和讲师的丰富经验。他在 AIX 的系统管理、问题确定、性能调优和规模指导方面提供支持。Shiv 在 AIX 诞生之时就从事这方面的工作。 简介: 本教程分为两部分向您详细的介绍了 AIX V5.3 的文件系统。内容主要是针对管理员需
2、要了解的基础知识、技巧以及一些经验信息。文章是节选自 IBM 的红皮书IBM Certification Study Guide eServer p5 and pSeries Administration and Support for AIX 5L Version 5.3 。您同时可以访问上半部分 了解本教程中包含的内容以及如何最好地利用本教程。 关于本教程 文件系统提供了一种非常方便的方法,以存储和访问逻辑卷中的数据。文件系统由各种各样的文件、目录和其他数据结构组成。文件系统对相关的信息进行维护,并标识文件或者目录数据所处的具体位置。本教程向您十分详细地讲解了 AIX 文件系统管理的各个方
3、面。包括基础知识,不同的文件系统类型,如何创建、删除文件系统,如何修改文件系统的属性等,这些都是成为一个合格管理员所需要了解的知识。 目标 在完成了本教程的两部分内容后,您应该对 AIX V5.3 的文件系统有一个比较详细的了解,了解各种不同的文件系统的作用,应该可以独立完成特性类型文件系统的创建、删除以及修改属性等基本操作。当然对于一些比较常见的错误信息,也应该了解如何进行解决。 先决条件 开始学习本教程前,您需要有一定的 AIX 操作系统的操作经验,对基本的 AIX 的命令行操作或者是 SMIT 操作都要有一定的了解。 系统要求 PDF 文件使用 “pdfFactory Pro“ 试用版本
4、创建 要完成本教程中的示例,您需要具有 AIX 操作系统的 root 权限或者是具有同等权限的用户。 内容 开始之前 创建一个文件系统 装入和卸载文件系统 显示已装入的文件系统 删除文件系统 更改文件系统的属性 检查文件系统的一致性 日志设备 总结 参考资料 关于作者 创建一个文件系统 AIX 5L Version 5.3 中的每个文件系统都必须位于某个逻辑卷。 当您创建文件系统时,如果您没有指定一个以前创建的逻辑卷,那么系统将使用系统生成的名称创建一个逻辑卷,并使用缺省值作为该逻辑卷的特征。文件系统的大小非常接近逻辑分区大小的倍数。文件系统的大小不能超过逻辑卷的标准最大逻辑分区数。将向 /e
5、tc/filesystem 中添加一个包含该文件系统详细信息的节,并将新的数据写入到 ODM。 在示例 1 中,我们说明了如何使用 crfs 命令,如下所示: o lsvg -l testvg 说明 testvg 不包含任何 jfs、jfs2、jfslog 和 jfs2log 类型的逻辑卷。 o crfs -v jfs -g testvg -a size=10M -m /fs1 将在卷组 testvg 创建一个大小为 10 MB 的 jfs 文件系统,并且装入点为 /fs1。目前没有任何 jfs 逻辑卷,所以系统将创建一个,并指定其名称为 lv00。目前没有任何 jfs 日志设备,所以系统将创
6、建一个,并指定其名称为 loglv00。 o crfs -v jfs2 -g testvg -a size=10M -p ro -m /fs2 将在卷组 testvg 中创建一个大小为 10 MB 的 jfs2 文件系统,其装入点为 /fs2,并且具有只读权限。目前没有任何 jfs2 逻辑卷,所以系统将创建一个,并指定其名称为 fslv00。目前没有任何 jfs2 日志设备,所以系统将创建一个,并指定其名称为 loglv01。 o lslv lv00 和 lslv fslv00 说明所创建的逻辑卷使用了它们缺省的特征。 PDF 文件使用 “pdfFactory Pro“ 试用版本创建 o ca
7、t /etc/filesystems|grep -ip fs1 显示了 /etc/filesystems 中与 fs1 相对应的节。 示例 1 创建文件系统时不指定逻辑卷 # lsvg -l testvg testvg: LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT # crfs -v jfs -g testvg -a size=10M -m /fs1 Based on the parameters chosen, the new /fs1 JFS file system is limited to a maximum size of 134217
8、728 (512 byte blocks) New File System size is 262144 # crfs -v jfs2 -g testvg -a size=10M -p ro -m /fs2 File system created successfully. 130864 kilobytes total disk space. New File System size is 262144 # lsvg -l testvg testvg: LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT loglv00 jfslog 1 1 1 clos
9、ed/syncd N/A lv00 jfs 1 1 1 closed/syncd /fs1 loglv01 jfs2log 1 1 1 closed/syncd N/A fslv00 jfs2 1 1 1 closed/syncd /fs2 # lslv lv00 LOGICAL VOLUME: lv00 VOLUME GROUP: testvg LV IDENTIFIER: 00c478de00004c0000000107d96de510.2 PERMISSION: read/write VG STATE: active/complete LV STATE: closed/syncd TYP
10、E: jfs WRITE VERIFY: off MAX LPs: 512 PP SIZE: 128 megabyte(s) COPIES: 1 SCHED POLICY: parallel LPs: 1 PPs: 1 STALE PPs: 0 BB POLICY: relocatable PDF 文件使用 “pdfFactory Pro“ 试用版本创建 INTER-POLICY: minimum RELOCATABLE: yes INTRA-POLICY: middle UPPER BOUND: 32 MOUNT POINT: /fs1 LABEL: /fs1 MIRROR WRITE CO
11、NSISTENCY: on/ACTIVE EACH LP COPY ON A SEPARATE PV ?: yes Serialize IO ?: NO # lslv fslv00 LOGICAL VOLUME: fslv00 VOLUME GROUP: testvg LV IDENTIFIER: 00c478de00004c0000000107d96de510.4 PERMISSION: read/write VG STATE: active/complete LV STATE: closed/syncd TYPE: jfs2 WRITE VERIFY: off MAX LPs: 512 P
12、P SIZE: 128 megabyte(s) COPIES: 1 SCHED POLICY: parallel LPs: 1 PPs: 1 STALE PPs: 0 BB POLICY: relocatable INTER-POLICY: minimum RELOCATABLE: yes INTRA-POLICY: middle UPPER BOUND: 32 MOUNT POINT: /fs2 LABEL: /fs2 MIRROR WRITE CONSISTENCY: on/ACTIVE EACH LP COPY ON A SEPARATE PV ?: yes Serialize IO ?
13、: NO # cat /etc/filesystems|grep -ip fs1 /fs1: dev = /dev/lv00 vfs = jfs log = /dev/loglv00 mount = false account = false PDF 文件使用 “pdfFactory Pro“ 试用版本创建 您可以指定以前创建的逻辑卷的名称。逻辑卷类型必须与文件系统类型相匹配。文件系统的大小非常接近逻辑分区大小的倍数。将向 /etc/filesystem 中添加一个包含该文件系统详细信息的节,并对 ODM 进行更新。 在示例 2 中,我们说明了如何使用 crfs 命令,如下所示: o lsvg
14、 -l testvg 说明 jfs2 类型的 testlv 逻辑卷不与任何文件系统相关联,并且已经定义了一个 jfs2 日志设备。testlv 只有一个大小为 128 MB 的分区。 o crfs -v jfs2 -d /dev/testlv -a logname=loglv01 -m /test -a size=130M 将在现有的、名为 testlv 的逻辑卷创建一个 jfs2 文件系统,该文件系统使用 jfs2 日志设备 loglv01,并将 /test 作为装入点。因为我们为该文件系统指定的大小要大于逻辑卷本身的大小,所以将忽略 size 参数,并且该文件系统最终的大小将接近于逻辑卷的
15、大小。 o cat /etc/filesystems|grep -ip test 显示了 /etc/filesystems 中与 test 相对应的节。 示例 2 在以前定义的逻辑卷中创建文件系统 # lsvg -l testvg testvg: LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT loglv00 jfslog 1 1 1 closed/syncd N/A lv00 jfs 1 1 1 closed/syncd /fs1 loglv01 jfs2log 1 1 1 closed/syncd N/A fslv00 jfs2 1 1 1 cl
16、osed/syncd /fs2 testlv jfs2 1 1 1 closed/syncd N/A # crfs -v jfs2 -d /dev/testlv -a logname=loglv01 -m /test -a size=130M crfs: Warning: device name given, size parameter ignored. File system created successfully. 130864 kilobytes total disk space. New File System size is 262144 # cat /etc/filesyste
17、ms|grep -ip test /test: dev = /dev/testlv vfs = jfs2 PDF 文件使用 “pdfFactory Pro“ 试用版本创建 log = /dev/loglv01 mount = false account = false 装入和卸载文件系统 装入(mount)指的是使得位于某个位置的用户能够使用文件系统、文件、目录、设备和特殊文件。这是使得一个文件系统可以访问的唯一方法。 必须在装入文件系统之前创建装入点。在将文件系统装入到某个目录时,所装入文件系统的 root 目录的权限将优先于装入点的权限。 在示例 3 中,我们使用了 mount 命令,如下
18、所示: o mount /dev/fslv02 /testfs 尝试将 /test 装入到一个不存在的目录,这将产生一个错误。 o mount /dev/fslv02 /test 将文件系统装入到一个现有的目录。 o umount /testfs 尝试卸载一个并不存在的文件系统,这将产生一个错误。 o umount /test 将卸载 /test 文件系统。 示例 3 装入和卸载文件系统 # mount /dev/fslv02 /testfs mount: 0506-324 Cannot mount /dev/fslv02 on /testfs: A file or directory in
19、the path name does not exist. # umount /dev/fslv02 /test umount: 0506-347 Cannot find anything to unmount. # mount /dev/fslv02 /test # umount /testf umount: 0506-347 Cannot find anything to unmount. # umount /test 如果您希望装入所有的文件系统,那么您可以使用下面的命令,以便一次性装入所有的文件系统: mount -a|all 显示已装入的文件系统 PDF 文件使用 “pdfFacto
20、ry Pro“ 试用版本创建 您可以使用不带任何标志的 mount 命令,以显示关于当前所有已装入的文件系统的信息,如示例 4 所示。 示例 4 使用 mount 命令显示已装入的文件系统 # mount node mounted mounted over vfs date options - - - - - - /dev/hd4 / jfs2 Nov 27 12:36 rw,log=/dev/hd8 /dev/hd2 /usr jfs2 Nov 27 12:36 rw,log=/dev/hd8 /dev/hd9var /var jfs2 Nov 27 12:36 rw,log=/dev/hd
21、8 /dev/hd3 /tmp jfs2 Nov 27 12:36 rw,log=/dev/hd8 /dev/hd1 /home jfs2 Nov 27 12:36 rw,log=/dev/hd8 /proc /proc procfs Nov 27 12:36 rw /dev/hd10opt /opt jfs2 Nov 27 12:36 rw,log=/dev/hd8 /dev/testlv /test jfs2 Nov 28 19:54 rw,log=/dev/loglv01 您可以使用 lsfs 命令来显示文件系统的特征,如示例 5 所示。这个命令将显示所有类型的文件系统的数据。 示例 5
22、 使用 lsfs 命令 # lsfs -a Name Nodename Mount Pt VFS Size Options Auto Accounting /dev/hd4 - / jfs2 262144 - yes no /dev/hd1 - /home jfs2 262144 - yes no /dev/hd2 - /usr jfs2 2359296 - yes no /dev/hd9var - /var jfs2 262144 - yes no /dev/hd3 - /tmp jfs2 262144 - yes no /proc - /proc procfs - - yes no /de
23、v/hd10opt - /opt jfs2 262144 - yes no /dev/lv00 - /fs1 jfs 262144 - no no /dev/fslv00 - /fs2 jfs2 262144 ro no no # lsfs -q PDF 文件使用 “pdfFactory Pro“ 试用版本创建 Name Nodename Mount Pt VFS Size Options Auto Accounting /dev/hd4 - / jfs2 262144 - yes no (lv size: 262144, fs size: 262144, block size: 4096,
24、sparse files: yes, inline log: no, inline log size: 0, EAformat: v1, Quota: no, DMAPI: no, VIX: no) /dev/hd1 - /home jfs2 262144 - yes no (lv size: 262144, fs size: 262144, block size: 4096, sparse files: yes, inline log: no, inline log size: 0, EAformat: v1, Quota: no, DMAPI: no, VIX: no) /dev/hd2
25、- /usr jfs2 2359296 - yes no (lv size: 2359296, fs size: 2359296, block size: 4096, sparse files: yes, inline log: no,inline log size: 0, EAformat: v1, Quota: no, DMAPI: no, VIX: no) /dev/hd9var - /var jfs2 262144 - yes no (lv size: 262144, fs size: 262144, block size: 4096, sparse files: yes, inlin
26、e log: no, inline log size: 0, EAformat: v1, Quota: no, DMAPI: no, VIX: no) /dev/hd3 - /tmp jfs2 262144 - yes no (lv size: 262144, fs size: 262144, block size: 4096, sparse files: yes, inline log: no, inline log size: 0, EAformat: v1, Quota: no, DMAPI: no, VIX: no) /proc - /proc procfs - - yes no /d
27、ev/hd10opt - /opt jfs2 262144 - yes no (lv size: 262144, fs size: 262144, block size: 4096, sparse files: yes, inline log: no, inline log size: 0, EAformat: v1, Quota: no, DMAPI: no, VIX: no) /dev/lv00 - /fs1 jfs 262144 - no no (lv size: 262144, fs size: 262144, frag size: 4096, nbpi: 4096, compress
28、: no, bf: false, ag: 8) /dev/fslv00 - /fs2 jfs2 262144 ro no no (lv size: 262144, fs size: 262144, block size: 4096, sparse files: yes, inline log: no, inline log size: 0, EAformat: v1, Quota: no, DMAPI: no, VIX: no) 删除文件系统 您可以使用 rmfs 命令来删除文件系统。该命令将从 /etc/filesystems 中删除相应的节,以及该文件系统所处的逻辑卷。 示例 6 使用 r
29、mfs 命令 # lsvg -l testvg testvg: LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT PDF 文件使用 “pdfFactory Pro“ 试用版本创建 loglv00 jfslog 1 1 1 closed/syncd N/A lv00 jfs 1 1 1 closed/syncd /fs1 loglv01 jfs2log 1 1 1 open/syncd N/A fslv00 jfs2 1 1 1 closed/syncd /fs2 testlv jfs2 1 1 1 open/syncd /test # rmfs /te
30、st rmfs: 0506-921 /test is currently mounted. # umount /test # rmfs /test rmlv: Logical volume testlv is removed. # lsvg -l testvg testvg: LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT loglv00 jfslog 1 1 1 closed/syncd N/A lv00 jfs 1 1 1 closed/syncd /fs1 loglv01 jfs2log 1 1 1 closed/syncd N/A fslv0
31、0 jfs2 1 1 1 closed/syncd /fs2 # cat /etc/filesystems|grep test # 更改文件系统的属性 您可以使用 chfs 命令来更改文件系统的某些属性,如装入点权限、日志设备,或者大小,如示例 7 所示。如果文件系统新的大小要大于逻辑卷的大小,那么将对逻辑卷进行扩展以容纳该文件系统,假设它没有超过最大逻辑分区数。 示例 7 更改文件系统的属性 # lsfs -a Name Nodename Mount Pt VFS Size Options Auto Accounting /dev/hd4 - / jfs2 262144 - yes no /
32、dev/hd1 - /home jfs2 262144 - yes no PDF 文件使用 “pdfFactory Pro“ 试用版本创建 - /usr jfs2 2359296 - yes no /dev/hd9var - /var jfs2 262144 - yes no /dev/hd3 - /tmp jfs2 262144 - yes no /proc - /proc procfs - - yes no /dev/hd10opt - /opt jfs2 262144 - yes no /dev/lv00 - /fs1 jfs 262144 - no no /dev/fslv00 -
33、/fs2 jfs2 262144 ro no no # chfs -a size=250M -p rw /fs2 Filesystem size changed to 524288 # lsfs -a Name Nodename Mount Pt VFS Size Options Auto Accounting /dev/hd4 - / jfs2 262144 - yes no /dev/hd1 - /home jfs2 262144 - yes no /dev/hd2 - /usr jfs2 2359296 - yes no /dev/hd9var - /var jfs2 262144 -
34、yes no /dev/hd3 - /tmp jfs2 262144 - yes no /proc - /proc procfs - - yes no /dev/hd10opt - /opt jfs2 262144 - yes no /dev/lv00 - /fs1 jfs 262144 - no no /dev/fslv00 - /fs2 jfs2 524288 rw no no 检查文件系统的一致性 fsck 命令可以检查文件系统的一致性,并以交互的方式修复文件系统。您不应该对一个已装入的文件系统运行 fsck 命令。您必须能够读取该文件系统所处的设备文件。fsck 命令尝试修复文件系统元
35、数据结构,显示关于所找到的不一致内容的信息,并提示您使用相应的权限对其进行修复。它并不恢复数据块中的数据。如果您丢失了数据,那么您必须从备份进行还原。 fsck 命令将所检测到的孤立的文件和目录放到文件系统 root 目录中的 lost+found 目录中。 在系统启动时,将调用 fsck 命令对 /、/usr、/var 和 /tmp 文件系统进行验证。如果验证不成功,则将使得系统无法正常启动。 PDF 文件使用 “pdfFactory Pro“ 试用版本创建 日志设备 下面的部分描述了关于文件系统日志的基本信息。 创建日志设备 在安装系统时,将在 hd8 中为 rootvg 创建专门的日志设
36、备。当您的文件系统的大小不断增加时,您应该考虑增加缺省日志的大小,或者创建新的日志设备。 要创建日志设备,您应该使用 mklv 命令,并将逻辑卷类型指定为 jfslog 或者 jfs2log。 初始化日志设备 可以使用 logform 命令对日志设备进行初始化,以清除所有的日志记录。相同的命令也可以用于 jfslog 设备、jfs2log2 设备或者内联日志。logform 命令不会影响数据本身。 要对名为 loglv01 的 jf2log 设备进行初始化,可以使用下面的命令: logform /dev/loglv01 总结 经过了本教程两部分的学习,相信您一定能够对 AIX V5.3 的文件
37、系统有一个更深入的了解。同时也掌握了不少管理 AIX 文件系统的能知识。当然,文件系统管理的很多细节还需要您对于一些命令和一些概念的进一步深入研究才能够掌握。希望本教程能够让您在成为一个合格的管理员的学习道路上有一定的帮助。 参考资料 学习 本文的 IBM 红皮书原文 本文的上半部分 IBM 提供的培训课程 按主题搜索“AIX and UNIX”库: o 系统管理 o 应用程序开发 o 性能 o 移植 PDF 文件使用 “pdfFactory Pro“ 试用版本创建 o 安全性 o 提示 o 工具和实用程序 o Java技术 o Linux o 开放源代码 AIX and UNIX 专区:de
38、veloperWorks 的“AIX and UNIX 专区”提供了大量与 AIX 系统管理的所有方面相关的信息,您可以利用它们来扩展自己的 UNIX 技能。 AIX and UNIX 新手入门:访问“AIX and UNIX 新手入门”页面可了解更多关于 AIX 和 UNIX 的内容。 AIX 6 Wiki:发现 AIX 相关技术信息的协作环境。 Safari 书店:访问此电子参考资料库可查找特定的技术资源。 developerWorks 技术事件和网络广播:了解最新的 developerWorks 技术事件和网络广播。 Podcast:收听 Podcast 并与 IBM 技术专家保持同步。 获得产品和技术 IBM 试用软件:从 developerWorks 可直接下载这些试用软件,您可以利用它们开发您的下一个项目。 PDF 文件使用 “pdfFactory Pro“ 试用版本创建