跳到内容 中国
HP.com 主页 产品与服务 支持及驱动程序 解决方案 如何购买
» 联系惠普
更多选项
HP.com 主页
管理系统和工作组: HP-UX 系统管理员指南 > 第 6 章 管理系统:管理磁盘和文件

管理文件系统

» 

技术文档资料

完整的 PDF 手册
» 反馈
内容从此开始:

 » 目录

 » 索引

本节讲述有关管理单系统上文件系统的信息。包括以下内容:

有关管理分布式文件系统的信息,请参阅:

采用性能策略有助于有效使用文件系统,关于这方面的信息,请参阅:

有关文件系统安全的建议,请参阅:

创建文件系统

创建 HFS 或 JFS 文件系统时,可以使用 SAM 或一连串的 HP-UX 命令。使用 SAM 更快,也更简单。

下面提供了用于创建文件系统的子任务的核对清单,这个核对清单主要在不使用 SAM 的情况下使用。

如果使用 SAM,就不必一定要明确地执行下面的每个任务。相反,可以从 SAM 的“Disks and File Systems”(磁盘和文件系统)区域菜单开始。SAM 将执行所有必要的步骤。

如果使用的是 HP-UX 命令而不是 SAM,提到的许多命令提供没有显示的选项。请务必仔细阅读联机帮助页中的命令描述,看看可以使用哪些选项。

注释:请确保包含文件系统的磁盘连接到计算机,并且在 HP-UX 中进行了配置。有关详细信息,请参考《《Configuring HP-UX for Peripherals》》。

如果创建新的文件系统,其类型不是 HFS,可能需要将新类型重新配置到内核中(通常,JFS 已经作为缺省配置的一部分配置到内核中。如果需要进行重新配置,请参阅“重新配置内核(早于 HP-UX 11i v2 的版本)”)。

过程 6-7 创建文件系统

可以在逻辑卷内或非 LVM 磁盘上创建文件系统。然而,我们强烈建议使用逻辑卷。

如果在创建文件系统时决定不使用逻辑卷,请跳过下面的步骤 1 到步骤 4,这些步骤只与逻辑卷有关。有关在磁盘区或整个磁盘内创建文件系统的详细信息,请参考《《Disk and File Management Tasks on HP-UX》》一书。

  1. 估计逻辑卷所需的大小

    要估计将包含文件系统的逻辑卷所需的大小,请参阅“为文件系统设置逻辑卷”

  2. 确定是否有足够的可用磁盘空间

    要确定是否有足够的磁盘空间可供卷组内的逻辑卷使用,请使用 vgdisplay 命令计算此信息。vgdisplay 将输出有关一个或多个卷组的数据,包括物理盘区大小(在 PE Size (Mbytes) 下)和可用物理盘区的数目(在 Free PE 下)。将这两个数字相乘,就可以得到卷组内的可用 MB 数。有关详细信息,请参阅 vgdisplay (1M)

  3. 将磁盘添加到卷组

    如果卷组内没有足够的空间,需要将磁盘添加到卷组。

    注释:有关将磁盘配置到系统以及确定磁盘物理地址的信息,请参阅《《Configuring HP-UX for Peripherals》》。

    要将磁盘添加到现有的卷组,请使用 pvcreate (1M)vgextend (1M)。也可以通过使用 pvcreate (1M)vgcreate (1M) 创建一个新的卷组来添加磁盘。

  4. 创建逻辑卷

    使用 lvcreate 在上面的卷组中创建一定大小的逻辑卷。有关详细信息,请参阅 lvcreate (1M)

  5. 创建新的文件系统

    使用 newfs 命令创建一个文件系统。注意字符设备文件的使用。例如:

    newfs -F hfs /dev/vg02/rlvol1

    如果不使用 -F 文件系统类型选项,缺省情况下,newfs 将创建基于 /etc/fstab 文件内容的文件系统。如果 /etc/fstab 中没有文件系统的条目,那么文件系统类型由文件 /etc/default/fs 来决定。有关其他选项的详细信息,请参阅 newfs (1M)

    创建 JFS 文件系统时,文件名将自动设为长文件名。

    对于 HFS,使用 -S-L 选项分别指定文件系统是短文件名还是长文件名。缺省情况下,文件系统名的长度将与根文件系统保持一致。短文件名最多包含 14 个字符,长文件名可以包含多达 255 个字符。通常,使用长文件名会比较灵活,在其他使用长文件名的系统上创建的文件无需重命名就可以移动到该系统上。

    注释:有些 HP-UX 系统上安装了软盘驱动器。与几乎所有 HP 硬盘不同(HP 硬盘是在出厂前初始化的),需要对字符设备文件使用 mediainit (1) 初始化软盘介质。

    如果要将文件系统放在软盘上,请对字符设备文件调用 diskinfo 命令,以确定软盘驱动器的型号。有关详细信息,请参阅 diskinfo (1M)。然后使用型号作为对 newfs 命令的输入(软盘驱动器不支持使用 LVM)。

    在创建文件系统后,需要挂接文件系统,以便用户访问。

挂接文件系统

本节包括以下内容:

另请参阅:

概述

将文件系统并入现有目录结构的过程就是挂接文件系统。文件系统可以在直接连到当前系统的磁盘上,(即本地文件系统),也可以在远程系统的磁盘上(请参阅“导入文件系统(HP-UX 到 HP-UX)”)。文件系统可以在逻辑卷或非 LVM 磁盘上。

挂接文件系统就是将文件系统与现有文件系统树中的目录相关联。在挂接之前,尽管这些文件在磁盘上,但对用户来说是不可访问的。一旦挂接完毕,文件系统就是可访问的。

现有文件系统中的这个目录,即连接文件系统的位置,称为新文件系统的挂接点或挂接目录。添加的文件系统中的文件成为现有文件系统层次结构的一部分。

挂接点应该是现有文件系统上空的子目录。如果将文件系统挂接到已经包含文件的目录,那些文件就被隐藏起来,并且不可访问,直到卸除文件系统。如果尝试将文件系统挂接到其中的文件正处于使用状态的目录,挂接将失败。

