Linux 6.9-rc1
[linux-2.6-microblaze.git] / Documentation / filesystems / ocfs2.rst
1 .. SPDX-License-Identifier: GPL-2.0
2
3 ================
4 OCFS2 filesystem
5 ================
6
7 OCFS2 is a general purpose extent based shared disk cluster file
8 system with many similarities to ext3. It supports 64 bit inode
9 numbers, and has automatically extending metadata groups which may
10 also make it attractive for non-clustered use.
11
12 You'll want to install the ocfs2-tools package in order to at least
13 get "mount.ocfs2" and "ocfs2_hb_ctl".
14
15 Project web page:    http://ocfs2.wiki.kernel.org
16 Tools git tree:      https://github.com/markfasheh/ocfs2-tools
17 OCFS2 mailing lists: https://oss.oracle.com/projects/ocfs2/mailman/
18
19 All code copyright 2005 Oracle except when otherwise noted.
20
21 Credits
22 =======
23
24 Lots of code taken from ext3 and other projects.
25
26 Authors 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
37 Caveats
38 =======
39 Features which OCFS2 does not support yet:
40
41         - Directory change notification (F_NOTIFY)
42         - Distributed Caching (F_SETLEASE/F_GETLEASE/break_lease)
43
44 Mount options
45 =============
46
47 OCFS2 supports the following mount options:
48
49 (*) == default
50
51 ======================= ========================================================
52 barrier=1               This enables/disables barriers. barrier=0 disables it,
53                         barrier=1 enables it.
54 errors=remount-ro(*)    Remount the filesystem read-only on an error.
55 errors=panic            Panic and halt the machine if an error occurs.
56 intr            (*)     Allow signals to interrupt cluster operations.
57 nointr                  Do not allow signals to interrupt cluster
58                         operations.
59 noatime                 Do not update access time.
60 relatime(*)             Update atime if the previous atime is older than
61                         mtime or ctime
62 strictatime             Always update atime, but the minimum update interval
63                         is specified by atime_quantum.
64 atime_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.
68 data=ordered    (*)     All data are forced directly out to the main file
69                         system prior to its metadata being committed to the
70                         journal.
71 data=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.
74 preferred_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.
77 commit=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.
88 localalloc=8(*)         Allows custom localalloc size in MB. If the value is too
89                         large, the fs will silently revert it to the default.
90 localflocks             This disables cluster aware flock.
91 inode64                 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.
95 user_xattr      (*)     Enables Extended User Attributes.
96 nouser_xattr            Disables Extended User Attributes.
97 acl                     Enables POSIX Access Control Lists support.
98 noacl           (*)     Disables POSIX Access Control Lists support.
99 resv_level=2    (*)     Set how aggressive allocation reservations will be.
100                         Valid values are between 0 (reservations off) to 8
101                         (maximum space for reservations).
102 dir_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.
106 coherency=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.
110 coherency=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.
113 journal_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 ======================= ========================================================