系统管理指南:设备和文件系统

UFS 文件系统

UFS 是 Solaris OS 中缺省的基于磁盘的文件系统。管理基于磁盘的文件系统时,大多数情况下管理的是 UFS 文件系统。UFS 可提供以下功能。

UFS 功能 

说明 

扩展的基本类型 (extended fundamental type, EFT) 

提供 32 位用户 ID (user ID, UID)、组 ID (group ID, GID) 和设备编号。

大文件系统 

在最大大小可以为 16 TB 的文件系统中,允许大小约为 1 TB 的文件。可以在具有 EFI 磁盘标号的磁盘上创建多 TB UFS 文件系统。

日志记录 

UFS 日志记录会将组成一个完整 UFS 操作的多个元数据更改打包成一个事务。事务集记录在盘上日志中,然后会应用于实际 UFS 文件系统的元数据。 

多 TB 文件系统 

通过多 TB 文件系统,可以创建最大可用空间约为 16 TB 的 UFS 文件系统,其中会减去约 1% 的开销。

状态标志 

显示文件系统的状态:clean、stable、active、logging 或 unknown。 这些标志可避免不必要的文件系统检查。 如果文件系统的状态为“clean”、“stable” 或 “logging”,则不运行文件系统检查。

有关 UFS 文件系统结构的详细信息,请参见第 23 章,UFS 文件系统(参考)

规划 UFS 文件系统

对文件系统进行布局时,需要考虑可能相冲突的需求。 以下是一些建议:

有关缺省文件系统参数以及创建新 UFS 文件系统的过程的信息,请参见第 18 章,创建 UFS、TMPFS 和 LOFS 文件系统(任务)

UFS 日志记录

UFS 日志记录会将组成一个完整 UFS 操作的多个元数据更改打包成一个事务。事务集记录在盘上日志中,然后会应用于实际文件系统的元数据。

重新引导时,系统会废弃未完成的事务,但是会对已完成的操作应用事务。文件系统将保持一致,因为仅应用了已完成的事务。即使在系统崩溃时,也仍会保持此一致性。系统崩溃可能会中断系统调用,并导致 UFS 文件系统出现不一致。

UFS 日志记录功能有两个好处:

UFS 事务日志具有以下特征:

所有 UFS 文件系统均缺省启用 UFS 日志记录。

如果需要禁用 UFS 日志记录,请在 /etc/vfstab 文件中或手动挂载文件系统时,向文件系统的项添加 nologging 选项。

如果需要启用 UFS 日志记录,请在 /etc/vfstab 文件中或手动挂载文件系统时,在 mount 命令中指定 -o logging 选项。可以在包括根 (/) 文件系统的任何 UFS 文件系统上启用日志记录。另外,fsdb 命令还包含支持 UFS 日志记录的新调试命令。

在一些操作系统中,启用了日志记录的文件系统称为日记记录文件系统。

UFS 快照

可以使用 fssnap 命令创建文件系统的只读快照。快照是旨在用于备份操作的文件系统临时映像。

有关更多信息,请参见第 26 章,使用 UFS 快照(任务)

UFS 直接输入/输出 (Input/Output, I/O)

直接 I/O 旨在用于改进批量 I/O 操作。批量 I/O 操作使用大的缓冲区来传输大文件(大于 256 KB)。

使用 UFS 直接 I/O 可能会使执行各自内部缓冲的应用程序(如数据库引擎)受益。从 Solaris 8 1/01 发行版开始,UFS 直接 I/O 已经增强,允许在访问原始设备时发生的同一种类 I/O 并行。现在,可以从文件系统命名和灵活性中受益,并且仅会降低很少性能。请咨询数据库供应商,以了解它是否可以在其产品配置选项中启用 UFS 直接 I/O。

通过在 mount 命令中使用 forcedirectio 选项,也可以在文件系统上启用直接 I/O。仅当文件系统传输大量连续数据时,启用直接 I/O 才会提高性能。

使用此选项挂载文件系统时,将直接在用户的地址空间和磁盘之间传输数据。如果未对文件系统启用强制直接 I/O,则在用户的地址空间和磁盘之间传输的数据会首先在内核地址空间中进行缓冲。

缺省行为是不对 UFS 文件系统启用强制直接 I/O。 有关更多信息,请参见 mount_ufs(1M)