可以使用 SAM 或 HP-UX 命令挂接文件系统。

如果使用的是 SAM,请从 SAM 的 Disks and File Systems 区域菜单进行挂接。可以执行创建文件系统过程中必不可少的任务,如前所述。有关使用 SAM 挂接文件的帮助,请参阅 SAM 的联机帮助。下面是有关使用 HP-UX 命令的说明。

使用 HP-UX 命令挂接文件系统

mount 命令可将非 LVM 磁盘或逻辑卷上的文件系统连接到一个现有目录。

也可以使用 mountall 命令或 mount -a 来挂接文件 /etc/fstab 中列出的所有文件系统(有关详细信息,请参阅 mount (1M)mountall (1M)fstab (4))。

挂接本地文件系统

要挂接本地文件系统,请执行下列步骤:

  1. 选择一个空目录作为文件系统的挂接点。如果不存在这样的目录,使用 mkdir 命令创建目录。例如,输入:

    mkdir /joe

  2. 使用 mount 命令挂接文件系统。使用文件系统的块设备文件名和随后的挂接点名称作为 mount 命令的变量。

    例如,输入

    mount /dev/vg01/lvol1 /joe

有关详细信息和示例,请参考 mount (1M)

注释:如果不使用逻辑卷,请运行 ioscan -fn -H 硬件路径来确定要使用的块设备文件名。

可以使用 lssf 来显示与设备文件相关联的位置,并将该位置与磁盘的实际硬件地址进行比较。也可以使用 ioscan 来显示连接到系统的设备及其硬件路径。

如果块设备文件不存在,使用insfmksf 创建。

有关这些命令的详细信息,请参阅《《Configuring HP-UX for Peripherals》》、
lssf (1M)
ioscan (1M)insf (1M)mksf (1M)

引导时自动挂接文件系统

要在引导时自动挂接文件系统,将该文件系统在 /etc/fstab 文件中列出。有关创建 /etc/fstab 条目的详细信息,请参阅 fstab (4) 的条目。

解决挂接问题

下面是在挂接文件系统时有时会遇到的一些典型问题,以及为解决问题而采取的措施。另请参阅“NFS 故障排除”

表 6-5 解决挂接问题

问题

解决办法

挂接失败,出现错误消息,提示 Device busy(设备忙)

确保该目录中没有挂接另一个文件系统(一个挂接点只能挂接一个文件系统)。如果挂接目录正在用作某人的工作目录或者如果某用户打开了挂接目录中的一个文件,也会显示此消息(可以使用 fuser (1M) 来检查是哪个用户打开了挂接目录中的文件)。

挂接失败,同时出现消息 No such file or directory(没有这样的文件或目录)。

  • 与您试图挂接的设备文件相关联的设备不存在、不是物理连接的或不处于“就绪”状态。如果以前没有挂接过此设备,请检查块设备文件名,以确保文件名正确无误。

  • 验证在客户端中是否有此本地目录。如果不存在,请使用 mkdir 创建。例如:

    mkdir /opt/adobe

/etc/mnttab 的内核数据结构已过期。

使用不带任何选项的 mount 命令更新 /etc/mnttab

出现错误消息,提示:/etc/mnttab 不存在,或者在尝试挂接文件系统时,mount遇到一个“中断的系统调用

如果在引导计算机时,/sbin/init.d/localmount 内不存在 /etc/mnttab 文件,该文件将以正常方式创建。如果收到这些消息之一,则说明 /etc/mnttab 不存在。此时请使用不带任何选项的 mount 命令重新创建它。

在 T 系列系统上,向 /etc/fstab 添加许多文件系统并执行 mount -a 后,出现消息,提示 table is full
(表已满)。

请参阅“重新配置内核(早于 HP-UX 11i v2 的版本)”

 

卸除文件系统

卸除文件系统时,使文件系统暂时不可访问。卸除不会从磁盘删除文件系统。可以重新挂接文件系统再使其可访问。

执行 shutdown 命令后,挂接的文件系统自动卸除。请参阅“关闭时自动卸除文件系统 ”

可以在其他时间使用 SAM 或 HP-UX 命令卸除文件系统。

有关使用 SAM 卸除文件系统的帮助,请参阅 SAM 的联机帮助。

如果不使用 SAM 来卸除文件系统,就必须使用 umount 命令。有关详细信息,请参考 umount (1M)。也可以使用 umountall 命令来卸除所有文件系统(除了根文件系统)或使用 umount -a 来卸除 /etc/mnttab 文件中列出的所有文件系统(有关详细信息,请参阅 umount (1M)mnttab (4))。

卸除 NFS 文件系统

可以使用 SAM 或 umount 命令来卸除位于 NFS 远程系统上的文件系统。

如果服务器被卸除,文件系统将从客户端消失;如果客户端被卸除,将不影响对服务器上的文件系统的访问。

有关使用 SAM 卸除 NFS 文件系统的信息,请参阅 SAM 的联机帮助。

有关对 NFS 挂接进行配置和故障排除的信息,请参阅“通过 NFS 和 ftp 共享文件和应用程序 ”

关闭时自动卸除文件系统

执行 shutdown 命令后,系统尝试卸载所有已挂接的文件系统,不能卸载的根文件系统除外。有关关闭的详细信息,请参考“关闭系统”

解决卸除问题

如果 umount 命令卸除文件系统失败,请检查是否存在以下问题:

  • 要卸载的特定文件系统上的所有文件是否都已关闭?如果尝试卸除包含打开文件的文件系统(或者该文件系统包含某用户的当前工作目录)将导致 umount 失败,同时显示 Device busy 的消息。

    例如,

    fuser -cu /work

    显示在 /work 中有打开文件的进程 ID 和用户,以及它是否是某人的工作目录。

    要强行终止进程,请输入

    fuser -ku /work

    还可以使用 ps -ef 检查当前正在执行的进程,并将 fuser 输出映射到特定的进程。

    有关详细信息,请参阅 fuser (1M)ps (1)

  • 是否正在尝试卸除根 (/) 文件系统?这是不允许的。

  • 您正在尝试卸载的文件系统所在的磁盘上,是否已经使用 SAM 或 swapon 启用了文件系统交换?这也是不允许的。要解决此问题,需要删除文件系统交换,然后重新引导。要显示文件系统交换,运行 swapinfo,然后在标为 Type 的列下面,找到标志 fs。任何具有这种标记的条目就是文件系统交换,在卸除文件系统之前必须删除它。有关详细信息,请参阅 swapinfo (1M)“添加、修改或删除文件系统交换 ”

