一. 管理逻辑卷
物理卷和卷组通常不由用户和应用程序直接访问数据,并且也无法操作它们来提供磁盘空间以供用户和应用程序使用。但是,逻辑卷提供了使磁盘空间可供使用的机制,从而为用户和应用程序提供了访问存储在其上的数据的能力。
当您创建逻辑卷时,您将指定用于该逻辑卷的逻辑分区的数量。一个逻辑分区映射到一个、两个或三个物理分区,具体取决于您希望维护的数据副本的数量。
例如,您可以指定一个要镜像的逻辑卷并拥有多个副本,如图 1 所示。单个逻辑卷副本(缺省情况)表示存在从一个逻辑分区到一个物理分区的直接映射。
因此,逻辑卷的管理就是可供使用的磁盘空间的管理。本节将讨论一下可由用户对逻辑卷执行的功能。
1.1 添加逻辑卷
可以使用 mklv 命令创建逻辑卷。此命令允许您指定逻辑卷的名称并定义其特征,包括要为其分配的逻辑分区的数量。逻辑卷在创建时的缺省最大大小为 128 个逻辑分区。
1.1.1 使用命令行创建逻辑卷
mklv 命令用于创建新的逻辑卷。下面是 mklv 命令的语法,最常用的标志如表 4 所示。
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 ... ]
表 4 mklv 命令的标志
标志 |
描述 |
-c copies |
设置为每个逻辑分区分配的物理分区数量。copies 变量可设置为 1 到 3 的值;缺省值为 1。 |
-i |
从标准输入读取 PhysicalVolume 参数。仅当通过标准输入设备输入 PhysicalVolume 时才使用 -i 标志。 |
-L |
设置逻辑卷标签。缺省标签为 None。标签文件的最大大小为 127 个字符。如果要将该逻辑卷用作日记记录文件系统 (JFS),则 JFS 将使用此字段来存储文件系统在该逻辑卷上的挂载点,以便以后引用。 |
-P Modes |
指定逻辑卷特殊文件的权限(文件模式)。 |
-t Type |
设置逻辑卷的类型。标准类型为 JFS(文件系统)、JFSLOG(日记文件系统日志)和 paging(分页空间),但是用户可以使用此标志来定义其他逻辑卷类型。不能创建启动类型的逻辑卷。缺省类型为 JFS。如果手动为文件系统创建了日志,则用户必须运行 logform 命令来清空新的 JFSLOG,然后才能使用该日志。可以使用以下命令来格式化逻辑卷 logdev: |
-y NewLV |
指定要使用的逻辑卷名称,而不是使用系统生成的名称。逻辑卷名称必须是系统范围的唯一名称,并且可以在 1 到 15 个字符的范围内。如果卷组是以并发模式 vary on 的,则新的名称应该在 vary on 该卷组的所有并发节点中是唯一的。 |
下面的示例显示了如何使用 mklv 命令来创建一个新的逻辑卷 newlv。此命令将在 rootvg 中创建一个名为 newlv 的逻辑卷,并且该逻辑卷具有 10 个逻辑分区,每个逻辑分区由两个物理分区组成。
mklv -y newlv -c 2 rootvg 10
1.1.2 使用 SMIT 创建逻辑卷
可以使用以下 SMIT 操作来创建逻辑卷。
1. 运行命令 smitty mklv
2. 按 F4 获取系统中定义的所有卷组的列表。一个类似于图 2 的屏幕将显示出来:
3. 使用箭头键来选择要在其中创建新逻辑卷的卷组,然后按 Enter 键。一个类似于图 3 的屏幕将显示出来。
图 3 设置新逻辑卷的特征
4. 在 Logical volume NAME 字段中,输入您正在创建的逻辑卷的名称(在此例中为 newlv)。
5. 在 Number of LOGICAL PARTITIONS 字段中,输入您希望分配到新逻辑卷的逻辑分区数量(在此例中为 10)。
每个逻辑分区对应于一个或多个物理分区,具体取决于您希望保留的数据副本的数量。
6. 在 PHYSICAL VOLUME names 字段中,输入您希望用于该逻辑卷的物理卷。如果不指定任何名称,则会使用系统中的第一个 PV 来保存所有数据。
7. 在 Number of COPIES of each logical partition 字段中,输入您希望为数据保留的 LP 副本的数量。允许的值为 1 至 3。
8. 按 Enter 键创建该逻辑卷。
1.2 删除逻辑卷
如果某个逻辑卷不再由用户和应用程序用于存储目的,您可能需要删除该逻辑卷。rmlv 命令可以用于删除逻辑卷。
1.2.1 使用命令行删除逻辑卷
rmlv 命令用于删除逻辑卷。下面显示了该命令的一般语法,其常用的标志如表 5 所示。
rmlv [ -f ] [ -p PhysicalVolume ] LogicalVolume ...
表 5 rmlv 命令标志
标志 |
描述 |
-f |
删除逻辑卷而不请求确认。 |
-p PhysicalVolume |
仅删除 PhysicalVolume 上的逻辑分区。除非没有分配其他物理分区,否则不会删除逻辑卷。 |
下面显示了用于删除逻辑卷 newlv 的命令:
# rmlv newlv
Warning, all data on logical volume newlv will be destroyed.
rmlv:Do you wish to continue? y(es) n(o) y
#
输入 y 来响应此对话并按 Enter 键将完成删除某个逻辑卷的过程。
1.2.2 使用 SMIT 删除逻辑卷
或者,可以使用 SMIT 快速路径命令 smitty rmlv 来删除逻辑卷。
1.3 缩小逻辑卷的大小
可以执行下列步骤来缩小逻辑卷的大小,以释放过多的逻辑分区分配:
1. 备份该逻辑卷中的所有数据。
2. 删除该逻辑卷。
3. 重新创建具有缩小的逻辑分区分配的逻辑卷。
4. 还原数据。
最终的空闲空间可通过分配给其他需要它的逻辑卷来得到更好的利用。
1.4 增加逻辑卷的大小
使用 extendlv 命令或 SMIT 可以增加现有逻辑卷的大小。
如果该逻辑卷由某个日记记录文件系统使用,您还可以使用 chfs 命令或 SMIT 快速路径命令 smitty chjfs 来增加逻辑卷的大小。
1.4.1 使用命令行扩展逻辑卷
extendlv 命令用于增加逻辑卷的大小。下面是该命令的一般语法及其常用的标志:
extendlv [ -a Position ] [ -e Range ] [ -u Upperbound ] [ -s Strict ]LogicalVolume Partitions [ PhysicalVolume ... ]
下面的示例显示了如何使用 extendlv 命令来向您创建的逻辑卷添加三个额外的逻辑分区:
extendlv newlv 3
1.4.2 使用 SMIT 扩展逻辑卷
可以使用 SMIT 快速路径命令 smitty extendlv 来增加逻辑卷的大小。
1.5 复制逻辑卷
可能由于多种原因而需要复制逻辑卷。如果要删除某个磁盘并替换为新磁盘,则需要将该磁盘上的逻辑卷复制到新磁盘。可以将逻辑卷复制到新的逻辑卷,或者到现有的逻辑卷,这将覆盖现有的逻辑盘。
1.5.1 使用命令行复制逻辑卷
下面的示例显示了如何使用 cplv 命令来复制逻辑卷:
cplv -v myvg -y newlv oldlv
此命令将把 oldlv 的内容复制到卷组 myvg 中的一个名为 newlv 的新逻辑卷。如果未指定卷组,则会在旧逻辑卷所在的卷组中创建新的逻辑卷。此命令将创建一个新的逻辑卷。
下面的示例演示了如何将一个逻辑卷复制到一个现有的逻辑卷:
cplv -e existinglv oldlv
此命令将把 oldlv 的内容复制到相同卷组中的逻辑卷 existinglv。此命令会请求确认复制操作,因为 existinglv 中的所有数据都将被改写。
如果 existinglv 小于 oldlv,则数据将会丢失,并可能导致破坏。
注意:不要从包含数据的较大逻辑卷复制到较小的逻辑卷。这样做会导致破坏文件系统,因为有些数据未复制。如果 cplv 创建新的逻辑卷,并且卷组是以并发模式 vary on 的,则此命令将会失败。
1.5.2 使用 SMIT 复制逻辑卷
另外一种选择,您可以使用 SMIT 快速路径命令 smitty cplv 来获得类似于图 4 所示的屏幕。
1. 选择 Copy over an existing logical volume。一个类似于图 5 的屏幕将显示出来。
选择源和目标逻辑卷
2. 在 SOURCE logical volume name 字段中输入您希望复制的逻辑卷的名称。
3. 在 DESTINATION logical volume name 字段中输入您希望将现有逻辑卷复制到其上的逻辑卷的名称。此名称可以是某个已经创建的现有逻辑卷的名称,或者是您希望创建的新逻辑卷的名称。按 Enter 键完成此步骤。
注意:您可能会遇到以下错误:
cplv :Destination logical volume must have type set to copy
如果遇到这种情况,可以使用以下命令:
chlv -t copy Destination_Logical_Volume_Name
返回到您的 SMIT 会话。现在系统将允许您复制该逻辑卷。这样做是为了确保额外的安全性,以便不致意外地改写数据。
1.6 拆分逻辑卷的副本
splitlvcopy 命令拆分一个逻辑卷中的副本,并从这些副本创建一个单独的新逻辑卷。splitlvcopy 命令的一般语法规则如下所示:
splitlvcopy [ -f ] [ -y NewLogicalVolumeName ] [ -Y Prefix ] LogicalVolume
Copies [ PhysicalVolume ... ]
注意:尽管 splitlvcopy 命令可以拆分已打开的逻辑卷,包括那些包含已挂载的文件系统的逻辑卷,但是建议不要这样做。如果多个进程同时访问该逻辑卷,LogicalVolume 和 NewLogicalVolume 之间可能失去一致性。在拆分某个逻辑卷时,您将隐式地接受与此操作相关联的潜在数据丢失和数据破坏的风险。
为了避免潜在的破坏可能性,应该在拆分之前卸载文件系统并关闭逻辑卷。
要拆分属于名为 oldlv 的逻辑卷的每个逻辑分区的一个副本(当前有 3 个副本)并创建一个逻辑卷 newlv,可以按如下方式使用 splitlvcopy 命令:
splitlvcopy -y newlv oldlv 2
现在逻辑卷 oldlv 中每个逻辑分区具有两个物理分区。
现在逻辑卷 newlv 中每个逻辑分区具有一个物理分区。
1.7 列出逻辑卷
以下逻辑卷是在系统安装时自动创建的:
(1). hd5 这是包含启动代码的启动逻辑卷。它仅在系统启动时可用。
(2). hd6 这是系统用于执行分页的缺省分页空间逻辑卷。
(3). hd8 此逻辑卷用作日记记录文件系统的缺省日志记录空间。
(4). hd4 此逻辑卷由 /, 根文件系统使用。
(5). hd2 此逻辑卷由 /usr 文件系统使用。
(6). hd9var 此逻辑卷由 /var 文件系统使用。
(7). hd3 此逻辑卷由 /tmp 文件系统使用。
(8). hd1 此逻辑卷由 /home 文件系统使用。
下面的命令将列出系统上定义的所有逻辑卷,如图 6 所示。
lsvg | lsvg -il
可以使用 lslv 命令来查看与某个逻辑卷 (newlv) 相关的所有属性,如图 7 所示。
1.8 逻辑卷大小
某个逻辑卷的大小是分配到该逻辑卷的空间,并且是分配到该逻辑卷的逻辑分区数量和告诉系统要维护的副本数量的一个因子。
因此,该逻辑卷占用的总空间由以下公式确定:
总的 LV 大小 = PP 大小 * 分配到 LV 的 LP 数量 * LV 的副本数量
下面的示例显示了如何计算逻辑卷大小。
如果 PP 大小为 4 MB,分配到该逻辑卷的 LP 数量为 10,该逻辑卷的副本数量为 2,则将分配到该逻辑卷的总空间为 80 MB (4*10*2)。
二. 管理日记记录文件系统
文件系统是文件、目录和其他数据结构的集合。文件系统对相关的信息进行维护,并标识文件或者目录数据所处的具体位置。除了文件和目录以外,文件系统还可以包含一个引导块、一个超级块、位图和一个或多个分配组。分配组包含磁盘索引节点和分段 (fragment)。
AIX 系统上支持以下三种类型的文件系统:
(1)日记记录文件系统
这种本机文件系统类型称为日记记录文件系统(journaled file system,JFS)。每个日记记录文件系统驻留在单独的逻辑卷上。操作系统在初始化期间挂载某些日记记录文件系统(启动和运行系统所必需的日记记录文件系统),并且仅在得到指示时才挂载 /etc/filesystems 中的其他文件系统。
(2)网络文件系统
网络文件系统 (NFS) 是一种分布式文件系统,它允许用户访问位于远程计算机的文件和目录,可以像使用本地文件和目录那样使用这些远程文件和目录。
(3)CD-ROM 文件系统
CD-ROM 文件系统 (CDRFS) 是一种文件系统类型,它允许您通过一般的文件系统接口来访问 CD-ROM 中的内容。
日记记录文件系统 (JFS) 将逻辑卷划分为许多固定大小的单元,这些单元称为逻辑块。文件系统中的逻辑块按如下方式进行组织:
(1)逻辑块 0
文件系统中的第一个逻辑块被保留,可用于引导程序或任何其它所需的信息;文件系统不使用此块。
(2)超级块
第一和第三十一个逻辑块用于超级块(逻辑块 31 是一个备份副本)。超级块包含相关信息,例如以 512 字节的块为单位的文件系统总大小、文件系统名称、文件系统日志设备地址(本节稍后将会介绍日志)、版本号和文件系统状态。
(3)分配组
文件系统中的其余逻辑块划分为许多分配组。分配组由数据块和索引节点组成,当将数据块分配到目录或文件时,将使用索引节点来引用那些数据块。
这些组可用于定制数据在磁盘上的物理布局。
2.1 日记记录文件系统的特征
日记记录文件系统 (JFS) 的大小是在创建文件系统时定义的,并考虑了以下参数:
(1). 索引节点的数目
(2). 分配组的大小
(3). 文件系统分段的可寻址性
(4). 日记记录文件系统的日志大小
(5). 日记记录文件系统的最大大小
2.1.1 索引节点的数目
文件系统中的索引节点总数限制了文件总数和该文件系统的总大小。JFS 提供了 nbpi(每个索引节点的字节数)参数,用于改变文件系统中的索引节点数目。JFS 支持的 nbpi 值为 512、1024、2048、4096、8192、16384、32768、65536 和 131072。值 32768、65536 和 131072 仅适用于 AIX Version 4.2 或更高版本。
例如,要创建 nbpi 值为 4096 的 8MB 的文件系统,则会为每 4096 字节的数据生成一个索引节点。这会导致一个 8 MB 的文件系统最多有 2048 个索引节点,从而意味着如果该文件系统中的每个文件长度恰好为 4 KB,则最多可以在该文件系统中创建 2048 个文件。
JFS 将所有的文件系统限制为 16 MB (2的24次方) 个索引节点。
2.1.2 分配组大小
AIX Version 4.2 及更高版本支持各种不同的分配组大小。JFS 将文件系统空间隔离为索引节点和用于用户数据的磁盘块的分组。这些分组称为分配组。分配组的大小可以在创建文件系统时指定。分配组大小为 8MB、16 MB、32 MB 和 64 MB。每个分配组大小具有一个关联的 nbpi 范围。表 6 定义了这些范围。
表 6 允许的 nbpi 值
分配组大小(以 MB 为单位) |
最大索引节点数量 |
8 |
512、1024、2048、4096、8192 和 16384 |
16 |
1024、2048、4096、8192、16384 和 32768 |
32 |
2048、4096、8192、16384、32768 和 65536 |
64 |
4096、8192、16384、32768、65536 和 131072 |
2.1.3 文件系统分段可寻址性
JFS 支持四种分段大小:512、1024、2048 和 4096 字节的连续磁盘空间单元。JFS 在索引节点和间接块中维护 28 位数字的分段地址。每个分段必须可通过一个从 0 到 2的28次方大小的数字来寻址。如果某个文件系统主要是大小为 400 字节的文件,则 512 的分段大小将是最高效的,因为 4096 字节的分段将会浪费空间。分段是最小的可寻址存储单元。
2.1.4 日记记录文件系统日志
多个日记记录文件系统使用一个公共日志,称为 JFS 日志,并配置为具有 4 MB 的大小。 例如,在初始安装之后,根卷组中的所有文件系统都使用逻辑卷 hd8 作为公共 JFS 日志。缺省的逻辑卷分区大小为 4 MB,并且缺省的日志大小为一个分区;
因此,根卷组通常包含一个 4 MB 的 JFS 日志。当文件系统超过 2 GB,或者当使用单个日志的文件系统空间总量超过 2 GB 时,需要增加缺省日志大小。JFS 日志仅限于最大 256 MB。
2.1.5 最大日记记录文件系统大小
最大的 JFS 大小是在创建文件系统时定义的。例如,选择 512 的分段大小将把文件系统大小限制到 8 GB (512 *224 = 8 GB)。在创建 JFS 文件系统时,需要对列出的因素(nbpi、分段大小和分配组大小)进行仔细权衡。文件系统大小限制为 NPBI * 224 或分段大小 * 228 的最小值。
2.2 创建文件系统
AIX 中的每个文件系统对应于一个逻辑卷。要创建日记记录文件系统,可以使用以下 SMIT 操作:
1. 执行 SMIT 快速路径命令 smitty crjfs 将显示一个类似于图 8 的屏幕。
2. 选择 Add a Standard Journaled File System 以添加一个新的日记记录文件系统。这时将显示与图 9 所示类似的屏幕。
3. 使用箭头键选择要将新文件系统添加到其中的卷组。在此例中,由于仅有一个卷组 (rootvg),因此仅显示了 rootvg。请按 Enter 键选择 rootvg 作为目标卷组。
4. 在选择目标卷组以后,将显示一个类似于图 10 的屏幕。
5. 在 Size of file system (in 512 byte blocks) 字段中,输入您希望创建的文件系统的大小。例如,如果您希望创建一个 4 MB 大小的文件系统,只需将 MB 数(在此例中为 4)与 2048 相乘以获得 512 字节的块数,在创建此大小的文件系统时将需要指定该块数(在此例中为 8192)。
注意:在 AIX 中,所有的 I/O 都以 4 KB 的块进行;但是空间是以 512 字节块的倍数进行分配的。这样做是为了与其他 UNIX 系统保持一致。能够创建的最小文件系统等于一个 PP;因此,即使指定的块数小于一个 PP,系统仍然会创建等于一个 PP 的文件系统。下面的示例显示了如何计算给定空间量(以 MB 为单位)的块数:
由于 512 字节 = 1 个块
因此,1024 字节 = 2 个块,1 MB = 2*1024 个块
因此,x MB = x * 2048 个块
这表明 2 MB 的文件系统的等效块数为 4096(在 Size of File System 字段中输入此数字)。
6. 下一步,在 MOUNT POINT 字段中,输入一个完整路径,该文件系统将在该路径中将自身连接到文件系统层次结构中。挂载点是一个目录或文件,通过该目录或文件可以访问新的文件系统、目录或文件。
7. 按 Enter 键以创建该日记记录文件系统。如图 11 所示的屏幕表示该过程成功完成。
或者,可以使用以下命令在命令行上执行同样的任务:
crfs -v jfs -g rootvg -a size=8192 -m /dummy
此命令将创建一个 4 MB 的日记记录文件系统,并将 /dummy 作为在 rootvg 卷组中的挂载点。
2.3 挂载文件系统
挂载指的是使得用户能够在特定位置使用文件系统、文件、目录、设备和特殊文件。这是使得一个文件系统可以访问的唯一方法。一旦创建了文件系统,下一个任务就是使其对用户可用。为此,您必须知道 AIX 如何管理使用挂载点将新创建的文件系统连接到其文件树中的过程。
图 12 显示了一个在通过其挂载某个文件系统之前的文件系统挂载点 (/u/kenzie)。
图 13 显示了一个已通过挂载点 /u/kenzie 挂载的文件系统 /u/kenzie。
注意:
(1)在将文件系统挂载到某个目录时,所挂载文件系统的根目录的权限将优先于挂载点的权限。
(2)一个常见问题是 pwd 命令失败。由于没有挂载点目录中的搜索权限,pwd 命令将返回以下消息:
pwd:Permission denied
通过将挂载点目录的权限至少设置为 111 可以避免此问题。
2.3.1 使用命令行挂载文件系统
下面的命令显示了如何挂载一个文件系统 (/FileSystemX)。
mount /FileSystemX
或者,如果知道与文件系统相关联的设备的名称,您可以使用设备名称来挂载新创建的文件系统。
如果您希望挂载所有的文件系统,那么您可以使用下面的命令,以便一次性挂载所有的文件系统。
mount {-a|all}
2.3.2 使用 SMIT 挂载文件系统
还可以使用以下 SMIT 快速路径来挂载文件系统。
1. 执行 smitty mount 将显示与的图 14 类似的屏幕。
图 14 smitty mount 命令
2. 使用箭头键向下移动光标,并通过按 Enter 键选择 Mount a File System。这时将显示与图 15 所示类似的屏幕:
3. 使用箭头键向下移动到 DIRECTORY over which to mount。
4. 按 F4 以获取为您的文件系统定义的挂载点列表(请参考“创建文件系统”,以了解如何创建文件系统,并注意您为自己的文件系统创建了一个挂载点。您将使用同一个挂载点来使您的文件系统对用户可用)。按 F4 将显示一个与图 16 所示类似的屏幕。
图 16 选择挂载点
5. 使用箭头键选择希望挂载的文件系统。按 Enter 键做出选择。此时将显示您刚才在 DIRECTORY over which to mount 字段中选择的挂载点。
6. 再次按 Enter 键,并等待 SMIT OK 提示,此提示表明该过程成功完成。
2.4 自动挂载
可以将挂载设置为在系统初始化期间自动进行。存在两种类型的自动挂载:
(1)启动和运行系统所必需的挂载。这些文件系统由启动过程挂载。此类文件系统在 /etc/filesystems 文件中的节具有 mount=automatic 属性。当多用户初始化开始时,/etc/rc 脚本在运行 mount all 命令时不会尝试再次挂载这些文件系统。类似地,在运行 umount all 命令时,不会卸载这些文件系统。
(2)第二种类型的自动挂载是由用户控制的。这些文件系统在初始化期间由 /etc/rc 脚本在发出 mount all 命令时挂载。用户控制的自动挂载在 /etc/filesystems 中包含 mount=true。
通过 mount all 命令或通过 /etc/rc 脚本,可以指定在初始化时自动挂载某个文件系统。这是通过在创建文件系统时将 Mount AUTOMATICALLY at system restart 字段设置为 TRUE,或者通过使用 chfs –A yes file_system 命令实现的。
以下来自 /etc/filesystems 中的节显示了一个自动挂载的文件系统:
/opt:
dev = /dev/hd10opt vfs = jfs log = /dev/hd8
mount = true check = true
2.5 显示已挂载的文件系统
下面的示例显示了如何使用不带标志的 mount 命令来显示有关当前已挂载的所有文件系统的信息。
三. 删除文件系统
下面的示例显示了删除某个文件系统所涉及到的步骤:
1. 使用 mount 命令来检查当前已挂载的文件系统将会显示以下屏幕:
2. 确定您希望删除的文件系统是否显示在该列表中。
如果是,则继续步骤 3。
如果否,则转到步骤 5。
3. 使用 umount 命令卸载该文件系统。
# umount filesystem_name
4. 重复步骤 1 以检查该文件系统是否已成功卸载。
5. 使用 SMIT 快速路径命令 smitty rmjfs 来删除某个日记记录文件系统将会显示一个类似于图 17 所示的屏幕。
6. 按 F4 以获取系统上定义的所有文件系统的列表。
您将获得与图 18 所示类似的屏幕。
图 18 选择要删除的文件系统
7. 使用箭头键并按 Enter 键选择要删除的文件系统。
8. 您刚才选择的文件系统的名称将显示在 FILE SYSTEM name 字段中。
9. 如果希望保留用于挂载此文件系统的目录,请按 Enter 键完成该命令,否则将 Remove Mount Point 字段设置为 YES,并按 Enter 键完成该过程。
或者,可以将步骤 5 至 9 替换为 rmfs 命令。
#rmfs filesystem_name
要在删除文件系统时删除挂载点,可以添加 –r 标志。
四. 增加文件系统的大小
AIX 提供了动态增加文件系统大小的能力,用以保证磁盘上有足够的空闲空间可用。空间不足的文件系统可能导致意外问题。
注意:每当某个文件系统装满时,系统将无法向其写入数据,并返回以下错误:
There is not enough room in the file system
4.1 使用命令行增加文件系统大小
可以使用chfs 命令增加文件系统的大小,如下列步骤所示:
1. 使用 df 命令确定文件系统的当前大小。
2. 计算需要添加的块数。
3. 在命令行上输入以下命令:
#chfs -a size=new_size_in_512-byte_blocks file_system_name
Filesystem size changed to new_size_in_512-byte_blocks
4.2 使用 SMIT 增加文件系统大小
要使用 SMIT 增加文件系统的大小,可以执行下列步骤:
1. 运行 smitty chjfs 命令来显示与图 19 所示类似的屏幕。
2. 使用箭头键选择希望更改的文件系统并按 Enter 键。一个与图 20 所示类似的屏幕将显示出来,其中将报告当前的文件系统属性。
图 20 设置文件系统的新特征
3. 在 SIZE of file system (in 512 byte block) 字段中输入您计算得出的新的文件系统大小。
4. 按 Enter 键。SMIT OK 提示将表明该过程成功完成。
五.检查文件系统的一致性
fsck 命令可以检查文件系统的一致性,并以交互的方式修复文件系统。fsck 命令的一般语法如下所示:
fsck [ -n ] [ -p ] [ -y ] [ -dBlockNumber ] [ -f ] [ -ii-NodeNumber ][ -o Options ] [ -tFile ] [ -V VfsName ] [ FileSystem1 - FileSystem2 ... ]
常用于 fsck 命令的标志及其含义如表 7 所示。
fsck 命令检查并交互式地修复不一致的文件系统。
标志 |
描述 |
-f |
执行快速检查。在正常情况下,系统挂起而没有正常关闭所影响到的唯一文件系统是在系统停止时挂载的文件系统。 |
-p |
不显示有关次要问题的消息,而是自动修复它们。此标志不保证 –y 标志所执行的大规模许可 (wholesale license),并且对于在系统正常启动时执行自动检查非常有用。应该在每次系统自动运行时将此标志用作系统启动过程的一部分。此标志还允许按组执行并行检查。如果主超级块受到破坏,则验证辅助超级块并将其复制到主超级块。 |
-tFile |
如果 fsck 命令无法获得足够的内容来保存其表,则此标志可以指定一个文件参数,将其作为除正在检查的文件系统以外的某个文件系统上的临时文件 (scratch file)。如果不指定 –t 标志,则 fsck 命令需要一个临时文件,它将提示您指定该临时文件的名称。但是,如果已经指定了 -p 标志,则 fsck 命令将会失败。如果该临时文件不是特殊文件,则会在 fsck 命令结束时删除该文件。 |
-y |
对 fsck 命令提出的所有问题作肯定回答。此标志允许 fsck 命令采取它认为必要的任何操作。应该仅对受到严重破坏的文件系统使用此标志。 |
应该在挂载任何文件系统之前运行此命令。您必须能够读取文件系统所在的设备文件(例如,/dev/hd0 设备)。
正常情况下,文件系统是一致的,fsck 命令只是报告文件系统中的文件、已使用的块和空闲块的数量。如果文件系统不一致,fsck 命令将显示有关已发现的不一致性的信息,并提示您准许修复它们。如果无法修复文件系统,则从备份中恢复。
挂载不一致的文件系统可能导致系统崩溃。如果不使用 FileSystem 参数指定文件系统,则 fsck 命令将检查在 /etc/filesystems 中具有属性 check=TRUE 的所有文件系统。
注意:缺省情况下,/、/usr、/var 和 /tmp 文件系统在它们的 /etc/filesystem 节中将 check 属性设置为 False (check=false)。将该属性设置为 False 的原因如下:
1. 启动过程显式地对 /、/usr、/var 和 /tmp 文件系统运行fsck 命令。
2. /、/usr、/var 和 /tmp 文件系统在运行 /etc/rc 文件时挂载。fsck 命令不会修改已挂载的文件系统,并且 fsck 在已挂载的文件系统上的结果是不可预测的。
六. 初始化 JFS 日志设备
logform 命令初始化某个逻辑卷以将其用作 JFS 日志设备,此设备存储有关文件系统元数据更改的事务信息,并且可以在计算机崩溃时用于回滚未完成的操作。下面是 logform 命令的一般语法:
logform LogName
注意:
(1)logform 命令是破坏性的;它清除逻辑卷中的所有数据。
(2)对某个文件系统意外运行此命令将会完全销毁该文件系统的数据。如果日志设备由于某个已挂载的文件系统对它的使用而处于打开状态,则应该在对日志设备运行 logform 命令之前卸载该文件系统。logform 命令销毁现有日志设备上的所有日志记录,从而可能导致文件系统数据丢失。可以运行以下命令来执行检查,以确保日志设备已关闭:
lsvg -l VGname
七. JFS 日志设备的放置
应该将 JFS 日志设备放置在与最活跃的文件系统不同的物理卷上,最好是放在具有最低 I/O 使用率的磁盘上,以提高并行资源利用率。还支持为每个文件系统使用单独的 JFS 日志。但是,在同一个物理磁盘上放置多个 JFS 日志具有一些特殊的注意事项,并且应该尽可能避免。
八. 支持大型文件的文件系统
AIX Version 4.3 及更高版本为超过 2 GB 的文件大小提供了支持。64 位进程可以打开文件而不必明确指示它们这是大型文件。
使用 AIX Version 4.2 中的大型文件支持,将不再需要对超过 2 GB 的文件大小的基础支持。
在支持大型文件的文件系统中,在 4 MB 文件偏移量之前存储的文件数据以 4096 字节的块进行分配,在 4 MB 文件偏移量以后存储的文件数据使用 128 KB 大小的大型磁盘块进行分配。大型磁盘块实际上是 32 个连续的 4096 字节块。
例如,在某个支持大型文件的文件系统中,一个 132 MB 的文件具有 1024 个 4 KB 磁盘块和 1024 个 128 KB 磁盘块。在常规文件系统中,132 MB 的文件将需要 33 个单独的间接块(每个块填充有 1024 个 4 KB 磁盘地址)。但是,该 132 MB 文件的大型文件结构只需要两个单独的间接块。
确定支持大型文件的文件系统
可以使用 lsfs -q file_system 命令来确定支持大型文件的文件系统,如图 21 所示。
图 21中的 bf: output 字段表示一个大型文件。如果此字段具有 true 值,则指定该文件系统支持大型文件。
九. 对文件系统问题进行故障排除
9.1 对超级块错误进行恢复
如果您在使用 fsck 或者 mount 命令时收到下面的错误之一,那么该问题可能是超级块遭到损坏。
fsck:Not an AIX3 file system fsck:Not an AIXV3 file system fsck:Not an AIX4 file system fsck:Not an AIXV4 file system fsck:Not a recognized file system type mount:invalid argument |
使用下列命令的其中一个,通过将超级块备份还原到主超级块,从而解决这个问题:
dd count=1 bs=4k skip=31 seek=1 if=/dev/lv00 of=/dev/lv00
下列命令仅适用于 AIX Version 4:
fsck -p /dev/lv00
在完成了还原过程之后,使用 fsck 命令检查文件系统的完整性。
fsck /dev/lv00
在许多情况下,将超级块备份还原到主超级块将会恢复文件系统。如果该操作无法解决这个问题,那么重新创建文件系统,并从备份还原数据。
9.2 无法卸载文件系统
如果文件系统中存在任何仍处于活动状态的引用,则不能卸载该文件系统。将会显示以下错误信息:
Device busy 或 A device is already mounted or cannot be unmounted
下面的情况可能会给一个已挂载的文件系统产生一个已经打开的引用:
(1)文件系统中存在打开的文件。在卸载文件系统之前,必须关闭这些文件。fuser 命令通常是确定文件系统中的活动内容的最佳方法。fuser 命令将返回具有指定文件系统中的打开引用的所有进程的进程 ID,如下面的示例所示:
# fuser -xc /tmp
/tmp: 2910 3466 11654 26400
可以使用 kill 命令终止包含打开引用的进程,然后就可以完成卸载工作了。
(2)如果文件系统仍然处于繁忙状态并且仍然无法对其进行卸载,那么这可能是由于加载了内核扩展,但存在于源文件系统中。
fuser 命令不会显示这些类型的引用,因为并没有涉及到任何用户进程。然而,genkex 命令将报告所有已加载的内核扩展。
(3)该文件系统中挂载了其他文件系统。卸载那些文件系统,然后即可卸载该文件系统。如果该文件系统中挂载了任何其他文件系统,那么将在源文件系统中挂载其他文件系统的挂载点存在打开的引用。使用 mount 命令获取已挂载的文件系统的列表。要卸载某个文件系统,需要卸载其中已挂载的所有文件系统。
(4)进程正在使用该文件系统中的目录作为其当前工作目录。对于正在使用某个目录作为其当前工作目录的所有进程,fuser 命令将在对应的进程 ID 后面追加字母“c”,而 -u 标志可以确定进程的所有者。可以将 fuser 与 find 命令一同使用,如下面的示例所示:
# find /home -type d -exec fuser -u {} /;
/home:
/home/lost+found:
/home/guest:
/home/kenzie: 3548c(kenzie)
对于交互式进程,如果已确定的用户将其当前工作目录更改为该文件系统之外的某个目录,否则终止该进程,然后就可以完成卸载工作了。
十.LVM 命令总结
10.1 命令
以下命令最常用于与物理卷相关的任务。
lsdev 列出 ODM 中的设备。
chdev 更改设备的特征。
mkdev 将某个设备添加到系统。
chpv 更改物理卷的状态。
lspv 显示有关某个卷组中的某个物理卷的信息。
migratepv 将已分配的物理分区从一个物理卷移动到一个或多个其他物理卷。
10.2 VG 命令
以下命令最常用于与卷组相关的任务:
mkvg 创建一个新卷组。
extendvg 将一个物理卷添加到某个卷组。
reducevg 从卷组中删除某个物理卷。
chvg 更改某个卷组。
lsvg 显示有关某个卷组的信息。
importvg 安装一个卷组。
exportvg 删除一个卷组。
reorgvg 重新组织卷组。
syncvg 同步某个卷组。
varyonvg 使卷组可供使用。
varyoffvg 使卷组不可使用。
10.3 LV 命令
以下是一些最常用的逻辑卷命令:
mklv 创建逻辑卷。
lslv 列出逻辑卷的特征。
rmlv 删除逻辑卷。
extendlv 增加逻辑卷的大小。
chlv 更改逻辑卷的特征。
mklvcopy 向逻辑卷添加副本。
rmlvcopy 删除逻辑卷中的副本。
10.4 文件系统命令
以下是本章讨论过的文件系统命令的列表:
chfs 更改文件系统的特征。
crfs 添加文件系统。
lsfs 显示文件系统的特征。
rmfs 删除文件系统。
mount 使文件系统可供使用。
fsck 检查文件系统的一致性,并以交互的方式修复文件系统。
umount 卸载先前挂载的文件系统、目录或文件。
df 报告有关文件系统上的空间的信息。
From:
IBM p 系列管理员认证(Test 191)指南系列,第 4 部分(下)存储管理、LVM 和文件系统
https://www.ibm.com/developerworks/cn/aix/redbooks/test191-4-2/
------------------------------------------------------------------------------
Blog: http://blog.csdn.net/tianlesoftware
网上资源: http://tianlesoftware.download.csdn.net
相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx
DBA1 群:62697716(满); DBA2 群:62697977(满)
DBA3 群:62697850 DBA 超级群:63306533;
聊天 群:40132017
--加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请