Skip to content

zfs-2.2.0

Compare
Choose a tag to compare
@behlendorf behlendorf released this 13 Oct 17:13
· 530 commits to zfs-2.2-release since this release
zfs-2.2.0

Supported Platforms

  • Linux: compatible with 3.10 - 6.5 kernels
  • FreeBSD: compatible with releases starting from 12.2-RELEASE

New Features

  • Block cloning (#13392) - Block cloning is a facility that allows a file (or parts of a file) to be "cloned", that is, a shallow copy made where the existing data blocks are referenced rather than copied. Later modifications to the data will cause a copy of the data block to be taken and that copy modified. This facility is used to implement "reflinks" or "file-level copy-on-write". Many common file copying programs, including newer versions of /bin/cp on Linux, will try to create clones automatically.

  • Linux container support (#12209, #14070, #14097, #12263) - Added support for Linux-specific container interfaces such as renameat(2), support for overlayfs, idmapped mounts in a user namespace, and namespace delegation support for containers.

  • Scrub error log (#12812, #12355) - zpool status will report all filesystems, snapshots, and clones affected by a shared corrupt block. zpool scrub -e can be used to scrub only the known damaged blocks in the error log to perform a fast, targeted repair when possible.

  • BLAKE3 checksums (#12918) - BLAKE3 is a modern cryptographic hash algorithm focused on high performance. It is much faster than sha256, sha512, and can be up 3x faster than Edon-R. BLAKE3 is the recommended secure checksum.

  • Corrective "zfs receive" (#9372) - A new type of zfs receive which can be used to heal corrupted data in filesystems, snapshots, and clones when a replica of the data already exists in the form of a backup send stream.

  • Vdev properties (#11711) - Provides observability of individual vdevs in a programmatic way.

  • Vdev and zpool user properties (#11680) - Lets you set custom user properties on vdevs and zpools, similar to the existing zfs dataset user properties.

Performance

  • Fully adaptive ARC (#14359) - A unified ARC which relaxes the artificial limits imposed by both the MRU/MFU distribution and data/metadata distinction. This allows the ARC to better adjust to highly dynamic workloads and minimizes the need for manual workload-dependent tuning.

  • SHA2 checksums (#13741) - Optimized SHA2 checksum implementation to use hardware acceleration when available.

  • Edon-R checksums (#13618) - Reworked the Edon-R variants and optimized the code to make several minor speed ups.

  • ZSTD early abort (#13244) - When using the zstd compression algorithm, data that can not be compressed is detected quickly, avoiding wasted work.

  • Prefetch improvements (#14603, #14516, #14402, #14243, #13452) - Extensive I/O prefetching analysis and optimization.

  • General optimization (#14121, #14123, #14039, #13680, #13613, #13606, #13576, #13553, #12789, #14925, #14948) - Numerous performance improvements throughout.

Additional Information

  • Documentation - OpenZFS documentation for Linux and FreeBSD.

  • Change log - Complete v2.1.0 - v2.2.0 change log

    Thanks to 202 contributors
     git shortlog -s  zfs-2.1.0..zfs-2.2.0
     639  Ahelenia Ziemiańska
       1  Aidan Harris
       5  Akash B
      10  Alan Somers
       1  Alejandro Colomar
       2  Alek Pinchuk
       4  Aleksa Sarai
       8  Alexander Lobakin
     126  Alexander Motin
      22  Allan Jude
       2  Alyssa Ross
      23  Ameer Hamza
       1  Andrea Gelmini
       2  Andrea Righi
       1  Andreas Vögele
       4  Andrew Innes
       1  Andrew Turner
       3  Andrew Walker
       4  Andriy Gapon
       1  Anton Gubarkov
       6  Antonio Russo
       1  Armin Wehrfritz
       3  Arshad Hussain
       1  Arun KV
      22  Attila Fülöp
       1  Benedikt Neuffer
       1  Brandon Thetford
       8  Brian Atkinson
     183  Brian Behlendorf
      16  Brooks Davis
       1  Charles Suh
       3  Chris Lindee
       1  Chris Zubrzycki
      12  Christian Schwarz
       6  Chunwei Chen
       1  Clemens Lang
      26  Coleman Kane
       3  Colm Buckley
       2  D. Ebdrup
      40  Damian Szuberski
       1  Damiano Albani
       1  Daniel Berlin
       1  Daniel Hiepler
       1  Daniel Kolesa
       1  Daniel Reichelt
       1  Daniel Stevenson
       1  David Hedberg
       1  Dimitri John Ledkov
       3  Dimitry Andric
       1  Dmitri John Ledkov
       3  Don Brady
       1  Doug Rabson
       1  Edmund Nadolski
       1  Ethan Coe-Renner
       6  Fedor Uporov
       1  Felix Dörre
       4  Finix Yan
       1  Francesco Mazzoli
      36  George Amanakis
      20  George Melikov
       7  George Wilson
       2  Georgy Yakovlev
       1  Gian-Carlo DeFazio
       4  Gionatan Danti
       1  Glenn Washburn
       1  Gordon Bergling
       1  Graham Perrin
       3  Gregory Bartholomew
       1  Han Gao
       1  Harald van Dijk
       1  Harry Sintonen
       1  Herb Wartens
       2  InsanePrawn
       1  Jason Harmening
       1  Jason King
       1  Jeremy Visser
       4  Jitendra Patidar
       1  John Poduska
       8  John Wren Kennedy
       1  Jonathon Fernyhough
      24  Jorgen Lundman
       1  José Luis Salvador Rufo
       1  Julian Brunner
       6  Justin Gottula
       1  Justin Hibbits
       2  Ka Ho Ng
       3  Kay Pedersen
       1  Kevin Bowling
       4  Kevin Jin
       1  Kristof Provost
       1  Krzysztof Piecuch
       3  Kyle Evans
       1  Laevos
       2  Laura Hild
       1  Laurențiu Nicola
       1  Lauri Tirkkonen
       1  Luís Henriques
       2  Manoj Joseph
       1  Marcel Menzel
       1  Marcin Skarbek
       4  Mariusz Zaborski
      20  Mark Johnston
       1  Mark Maybee
       7  Martin Matuška
       2  Martin Rüegg
      23  Mateusz Guzik
       6  Mateusz Piotrowski
       1  Matt Fiddaman
      12  Matthew Ahrens
       1  Matthew Thode
       1  Matthias Blankertz
       1  Max Zettlmeißl
       1  Michael Franzl
       1  Michal Vasilek
       3  Mike Swanson
       1  Minsoo Choo
       1  Mohamed Tawfik
       1  Nathaniel Wesley Filardo
       1  Neal Gompa (ニール・ゴンパ)
       1  Nick Terrell
       2  Olaf Faaland
       1  Pablo Correa Gómez
       1  Palash Gandhi
      31  Paul Dagnelie
       5  Paul Zuchowski
       1  Pavel Snajdr
      21  Pawel Jakub Dawidek
       2  Peter Levine
       1  Phil Kauffman
       1  Philipp Riederer
       2  Ping Huang
       1  Piotr Kubaj
       2  Piotr P. Stefaniak
       2  Prakash Surya
       1  Rafael Kitover
       1  Reno Reckling
       2  Riccardo Schirone
      83  Rich Ercolani
       1  Richard Laager
     197  Richard Yao
      40  Rob Norris
      11  Rob Wing
       1  Roberto Ricci
       1  Romain Dolbeau
       1  Ryan Hirasaki
       1  Ryan Lahfa
      88  Ryan Moeller
       1  Sam Hathaway
       1  Sam James
       1  Samuel Wycliffe
       1  Samuel Wycliffe J
       1  Satadru Pramanik
       5  Savyasachee Jha
       1  Scott Colby
       1  Sean Eric Fagan
      11  Serapheim Dimitropoulos
       1  Shaan Nobee
       4  Stoiko Ivanov
       1  Stéphane Lesimple
       2  Teodor Spæren
       1  TerraTech
       1  Till Maas
       1  Timothy Day
      37  Tino Reichardt
       2  Tomohiro Kusumi
      25  Tony Hutter
       1  Tony Nguyen
       6  Toomas Soome
       1  Toyam Cox
       1  Trevor Bautista
      16  Umer Saleem
       8  Val Packett
       1  Valmiky Arquissandas
       3  Vince van Oosten
       1  Violet Purcell
       1  Vipin Kumar Verma
       1  Volker Mauel
       2  Václav Skála
       9  WHR
       1  Walter Huf
       1  Will Andrews
       1  Windel Bouwman
       1  Wojciech Małota-Wójcik
       2  Xinliang Liu
       1  Yann Collet
       1  Yanping Gao
      13  Youzhong Yang
       4  Yuri Pankov
       1  Zach Dykstra
       1  Zhu Chuang
       1  buzzingwires
       2  chrisrd
       1  grembo
       1  hedong zhang
       1  hping
       1  illiliti
       1  jokersus
       1  jumbi77
       1  naivekun
       1  ofthesun9
       1  omni
       1  Érico Nogueira
    
  • Module options - The default values for the module options were selected to yield good performance for the majority of workloads and configurations. They should not need to be tuned for most systems but are available for performance analysis and tuning. See the module parameters documentation for the complete list of the options and what they control.

    New module options
    Removed module options
    Modified module options