6.6. 启用数据日志


通常 GFS2 只将元数据写入其日志中。文件内容会随后由内核定期进行的同步(同步会清除文件系统缓冲)写入磁盘。对一个文件的 fsync() 调用会导致文件的数据被立即写入磁盘。当磁盘报告所有数据已安全写入时,调用会返回。

对于非常小的文件,数据日志可导致减少的 fsync() 时间,因为除了写入元数据外,文件数据还会写入日志。随着文件的增大,这个优势会明显降低。在启用数据日志的情况下,对中等和较大文件的写操作会较慢。

依赖于 fsync() 同步文件数据的应用程序可能会通过数据日志来提高性能。在标记的目录及其所有子目录中创建的 GFS2 文件可自动启用数据日志。现有的长度为零的文件也可以打开或者关闭数据日志。

在一个目录上启动数据日志会把目录设定为 "inherit jdata",这代表以后所有在这个目录中生成的文件和目录都会进行日志。您可以使用 chattr 命令对文件启用和禁用数据日志。

以下命令对 /mnt/gfs2/gfs2_dir/newfile 文件启用数据日志,然后检查是否正确设置了标志。

# chattr +j /mnt/gfs2/gfs2_dir/newfile
# lsattr /mnt/gfs2/gfs2_dir
---------j--- /mnt/gfs2/gfs2_dir/newfile

以下命令对 /mnt/gfs2/gfs2_dir/newfile 文件禁用数据日志,然后检查是否正确设置了标志。

# chattr -j /mnt/gfs2/gfs2_dir/newfile
# lsattr /mnt/gfs2/gfs2_dir
------------- /mnt/gfs2/gfs2_dir/newfile

您还可以使用 chattr 命令对目录设置 j 标志。当您为某个目录设定此标记时,以后在那个目录中生成的所有文件和目录都会进行日志操作。以下命令集对 gfs2_dir 目录设置 j 标志,然后检查是否正确设置了标志。之后,命令会在 /mnt/gfs2/gfs2_dir 目录中创建一个名为 newfile 的新文件,然后检查是否为该文件设置了 j 标志。因为为该目录设置了 j 标志,因此 newfile 应该页启用了日志。

# chattr -j /mnt/gfs2/gfs2_dir
# lsattr /mnt/gfs2
---------j--- /mnt/gfs2/gfs2_dir
# touch /mnt/gfs2/gfs2_dir/newfile
# lsattr /mnt/gfs2/gfs2_dir
---------j--- /mnt/gfs2/gfs2_dir/newfile
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.