第 2 章 关于 GFS2 使用的建议

在部署 GFS2 文件系统时,您应该考虑各种常规建议。

2.1. 配置 atime 更新

每个文件内节点和目录内节点都有三个与之关联的时间戳:

  • ctime - 最后一次内节点(inode)状态发生变化的时间
  • mtime - 修改文件(或目录)数据最后一次的时间
  • atime - 最后一次访问文件(或目录)数据的时间

如果默认在 GFS2 和其他 Linux 文件系统上启用了 atime 更新,那么每次读取文件时都需要更新其内节点。

因为有些应用程序使用由 atime 提供的信息,因此这些更新可能需要大量不必要的写入流量和文件锁定流量。该流量可能会降低性能,因此最好关闭或降低 atime 更新的频率。

以下是减少 atime 更新影响的方法:

  • 使用 relatime (相对 atime)挂载,如果以前的 atime 更新比 mtimectime 更新早,则更新 atime。这是 GFS2 文件系统的默认挂载选项。
  • 带有 noatimenodiratime 的挂载。使用 noatime 挂载时会禁用在那个文件系统上的文件和目录的 atime 更新;使用 nodiratime 挂载会禁用那个文件系统上的目录的 atime 更新。通常建议尽可能将 GFS2 文件系统挂载为使用 noatimenodiratime 挂载选项,而在允许的情况下首选使用 noatime。有关这些参数对 GFS2 文件系统性能的影响的更多信息,请参阅 GFS2 节点锁定

使用以下命令使用 noatime Linux 挂载选项挂载 GFS2 文件系统。

mount BlockDevice MountPoint -o noatime
BlockDevice
指定 GFS2 文件系统所在的块设备。
MountPoint
指定要挂载 GFS2 文件系统的目录。

在这个示例中,GFS2 文件系统位于 /dev/vg01/lvol0 上,并挂载到目录 /mygfs2 中,atime 更新被关闭。

# mount /dev/vg01/lvol0 /mygfs2 -o noatime