]> git.proxmox.com Git - mirror_zfs.git/commit - include/sys/dmu.h
Illumos 3835 zfs need not store 2 copies of all metadata
authorMatthew Ahrens <mahrens@delphix.com>
Fri, 23 May 2014 16:21:07 +0000 (08:21 -0800)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Thu, 31 Jul 2014 16:49:34 +0000 (09:49 -0700)
commitfaf0f58c69607a15e2d1563567afb815842805de
treebd2cfbb4296353792f34d11c09cbd108b7757ed1
parent603cb25ca51ff89366886f9a4ed58f68b6aba2da
Illumos 3835 zfs need not store 2 copies of all metadata

Reviewed by: George Wilson <george.wilson@delphix.com>
Reviewed by: Adam Leventhal <ahl@delphix.com>
Reviewed by: Dan McDonald <danmcd@omniti.com>
Approved by: Richard Lowe <richlowe@richlowe.net>

Description from Matt Ahrens's bug report at Delphix:

    Add a new zfs property, "redundant_metadata" which can have values
    "all" or "most".  The default will be "all", which is the current
    behavior.  Setting to "most" will cause us to only store 1 copy of
    level-1 indirect blocks of user data files.

Additional notes:

    The new man page section for this property states

        "The exact behavior of which metadata blocks
         are stored redundantly may change in future releases."

    and:

        "When set to most, ZFS stores an extra copy of most types of
         metadata. This can improve performance of random writes,
         because less metadata must be written."

    The current implementation is as described above in Matt's blog.
    It is controlled by a new global integer
    "zfs_redundant_metadata_most_ditto_level", currently initialized
    to 2. When "redundant_metadata" is set to "most", only indirect
    blocks of the specified level and higher will have additional ditto
    blocks created.

Ported by: Tim Chase <tim@chase2k.com>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #2542
include/sys/dmu.h
include/sys/dmu_objset.h
include/sys/fs/zfs.h
man/man8/zfs.8
module/zcommon/zfs_prop.c
module/zfs/dmu.c
module/zfs/dmu_objset.c