注意:从系统删除设备之前始终要卸除海量存储设备上包含的文件系统。拆卸包含已挂接文件系统的设备(例如,断开磁盘的电源或关闭电源,将磁盘组从海量存储设备上卸下来),可能会损坏文件系统。

扩展逻辑卷内文件系统的大小

文件系统可以扩展到 128 GB 的最大容量,但指定用于根或引导的文件系统除外,这种文件系统的容量只限于 2 GB 或 4 GB。

注释:如果仍然在使用非 LVM 磁盘,应该考虑转换为逻辑卷。在分割和管理磁盘空间方面,逻辑卷具有更高的灵活性。

使用 SAM

如果使用 SAM 来增加包含文件系统的逻辑卷的大小,SAM 将自动运行 extendfs。因此,一旦使用 SAM 扩展了包含文件系统的逻辑卷的大小,就再也不能安全地减小逻辑卷的大小了。

使用 HP-UX 命令

使用 lvextend 增加逻辑卷容器的容量时,该命令自动增加其内容的大小。第一次在逻辑卷内创建文件系统时,文件系统采取与逻辑卷一样的大小。如果以后使用 lvextend 命令增加逻辑卷的容量,其中的文件系统并不知其容器已经扩大。必须使用 extendfs 命令明确地通知文件系统(如果使用的是 JFS,请参阅下面的注释)。

注释:如果使用的是 JFS 并且拥有 HP OnLineJFS 产品,请运行 fsadm 命令来增加文件系统的大小。有关语法的信息,请参阅 fsadm_vxfs (1M)。有关详细信息,另请参阅《《Disk and File Management Tasks on HP-UX》》。

如果使用的是 JFS,但没有 HP OnLineJFS,请使用下面的步骤,或者备份文件系统,然后使用 newfs 创建一个更大的文件系统。

增加逻辑卷大小的示范过程

假定逻辑卷的当前大小为 1024 MB (1 GB)。假设此逻辑卷内文件系统的用户已经消耗了其中 95% 的当前空间,并且要再添加一个新项目,因此需要扩大文件系统。要增加文件系统的大小,请执行下列步骤:

  1. 卸除文件系统。

    umount /dev/vg01/lvol1
  2. 增加逻辑卷的大小。

    /usr/sbin/lvextend -L 1200 /dev/vg01/lvol1

    注意,-L 1200 代表以 MB 为单位的新逻辑卷的容量,而不是容量的增量。

  3. 将文件系统容量增加到与逻辑卷同样的大小。请注意字符设备文件名的使用。

    extendfs /dev/vg01/rlvol1
  4. 重新挂接文件系统。

    mount /dev/vg01/lvol1 /project
  5. 运行 bdf 以确认文件系统容量已经增加。

跨设备复制文件系统

假设要将文件系统从一个磁盘(或磁盘区)复制到另一个磁盘,或者从一个磁盘或逻辑卷复制到另一个逻辑卷。例如,可能需要将文件系统复制到一个较大的区域。如果是这种情况,请执行下列步骤:

  1. 如果将覆盖现有的文件系统,请将当前设备中的文件备份到磁带上。

  2. 如果有必要,添加新磁盘或创建新的逻辑卷。

  3. 在新磁盘、磁盘区或逻辑卷上,创建一个或多个新的文件系统。

  4. /etc/fstab 文件中创建(编辑)条目,以便在引导时自动挂接每个文件系统。

  5. 挂接每个新的文件系统。

  6. 如果备份了文件,将它们恢复到新设备上的文件系统。否则,使用 cp cpio 只将旧文件系统上的所有文件复制到新设备上。

处理文件系统损坏的问题

硬件故障、意外断电或关闭程序不正确,都可能导致本来很可靠的文件系统发生损坏。

注意:为确保文件系统完整性,请一定遵循“关闭系统”中描述的正确关闭步骤。

不要只是通过关掉电源或断开连接来使系统离线。

诊断损坏的文件系统

以下是损坏的文件系统的故障现象:

  • 文件包含不正确的数据(乱码)。

  • 文件已被截断或丢失数据。

  • 文件意外地消失或更改位置。

  • 在用户终端、系统控制台或系统日志中出现错误消息。

  • 无法更改目录或列出文件。

  • 系统重新引导失败,这可能是在重新引导期间,/sbin/bcheckrc 脚本报告的一个或多个错误所造成的。

如果无法立即确定问题的原因,请使用 fsck 检查文件系统是否不一致。

使用 fsck 确定和纠正损坏的地方

fsck 是文件系统检验程序,是用于查找和纠正文件系统不一致问题的主要 HP-UX 工具。fsck 检查 /etc/fstab 中列出的 HFS 或 JFS 文件系统。

如果系统发生故障,重新引导系统,运行 fsck (1M)。此外,如果怀疑文件系统损坏,或者要进行定期的预防性维护,也应该检查文件系统。

有关详细信息,请参考 fsck (1M)fsck_hfs (1M)fsck_vxfs (1M)

检查 HFS 文件系统

