freebsd-dev/module/zfs
Matthew Ahrens faf0f58c69 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
2014-07-31 09:49:34 -07:00
..
arc.c Illumos 4370, 4371 2014-07-28 14:29:58 -07:00
bplist.c Illumos #3464 2013-09-04 16:01:24 -07:00
bpobj.c Illumos 4171, 4172 2014-07-25 16:40:07 -07:00
bptree.c Illumos 4370, 4371 2014-07-28 14:29:58 -07:00
dbuf_stats.c cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
dbuf.c Illumos #4374 2014-07-30 09:20:35 -07:00
ddt_zap.c cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
ddt.c Illumos #4374 2014-07-30 09:20:35 -07:00
dmu_diff.c Illumos 4368, 4369. 2014-07-29 10:55:29 -07:00
dmu_object.c Illumos 4171, 4172 2014-07-25 16:40:07 -07:00
dmu_objset.c Illumos 3835 zfs need not store 2 copies of all metadata 2014-07-31 09:49:34 -07:00
dmu_send.c Illumos 4368, 4369. 2014-07-29 10:55:29 -07:00
dmu_traverse.c Illumos 4370, 4371 2014-07-28 14:29:58 -07:00
dmu_tx.c Improve reporting of tx assignment wait times 2014-03-04 12:22:24 -08:00
dmu_zfetch.c Use enum type(zfetch_dirn_t) instead 2014-01-23 12:56:33 -08:00
dmu.c Illumos 3835 zfs need not store 2 copies of all metadata 2014-07-31 09:49:34 -07:00
dnode_sync.c Illumos #4374 2014-07-30 09:20:35 -07:00
dnode.c Illumos #4374 2014-07-30 09:20:35 -07:00
dsl_bookmark.c Illumos 4368, 4369. 2014-07-29 10:55:29 -07:00
dsl_dataset.c Illumos 4368, 4369. 2014-07-29 10:55:29 -07:00
dsl_deadlist.c Illumos #3104: eliminate empty bpobjs 2013-01-08 10:35:43 -08:00
dsl_deleg.c cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
dsl_destroy.c Illumos 4368, 4369. 2014-07-29 10:55:29 -07:00
dsl_dir.c Illumos 4171, 4172 2014-07-25 16:40:07 -07:00
dsl_pool.c Illumos 4171, 4172 2014-07-25 16:40:07 -07:00
dsl_prop.c Check the dataset type more rigorously when fetching properties. 2014-05-06 10:41:46 -07:00
dsl_scan.c Illumos 4370, 4371 2014-07-28 14:29:58 -07:00
dsl_synctask.c Export symbols dsl_sync_task{_nowait} 2014-03-07 10:01:36 -08:00
dsl_userhold.c Some nvlist allocations in hold processing need to use KM_PUSHPAGE. 2013-12-02 14:02:46 -08:00
fm.c Add zpool_events_seek() functionality 2014-03-31 16:10:57 -07:00
gzip.c cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
lz4.c Illumos #4936 fix potential overflow in lz4 2014-07-01 14:10:47 -07:00
lzjb.c cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
Makefile.in Illumos 4368, 4369. 2014-07-29 10:55:29 -07:00
metaslab.c Illumos 4754, 4755 2014-07-30 10:30:05 -07:00
range_tree.c Illumos #4374 2014-07-30 09:20:35 -07:00
refcount.c Illumos #3464 2013-09-04 16:01:24 -07:00
rrwlock.c Fix several new KM_SLEEP warnings 2013-09-25 15:44:22 -07:00
sa.c Calculate header size correctly in sa_find_sizes() 2014-05-19 11:55:50 -07:00
sha256.c Add linux sha2 support 2010-08-31 13:41:59 -07:00
spa_boot.c Add linux kernel module support 2010-08-31 13:41:58 -07:00
spa_config.c Implement -t option to zpool import for temporary pool names 2014-03-20 12:05:30 -07:00
spa_errlog.c Illumos #3743 2013-11-04 10:55:25 -08:00
spa_history.c cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
spa_misc.c Illumos 4368, 4369. 2014-07-29 10:55:29 -07:00
spa_stats.c replace nreserved with ndirty in txgs kstat 2014-03-04 12:22:24 -08:00
spa.c Illumos 4370, 4371 2014-07-28 14:29:58 -07:00
space_map.c Illumos #4374 2014-07-30 09:20:35 -07:00
space_reftree.c Illumos #4101, #4102, #4103, #4105, #4106 2014-07-22 09:39:16 -07:00
txg.c Use ddi_time_after and friends to compare time 2014-04-14 13:27:56 -07:00
uberblock.c Illumos #3598 2013-10-31 14:58:04 -07:00
unique.c Switch KM_SLEEP to KM_PUSHPAGE 2012-08-27 12:01:37 -07:00
vdev_cache.c Illumos 4370, 4371 2014-07-28 14:29:58 -07:00
vdev_disk.c Illumos #4374 2014-07-30 09:20:35 -07:00
vdev_file.c Honor zfs_nocacheflush for file vdevs 2014-05-19 13:30:48 -07:00
vdev_label.c Illumos #4101, #4102, #4103, #4105, #4106 2014-07-22 09:39:16 -07:00
vdev_mirror.c Illumos #4045 write throttle & i/o scheduler performance work 2013-12-06 09:32:43 -08:00
vdev_missing.c Illumos #3598 2013-10-31 14:58:04 -07:00
vdev_queue.c cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
vdev_raidz.c Illumos #4045 write throttle & i/o scheduler performance work 2013-12-06 09:32:43 -08:00
vdev_root.c Illumos #3598 2013-10-31 14:58:04 -07:00
vdev.c Illumos #4374 2014-07-30 09:20:35 -07:00
zap_leaf.c Illumos #4374 2014-07-30 09:20:35 -07:00
zap_micro.c Illumos #4374 2014-07-30 09:20:35 -07:00
zap.c Illumos #4374 2014-07-30 09:20:35 -07:00
zfeature_common.c Illumos 4368, 4369. 2014-07-29 10:55:29 -07:00
zfeature.c Illumos 4370, 4371 2014-07-28 14:29:58 -07:00
zfs_acl.c Allow chown/chgrp when no ACL SAs exist. 2014-01-23 11:07:29 -08:00
zfs_byteswap.c Add linux kernel module support 2010-08-31 13:41:58 -07:00
zfs_ctldir.c Illumos 4368, 4369. 2014-07-29 10:55:29 -07:00
zfs_debug.c cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
zfs_dir.c Illumos #4347 ZPL can use dmu_tx_assign(TXG_WAIT) 2013-12-06 09:30:51 -08:00
zfs_fm.c Add automatic hot spare functionality 2014-04-02 13:10:08 -07:00
zfs_fuid.c Illumos #3522 2013-10-30 14:51:27 -07:00
zfs_ioctl.c Illumos 4368, 4369. 2014-07-29 10:55:29 -07:00
zfs_log.c Only commit the ZIL once in zpl_writepages() (msync() case). 2013-11-23 15:08:29 -08:00
zfs_onexit.c Illumos #3598 2013-10-31 14:58:04 -07:00
zfs_replay.c Illumos #3598 2013-10-31 14:58:04 -07:00
zfs_rlock.c cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
zfs_sa.c cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
zfs_vfsops.c Propagate errors when registering "relatime" property callback. 2014-02-12 09:38:28 -08:00
zfs_vnops.c Fix zil_commit() NULL dereference 2014-07-17 15:15:07 -07:00
zfs_znode.c Illumos 4370, 4371 2014-07-28 14:29:58 -07:00
zil.c Illumos 4370, 4371 2014-07-28 14:29:58 -07:00
zio_checksum.c Illumos #3598 2013-10-31 14:58:04 -07:00
zio_compress.c Illumos #3598 2013-10-31 14:58:04 -07:00
zio_inject.c Use ddi_time_after and friends to compare time 2014-04-14 13:27:56 -07:00
zio.c Illumos 4754, 4755 2014-07-30 10:30:05 -07:00
zle.c Update core ZFS code from build 121 to build 141. 2010-05-28 13:45:14 -07:00
zpl_ctldir.c cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
zpl_export.c cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
zpl_file.c Fix zil_commit() NULL dereference 2014-07-17 15:15:07 -07:00
zpl_inode.c cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
zpl_super.c Prune metadata from ghost lists in arc_adjust_meta 2014-02-21 16:10:49 -08:00
zpl_xattr.c Fix zil_commit() NULL dereference 2014-07-17 15:15:07 -07:00
zrlock.c Export ZFS symbols needed by Lustre. 2010-09-17 16:24:15 -07:00
zvol.c Use long holds in zvol_set_volsize() 2014-01-14 14:46:12 -08:00