NAME¶
mkfs.ocfs2 - Creates an
OCFS2 file system.
SYNOPSIS¶
mkfs.ocfs2 [
-b block-size] [
-C cluster-size]
[
-L volume-label] [
-M mount-type] [
-N
number-of-nodes] [
-J journal-options]
[
--fs-features= [no]sparse...]
[
--fs-feature-level=feature-level] [
-T
filesystem-type] [
-FqvV]
device
[
blocks-count]
DESCRIPTION¶
mkfs.ocfs2 is used to create an
OCFS2 file system on a
device, usually a partition on a shared disk. In order to prevent data
loss,
mkfs.ocfs2 will not format an existing
OCFS2 volume if it
detects that it is mounted on another node in the cluster. This tool requires
the cluster service to be online.
OPTIONS¶
- -b, --block-size block-size
- Valid block size values are 512, 1K, 2K and 4K bytes per
block. If omitted, a value will be heuristically determined based on the
expected usage of the file system (see the -T option). A block size
of 512 bytes is never recommended. Choose 1K, 2K or 4K.
- -C, --cluster-size cluster-size
- Valid cluster size values are 4K, 8K, 16K, 32K, 64K, 128K,
256K, 512K and 1M. If omitted, a value will be heuristically determined
based on the expected usage of the file system (see the -T option).
For volumes expected to store large files, like database files, while a
cluster size of 128K or more is recommended, one can opt for a smaller
size as long as that value is not smaller than the database block size.
For others, use 4K.
- -F, --force
- For existing OCFS2 volumes, mkfs.ocfs2
ensures the volume is not mounted on any node in the cluster before
formatting. For that to work, mkfs.ocfs2 expects the cluster
service to be online. Specify this option to disable this check.
- -J, --journal-options options
- Create the journal using options specified on the
command-line. Journal options are comma separated, and may take an
argument using the equals ('=') sign. The following options are
supported:
- size=journal-size
- Create a journal of size journal-size. Minimum size
is 4M. If omitted, a value is heuristically determined based upon the file
system size.
- block32
- Use a standard 32bit journal. The journal will be able to
access up to 2^32-1 blocks. This is the default. It has been the journal
format for OCFS2 volumes since the beginning. The journal is
compatible with all versions of OCFS2. Prepending no is
equivalent to the block64 journal option.
- block64
- Use a 64bit journal. The journal will be able to access up
to 2^64-1 blocks. This allows large filesystems that can extend to the
theoretical limits of OCFS2. It requires a new-enough filesystem
driver that uses the new journalled block device, JBD2. Prepending
no is equivalent to the block32 journal option.
- -L, --label volume-label
- Set the volume label for the file system. This is useful
for mounting-by-label. Limit the label to under 64 bytes.
- -M, --mount mount-type
- Valid types are local and cluster. Local
mount allows users to mount the volume without the cluster overhead and
works only with OCFS2 bundled with Linux kernels 2.6.20 or later.
Defaults to cluster.
- -N, --node-slots number-of-node-slots
- Valid number ranges from 1 to 255. This number specifies
the maximum number of nodes that can concurrently mount the partition. If
omitted, the number defaults to 8. The number of slots can be later tuned
up or down using tunefs.ocfs2.
- -T filesystem-type
- Specify how the filesystem is going to be used, so that
mkfs.ocfs2 can chose optimal filesystem parameters for that use.
The supported filesystem types are:
- mail
- Appropriate for file systems that will host lots of small
files.
- datafiles
- Appropriate for file systems that will host a relatively
small number of very large files.
- vmstore
- Appropriate for file systems that will host Virtual machine
images.
- --fs-features=[no]sparse...
- Turn specific file system features on or off. A comma
separated list of feature flags can be provided, and mkfs.ocfs2
will try to create the file system with those features set according to
the list. To turn a feature on, include it in the list. To turn a feature
off, prepend no to the name. Choices here will override individual
features set via the --fs-feature-level option. Refer to the
section titled feature compatibility before selecting specific
features. The following flags are supported:
- backup-super
- mkfs.ocfs2, by default, makes up to 6 backup copies
of the super block at offsets 1G, 4G, 16G, 64G, 256G and 1T depending on
the size of the volume. This can be useful in disaster recovery. This
feature is fully compatible with all versions of the file system and
generally should not be disabled.
- local
- Create the file system as a local mount, so that it can be
mounted without a cluster stack.
- sparse
- Enable support for sparse files. With this, OCFS2
can avoid allocating (and zeroing) data to fill holes. Turn this feature
on if you can, otherwise extends and some writes might be less
performant.
- unwritten
- Enable unwritten extents support. With this turned on, an
application can request that a range of clusters be pre-allocated within a
file. OCFS2 will mark those extents with a special flag so that
expensive data zeroing doesn't have to be performed. Reads and writes to a
pre-allocated region act as reads and writes to a hole, except a write
will not fail due to lack of data allocation. This feature requires
sparse file support to be turned on.
- inline-data
- Enable inline-data support. If this feature is turned on,
OCFS2 will store small files and directories inside the inode
block. Data is transparently moved out to an extent when it no longer fits
inside the inode block. In some cases, this can also make a positive
impact on cold-cache directory and file operations.
- extended-slotmap
- The slot-map is a hidden file on an OCFS2 fs which
is used to map mounted nodes to system file resources. The extended slot
map allows a larger range of possible node numbers, which is useful for
userspace cluster stacks. This feature is automatically turned on when
needed, thus users have no need to turn this on manually.
- metaecc
- Enables metadata checksums. With this enabled, the file
system computes and stores the checksums in all metadata blocks. It also
computes and stores an error correction code capable of fixing single bit
errors.
- refcount
- Enables creation of reference counted trees. With this
enabled, the file system allows users to create inode-based snapshots and
clones known as reflinks.
- xattr
- Enable extended attributes support. With this enabled,
users can attach name:value pairs to objects within the file system. In
OCFS2, the names can be upto 255 bytes in length, terminated by the
first NUL byte. While it is not required, printable names (ASCII) are
recommended. The values can be upto 64KB of arbitrary binary data.
Attributes can be attached to all types of inodes: regular files,
directories, symbolic links, device nodes, etc. This feature is required
for users wanting to use extended security facilities like POSIX ACLs or
SELinux.
- usrquota
- Enable user quota support. With this feature enabled,
filesystem will track amount of space and number of inodes (files,
directories, symbolic links) each user owns. It is then possible to limit
the maximum amount of space or inodes user can have. See a documentation
of quota-tools package for more details.
- grpquota
- Enable group quota support. With this feature enabled,
filesystem will track amount of space and number of inodes (files,
directories, symbolic links) each group owns. It is then possible to limit
the maximum amount of space or inodes user can have. See a documentation
of quota-tools package for more details.
- indexed-dirs
- Enable directory indexing support. With this feature
enabled, the file system creates indexed tree for non-inline directory
entries. For large scale directories, directory entry lookup perfromance
from the indexed tree is faster then from the legacy directory
blocks.
- discontig-bg
- Enables discontiguous block groups. With this feature
enabled, the file system is able to grow the inode and the extent
allocators even when there is no contiguous free chunk available. It
allows the file system to grow the allocators in smaller (discontiguous)
chunks.
- --fs-feature-level=feature-level
- Choose from a set of pre-determined file-system features.
This option is designed to allow users to conveniently choose a set of
file system features which fits their needs. There is no downside to
trying a set of features which your module might not support - if it won't
mount the new file system simply reformat at a lower level. Feature levels
can be fine-tuned via the --fs-features option. Currently, there
are 3 types of feature levels:
- max-compat
- Chooses fewer features but ensures that the file system can
be mounted from older versions of the OCFS2 module.
- default
- The default feature set tries to strike a balance between
providing new features and maintaining compatibility with relatively
recent versions of OCFS2. It currently enables sparse,
unwritten inline-data and xattr. It also enables
refcount for the vmstore volumes.
- max-features
- Choose the maximum amount of features available. This will
typically provide the best performance from OCFS2 at the expense of
creating a file system that is only compatible with very recent versions
of the OCFS2 kernel module.
- --no-backup-super
- This option is deprecated, please use
--fs-features=nobackup-super instead.
- -n, --dry-run
- Display the heuristically determined values without
overwriting the existing file system.
- -q, --quiet
- Quiet mode.
- -v, --verbose
- Verbose mode.
- -V, --version
- Print version and exit.
- blocks-count
- Usually mkfs.ocfs2 automatically determines the size
of the given device and creates a file system that uses all of the
available space on the device. This optional argument specifies that the
file system should only consume the given number of file system blocks
(see -b) on the device.
FEATURE COMPATIBILITY¶
This section lists the file system features that have been added to the
OCFS2 file system and the version that it first appeared in. The table
below lists the versions of the mainline Linux kernel and that of the file
system for the Enterprise Linux Distributions. Users should use this
information to enable only those features that are available in the file
system that they are using. Before enabling new features, users are advised to
review to the section titled
feature values.
Feature |
Mainline Kernel Version |
Enterprise OCFS2 Version |
local |
Linux 2.6.20 |
OCFS2 1.2 |
sparse |
Linux 2.6.22 |
OCFS2 1.4 |
unwritten |
Linux 2.6.23 |
OCFS2 1.4 |
inline-data |
Linux 2.6.24 |
OCFS2 1.4 |
extended-slotmap |
Linux 2.6.27 |
OCFS2 1.6 |
metaecc |
Linux 2.6.29 |
OCFS2 1.6 |
grpquota |
Linux 2.6.29 |
OCFS2 1.6 |
usrquota |
Linux 2.6.29 |
OCFS2 1.6 |
xattr |
Linux 2.6.29 |
OCFS2 1.6 |
indexed-dirs |
Linux 2.6.30 |
OCFS2 1.6 |
refcount |
Linux 2.6.32 |
OCFS2 1.6 |
discontig-bg |
Linux 2.6.35 |
OCFS2 1.6 |
Users can query the features enabled in the file system as follows: |
[root@node ~]# tunefs.ocfs2 -Q "Label: %V\nFeatures: %H %O\n"
/dev/sdg1 |
Label: apache_files_10 |
Features: sparse inline-data unwritten |
FEATURE VALUES¶
This section lists the hex values that are associated with the file system
features. This information is useful when debugging mount failures that are
due to feature incompatibility. When a user attempts to mount an
OCFS2
volume that has features enabled that are not supported by the running file
system software, it will fail with an error like:
ERROR: couldn't mount because of unsupported optional features (200).
By referring to the table below, it becomes apparent that the user attempted to
mount a volume with the
xattr (extended attributes) feature enabled
with a version of the file system software that did not support it. At this
stage, the user has the option of either upgrading the file system software,
or, disabling that on-disk feature using
tunefs.ocfs2.
Some features allow the file system to be mounted with an older version of the
software provided the mount is read-only. If a user attempts to mount such a
volume in a read-write mode, it will fail with an error like:
ERROR: couldn't mount RDWR because of unsupported optional features (1).
This error indicates that the volume had the
unwritten RO compat feature
enabled. This volume can be mounted by an older file system software only in
the read-only mode. In this case, the user has the option of either mounting
the volume with the
ro mount option, or, disabling that on-disk feature
using
tunefs.ocfs2.
Feature |
Category |
Hex value |
local |
Incompat |
8 |
sparse |
Incompat |
10 |
inline-data |
Incompat |
40 |
extended-slotmap |
Incompat |
100 |
xattr |
Incompat |
200 |
indexed-dirs |
Incompat |
400 |
metaecc |
Incompat |
800 |
refcount |
Incompat |
1000 |
discontig-bg |
Incompat |
2000 |
unwritten |
RO Compat |
1 |
usrquota |
RO Compat |
2 |
grpquota |
RO Compat |
4 |
SEE ALSO¶
debugfs.ocfs2(8) fsck.ocfs2(8) tunefs.ocfs2(8)
mounted.ocfs2(8) ocfs2console(8) o2cb(7)
AUTHORS¶
Oracle Corporation
COPYRIGHT¶
Copyright © 2004, 2010 Oracle. All rights reserved.