要检查 HFS 文件系统,请使用下列步骤:

  1. 在运行 fsck 之前,请确保 lost+found 目录存在于要检查的每个文件系统的根,并且为空。fsck 将发现的任何问题文件或目录放在 lost+found 中。

    如果 lost+found 不存在,请使用 mklost+found (1M) 重建该目录。

  2. 对于可挂接的文件系统,终止文件系统上所有正在运行的进程,关闭任何打开的文件,准备卸除该文件系统。

    对于根文件系统,执行 shutdown(没有 -h-r)以进入单用户状态。不能卸除根文件系统。

  3. 使用 SAM 或 umount 命令卸除(可挂接的)文件系统。

  4. 运行 fsck

    注释:-n-N 选项使 fsck 在非破坏模式下运行,是最安全的选项。当怀疑可能出现问题时,可以在已挂接的文件系统上运行带有这些选项的命令,作为预防性措施。

    下面的文字更详细地描述了惯例性的 -p 选项。

    使用 fsck-p 选项,可以修复许多文件系统问题。该命令以非交互方式运行(有关语法和选项的信息,请参阅 fsck (1M))。如果 fsck 没有找到错误或发现可纠正的错误,它将纠正任何这样的错误,然后打印有关所检查的文件系统的信息。如果运行带有 -p 选项的 fsck 时,遇到无法纠正的问题,它将显示错误消息,终止运行。

  5. 请使用下表根据三个可能的结果确定下一步该做什么:

    表 6-6 fsck 结果

    如果 fsck 报告...

    请执行...

    然后...

    无错误

    步骤 6

    完成

    有错误,并全部纠正

    步骤 7

    步骤 10

    任何不可纠正的错误,同时出现错误消息

    步骤 8

    步骤 9

     

  6. 查找问题的其他原因。

    如果 fsck 运行后没有发现错误,说明问题不是文件系统损坏。在这种情况下,考虑导致文件出现问题的其他可能原因:

    • 某个用户删除、覆盖、移动或截断了有问题的文件。

    • 某个程序和(或)应用程序删除、覆盖、移动或截断了文件。

    • 与文件创建时所在目录相关联的文件系统可能此时没有挂接到该目录(如果存在这样的文件系统)。

    • 一个文件(或一组文件)处于现在挂接了文件系统的目录中。在挂接当前文件系统之前就已经放在该目录中的文件仍然存在,但在卸除了覆盖这些文件的文件系统之后才能访问它们。

    • 文件上的保护位或所有权位不允许访问该文件。

    因为文件系统没有损坏,请不要继续执行此过程中的其余步骤。

  7. 恢复所有必要的文件。

    一旦 fsck 在文件系统中找到错误,并纠正了找到的所有错误,可以认为该文件系统重新具有了完好的结构。如果任何必要文件已丢失,从备份或 lost+found 恢复这些文件。一旦 fsck 修复了破坏的文件,请继续执行
    第 10 步。

  8. 准备以交互方式运行 fsck

    如果 fsck 终止运行,但没有纠正发现的所有问题,必须以交互方式运行 fsck

    在这样做之前,请将此文件系统上尚未备份(并且仍然保持完整)的所有关键文件移动到另一个文件系统或尝试将它们保存到磁带上。

    在交互模式下运行 fsck 时,可能需要执行会导致数据丢失或删除文件和(或)文件名的操作(例如,如果两个文件拥有同一个数据块的所有权)。由于这个原因,在这个时候对此文件系统进行任何备份都可能失败。这是应该定期备份系统的另一个原因。

    重要信息:再次运行 fsck 之前,清空 lost+found目录。
  9. 重新执行不带有 -p-P 选项的 fsck 命令,以交互方式运行 fsck

    fsck 遇到错误时,它会请求权限执行某些任务。如果不给予 fsck 权限,使其执行纠正任务,它将绕过该操作,不修复文件系统。

    以交互方式运行后,在许多情况下,fsck 会请求执行 reboot -n 重新引导文件系统。如果不重新引导,可能会再次损坏文件系统(注意,不要将 reboot -n 用于正常的重新引导活动)。

  10. 检查 lost+found 目录中的文件。

    fsck 修复文件系统后,请挂接文件系统,查看其 lost+found 目录现在是否存在任何条目。这些文件按 I 节点号列出,已经失去了与原来目录的关联。请检查这些文件,确定它们的名称,然后将它们放回正确的位置。要执行这些任务,请执行下列步骤:

    • 使用 file 命令确定文件类型。

    • 如果它们是 ASCII 文本文件,可以使用 catmore 查看里面包含的内容。

    • 如果是某些其他类型的文件,就必须使用诸如 xdod 这样的实用程序来查看其内容。

    • 运行命令 whatstrings 可帮助找到 lost+found 文件原来的位置

lost+found 目录中的文件放回正确位置后,恢复最近备份中缺少的所有文件。

重要信息:下面的消息
CAN'T READ BLOCK ...

可能表示发生了介质问题,该问题可以用 mediainit (1) 解决。如果不能解决,可能发生了硬件故障。在这种情况下,请联系当地的销售与服务办事处。

检查 JFS 文件系统

fsck 使用意向日志来检查 JFS 文件系统,以评估对文件系统的更改。意向日志记录所有对文件系统结构的未决更改,也就是,系统在实际进行更改之前对文件系统进行的所有事务处理。意向日志的“重放”非常快,而且,大文件系统所花费的时间不一定超过小文件系统花费的时间,因为它的速度取决于文件系统活动,而不是文件系统大小。因此,即使在发生系统故障的时候,系统也可以引导,并且很快地回到运行状态。

在发生磁盘故障的情况下,只扫描 JFS 意向日志是不够的。在这种情况下,需要检查整个文件系统。使用带有 -o full 选项的 fsck 就可以进行全面检查。有关详细信息,请参考 fsck_vxfs (1M)

HFS 文件检查和 JFS 文件检查的区别

尽管从管理的角度来看,使用 fsck 来检查和纠正 HFS 文件系统和 JFS 文件系统非常相似,但也有一些重要的区别,如表 6-7 “发生系统故障后的 HFS 文件检查与 JFS 文件检查的比较 ” 所示。

表 6-7 发生系统故障后的 HFS 文件检查与 JFS 文件检查的比较

关心的问题

HFS

JFS

需要检查什么?

整个文件系统。这个过程可能很费时间。随着文件系统大小的增加,fsck 需要的时间也增加了。

