162306a36Sopenharmony_ci.. SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci
362306a36Sopenharmony_ci================
462306a36Sopenharmony_ciOCFS2 filesystem
562306a36Sopenharmony_ci================
662306a36Sopenharmony_ci
762306a36Sopenharmony_ciOCFS2 is a general purpose extent based shared disk cluster file
862306a36Sopenharmony_cisystem with many similarities to ext3. It supports 64 bit inode
962306a36Sopenharmony_cinumbers, and has automatically extending metadata groups which may
1062306a36Sopenharmony_cialso make it attractive for non-clustered use.
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ciYou'll want to install the ocfs2-tools package in order to at least
1362306a36Sopenharmony_ciget "mount.ocfs2" and "ocfs2_hb_ctl".
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ciProject web page:    http://ocfs2.wiki.kernel.org
1662306a36Sopenharmony_ciTools git tree:      https://github.com/markfasheh/ocfs2-tools
1762306a36Sopenharmony_ciOCFS2 mailing lists: https://subspace.kernel.org/lists.linux.dev.html
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ciAll code copyright 2005 Oracle except when otherwise noted.
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ciCredits
2262306a36Sopenharmony_ci=======
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ciLots of code taken from ext3 and other projects.
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ciAuthors in alphabetical order:
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ci- Joel Becker   <joel.becker@oracle.com>
2962306a36Sopenharmony_ci- Zach Brown    <zach.brown@oracle.com>
3062306a36Sopenharmony_ci- Mark Fasheh   <mfasheh@suse.com>
3162306a36Sopenharmony_ci- Kurt Hackel   <kurt.hackel@oracle.com>
3262306a36Sopenharmony_ci- Tao Ma        <tao.ma@oracle.com>
3362306a36Sopenharmony_ci- Sunil Mushran <sunil.mushran@oracle.com>
3462306a36Sopenharmony_ci- Manish Singh  <manish.singh@oracle.com>
3562306a36Sopenharmony_ci- Tiger Yang    <tiger.yang@oracle.com>
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ciCaveats
3862306a36Sopenharmony_ci=======
3962306a36Sopenharmony_ciFeatures which OCFS2 does not support yet:
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ci	- Directory change notification (F_NOTIFY)
4262306a36Sopenharmony_ci	- Distributed Caching (F_SETLEASE/F_GETLEASE/break_lease)
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_ciMount options
4562306a36Sopenharmony_ci=============
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ciOCFS2 supports the following mount options:
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ci(*) == default
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ci======================= ========================================================
5262306a36Sopenharmony_cibarrier=1		This enables/disables barriers. barrier=0 disables it,
5362306a36Sopenharmony_ci			barrier=1 enables it.
5462306a36Sopenharmony_cierrors=remount-ro(*)	Remount the filesystem read-only on an error.
5562306a36Sopenharmony_cierrors=panic		Panic and halt the machine if an error occurs.
5662306a36Sopenharmony_ciintr		(*)	Allow signals to interrupt cluster operations.
5762306a36Sopenharmony_cinointr			Do not allow signals to interrupt cluster
5862306a36Sopenharmony_ci			operations.
5962306a36Sopenharmony_cinoatime			Do not update access time.
6062306a36Sopenharmony_cirelatime(*)		Update atime if the previous atime is older than
6162306a36Sopenharmony_ci			mtime or ctime
6262306a36Sopenharmony_cistrictatime		Always update atime, but the minimum update interval
6362306a36Sopenharmony_ci			is specified by atime_quantum.
6462306a36Sopenharmony_ciatime_quantum=60(*)	OCFS2 will not update atime unless this number
6562306a36Sopenharmony_ci			of seconds has passed since the last update.
6662306a36Sopenharmony_ci			Set to zero to always update atime. This option need
6762306a36Sopenharmony_ci			work with strictatime.
6862306a36Sopenharmony_cidata=ordered	(*)	All data are forced directly out to the main file
6962306a36Sopenharmony_ci			system prior to its metadata being committed to the
7062306a36Sopenharmony_ci			journal.
7162306a36Sopenharmony_cidata=writeback		Data ordering is not preserved, data may be written
7262306a36Sopenharmony_ci			into the main file system after its metadata has been
7362306a36Sopenharmony_ci			committed to the journal.
7462306a36Sopenharmony_cipreferred_slot=0(*)	During mount, try to use this filesystem slot first. If
7562306a36Sopenharmony_ci			it is in use by another node, the first empty one found
7662306a36Sopenharmony_ci			will be chosen. Invalid values will be ignored.
7762306a36Sopenharmony_cicommit=nrsec	(*)	Ocfs2 can be told to sync all its data and metadata
7862306a36Sopenharmony_ci			every 'nrsec' seconds. The default value is 5 seconds.
7962306a36Sopenharmony_ci			This means that if you lose your power, you will lose
8062306a36Sopenharmony_ci			as much as the latest 5 seconds of work (your
8162306a36Sopenharmony_ci			filesystem will not be damaged though, thanks to the
8262306a36Sopenharmony_ci			journaling).  This default value (or any low value)
8362306a36Sopenharmony_ci			will hurt performance, but it's good for data-safety.
8462306a36Sopenharmony_ci			Setting it to 0 will have the same effect as leaving
8562306a36Sopenharmony_ci			it at the default (5 seconds).
8662306a36Sopenharmony_ci			Setting it to very large values will improve
8762306a36Sopenharmony_ci			performance.
8862306a36Sopenharmony_cilocalalloc=8(*)		Allows custom localalloc size in MB. If the value is too
8962306a36Sopenharmony_ci			large, the fs will silently revert it to the default.
9062306a36Sopenharmony_cilocalflocks		This disables cluster aware flock.
9162306a36Sopenharmony_ciinode64			Indicates that Ocfs2 is allowed to create inodes at
9262306a36Sopenharmony_ci			any location in the filesystem, including those which
9362306a36Sopenharmony_ci			will result in inode numbers occupying more than 32
9462306a36Sopenharmony_ci			bits of significance.
9562306a36Sopenharmony_ciuser_xattr	(*)	Enables Extended User Attributes.
9662306a36Sopenharmony_cinouser_xattr		Disables Extended User Attributes.
9762306a36Sopenharmony_ciacl			Enables POSIX Access Control Lists support.
9862306a36Sopenharmony_cinoacl		(*)	Disables POSIX Access Control Lists support.
9962306a36Sopenharmony_ciresv_level=2	(*)	Set how aggressive allocation reservations will be.
10062306a36Sopenharmony_ci			Valid values are between 0 (reservations off) to 8
10162306a36Sopenharmony_ci			(maximum space for reservations).
10262306a36Sopenharmony_cidir_resv_level=	(*)	By default, directory reservations will scale with file
10362306a36Sopenharmony_ci			reservations - users should rarely need to change this
10462306a36Sopenharmony_ci			value. If allocation reservations are turned off, this
10562306a36Sopenharmony_ci			option will have no effect.
10662306a36Sopenharmony_cicoherency=full  (*)	Disallow concurrent O_DIRECT writes, cluster inode
10762306a36Sopenharmony_ci			lock will be taken to force other nodes drop cache,
10862306a36Sopenharmony_ci			therefore full cluster coherency is guaranteed even
10962306a36Sopenharmony_ci			for O_DIRECT writes.
11062306a36Sopenharmony_cicoherency=buffered	Allow concurrent O_DIRECT writes without EX lock among
11162306a36Sopenharmony_ci			nodes, which gains high performance at risk of getting
11262306a36Sopenharmony_ci			stale data on other nodes.
11362306a36Sopenharmony_cijournal_async_commit	Commit block can be written to disk without waiting
11462306a36Sopenharmony_ci			for descriptor blocks. If enabled older kernels cannot
11562306a36Sopenharmony_ci			mount the device. This will enable 'journal_checksum'
11662306a36Sopenharmony_ci			internally.
11762306a36Sopenharmony_ci======================= ========================================================
118