OCFS2 filesystem¶
OCFS2 is a general purpose extent based shared disk cluster filesystem with many similarities to ext3. It supports 64 bit inodenumbers, and has automatically extending metadata groups which mayalso make it attractive for non-clustered use.
You’ll want to install the ocfs2-tools package in order to at leastget “mount.ocfs2” and “ocfs2_hb_ctl”.
Project web page:http://ocfs2.wiki.kernel.orgTools git tree:https://github.com/markfasheh/ocfs2-toolsOCFS2 mailing lists:https://subspace.kernel.org/lists.linux.dev.html
All code copyright 2005 Oracle except when otherwise noted.
Credits¶
Lots of code taken from ext3 and other projects.
Authors in alphabetical order:
Joel Becker <joel.becker@oracle.com>
Zach Brown <zach.brown@oracle.com>
Mark Fasheh <mfasheh@suse.com>
Kurt Hackel <kurt.hackel@oracle.com>
Tao Ma <tao.ma@oracle.com>
Sunil Mushran <sunil.mushran@oracle.com>
Manish Singh <manish.singh@oracle.com>
Tiger Yang <tiger.yang@oracle.com>
Caveats¶
Features which OCFS2 does not support yet:
Directory change notification (F_NOTIFY)
Distributed Caching (F_SETLEASE/F_GETLEASE/break_lease)
Mount options¶
OCFS2 supports the following mount options:
(*) == default
barrier=1 | This enables/disables barriers. barrier=0 disables it,barrier=1 enables it. |
errors=remount-ro(*) | Remount the filesystem read-only on an error. |
errors=panic | Panic and halt the machine if an error occurs. |
intr (*) | Allow signals to interrupt cluster operations. |
nointr | Do not allow signals to interrupt clusteroperations. |
noatime | Do not update access time. |
relatime(*) | Update atime if the previous atime is older thanmtime or ctime |
strictatime | Always update atime, but the minimum update intervalis specified by atime_quantum. |
atime_quantum=60(*) | OCFS2 will not update atime unless this numberof seconds has passed since the last update.Set to zero to always update atime. This option needwork with strictatime. |
data=ordered (*) | All data are forced directly out to the main filesystem prior to its metadata being committed to thejournal. |
data=writeback | Data ordering is not preserved, data may be writteninto the main file system after its metadata has beencommitted to the journal. |
preferred_slot=0(*) | During mount, try to use this filesystem slot first. Ifit is in use by another node, the first empty one foundwill be chosen. Invalid values will be ignored. |
commit=nrsec (*) | Ocfs2 can be told to sync all its data and metadataevery ‘nrsec’ seconds. The default value is 5 seconds.This means that if you lose your power, you will loseas much as the latest 5 seconds of work (yourfilesystem will not be damaged though, thanks to thejournaling). This default value (or any low value)will hurt performance, but it’s good for data-safety.Setting it to 0 will have the same effect as leavingit at the default (5 seconds).Setting it to very large values will improveperformance. |
localalloc=8(*) | Allows custom localalloc size in MB. If the value is toolarge, the fs will silently revert it to the default. |
localflocks | This disables cluster aware flock. |
inode64 | Indicates that Ocfs2 is allowed to create inodes atany location in the filesystem, including those whichwill result in inode numbers occupying more than 32bits of significance. |
user_xattr (*) | Enables Extended User Attributes. |
nouser_xattr | Disables Extended User Attributes. |
acl | Enables POSIX Access Control Lists support. |
noacl (*) | Disables POSIX Access Control Lists support. |
resv_level=2 (*) | Set how aggressive allocation reservations will be.Valid values are between 0 (reservations off) to 8(maximum space for reservations). |
dir_resv_level= (*) | By default, directory reservations will scale with filereservations - users should rarely need to change thisvalue. If allocation reservations are turned off, thisoption will have no effect. |
coherency=full (*) | Disallow concurrent O_DIRECT writes, cluster inodelock will be taken to force other nodes drop cache,therefore full cluster coherency is guaranteed evenfor O_DIRECT writes. |
coherency=buffered | Allow concurrent O_DIRECT writes without EX lock amongnodes, which gains high performance at risk of gettingstale data on other nodes. |
journal_async_commit | Commit block can be written to disk without waitingfor descriptor blocks. If enabled older kernels cannotmount the device. This will enable ‘journal_checksum’internally. |