只有意向日志。大文件系统所花费的时间不一定超过小文件系统花费的时间。

文件系统完整性的保证如何?

不能保证 fsck 在系统崩溃后修复文件系统,尽管它通常可以修复。有时,它不能修复在完成文件系统操作之前崩溃的文件系统。即使是可修复的文件系统,也不能保证其结构将完好无损:fsck 将“孤立的文件”放在 lost+found 目录中。

完全能保证崩溃后的文件系统完整性(磁盘故障除外)。JFS 确保系统崩溃时的任何事务处理将完全完成或返回到事务处理之前的状态。

发生磁盘故障后应该采取什么
措施?

必须从头到尾地扫描文件系统,查看是否存在不一致,不能确保系统完
整性。

与 HFS 相同,必须从头到尾地扫描文件系统,查看是否存在不一致,不能确保系统完整性。

 

有关 fsck 的详细信息,请参阅《《Disk and File Management Tasks on HP-UX》》。

用较小的文件系统替换现有的文件系统

如何用较小的文件系统替换现有的较大文件系统,取决于所使用的文件系统类型,以及是否正在使用逻辑卷。

如果正在使用 JFS

如果拥有 HP OnLineJFS,可以使用一个命令 (fsadm) 减小文件系统的大小(有关语法,请参阅 fsadm_vxfs (1M)。有关详细信息,另请参阅《《Disk and File Management Tasks on HP-UX》》) 。

如果没有 OnLineJFS,所采用的步骤与下面用于 HFS 的步骤相同,并且取决于是否使用逻辑卷。

如果没有使用逻辑卷

如果 HFS 文件系统包含在非 LVM 磁盘上,请执行以下步骤减小其大小:

  1. 备份文件系统。

  2. 卸除文件系统。

  3. 使用 newfs 创建较小的新文件系统。使用带有 -s 大小选项的 newfs 指出较小的新文件系统的大小。

  4. 重新挂接文件系统。

  5. 将备份的文件系统数据恢复到新创建的文件系统。

如果使用逻辑卷

如果 HFS 文件系统包含在逻辑卷内,逻辑卷很像一个以文件系统作为其内容的容器。

一旦创建了特定的文件系统,就不能像扩展文件系统那样只是发出一个命令来减小其大小(如“扩展逻辑卷内文件系统的大小 ”所述)。首先,必须减小其逻辑卷的大小。然而,将容器大小减得太多,也就是说,包含的文件系统内容超过了逻辑卷减小后的大小, 会破坏部分文件系统内容。作为容器的逻辑卷减小后, 必须随后使用 newfs 或 SAM 在容器内再创建一个新的文件系统。否则,如果试图访问原来的文件系统,可能使系统崩溃。下面是需要执行的步骤:

  1. 备份文件系统。

  2. 卸除文件系统。

  3. 使用 lvreduce 减小逻辑卷大小,使其与所需的较小文件系统大小相同。

  4. 使用 newfs 创建较小的新文件系统。有关如何完成此任务的信息,请参阅前面的“创建文件系统”

  5. 重新挂接文件系统。

  6. 将备份的文件系统数据恢复到新创建的文件系统(注意,可能没有足够的空间来恢复所有原来的文件)。

通过配额管理磁盘空间的使用

管理员使用磁盘配额,可以通过限制用户能创建的文件数以及用户能使用的系统块的总数,来控制磁盘空间的使用。

通过对用户的文件系统实行软限制硬限制,就可以对本地文件系统及其用户实施磁盘配额。软限制是只能在指定时间之内超过的限制。硬限制永远都不能超过。如果用户在指定的时间限制之前,未能将使用量减少到软限制之下,或者达到了硬限制,就不能创建文件或增加现有文件的大小。

通常,应该对那些如果没有限制就会变满的文件系统设置磁盘配额。例如,要防止用户使用 /tmp/var/tmp 作为存储,应该将软限制设置得小一些,补救措施的时间限制设置得短一些。

因为磁盘配额统计数字驻留在内存中,使用磁盘配额很少会影响性能。然而,由于引导系统时运行 /usr/sbin/quotacheck 会花费一定的时间,就需要更长时间才能重新引导崩溃的系统。

不能使用 SAM 执行磁盘配额任务。

设置和启用磁盘配额

