OpenZFS on Linux and FreeBSD
Go to file
Etienne Dechamps ee5fd0bb80 Set zvol discard_granularity to the volblocksize.
Currently, zvols have a discard granularity set to 0, which suggests to
the upper layer that discard requests of arbirarily small size and
alignment can be made efficiently.

In practice however, ZFS does not handle unaligned discard requests
efficiently: indeed, it is unable to free a part of a block. It will
write zeros to the specified range instead, which is both useless and
inefficient (see dnode_free_range).

With this patch, zvol block devices expose volblocksize as their discard
granularity, so the upper layer is aware that it's not supposed to send
discard requests smaller than volblocksize.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #862
2012-08-07 14:55:31 -07:00
cmd Set zvol discard_granularity to the volblocksize. 2012-08-07 14:55:31 -07:00
config Set zvol discard_granularity to the volblocksize. 2012-08-07 14:55:31 -07:00
dracut Set zvol discard_granularity to the volblocksize. 2012-08-07 14:55:31 -07:00
etc Set zvol discard_granularity to the volblocksize. 2012-08-07 14:55:31 -07:00
include Set zvol discard_granularity to the volblocksize. 2012-08-07 14:55:31 -07:00
lib Set zvol discard_granularity to the volblocksize. 2012-08-07 14:55:31 -07:00
man Set zvol discard_granularity to the volblocksize. 2012-08-07 14:55:31 -07:00
module Set zvol discard_granularity to the volblocksize. 2012-08-07 14:55:31 -07:00
patches Adding grub2 mkconfig support patch 2012-07-30 16:17:23 -07:00
scripts Set zvol discard_granularity to the volblocksize. 2012-08-07 14:55:31 -07:00
udev Set zvol discard_granularity to the volblocksize. 2012-08-07 14:55:31 -07:00
.gitignore Ignore unsigned module build products 2010-03-09 14:14:09 -08:00
AUTHORS Add "ashift" property to zpool create 2011-06-17 16:35:49 -07:00
COPYING Relocate COPYING+COPYRIGHT, remove README cruft 2008-12-01 15:34:53 -08:00
COPYRIGHT Update COPYRIGHT to reference zpios CDDL exceptions. 2010-05-18 14:25:28 -07:00
ChangeLog Add build system 2010-08-31 13:41:27 -07:00
DISCLAIMER Update COPYRIGHT and DISCLAIMER. 2010-05-18 10:32:23 -07:00
META ZFS 0.6.0-rc9 2012-06-14 11:46:40 -07:00
Makefile.am Move zfs.release generation to configure step 2012-07-12 12:22:51 -07:00
Makefile.in Set zvol discard_granularity to the volblocksize. 2012-08-07 14:55:31 -07:00
OPENSOLARIS.LICENSE Add CDDL license file 2008-12-01 14:49:34 -08:00
PKGBUILD-zfs-modules.in Add make rule for building Arch Linux packages 2011-12-14 19:14:23 -08:00
PKGBUILD-zfs.in Add make rule for building Arch Linux packages 2011-12-14 19:14:23 -08:00
README.markdown Add script for builtin module building. 2012-07-26 13:45:09 -07:00
ZFS.RELEASE Update to onnv_147 2010-08-26 14:24:34 -07:00
autogen.sh Make autogen.sh executable 2011-07-26 10:15:35 -07:00
configure Set zvol discard_granularity to the volblocksize. 2012-08-07 14:55:31 -07:00
configure.ac Move zfs.release generation to configure step 2012-07-12 12:22:51 -07:00
copy-builtin Add missing dependencies to ./copy-builtin 2012-08-06 11:47:47 -07:00
zfs-modules.spec.in Remove Chaos 4.x RPM support 2012-07-02 15:16:05 -07:00
zfs-script-config.sh.in Unconditionally load core kernel modules 2010-11-11 11:38:25 -08:00
zfs.release.in Move zfs.release generation to configure step 2012-07-12 12:22:51 -07:00
zfs.spec.in Mark zdev.conf as a config file 2012-06-13 13:02:43 -07:00
zfs_config.h.in Set zvol discard_granularity to the volblocksize. 2012-08-07 14:55:31 -07:00

README.markdown

Native ZFS for Linux! ZFS is an advanced file system and volume manager which was originally developed for Solaris. It has been successfully ported to FreeBSD and now there is a functional Linux ZFS kernel port too. The port currently includes a fully functional and stable SPA, DMU, and ZVOL with a ZFS Posix Layer (ZPL) on the way!

$ ./configure
$ make pkg

To copy the kernel code inside your kernel source tree for builtin compilation:

$ ./configure --enable-linux-builtin --with-linux=/usr/src/linux-...
$ ./copy-builtin /usr/src/linux-...

Full documentation for building, configuring, and using ZFS can be found at: http://zfsonlinux.org