xref: /linux/Documentation/filesystems/ocfs2.rst (revision 8e07e0e3964ca4e23ce7b68e2096fe660a888942)
1.. SPDX-License-Identifier: GPL-2.0
2
3================
4OCFS2 filesystem
5================
6
7OCFS2 is a general purpose extent based shared disk cluster file
8system with many similarities to ext3. It supports 64 bit inode
9numbers, and has automatically extending metadata groups which may
10also make it attractive for non-clustered use.
11
12You'll want to install the ocfs2-tools package in order to at least
13get "mount.ocfs2" and "ocfs2_hb_ctl".
14
15Project web page:    http://ocfs2.wiki.kernel.org
16Tools git tree:      https://github.com/markfasheh/ocfs2-tools
17OCFS2 mailing lists: https://subspace.kernel.org/lists.linux.dev.html
18
19All code copyright 2005 Oracle except when otherwise noted.
20
21Credits
22=======
23
24Lots of code taken from ext3 and other projects.
25
26Authors in alphabetical order:
27
28- Joel Becker   <joel.becker@oracle.com>
29- Zach Brown    <zach.brown@oracle.com>
30- Mark Fasheh   <mfasheh@suse.com>
31- Kurt Hackel   <kurt.hackel@oracle.com>
32- Tao Ma        <tao.ma@oracle.com>
33- Sunil Mushran <sunil.mushran@oracle.com>
34- Manish Singh  <manish.singh@oracle.com>
35- Tiger Yang    <tiger.yang@oracle.com>
36
37Caveats
38=======
39Features which OCFS2 does not support yet:
40
41	- Directory change notification (F_NOTIFY)
42	- Distributed Caching (F_SETLEASE/F_GETLEASE/break_lease)
43
44Mount options
45=============
46
47OCFS2 supports the following mount options:
48
49(*) == default
50
51======================= ========================================================
52barrier=1		This enables/disables barriers. barrier=0 disables it,
53			barrier=1 enables it.
54errors=remount-ro(*)	Remount the filesystem read-only on an error.
55errors=panic		Panic and halt the machine if an error occurs.
56intr		(*)	Allow signals to interrupt cluster operations.
57nointr			Do not allow signals to interrupt cluster
58			operations.
59noatime			Do not update access time.
60relatime(*)		Update atime if the previous atime is older than
61			mtime or ctime
62strictatime		Always update atime, but the minimum update interval
63			is specified by atime_quantum.
64atime_quantum=60(*)	OCFS2 will not update atime unless this number
65			of seconds has passed since the last update.
66			Set to zero to always update atime. This option need
67			work with strictatime.
68data=ordered	(*)	All data are forced directly out to the main file
69			system prior to its metadata being committed to the
70			journal.
71data=writeback		Data ordering is not preserved, data may be written
72			into the main file system after its metadata has been
73			committed to the journal.
74preferred_slot=0(*)	During mount, try to use this filesystem slot first. If
75			it is in use by another node, the first empty one found
76			will be chosen. Invalid values will be ignored.
77commit=nrsec	(*)	Ocfs2 can be told to sync all its data and metadata
78			every 'nrsec' seconds. The default value is 5 seconds.
79			This means that if you lose your power, you will lose
80			as much as the latest 5 seconds of work (your
81			filesystem will not be damaged though, thanks to the
82			journaling).  This default value (or any low value)
83			will hurt performance, but it's good for data-safety.
84			Setting it to 0 will have the same effect as leaving
85			it at the default (5 seconds).
86			Setting it to very large values will improve
87			performance.
88localalloc=8(*)		Allows custom localalloc size in MB. If the value is too
89			large, the fs will silently revert it to the default.
90localflocks		This disables cluster aware flock.
91inode64			Indicates that Ocfs2 is allowed to create inodes at
92			any location in the filesystem, including those which
93			will result in inode numbers occupying more than 32
94			bits of significance.
95user_xattr	(*)	Enables Extended User Attributes.
96nouser_xattr		Disables Extended User Attributes.
97acl			Enables POSIX Access Control Lists support.
98noacl		(*)	Disables POSIX Access Control Lists support.
99resv_level=2	(*)	Set how aggressive allocation reservations will be.
100			Valid values are between 0 (reservations off) to 8
101			(maximum space for reservations).
102dir_resv_level=	(*)	By default, directory reservations will scale with file
103			reservations - users should rarely need to change this
104			value. If allocation reservations are turned off, this
105			option will have no effect.
106coherency=full  (*)	Disallow concurrent O_DIRECT writes, cluster inode
107			lock will be taken to force other nodes drop cache,
108			therefore full cluster coherency is guaranteed even
109			for O_DIRECT writes.
110coherency=buffered	Allow concurrent O_DIRECT writes without EX lock among
111			nodes, which gains high performance at risk of getting
112			stale data on other nodes.
113journal_async_commit	Commit block can be written to disk without waiting
114			for descriptor blocks. If enabled older kernels cannot
115			mount the device. This will enable 'journal_checksum'
116			internally.
117======================= ========================================================
118