下面是设置和启用磁盘配额的主要步骤:

  1. 挂接文件系统。

    假设要对通过设备文件 /dev/vg00/lvol3 访问的 /home 实施磁盘配额。如果此文件系统列在 /etc/fstab 文件中,引导时将自动挂接。如果该文件系统没有挂接,请输入:

    mount /dev/vg00/lvol3 /home
  2. 创建配额文件。

    使用 cpset 命令在目录内创建一个名为 quotas 的空文件。此文件为二进制格式,将包含在文件系统内创建文件受限的每个用户的限制以及使用情况统计数据。例如,要为已挂接的 /home 文件系统安装 quotas 文件,请输入:

    cpset /dev/null /home/quotas 600 root bin

    在此示例中,/dev/null 指定创建的文件为空,/home/quotas 指定文件 quotas 放在 /home 目录中,600 root bin 是文件的模式、属主和组。有关语法信息,请参阅 cpset (1M)

    注释:要控制 quotas 文件的大小,请尽量避免使用很大的用户标识号 (UID)。如果使用 SAM 来添加用户,这就不成为问题了,因为 SAM 按数字次序选择 UID。
  3. 设置用户配额。

    使用 /usr/sbin/edquota 命令为每个用户设置配额,或随后再修改配额。edquota 实用程序为用户创建一个磁盘配额文本的临时文件,并调用编辑器。一旦输入配额并离开编辑器,文本就被转换为二进制形式,以便存储在 quotas 文件中。有关语法信息,请参阅 edquota (1M)

    要为文件系统中的用户设置统一的配额,可为一个或多个用户创建限制,然后将那些限制应用于其他用户。例如,下面显示了如何为主目录在文件系统 /home 内的典型用户分配限制,然后对其他用户实施那些限制。在这个示例中,假设这些限制是:软限制为 10,000 块,硬限制为 12,000 块,软限制为 250 个文件,硬限制为 300 个文件。

    1. 为原型用户 patrick 设置限制。

      1. 调用配额编辑器:

        edquota patrick
      2. 要输入磁盘使用限制,请键入以下内容:

        fs /home blocks (soft = 10000, hard = 12000) \
          inodes (soft = 250, hard = 300)

        对于每个具有 quotas 文件的文件系统,必须有一行这样的内容。请务必按显示的内容原封不动地键入文本行,以保证各项之间的间隔正确无误。格式错误和(或)录入错误可能导致配额设置不正确。

      3. 保存此文件。此操作将更新 quotas 文件。退出编辑器。

    2. 将原型用户的限制应用于 /home 文件系统的其他用户:

      edquota -p patrick alice ellis dallas

      此命令将原型用户 patrick 的限制分配给其他用户:aliceellisdallas

    注释:从系统中删除用户时,运行 edquota,将该用户的限制设置为零。因此,从系统中删除用户后,quotas 文件中就没有该用户的条目了。
  4. 设置时间限制,除非希望应用一周的缺省时间限制,如果是这样,就无需任何操作。

    使用带有 -t 选项的 edquota 命令来设置时间限制,用户就必须在超过软限制时采取纠正措施。与对文件和块的限制不同,单一时间限制将应用于文件系统的所有用户。

    例如,要编辑 quotas 文件,为文件系统块设置 10 天的时间限制,为文件系统 /home 中的文件设置 15 天的时间限制,请输入以下内容:

    1. 调用配额编辑器:

      edquota -t
    2. 要输入时间限制,请键入以下内容:

      fs /home blocks time limit = 10.00 days,files time limit = 15.00 days

      请务必按显示的内容键入文本行,保证各项之间的间隔正确无误。格式错误和录入错误可能导致配额设置不正确。

      文件系统块和文件的缺省时间限制是七天。可以在指定限制的地方输入零来指定缺省时间限制。例如,要对 /home 文件系统实施缺省限制,请输入:

      fs /home blocks time limit = 0, files time limit = 0
    3. 保存文件,然后退出编辑器。

  5. 启用配额。

    可以通过以下方式之一启用磁盘配额:

    • 重新引导时启用磁盘配额。

      如果希望系统启动时自动启用磁盘配额,在 /etc/fstab 文件中将 quota 选项添加到文件系统条目。例如:

      /dev/vg00/lvol3 /home hfs rw,suid,quota 0 2
    • 通过重新挂接文件系统启用磁盘配额

      可以在使用带有 quota 选项的 mount 命令挂接文件系统时启用磁盘配额。要实现此目的,必须首先卸除文件系统。例如:

      umount /dev/vg00/lvol3
      mount -o quota /dev/vg00/lvol3 /home

      注意,如果已经将 quota 选项添加到 /etc/fstab 文件(请参阅前面的内容),就无需在 mount 命令中指定 quota 选项。相反,只要指定以下的命令之一就可以了:

      mount -a

      mount /home 

      重新挂接文件系统后,必须对文件系统运行 quotacheck,以更新 quotas 文件中存储的使用情况信息。

    • 使用 quotaon 命令启用磁盘配额。

      如果要对文件系统启用配额,但不能卸除文件系统(可能是因为文件系统正在使用),请执行下列步骤:(这些步骤也适用于根 (/) 文件系统)。

      1. 使用 /usr/sbin/quotaon 命令对设置了磁盘配额,但当前尚未启用的已挂接文件系统启用磁盘配额。文件 quotas 必须存在于文件系统的挂接目录中。例如,执行命令

        quotaon -v /home

        将对 /home 文件系统启动 quotas-v(表示“详细说明”)选项将在屏幕上显示消息,列出每个受影响的文件系统。此命令对已启用了配额的文件系统没有影响。

        还可以指定 -a 选项,该选项将对 /etc/fstab 文件中列出的包括 quota 选项的所有已挂接文件系统启用磁盘配额。有关详细信息,请参阅 quotaon (1M)

      2. 查看文件系统是否存在不一致。例如:

        quotacheck /dev/vg00/lvol3

        有关语法信息,请参阅 quotacheck (1M)

禁用磁盘配额

卸除文件系统时,HP-UX 自动禁用磁盘配额。

使用 /usr/sbin/quotaoff 命令,无需卸除文件系统就可以禁用该文件系统的磁盘配额。然而,不建议使用此命令,因为一旦禁用磁盘配额,实际的磁盘使用量就可能与 quotas 文件中存储的使用情况信息不一致,因此,当重新启用 quotas 时,就需要执行 quotacheck。有关详细信息,请参阅 quotaoff (1M)

超过软限制时应该采取什么措施

创建了超过软限制配额的文件后,本地挂接的文件系统的用户将看到类似以下内容的消息:

WARNING: disk quota (/home) exceeded

用户应该在限制时间内删除不必要的文件。用户试图超过硬限制时或在限制时间过期前没有将使用量减少到规定大小,还会收到进一步的警告。一旦用户纠正了使用超量问题,系统将删除任何时间限制。

注释:远程文件系统的用户(例如,NFS 挂接)不会收到软限制警告。因此,在远程文件系统上具有配额的用户可能在没有预先警告的情况下就达到了硬限制,所以他们应该经常使用 /usr/bin/quota 命令检查使用量。有关检查使用量的详细信息,请参阅 quota (1)。只有具有超级用户权限的用户才能使用带有 user 选项的 quota 命令,查看关于其他用户的具体使用量和配额信息。

超过硬限制时应该采取什么措施

当用户达到硬限制或在指定时间内未能将使用量降低到软限制以下,用户的终端上会出现一条错误消息。如果用户达到块限制,将出现以下消息:

DISK LIMIT REACHED - WRITE FAILED

如果用户达到文件限制,将看到:

FILE LIMIT REACHED - CREATE FAILED

