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

这启用/禁用屏障。barrier=0 禁用它,barrier=1 启用它。

errors=remount-ro(*)

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

errors=panic

如果发生错误,则紧急停止并停止机器。

intr (*)

允许信号中断集群操作。

nointr

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

noatime

不更新访问时间。

relatime(*)

如果之前的 atime 比 mtime 或 ctime 旧,则更新 atime

strictatime

始终更新 atime,但最小更新间隔由 atime_quantum 指定。

atime_quantum=60(*)

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

data=ordered (*)

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

data=writeback

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

preferred_slot=0(*)

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

commit=nrsec (*)

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

localalloc=8(*)

允许自定义 localalloc 大小,以 MB 为单位。如果该值太大,则 fs 将以静默方式将其恢复为默认值。

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

允许节点间并发 O_DIRECT 写入而无需 EX 锁,这可以在其他节点上获得陈旧数据的风险下获得高性能。

journal_async_commit

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