OpenZFS on Linux and FreeBSD
Go to file
Alexander Motin 2041d6eecd
Improve scrub maxinflight_bytes math.
Previously, ZFS scaled maxinflight_bytes based on total number of
disks in the pool.  A 3-wide mirror was receiving a queue depth of 3
disks, which it should not, since it reads from all the disks inside.
For wide raidz the situation was slightly better, but still a 3-wide
raidz1 received a depth of 3 disks instead of 2.

The new code counts only unique data disks, i.e. 1 disk for mirrors
and non-parity disks for raidz/draid.  For draid the math is still
imperfect, since vdev_get_nparity() returns number of parity disks
per group, not per vdev, but still some better than it was.

This should slightly reduce scrub influence on payload for some pool
topologies by avoiding excessive queuing.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Ryan Moeller <ryan@iXsystems.com>
Signed-off-by:	Alexander Motin <mav@FreeBSD.org>
Sponsored-By:	iXsystems, Inc.
Closing #12046
2021-05-27 10:11:39 -06:00
.github libzfs: add keylocation=https://, backed by fetch(3) or libcurl 2021-05-12 21:21:35 -07:00
cmd mount.zfs.8: match to reality; zfsprops.8: add missing temporary options 2021-05-26 21:44:56 -07:00
config Bend zpl_set_acl to permit the new userns* parameter 2021-05-27 08:55:49 -07:00
contrib contrib/bash_completion.d: fix obvious shellcheck problems 2021-05-20 08:55:38 -07:00
etc etc/systemd/zfs-mount-generator: output tweaks 2021-05-27 08:49:26 -07:00
include Bend zpl_set_acl to permit the new userns* parameter 2021-05-27 08:55:49 -07:00
lib Reinstate the old zpool read label logic as a fallback 2021-05-26 22:07:31 -07:00
man Improve scrub maxinflight_bytes math. 2021-05-27 10:11:39 -06:00
module Improve scrub maxinflight_bytes math. 2021-05-27 10:11:39 -06:00
rpm Replace ZoL with OpenZFS where applicable 2021-05-07 17:20:37 -07:00
scripts Trim excess shellcheck annotations. Widen to all non-Korn scripts 2021-05-20 08:55:23 -07:00
tests Correct flaws in arc_summary[23] and their test. 2021-05-25 20:02:01 -06:00
udev Centralize variable substitution 2020-07-14 17:33:44 -07:00
.editorconfig Add an .editorconfig; document git whitespace settings 2020-01-27 13:32:52 -08:00
.gitignore Add FreeBSD support to OpenZFS 2020-04-14 11:36:28 -07:00
.gitmodules .gitmodules: link to openzfs github repository 2021-04-12 09:37:23 -07:00
AUTHORS Add zstd support to zfs 2020-08-20 10:30:06 -07:00
CODE_OF_CONDUCT.md Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
COPYRIGHT Fix typos 2020-06-09 21:24:09 -07:00
LICENSE Update build system and packaging 2018-05-29 16:00:33 -07:00
META Update META 2021-03-30 10:50:55 -07:00
Makefile.am etc/systemd/zfs-mount-generator: rewrite in C 2021-05-27 08:45:51 -07:00
NEWS Fix NEWS file 2020-08-26 21:44:41 -07:00
NOTICE Update build system and packaging 2018-05-29 16:00:33 -07:00
README.md Update FreeBSD versions 2021-03-16 15:03:28 -07:00
RELEASES.md Add RELEASES.md file 2021-04-02 16:33:40 -07:00
TEST Remove CI builder customization from TEST 2020-03-16 10:46:03 -07:00
autogen.sh Cause autogen.sh to fail if autoreconf fails 2018-07-06 09:27:37 -07:00
configure.ac zstreamdump: replace with link to zstream 2021-05-21 10:16:14 -07:00
copy-builtin copy-builtin: posix conformance 2021-05-08 08:58:26 -07:00
zfs.release.in Move zfs.release generation to configure step 2012-07-12 12:22:51 -07:00

README.md

img

OpenZFS is an advanced file system and volume manager which was originally developed for Solaris and is now maintained by the OpenZFS community. This repository contains the code for running OpenZFS on Linux and FreeBSD.

codecov coverity

Official Resources

Installation

Full documentation for installing OpenZFS on your favorite operating system can be found at the Getting Started Page.

Contribute & Develop

We have a separate document with contribution guidelines.

We have a Code of Conduct.

Release

OpenZFS is released under a CDDL license. For more details see the NOTICE, LICENSE and COPYRIGHT files; UCRL-CODE-235197

Supported Kernels

  • The META file contains the officially recognized supported Linux kernel versions.
  • Supported FreeBSD versions are any supported branches and releases starting from 12.2-RELEASE.