如何从达到硬限制的状态恢复到正常使用量,取决于用户收到消息时是否在使用编辑器。下面将说明这两种情况。

不使用编辑器时

不使用编辑器时,请执行下列步骤:

  1. 中止正在使用文件系统的一个或多个进程。

  2. 删除足够多的文件,使文件和(或)文件系统块的数目降低到 quotas 文件中设置的软限制之下。

    quota 命令报告用户在特定文件系统中的使用量在限制之上还是限制之下。要确定文件和目录的当前块数,请使用 dufind 命令(有关详细信息,请参阅 du (1)find (1))。

  3. 再次运行被中止的进程。

使用编辑器时

使用编辑器时,用户需要删除一些文件,将使用量降低到配额限制以下,并且仍然保留对正在编辑的文件的最近更改。如果有可能,用户可以通过打开一个新窗口或从远程节点登录来实现此目的。这样,用户就可以在不中止编辑器的情况下转到 shell 提示符下。另一个方法是,用户可执行下列步骤:

  1. 将文件写到没有超过配额的另一个文件系统(例如,/var/tmp)。

  2. 退出编辑器。

  3. 删除文件,直到剩下的文件数在软限制决定的文件和(或)文件系统块配额之下。

  4. 将文件移回原来的文件系统。

或者,使用作业控制 shell 时:

  1. 转到 shell 并键入一个“暂停”符(例如,同时按下 CTRL 键和 Z 键)挂起编辑器。

  2. 删除文件,直到剩下的文件数在文件和(或)文件系统块配额以下。

  3. 在 shell 提示符处键入 fg,返回编辑器。

管理镜像文件系统

通过镜像,可以同时维护包含文件系统的逻辑卷的相同副本。因此,如果磁盘发生故障,或者磁盘的一部分发生了介质错误,仍然可以访问镜像逻辑卷内的文件系统。还有可能镜像包含原始数据(例如来自数据库的原始数据)的逻辑卷。

如果希望了解更多有关基本镜像任务的知识,建议参考 Prentice Hall PTR 1997 年出版的《《Disk and File Management Tasks on HP-UX》》一书。

要使用镜像,需要购买 MirrorDisk/UX,其产品号是 B2491A,用于服务器。此软件产品不在 HP-UX 软件包中,并且不支持在工作站上使用(在 HP-IB 磁盘上不支持镜像)。

创建和修改镜像的逻辑卷

可以通过 SAM 或 HP-UX 命令配置镜像。只要有可能,请使用 SAM。

使用 SAM

SAM 将执行以下镜像设置任务和配置任务:

  • 创建或删除镜像的逻辑卷。

  • 配置或更改逻辑卷镜像的特征。可以指定:

    • 镜像副本的数目。

    • 严格分配(包括选择使用单独的物理卷组)与非严格分配。

    • 镜像写高速缓存方法或镜像一致性恢复方法。

    • 并行调度、顺序调度或动态调度策略。

    • 连续分配与非连续分配。

注释:直到将 MirrorDisk/UX 子系统添加到系统中以后,SAM 中与镜像相关的逻辑卷功能才起作用。
使用 HP-UX 命令

表 6-8 “创建和配置镜像需要的 HP-UX 命令 ” 概括了不使用 SAM 时完成镜像设置和配置任务需要的命令。有关要使用的相应命令行选项,请参考《 《HP-UX Reference》》的 Section 1M 部分。

表 6-8 创建和配置镜像需要的 HP-UX 命令

任务

需要的命令和选项

创建镜像逻辑卷。

子任务:

设置严格或非严格分配。

设置镜像写高速缓存方法。

设置镜像一致性恢复方法。

设置并行调度或顺序调度策略。

设置连续分配或非连续分配。

在单独的物理卷组内创建镜像副本。

lvcreate -m

加上

-s y-s n

-M y-M n

-c y-c n

-d p-d s

-C y-C n

-s g

删除镜像的逻辑卷。

lvremove

增加镜像副本的数目。

lvextend -m

减少镜像副本的数目。

lvreduce -m

更改逻辑卷特征。

子任务

与上面的 lvcreate 相同的任务和选项。

lvchange

加上:

(见上)

创建物理卷组,使用单独的 I/O 通道进行镜像。

  1. vgcreate

  2. vgextend

指定和(或)更改物理卷是否作为卷组内备用的物理卷。

以下之一:

  • vgextend -z y

  • vgextend -z n

  • pvchange -z y

  • pvchange -z -n

 

通过拆分逻辑卷进行联机备份

可以将镜像逻辑卷拆分成两个逻辑卷,以便在一个副本联机的时候对离线副本执行备份。对离线副本的活动完成后,可以将两个逻辑卷合并回一个。为了使两个副本同步,LVM 基于对使用中的副本所作的更改更新离线副本中的物理盘区。

可以使用 SAM 来拆分和合并逻辑卷,或者使用 lvsplitlvmerge

拆分包含文件系统的逻辑卷后,必须:

  1. 使用 fsck 命令对要备份的逻辑卷执行文件系统一致性检查。

  2. 挂接文件系统。

  3. 备份文件系统。

  4. 卸除文件系统。

  5. 将文件系统与联机副本合并。

有关详细信息,请参阅 lvsplit (1M)lvmerge (1M)

实现 I/O 通道分离

要实现 I/O 通道分离,可以使用 SAM 从卷组 LVM 磁盘的子集创建物理卷组,或者在完成“示例:使用 HP-UX 命令创建逻辑卷”描述的步骤 1 到步骤 3 后使用以下命令。

  1. 使用带有 -g 选项的 vgcreate (1M) 命名物理卷组,在新卷组内创建物理卷组。

  2. 使用带有 -g 选项的 vgextend (1M) 扩展卷组,以包含另一个物理卷组。

要跨越实现 I/O 通道分离的物理卷组创建镜像逻辑卷,对已经分离到不同物理卷组的磁盘,设置严格分配。通过 SAM 或 lvcreate (1M) 命令在创建逻辑卷时设置分配策略。

