OCFS2 文件系统

OCFS2 是一个通用的基于范围的共享磁盘集群文件系统,与 ext3 有很多相似之处。它支持 64 位 inode 号,并具有自动扩展的元数据组,这也使其对非集群使用具有吸引力。

您需要安装 ocfs2-tools 包,以便至少获得“mount.ocfs2”和“ocfs2_hb_ctl”。

项目网页:http://ocfs2.wiki.kernel.org 工具 git 树:https://github.com/markfasheh/ocfs2-tools OCFS2 邮件列表:https://subspace.kernel.org/lists.linux.dev.html

所有代码版权归 2005 Oracle 所有,除非另有说明。

贡献者

大量代码取自 ext3 和其他项目。

作者按字母顺序排列

警告

OCFS2 尚未支持的功能

  • 目录更改通知 (F_NOTIFY)

  • 分布式缓存 (F_SETLEASE/F_GETLEASE/break_lease)

挂载选项

OCFS2 支持以下挂载选项

(*) == 默认

barrier=1

启用/禁用 barriers。barrier=0 禁用它,barrier=1 启用它。

errors=remount-ro(*)

在发生错误时,将文件系统重新挂载为只读。

errors=panic

如果发生错误,则恐慌并停止机器。

intr (*)

允许信号中断集群操作。

nointr

不允许信号中断集群操作。

noatime

不更新访问时间。

relatime(*)

如果上次访问时间早于修改时间或更改时间,则更新访问时间。

strictatime

始终更新访问时间,但最小更新间隔由 atime_quantum 指定。

atime_quantum=60(*)

除非自上次更新以来已过去此秒数,否则 OCFS2 不会更新访问时间。设置为零始终更新访问时间。此选项需要与 strictatime 一起使用。

data=ordered (*)

所有数据都强制直接输出到主文件系统,然后其元数据再提交到日志。

data=writeback

不保留数据顺序,数据可能在其元数据提交到日志后写入主文件系统。

preferred_slot=0(*)

在挂载期间,首先尝试使用此文件系统槽。如果它被另一个节点使用,将选择找到的第一个空闲槽。无效值将被忽略。

commit=nrsec (*)

可以告诉 Ocfs2 每隔 ‘nrsec’ 秒同步其所有数据和元数据。默认值为 5 秒。这意味着如果断电,您将丢失最近 5 秒的工作量(但是,由于日志记录,您的文件系统不会损坏)。此默认值(或任何低值)会损害性能,但对数据安全有好处。将其设置为 0 将与保留默认值(5 秒)的效果相同。将其设置为非常大的值将提高性能。

localalloc=8(*)

允许自定义本地分配大小(以 MB 为单位)。如果该值太大,文件系统会默默地将其恢复为默认值。

localflocks

禁用集群感知 flock。

inode64

指示 Ocfs2 允许在文件系统中的任何位置创建 inode,包括那些将导致 inode 号占用超过 32 位有效位的位置。

user_xattr (*)

启用扩展用户属性。

nouser_xattr

禁用扩展用户属性。

acl

启用 POSIX 访问控制列表支持。

noacl (*)

禁用 POSIX 访问控制列表支持。

resv_level=2 (*)

设置分配预留的激进程度。有效值介于 0(预留关闭)到 8(预留的最大空间)之间。

dir_resv_level= (*)

默认情况下,目录预留将随文件预留一起缩放 - 用户很少需要更改此值。如果关闭分配预留,此选项将不起作用。

coherency=full (*)

不允许并发 O_DIRECT 写入,将获取集群 inode 锁以强制其他节点删除缓存,因此即使对于 O_DIRECT 写入,也可以保证完整的集群一致性。

coherency=buffered

允许节点之间没有 EX 锁的并发 O_DIRECT 写入,这可以获得高性能,但存在在其他节点上获取陈旧数据的风险。

journal_async_commit

提交块可以写入磁盘,而无需等待描述符块。如果启用,则较旧的内核无法挂载设备。这将内部启用 ‘journal_checksum’。