]> git.proxmox.com Git - mirror_zfs.git/commit - man/man5/zpool-features.5
Illumos 5027 - zfs large block support
authorMatthew Ahrens <mahrens@delphix.com>
Mon, 3 Nov 2014 20:15:08 +0000 (12:15 -0800)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Mon, 11 May 2015 19:23:16 +0000 (12:23 -0700)
commitf1512ee61e2f22186ac16481a09d86112b2d6788
tree6098f841f27955f13d4c2a53b2a4826b5f3bacda
parent3df293404a102398445fc013b67250073db9004e
Illumos 5027 - zfs large block support

5027 zfs large block support
Reviewed by: Alek Pinchuk <pinchuk.alek@gmail.com>
Reviewed by: George Wilson <george.wilson@delphix.com>
Reviewed by: Josef 'Jeff' Sipek <josef.sipek@nexenta.com>
Reviewed by: Richard Elling <richard.elling@richardelling.com>
Reviewed by: Saso Kiselkov <skiselkov.ml@gmail.com>
Reviewed by: Brian Behlendorf <behlendorf1@llnl.gov>
Approved by: Dan McDonald <danmcd@omniti.com>

References:
  https://www.illumos.org/issues/5027
  https://github.com/illumos/illumos-gate/commit/b515258

Porting Notes:

* Included in this patch is a tiny ISP2() cleanup in zio_init() from
Illumos 5255.

* Unlike the upstream Illumos commit this patch does not impose an
arbitrary 128K block size limit on volumes.  Volumes, like filesystems,
are limited by the zfs_max_recordsize=1M module option.

* By default the maximum record size is limited to 1M by the module
option zfs_max_recordsize.  This value may be safely increased up to
16M which is the largest block size supported by the on-disk format.
At the moment, 1M blocks clearly offer a significant performance
improvement but the benefits of going beyond this for the majority
of workloads are less clear.

* The illumos version of this patch increased DMU_MAX_ACCESS to 32M.
This was determined not to be large enough when using 16M blocks
because the zfs_make_xattrdir() function will fail (EFBIG) when
assigning a TX.  This was immediately observed under Linux because
all newly created files must have a security xattr created and
that was failing.  Therefore, we've set DMU_MAX_ACCESS to 64M.

* On 32-bit platforms a hard limit of 1M is set for blocks due
to the limited virtual address space.  We should be able to relax
this one the ABD patches are merged.

Ported-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #354
55 files changed:
cmd/zdb/zdb.c
cmd/zfs/zfs_main.c
cmd/zstreamdump/zstreamdump.c
cmd/ztest/ztest.c
include/libzfs.h
include/libzfs_core.h
include/sys/dmu.h
include/sys/dmu_objset.h
include/sys/dmu_send.h
include/sys/dsl_dataset.h
include/sys/fs/zfs.h
include/sys/spa.h
include/sys/zap_impl.h
include/sys/zfs_ioctl.h
include/sys/zfs_sa.h
include/sys/zfs_znode.h
include/sys/zil.h
include/sys/zil_impl.h
include/zfeature_common.h
lib/libzfs/libzfs_dataset.c
lib/libzfs/libzfs_sendrecv.c
lib/libzfs_core/libzfs_core.c
man/man5/zfs-module-parameters.5
man/man5/zpool-features.5
man/man8/zfs.8
module/zcommon/zfs_prop.c
module/zcommon/zpool_prop.c
module/zfs/arc.c
module/zfs/bpobj.c
module/zfs/bptree.c
module/zfs/dbuf.c
module/zfs/dmu_objset.c
module/zfs/dmu_send.c
module/zfs/dmu_tx.c
module/zfs/dnode.c
module/zfs/dsl_dataset.c
module/zfs/dsl_deadlist.c
module/zfs/dsl_destroy.c
module/zfs/dsl_pool.c
module/zfs/sa.c
module/zfs/spa.c
module/zfs/spa_history.c
module/zfs/spa_misc.c
module/zfs/vdev.c
module/zfs/vdev_disk.c
module/zfs/vdev_queue.c
module/zfs/zap_micro.c
module/zfs/zfeature_common.c
module/zfs/zfs_ioctl.c
module/zfs/zfs_log.c
module/zfs/zfs_vfsops.c
module/zfs/zfs_vnops.c
module/zfs/zfs_znode.c
module/zfs/zil.c
module/zfs/zio.c