注释:为了避免在创建物理卷组时降低灵活性,可能需要使用 lvextend,该命令允许指定物理卷。有关详细信息,请参阅“将逻辑卷扩展到特定磁盘 ”

为 HP 9000 (PA-RISC) 系统镜像根逻辑卷、引导逻辑卷、主交换逻辑卷

利用另一个磁盘上的根逻辑卷、引导逻辑卷或主交换逻辑卷的镜像副本,就可以在其中的任何逻辑卷发生故障时,使用副本保持系统正常运行。

要镜像根文件系统,必须首先添加可引导 LVM 磁盘:

  1. 使用带有 -B 选项的 pvcreate 创建物理卷。

    pvcreate -B /dev/rdsk/c0t3d0
  2. 利用 vgextend 将物理卷添加到现有的根卷组。

    vgextend /dev/vg00 /dev/dsk/c0t3d0
  3. 使用 mkboot (1M) 将引导实用程序放在引导区域中:

    mkboot /dev/rdsk/c0t3d0
  4. 使用 mkboot -a 在引导 LIF 区域中添加 AUTO 文件。

    mkboot -a "hpux (;0)/stand/vmunix" /dev/rdsk/c0t3d0
    注释:此示例包括了创建主交换逻辑卷的镜像副本。主交换镜像不一定位于特定磁盘或特定位置,但必须为其分配连续磁盘空间。主交换的建议镜像策略是,禁用“镜像写高速缓存”和“镜像一致性恢复”机制。

    镜像主交换时(并且主交换设备也作为转储区域),必须确保“镜像写高速缓存”和“镜像一致性恢复”设置为引导时处于禁用状态,以避免丢失转储。要重置这些选项,需要在维护模式下重新引导系统。然后使用带有 -M n
    -c n
    选项的 lvchange 命令。

  5. 使用 lvextend 命令将根卷组中的每个逻辑卷镜像到指定磁盘上。必须按照在原始引导磁盘上配置逻辑卷的相同顺序扩展逻辑卷。使用带 -v 选项的 pvdisplay 命令确定逻辑卷列表及其顺序。例如:

    pvdisplay -v /dev/dsk/c0t6d0 | grep ’current.*0000$’
       00000 current  /dev/vg00/lvol1    00000
       00038 current  /dev/vg00/lvol2    00000
       00550 current  /dev/vg00/lvol3    00000
       00583 current  /dev/vg00/lvol4    00000
       00608 current  /dev/vg00/lvol5    00000
       00611 current  /dev/vg00/lvol6    00000
       00923 current  /dev/vg00/lvol7    00000
       01252 current  /dev/vg00/lvol8    00000

    在本示例中,按如下方式镜像逻辑卷:

    lvextend -m 1 /dev/vg00/lvol1 /dev/dsk/c0t3d0
    lvextend -m 1 /dev/vg00/lvol2 /dev/dsk/c0t3d0
    lvextend -m 1 /dev/vg00/lvol3 /dev/dsk/c0t3d0
    lvextend -m 1 /dev/vg00/lv0l4 /dev/dsk/c0t3d0
    lvextend -m 1 /dev/vg00/lvol5 /dev/dsk/c0t3d0
    lvextend -m 1 /dev/vg00/lvol6 /dev/dsk/c0t3d0
    lvextend -m 1 /dev/vg00/lvol7 /dev/dsk/c0t3d0
    lvextend -m 1 /dev/vg00/lvol8 /dev/dsk/c0t3d0
  6. 更新根卷组信息:

    lvlnboot -R /dev/vg00
  7. 显示 BDRA。验证镜像的磁盘显示为引导磁盘,并且两个磁盘上都有引导逻辑卷、根逻辑卷和交换逻辑卷:

    lvlnboot -v
  8. 指定镜像磁盘作为非易失性存储器中的备用引导路径:

    setboot -a path_to_disk
  9. 针对新的引导磁盘使用 vi 或其他文本编辑器在 /stand/bootconf 中添加一行:

    vi /stand/bootconf
    l /dev/dsk/c0t3d0

    其中 l 表示 LVM。

创建了根逻辑卷、引导逻辑卷和主交换逻辑卷的镜像副本后,如果其中的任何逻辑卷发生故障,系统就可以使用其他磁盘上的镜像副本继续运行。当发生故障的磁盘回到联机状态时,如果尚未重新引导系统,该磁盘将自动恢复。

如果在磁盘回到联机状态之前就重新引导系统,需要重新激活磁盘并更新跟踪卷组内磁盘的 LVM 数据结构。即使逻辑卷已经处于活动状态,仍然可以使用 vgchange -a y

例如,可以使用下面的命令重新激活磁盘:

vgchange -a y /dev/vg00

由此,LVM 扫描并激活卷组 vg00 中所有可用磁盘,包括重新引导系统后回到联机状态的磁盘。

利用在 HP Integrity Server 上运行的 HP-UX 11i 中的 LVM 镜像引导磁盘

下图显示了引导磁盘的磁盘布局。该磁盘包含指向每个分区的 MBR(Master Boot Record,主引导记录)和 EFI(Extensible Firmware Interface,可扩展固件接口)分区表。idisk 命令用于创建分区(请参阅 idisk (1M))。

图 6-5 HP Integrity 服务器上的 LVM 磁盘布局示例

HP Integrity 服务器上的 LVM 磁盘布局示例

在镜像过程开始之前,确保已安装了附加产品 HP MirrorDisk/UX (B5403BA)。此产品是 HP-UX 11i 应用程序发行版介质上的额外收费产品。例如:

swlist -l fileset | grep -i mirror
LVM.LVM-MIRROR-RUN B.11.22 LVM Mirror
  1. 使用 idisk 命令和分区描述文件对磁盘进行分区。

    1. 创建分区描述文件。例如:

      vi /tmp/idf

      在本示例中,分区描述文件包含:

      3
      EFI 500MB
      HPUX 100%
      HPSP 400MB
      注释:本示例中的值表示引导磁盘有三个分区:EFI 分区、HP-UX 分区和 HP Ser