UFS 日志记录会将组成一个完整 UFS 操作的多个元数据更改打包成一个事务。事务集记录在盘上日志中,然后会应用于实际文件系统的元数据。
重新引导时,系统会废弃未完成的事务,但是会对已完成的操作应用事务。文件系统将保持一致,因为仅应用了已完成的事务。即使在系统崩溃时,也仍会保持此一致性。系统崩溃可能会中断系统调用,并导致 UFS 文件系统出现不一致。
UFS 日志记录功能有两个好处:
如果文件系统已经通过事务日志达到一致,则在系统崩溃或异常关机后可能不必运行 fsck 命令。有关异常关机的更多信息,请参见fsck 命令检查和尝试修复的内容。
从 Solaris 9 12/02 发行版开始,UFS 日志记录的性能已经提高甚至超过了无日志记录功能的文件系统的性能级别。这一改进之所以能够实现是由于启用日志记录功能的文件系统可以将对相同数据的多重更新转换为单一更新。因此,减少了磁盘操作所需的开销。
UFS 事务日志具有以下特征:
从文件系统上的空闲块分配而来
对于每 1 GB 的文件系统,其大小约为 1 MB,最大为 64 MB
填满时会不断刷新
取消挂载文件系统或使用任何 lockfs 命令之后也会刷新。
所有 UFS 文件系统均缺省启用 UFS 日志记录。
如果需要禁用 UFS 日志记录,请在 /etc/vfstab 文件中或手动挂载文件系统时,向文件系统的项添加 nologging 选项。
如果需要启用 UFS 日志记录,请在 /etc/vfstab 文件中或手动挂载文件系统时,在 mount 命令中指定 -o logging 选项。可以在包括根 (/) 文件系统的任何 UFS 文件系统上启用日志记录。另外,fsdb 命令还包含支持 UFS 日志记录的新调试命令。
在一些操作系统中,启用了日志记录的文件系统称为日记记录文件系统。