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