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