mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2025-06-27 19:47:36 +03:00

When a volume is created in a pool with raidz vdevs and volblocksize != 128k, the volume can reference more space than is reserved with the automatically calculated refreservation. There are two deficiencies in vol_volsize_to_reservation that contribute to this: 1) Skip blocks may be added to keep each allocation a multiple of parity + 1. This is the dominating factor when volblocksize is close to 2^ashift. 2) raidz deflation for 128 KB blocks is different for most other block sizes. See "The theory of raidz space accounting" comment in libzfs_dataset.c for a full explanation. Authored by: Mike Gerdts <mike.gerdts@joyent.com> Reviewed by: Richard Elling <Richard.Elling@RichardElling.com> Reviewed by: Sanjay Nadkarni <sanjay.nadkarni@nexenta.com> Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com> Reviewed by: Matt Ahrens <matt@delphix.com> Reviewed by: Kody Kantor <kody.kantor@joyent.com> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Approved by: Dan McDonald <danmcd@joyent.com> Ported-by: Mike Gerdts <mike.gerdts@joyent.com> Porting Notes: * ZTS: wait for zvols to exist before writing * ZTS: use log_must_busy with {zpool|zfs} destroy OpenZFS-issue: https://www.illumos.org/issues/9318 OpenZFS-commit: https://github.com/illumos/illumos-gate/commit/b73ccab0 Closes #8973
15 lines
337 B
Makefile
15 lines
337 B
Makefile
pkgdatadir = $(datadir)/@PACKAGE@/zfs-tests/tests/functional/refreserv
|
|
dist_pkgdata_SCRIPTS = \
|
|
setup.ksh \
|
|
cleanup.ksh \
|
|
refreserv_001_pos.ksh \
|
|
refreserv_002_pos.ksh \
|
|
refreserv_003_pos.ksh \
|
|
refreserv_004_pos.ksh \
|
|
refreserv_005_pos.ksh \
|
|
refreserv_multi_raidz.ksh \
|
|
refreserv_raidz.ksh
|
|
|
|
dist_pkgdata_DATA = \
|
|
refreserv.cfg
|