zfs

OpenZFS on Linux and FreeBSD

OTHER License

Stars
10.4K
Committers
625

Bot releases are hidden (Show)

zfs - OpenZFS 2.0.1

Published by behlendorf almost 4 years ago

Supported Platforms

  • Linux: compatible with 3.10 - 5.10 kernels
  • FreeBSD: Release 12.2, stable/12, 13.0 (HEAD)

Changes

  • Autoconf 2.70 compatibility #11413 #11419
  • zfs_mount_all_mountpoints: cleanup_all should leave pool root mounted #11417
  • VZ 7 kernel compat: introduce ITER-enabled .direct_IO() via IOVECs #11410 #11411
  • Memory leak in zdb:import_checkpointed_state() #11396
  • Memory leak in ztest_dmu_objset_own() #11396
  • Memory leak in ztest_vdev_attach_detach() #11396
  • nvlist leaked in zpool_find_config() #11396
  • implicit conversion from 'boolean_t' to 'ds_hold_flags_t' #11406
  • Linux 5.11 compat: blk_{un}register_region() #11387 #11390
  • Linux 5.11 compat: revalidate_disk_size() #11387 #11390
  • Linux 5.11 compat: bdev_whole() #11387 #11390
  • Linux 5.11 compat: bio_start_io_acct() / bio_end_io_acct() #11387 #11390
  • Linux 5.11 compat: lookup_bdev() #11387 #11390
  • Linux 5.11 compat: conftest #11387 #11390
  • dbufstat: Fix warnings with Python 3.8 #11394
  • Linux 5.10 compat: META #11391
  • zfs-kmods: install to /lib/modules instead of /usr/lib/modules #11381
  • Dangling reference from dmu_objset_upgrade #11368
  • Linux 4.18.0-257.el8 compat: blk_alloc_queue() #11374
  • Linux 5.10 compat: also zvol_revalidate_disk() #11358
  • Fix maybe uninitialized variable warning #11373
  • Remove iov_iter_advance() from iter_read #11375 #11378
  • Linux 5.10 compat: use iov_iter in uio structure #11351
  • Remove incorrect assertion #11235
  • Reduce confusion in zfs_write #11191
  • Return EFAULT at the end of zfs_write() when set #11193
  • Simplify offset and length limit in zfs_write #11176
  • Const some unchanging variables in zfs_write #11176
  • Remove redundant oid parameter to update_pages #11176
  • Factor uid, gid, and projid out of loop in zfs_write #11176
  • Share zfs_fsync, zfs_read, zfs_write, et al between Linux and FreeBSD #11078
  • ZTS: Simplify zpool_initialize_verify_initialized #11365
  • special device removal space accounting fixes #11329
  • Use the correct return type for getopt #11359
  • DKMS: Disable weak modules #9891 #11128 #11242 #11335
  • lua: avoid gcc -Wreturn-local-addr bug #11337
  • spa: avoid type narrowing warning #11336
  • FreeBSD libzfs: gcc requires __thread after static #11331
  • Fix reporting of CKSUM errors in indirect vdevs #11277
  • arc_summary3: Handle overflowing value width #11270
  • FreeBSD: Implement sysctl for fletcher4 impl #11270
  • Fix kernel panic induced by redacted send #11297
  • FreeBSD: Fix format of vfs.zfs.arc_no_grow_shift #11318
  • FreeBSD: Update usage of py-sysctl #11318
  • Fix possibly uninitialized 'root_inode' variable warning #11306
  • CI: add zloop workflow
  • FreeBSD: Do zcommon_init sooner to avoid FPU panic #11302
  • mount_zfs: print strerror instead of errno for error reporting #11303
  • Drop path prefix workaround #11295
  • Delete rw_semaphore.wait_lock configure check #11309
  • Fix optional "force" arg handing in zfs_ioc_pool_sync() #11281 #11284
  • CI: add new zfs-tests-sanity workflow #11304
  • ZTS: zpool_trim tests throttle trim process #11296
  • Reduce fletcher4 and raidz benchmark times #11282
  • ZTS: adjust zpool_import_012_pos timeout #11286
  • ZTS: Update zfs_share_concurrent_shares.ksh #11283
  • Add sanity.run file #11271
  • Fix trivial typo in zfs-diff.8 #11268 #11272
  • Fix for "Reduce latency effects of non-interactive I/O" #11261
  • Reduce latency effects of non-interactive I/O #11166
  • Add compatibility for busybox mktemp #11269
  • FreeBSD: notify userspace when a vdev is removed #11260
  • Make zpool status "remove:" label print in bold #11255
  • CI: simplify checkstyle runner #11262
  • ZED/zfs-list-cacher.sh: don't exit on ignored event type #11164 #11247
zfs - zfs-0.8.6

Published by tonyhutter almost 4 years ago

This is a tiny release primarily intended to get zfs-0.8-release building again on Centos 8.3 (since we don't provide zfs-2.0.0 RPMs for Centos 8.3 in our main branch yet). It also includes all the patches that were in the zfs-0.8.6-staging branch.

Supported Kernels

  • Compatible with 2.6.32 - 5.9 Linux kernels

Changes

  • Restore ARC MFU/MRU pressure #10548 #10618
  • Linux 5.10 compat: check_disk_change() removed #11085
  • Linux 5.10 compat: frame.h renamed objtool.h #11085
  • blkg_tryget config test: initialize struct #10713 #11049
  • copy-builtin: make sure kernel Makefiles don't look in zfs source tree
  • copy-builtin: don't create sed backup files
  • copy-builtin: remove .gitignore from KERNEL_DIR/include/zfs
  • Increase Supported Linux Kernel to 5.9 (#11057)
  • Bump META Linux-Maximum to kernel 5.8 (#11019)
zfs - OpenZFS 2.0.0

Published by behlendorf almost 4 years ago

Supported Platforms

  • Unified code base and documentation - The ZFS on Linux project has been renamed OpenZFS! Both Linux and FreeBSD are now supported from the same repository making all of the OpenZFS features available on both platforms. #8987

    • Linux: compatible with 3.10 - 5.9 kernels
    • FreeBSD: Release 12.2, stable/12, 13.0 (HEAD)

Major New Features

  • Sequential resilver - The sequential resilver feature can rebuild a failed mirror vdev in a fraction of the time it would take a traditional healing resilver. Full redundancy is restored as quickly as possible and then the pool is automatically scrubbed to verify all of the data checksums. #10349

  • Persistent L2ARC - This feature makes the L2ARC cache device persistent across reboots thereby eliminating the usual cache warmup time normally needed after importing your pool. #9582

  • ZStandard compression - ZStandard is a modern, high performance, general compression algorithm which provides similar or better compression levels to GZIP, but with much better performance. ZStandard provides a large selection of compression levels to allow a storage administrator to select the preferred performance/compression trade-off. #10278

  • Redacted zfs send/receive - Redacted streams allow users to send subsets of their data to a target system. This allows users to save space by not replicating unimportant data within a given dataset or to selectively exclude sensitive information. #7958

Changes to the zpool/zfs Commands

  • zpool replace|attach -s - Perform a sequential resilver when replacing or attaching a new vdev. #10349

  • zfs wait, zpool wait - Wait for long running background operations to complete (resilver, scrub, trim, etc). #9707 #9162

  • zfs redact, zfs send --redact - Generate a redacted send stream. #7958

  • zfs send --saved - Allows a user to send a partially received dataset. #9007

  • zfs jail, zfs unjail - Attaches and detaches ZFS filesystems from FreeBSD jails. #10658

  • zfs rename -u - Renames a filesystem without needing to remount. #10839

  • zfs umount -u - Unloads keys for an encrypted filesystem when it is unmounted. #8952

  • zfs bookmark fs#target fs#newbookmark - Copying an existing bookmark to a new name. #9571

Notable Changes

  • Added fallocate(mode-0/2) compatibility to preallocate space. #10408

  • Reorganized the zfs and zpool man pages by splitting out each subcommand in to its own page. #9559 #9564

  • Enabled the systemd zfs-mount-generator by default on Linux. #7329 #8848

  • More relevant and useful ZED syslog entries #10967 #10861

  • Provided pam module for automatically loading zfs encryption keys for home datasets. #9903

  • Support for inheriting and setting user properties in channel programs. #9738 #9950

  • Improved bootloader support. #10009 #8627 #10937

  • Optionally colorized zpool status output. #9340

Performance

  • Faster clone deletion and background freeing with zfs destroy. #8416 #10000 #10034

  • Faster zfs send / zfs receive performance for small record sizes. #10067 #10099

  • Improved zfs share scalability. #10300 #10688 #10747

  • More efficient ARC and memory management. #9181 #9197 #10496 #10575 #10576 #10600 #10618 #10701

  • Improved write performance for heavily fragmented pools. #8442

  • Optimized AES-GCM encryption performance. #9749 #10029

  • SIMD optimizations. #9517 #9539

Deprecated functionality

  • Deduplicated send streams have been deprecated. The zfs send -D command will now print a warning, ignore the -D flag, and generate a regular (non-deduplicated) send stream. A zfs receive of a deduplicated send stream will print an error message and fail. Legacy deduplicated send streams can be received by first converting them to a non-deduplicated stream with the zstream redup command. #10117 #10156

  • The dedupditto pool property has been deprecated. It may still be set with zpool set dedupditto but won't have any effect. OpenZFS is still compatible with existing pools that have the dedupditto property enabled and can understand dedupditto blocks and free them when appropriate. However, OpenZFS won't write any new dedupditto blocks. #8310

  • The zfs_vdev_scheduler module option can still be set but will have no effect. Linux users who require this functionality should update their systems to set the disk scheduler using a udev rule. #9609

Additional Information

  • Documentation - Updated OpenZFS documentation for Linux and FreeBSD.

  • Change log - Complete v0.8.0 - v2.0.0 change log

  • 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.

zfs - OpenZFS 2.0.0-rc7

Published by behlendorf almost 4 years ago

Supported Platforms:

  • Linux: compatible with 3.10 - 5.9 kernels
  • FreeBSD: Release 12.2, stable/12, 13.0 (HEAD)

Changes

  • Reduce latency effects of non-interactive I/O #11166
  • pam_zfs_key: accommodate different dataset naming scheme #11165
  • FreeBSD: decouple ZFS_DEBUG from kernel debug settings #11213
  • Obsolete earlier packages due to version bump #11230 #11233
  • libzfsbootenv: do not depend on libnvpair #11227
  • Include the ABI with dist tarball #11225
  • Correct missing zil_claim() DTL updates #11218
  • Track SONAME version bump in packaging #11219
  • Enable ABI checks for the checkstyle workflow #11215
  • Add ABI snapshot #11144
  • Library ABI tracking with abigail #11144
  • Fix problems in zvol_set_volmode_impl #11199
  • zpool: correctly align columns with -p #11202
  • zpool(8): fix pool-wi[sd]e typo #11202
  • Fix 'zfs userspace' for received datasets in encrypted root #9501 #9596
  • Fix ASSERT logic in l2arc_evict() #11205
  • config/dracut/90zfs: handle cases where hostid(1) returns all zeros #11174 #11189
  • zgenhostid: accept hostid arguments equal to zero. #11174 #11189
  • Linux: Fix ZFS_ENTER/ZFS_EXIT/ZFS_VERFY_ZP usage #11169 #11201
  • Assertion failure when logging large output of channel program #11194
zfs - OpenZFS 2.0.0-rc6

Published by behlendorf almost 4 years ago

Supported Platforms:

  • Linux: compatible with 3.10 - 5.9 kernels
  • FreeBSD 12.1, 12.2 (release), stable/12, and HEAD (13)

Changes

  • Channel program may spuriously fail with "memory limit exhausted" #11190
  • Linux: Fix mount/unmount when dataset name has a space #11182 #11187
  • Start snapdir_iterate traversals to begin wtih the value of zero #11039
  • G/C data_alloc_arena #11188
  • G/C struct znode -> z_moved #11186
  • Fix compiling on FreeBSD + gcc - don't assume illmnos bits #11068 #11069
  • Fix pointer-is-uint64_t-sized assumption in the ioctl path #11068 #11069
  • Fix memleak in cmd/mount_zfs.c #11098
  • zpoolprops.8: clarify vdev expansion rules #11158
  • initramfs: zfsunlock hook breaks /usr/bin #11162
  • FreeBSD: Simplify zvol_geom_open and zvol_cdev_open #11175
  • FreeBSD: Avoid spurious EINTR in zvol_cdev_open #11175
  • Fix dmu_tx_dirty_throttle after arc_c reduction #11178
  • Fix dnode refcount tracking #11184
  • ZTS: Add L1 corruption test #11141
  • ZTS: Output all block copies in list_file_blocks #11141
  • ZTS: Fix list_file_blocks for mirror vdevs, level > 0 #11141
  • FreeBSD: Prevent a NULL reference in zvol_cdev_open #11152
  • FreeBSD: Prevent NULL pointer dereference of resid #11149
zfs - OpenZFS 2.0.0-rc5

Published by behlendorf almost 4 years ago

Supported Platforms:

  • Linux: compatible with 3.10 - 5.9 kernels
  • FreeBSD 12.1, 12.2 (release), stable/12, and HEAD (13)

Changes

  • Synchronize library ABI levels #11144
  • FreeBSD: zvol_os: Use SET_ERROR more judiciously #11146
  • ZTS: zdb_block_size_histogram increase variance #11148
  • ZTS: Wait on all events in events_001_pos.ksh #11147
  • Linux 5.10 compat: revalidate_disk_size() added #11085
  • Linux 5.10 compat: check_disk_change() removed #11085
  • Linux 5.10 compat: percpu_ref added data member #11085
  • Linux 5.10 compat: frame.h renamed objtool.h #11085
  • Optimize locking checks in mempool allocator #11126
  • Remove duplicate cond_resched() definition #11131
  • zvol_os: Fix handling of zvol private data #11117
  • zvol_os: Don't leak doi in cdev error path #11117
  • zvol_os: Properly ignore error in volmode lookup #11117
  • zvol_os: Code cleanup in zvol_create_minor_impl #11117
  • zvol_os: Keep better track of open count in close #11117
  • zvol_os: Tidy up asserts #11117
  • zstd: track allocator statistics #11129
  • ICP: gcm: Allocate hash subkey table separately #11102
  • Add some missing cfi frame info in aesni-gcm-x86_64.S #11101
  • FreeBSD: catch up with 1300124 version bump #11136
  • FreeBSD: Fix 12.2-STABLE after AT_BENEATH MFC #11139
  • Yield periodically when rebuilding L2ARC #11116
  • Update references to nonexistent man pages in code #11132
  • FreeBSD: Remove BIO_ORDERED flag from BIO_FLUSH #11130
  • ZTS: Fix xattr_004_pos failure, don't use tmpfs #11133
  • Linux: g/c leftover fence in zfs_znode_alloc #11115
  • FreeBSD: g/c unused zfs_znode_move support #11114
  • Use known license string for zlua #11113
  • FreeBSD: Skip RAW kstat sysctls by default #11099
  • FreeBSD: catch up with 1300123 version bump #11104
  • Restore identification of VDEVs using non-native block size #11088
  • Properly format NAME subsection of zfs/zpool subcommands #11086
  • Add missing zfs_arc_evict_batch_limit tunable #11094
  • arcstat: Add -a and -p options from FreeNAS #11090
  • Makefile.bsd: remove directory that no longer exists #11077
  • FreeBSD: delete unreferenced file #11079
  • Fix commitcheck on FreeBSD #11070
  • Update issue templates, commitcheck and Contributing.md #10965
zfs - OpenZFS 2.0.0-rc4

Published by behlendorf almost 4 years ago

Supported Platforms:

  • Linux: compatible with 3.10 - 5.9 kernels
  • FreeBSD 12.1 (release), stable/12, and HEAD (13)

Changes

  • zed syslog entries drop important info #10967
  • FreeBSD: add missing fplookup_vexec handler to special vop vectors #11066
  • FreeBSD: g/c unused vop vector zfsctl_ops_shares_dir #11066
  • Ignore special vdev ashift for spa ashift min/max #9363 #9364 #11053
  • Fix crash caused by invalid snapshot names in redactnvl #11048
  • Fix incorrect deletion order in range_tree_add_impl gap case #11044 #11056
  • FreeBSD: fix panic due to tqid overflow #11059
  • Cross-platform acltype #10520
  • FreeBSD: make adjustments for the standalone environment #10998
  • aarch64: Use proper guards for NEON instructions #11055
  • dmu.h: remove stale declaration dmu_objset_snapshot_tmp #11047
  • FreeBSD: use cache_rename if available #11045
  • blkg_tryget config test: initialize struct #10713 #11049
  • Increase Supported Linux Kernel to 5.9 #11050
  • FreeBSD: Improve libzfs_error_init messages #11033
  • Expose zfetch_max_idistance tunable #11038
  • zil_parse: make callback parameters const #11020
  • Linux: Initialize zp in zfs_setattr_dir #10043 #11025
  • Replace ZFS on Linux references with OpenZFS #11007
  • Fix Linux modules uninstall #11032
  • ZTS: Fix path to /dev/null in nopwrite_recsize #11026
  • Fix ubsan: shift exponent is too large #9744 #11024
  • libzfs_sendrecv: zfs_send: remove unused pipefd and tid variables #11021
  • Make dbufstat work on FreeBSD #11008
  • FreeBSD: Sort and dedup includes in kmod_core #11000
  • docs: update README's installation link #11022
  • zdb should not output binary data on terminal #11006
  • FreeBSD: Sort out kernel FPU headers for 12.1-REL #11005
  • Fix EIO after resuming receive of new dataset over an existing one #10995 #10999
  • Throw const on some strings #10997
  • Mismatched nvlist names in zfs_keys_send_space #10978
zfs - zfs-0.8.5

Published by tonyhutter about 4 years ago

Supported Kernels

  • Compatible with 2.6.32 - 5.9 Linux kernels

Changes

  • Fix buggy procfs_list_seq_next warning #10984 #10996
  • Fix CONFIG_DEBUG_LOCK_ALLOC configure check #10991
  • Fix objtool configure check #10990
  • Fix PREEMPTION=y and BLK_CGROUP=y config on arm64 #8545 #9948 #10416 #10973
  • Update zts-report.py with additional tests
  • Fix another dependency loop #10356 #10388
  • Fix a dependency loop #10388
  • Verify zfs module loaded before starting services #10663
  • Verify zfs module loaded before starting services #10627
  • Mark lua setjmp/longjmp for powerpc weak #10795
  • Make unloading the key more robust #10477
  • BindsTo dataset keyload unit to mount associate unit #10477
  • Ensure mount unit pilots when its ZFS key is loaded #10477
  • Resilver restarts unnecessarily when it encounters errors #10291
  • ZED: Do not offline a missing device if no spare is available #10577 #10730
  • ZTS: Improve zts-auto_offline_001_pos #9827
  • Fix inability to destroy snapshot used over NFS #6000 #10783
  • Export dmu_offset_next() symbol #10796
  • Fix lua stack overflow on recursive call to gsub() #10611 #10613
  • Use boot_ncpus in place of max_ncpus in taskq_create #10282
  • Initialize mmp_last_write when the mmp thread starts (#10912) #10873
  • Appease GCC sprintf warnings found on Fedora 32/GCC 10.0.1 #10712 #10766
  • Switch off -Wmissing-prototypes for libgcc math functions #10470
  • Fix gcc10.1 truncation error #10433
  • Linux 5.9 compat: NR_SLAB_RECLAIMABLE (#10865) #10834
  • Linux 5.7 compat: Include linux/sched.h in spl/sys/mutex.h #10741
  • Linux 5.9 compat: make_request_fn replaced with submit_bio interface #10696
  • Linux 5.9 compat: Update NR_SLAB_RECLAIMABLE to NR_SLAB_RECLAIMABLE_B #10696
  • Linux 5.9 compat: add linux/blkdev.h include https://github.com/openzfs/zfs/commit/222e0ea399cbb6d5748e12a09610d8f1b37f16a0
  • lib/libzfs, rpm: Install pkgconfig files in the correct directory (#10628)
  • Linux 5.8 compat: __vmalloc() #10422
  • Replace sprintf()->snprintf() and strcpy()->strlcpy() https://github.com/openzfs/zfs/commit/c9e319faae9677aa0dddfbf9973b9e8fc3feb06c
  • Fix gcc 10.1 stringop-truncation error #10346
  • RPM: Remove old versions of DKMS on upgrade #10327
  • Add longjmp support for Thumb-2 #7408 #9957 #9967
zfs - OpenZFS 2.0.0-rc3

Published by behlendorf about 4 years ago

Supported Platforms:

  • Linux: compatible with 3.10 - 5.8 kernels
  • FreeBSD 12.1 (release), stable/12, and HEAD (13)

Changes

  • Fix buggy procfs_list_seq_next warning #10984 #10996
  • FreeBSD: Fix legacy compat for platform IOCs #10994
  • Eliminate gratuitous bzeroing in dbuf_stats_hash_table_data #10993
  • do a cyclic seek for unused memory objects in pool #10938 #10969
  • Drop references when skipping dmu_send due to EXDEV #10919
  • Add intel_QAT patches #10961 #10962
  • Use known license string for zzstd #10982 #10992
  • Fix CONFIG_DEBUG_LOCK_ALLOC configure check #10991
  • Fix objtool configure check #10990
  • Note that keys must be loaded for 'zpool remove' #10939 #10948
  • Document branching structure #10976
  • zfs userspace: use zfs_path_to_zhandle so argument can be a path #8915
  • Add DB_RF_NOPREFETCH to dbuf_read()s in dnode.c #10877 #10953
  • Fix PREEMPTION=y and BLK_CGROUP=y config on arm64 #8545 #9948 #10416 #10973
  • FreeBSD: update cache_purgevfs usage after 1300117 version bump #10970
  • FreeBSD: Code cleanup in zio_crypt #10884
  • Prune dead branch reported by Coverity #10884
  • zpool command complains about /etc/exports.d #10785 #10934
  • zfs_log_write: simplify data copying code for WR_COPIED records #10956
  • FreeBSD: Add support for procfs_list #10890
  • FreeBSD: Don't save user FPU context in kernel threads #10899
  • Don't set numobjs to UINT64_MAX or near it #10911 #10916
  • contrib/initramfs: fix shellcheck and checkbashisms errors with shebang #10908
  • Fix a logic bug in the FreeBSD getpages VOP #10519 #10960
  • FreeBSD: Reduce stack usage of Lua #10959
  • Annontate FreeBSD sysctls with CTLFLAG_MPSAFE #10836
  • Fix switch statement indentation in the FreeBSD kstat code #10950
zfs - OpenZFS 2.0.0-rc2

Published by behlendorf about 4 years ago

Supported Platforms:

  • Linux: compatible with 3.10 - 5.8 kernels
  • FreeBSD 12.1 (release), stable/12, and HEAD (13)

Changes

  • vdev_ashift should only be set once #10932
  • libzfs: Don't leak buf if nvlist is too large #10882
  • pool may become suspended during device expansion #10897
  • zdb leak detection fails with in-progress device removal #10920
  • FreeBSD: Do not copy vp into f_data for DTYPE_VNODE files #10929
  • Need a long hold in zpl_mount_impl #10936
  • libzfsbootenv: lzbe_nvlist_set needs to store bootenv version VB_NVLIST #10937
  • Rename acltype=posixacl to acltype=posix #10918
  • cmd/zgenhostid: replace with simple c implementation #10887 #10925
  • Fix stack frame size: dnode_dirty_l1range() #10879
  • dmu_redact_snap: fix possible memleak #10879
  • Fix stack frame size: dmu_redact_snap() #10879
  • Fix stack frame size: spa_livelist_delete_cb() #10879
  • zpoolprops.8: fix raidz par[i]ty typo #10923
  • zfs label bootenv should store data as nvlist #10774
  • Linux: Prevent destruction while showing mount devname #10892 #10927
  • config/zfs-build.m4: never define _initramfs in RPM_DEFINE_UTIL #10898
  • libzutil depends on libnvpair #10915
  • FreeBSD: convert teardown inactive lock to a read-mostly sleepable lock #10896
  • Force the use of '.' as decimal separator. #10878
  • Initialize mmp_last_write when the mmp thread starts #10873
  • FreeBSD: drop dependency on cryptodev module #10901
  • Introduce ZFS module parameter l2arc_mfuonly #10710
  • Avoid possibility of division by zero #10894
  • dnode_special_open() error: unchecked function return 'zrl_tryenter' #10876
  • Add a missing option prefix - in zfs-tests.sh usage() #10893
  • Display pbkdf2iters property as plain number #10871
  • libshare: Add missing headers for nfs.c #10880
  • FreeBSD: reduce priority of ZIO_TASKQ_ISSUE writes by a larger value #10872
  • Spruce up pkg-config files for libzfs/libzfs_core #10869
  • man: Cross-reference zfs-load-key(8) for ENCRYPTION mention #10866
  • man: Add zfs rename -r to zfs-rename(8) SYNOPSIS #10866
  • Sequential scrub and resilver updated comments
  • Avoid posting duplicate zpool events #10861
  • nowait synctask must succeed #10855
  • Retain thread name when resuming a zthr #10881
  • Fixes for running FreeBSD buildworld on Linux/macOS hosts #10863
  • Replace cv_{timed}wait_sig with cv_{timed}wait_idle where appropriate #10843
  • Links in Source Files #10859
  • zvol: unsigned off can not be less than zero #10867
  • Fix -Werror,-Wmacro-redefined in limits.h #10864
  • Make spa_stats.c tunables visible on FreeBSD #10858
  • FreeBSD: Fix up after spa_stats.c move #10860
  • Add 'zfs rename -u' to rename without remounting #10839
  • FreeBSD: Remove unused SECLABEL code #10847
  • libspl: Provide platform-specific zone implementations #10851
  • FreeBSD: Simplify INGLOBALZONE #10851
  • FreeBSD: Define crgetzoneid appropriately #10851
  • zio_ereport_post() and zio_ereport_start() return values are ignored #10857
  • Typo Correction #10850
  • Move spa_stats.c to common code #10842
  • FreeBSD: Fix spurious failure in zvol_geom_open #10841
  • FreeBSD: add support for KSTAT_TYPE_RAW #10836
  • Linux 5.9 compat: NR_SLAB_RECLAIMABLE #10834
  • Fix another dependency loop #10356 #10388
  • Fix a dependency loop #10388
  • config/zfs-build.m4: add --with-vendor flag #10385
  • Fix definition of BLKGETSIZE64 on FreeBSD #10818
  • module/zstd: pass -U__BMI__ #10758 #10829
  • Add the Xr's to the SEE ALSO as well #10589
  • dnode_sync is careless with range tree #10708 #10823
  • Fix NEWS file #10824
  • zpool: Change base URL for ZFS messages to openzfs-docs #10820
  • Remove duplicate dnode.h include #10816 #10819
  • Always track temporary fses and snapshots for accounting #10791
  • Remove pragma ident lines #10810
  • FreeBSD: disable neon usage #10809
  • Introduce limit on size of L2ARC headers #10765
zfs - OpenZFS 2.0.0-rc1

Published by behlendorf about 4 years ago

Supported Platforms:

  • Linux: compatible with 3.10 - 5.8 kernels
  • FreeBSD 12.1 (release), stable/12, and HEAD (13)

New Features

  • Unified code base for Linux and FreeBSD
  • Redacted zfs send/recv #7958
  • Persistent L2ARC #9582
  • Sequential resilvering #10349
  • zstd compression #10278
  • Log spacemaps #8442
  • Fast clone deletion #8416
  • Sectional zfs/zpool man pages #9559
  • Added zpool wait subcommand #9162
  • Improved zfs share scalability #10300
  • Allow zpool split after removing a mirror #10283
zfs - zfs-0.8.4

Published by tonyhutter over 4 years ago

Supported Kernels

  • Compatible with 2.6.32 - 5.6 Linux kernels

Changes

  • Add missing zfs_refcount_destroy() in key_mapping_rele() #10246
  • Linux 5.7 compat: blk_alloc_queue() #10181 #10187
  • Prefix struct rangelock #9534
  • Fix icp include directories for in-tree build #10021
  • ICP: gcm-avx: Support architectures lacking the MOVBE instruction #10029
  • ICP: Improve AES-GCM performance #9749
  • Bugfix/fix uio partial copies #8673 #10148
  • Prevent deadlock in arc_read in Linux memory reclaim callback #9987
  • Fix infinite scan on a pool with only special allocations #10106 #8694
  • Static symbols exported by ICP #9791
  • Linux 5.6 compat: struct proc_ops #9961
  • Linux 5.6 compat: timestamp_truncate() #9956 #9961
  • Linux 5.6 compat: ktime_get_raw_ts64() #10052 #10064
  • Linux 5.6 compat: time_t #10052 #10064
  • Fix static data to link with -fno-common #9943
  • zfs_get: change time format string from %k to %H #10090 #10153
  • Deprecate deduplicated send streams #7887 #10117
  • Fix zfs-functions packaging bug
  • initramfs: Eliminate substitutions
  • Delete built init scripts in make clean
  • Restore :: in Makefile.am #9210
  • Make init scripts depend on Makefile
  • Systemd mount generator: don't fail keyload from file if already loaded #10103
  • Systemd mount generator: Generate noauto units; add control properties #9649
  • Systemd mount generator: Silence shellcheck warnings #9649
  • Fix CONFIG_MODULES=no Linux kernel config #9887 #10063
  • Linux 5.5 compat: blkg_tryget() #9745 #10072
  • zfs-mount-generator: Fix escaping for / #9970
  • Missed wakeup when growing kmem cache #9989
  • Order zfs-import-*.service after multipathd #9863
  • Avoid here-documents in systemd mount generator #9802
zfs - zfs-0.8.3

Published by tonyhutter over 4 years ago

Supported Kernels

  • Compatible with 2.6.32 - 5.4 Linux kernels

Changes

  • Fix zfs-0.8.3 "qat.h"
  • ZTS: Fixes for spurious failures of resilver_restart_001 test #9677 #9703
  • Prevent unnecessary resilver restarts #9155 #9378 #9551 #9588
  • Fix QAT allocation failure return value #9784 #9788
  • Fix zfs-0.8.3 zfs_receive_raw test case
  • Fix zfs-0.8.3 'make lint' warnings
  • ZTS: Cleanup partition tables #9806
  • zdb: print block checksums with 6 d's of verbosity
  • zfs-load-key.sh: ${ZFS} is not the zfs binary #9780
  • ZTS: Fix pool_state cleanup #9777
  • ZTS: Replace /var/tmp with $TEST_BASE_DIR #9775
  • ZTS: zfs_program_json #9774
  • ZTS: devices_001_pos and devices_002_neg #9773
  • Avoid some crashes when importing a pool with corrupt metadata #9022
  • In initramfs, do not prompt if keylocation is "file://" #9764
  • libspl: declare aok extern in header #9752
  • Cancel initialize and TRIM before vdev_metaslab_fini() #8602 #9751
  • ZTS: Test case failures #9769
  • Update maximum kernel version to 5.4 #9754 #9759
  • ZTS: Various test case fixes #9748
  • Fix for ARC sysctls ignored at runtime
  • cppcheck: (warning) Possible null pointer dereference: nvh #9732
  • cppcheck: (error) Address of local auto-variable assigned #9732
  • cppcheck: (error) Null pointer dereference: who_perm #9732
  • cppcheck: (warning) Possible null pointer dereference: dnp #9732
  • cppcheck: (error) Memory leak: vtoc #9732
  • cppcheck: (error) Shifting signed 64-bit value by 63 bits #9732
  • cppcheck: (error) Uninitialized variable #9732
  • cppcheck: (error) Uninitialized variable #9732
  • Exchanged two "${ZFS} get -H -o value" commands #9736
  • Create symbolic links in /dev/disk/by-vdev for nvme disk devices #9730
  • Force systems with kernel option "quiet" to display prompt for password #9731
  • initramfs: setup keymapping and video for prompts #9723
  • Don't fail to apply umask for O_TMPFILE files #8997 #8998
  • Allow empty ds_props_obj to be destroyed #9704
  • Fix use-after-free of vd_path in spa_vdev_remove() #9706
  • zio_decompress_data always ASSERTs successful decompression #9612 #9630
  • Exclude data from cores unconditionally and metadata conditionally #9691
  • ZTS: Fix zpool_reopen_001_pos #9680
  • Set send_realloc_files.ksh to use properties.shlib #9679
  • Fix reporting of L2ARC hits/misses in arc_summary3 #9669
  • Fix zdb_read_block using zio after it is destroyed #9644 #9657
  • Fix use-after-free in case of L2ARC prefetch failure #9648
  • Increase allowed 'special_small_blocks' maximum value #9131 #9355
  • Adapt gitignore for modules #9656
  • Fix encryption logic in systemd mount generator #9611
  • Fix non-absolute path in systemd mount generator #9611
  • Fix small typo in systemd mount generator #9611
  • Implement -A (ignore ASSERTs) for zdb #9610
  • Remove zfs_vdev_elevator module option #9417 #9609
  • Add display of checksums to zdb -R #9607
  • Check for unlinked znodes after igrab() #9602
  • ZTS: tst.terminate_by_signal increase test threshold #9601
  • ZTS: Casenorm fix unicode interpretation #8812
  • Remove requirement for -d 1 for zfs list and zfs get with bookmarks #9589
  • Break out of zfs_zget early if unlinked znode #9583
  • Remove inappropiate error message suggesting to use '-r' #9574
  • Change zed.service to zfs-zed.service in man page #9581
  • Prevent NULL pointer dereference in blkg_tryget() on EL8 kernels #9546 #9577
  • Add missing documentation for some KMC flags #9034
  • Fix zpool create -o <property> error message #9550 #9568
  • Improve logging of 128KB writes #9409
  • Skip loading already loaded key #9495 #9529
  • Add a notice in /etc/defaults/zfs for systemd users #9544
  • Include prototypes for vdev_initialize #9535
  • dracut/zfs-load-key.sh: properly remove prefixes #9520
  • Fix contrib/zcp/Makefile.am #9527
  • Fix 'zfs change-key' with unencrypted child #9524
  • Fix zpool history unbounded memory usage #9516
  • Fix incremental recursive encrypted receive #9494
  • ZTS: Consistency pass for .ksh extensions #9502
  • Use correct format string when printing int8 #9486
  • ZTS: Written props test fails with 4k disks #9477
  • Name anonymous enum of KMC_BIT constants #9478
  • Update skc_obj_alloc for spl kmem caches that are backed by Linux #9474
  • Modify sharenfs=on default behavior #9397 #9425
  • ZTS: Fix zpool_status_-s #9451
  • Implement ZPOOL_IMPORT_UDEV_TIMEOUT_MS #9436
  • Clarify loop variable name in zfs copies test #9445
  • Fix some style nits in tests #9447
  • Fix pool creation with feature@allocation_classes disabled #9427 #9429
  • Update zfs program command usage #9056 #9428
  • ZTS: Fix mmp_hostid test #9349
  • module/Makefile.in: don't run xargs if empty #9418
  • ZTS: Fix trim/trim_config and trim/autotrim_config #9399
  • Fix automount for root filesystems #9381 #9384
  • Rename rangelock_ functions to zfs_rangelock_ #9402
  • ZTS: Fix upgrade_readonly_pool #9400
  • Workaround to avoid a race when /var/lib is a persistent dataset #9360
  • Fix for zfs-dracut regression #8913 #9379
  • Perform KABI checks in parallel #8547 #9132 #9341
  • SIMD: Use alloc_pages_node to force alignment #9608 #9674
  • Linux 5.0 compat: SIMD compatibility
  • ZTS: harden xattr/cleanup.ksh #9358
  • Add warning for zfs_vdev_elevator option removal #9317
  • diff_cb() does not handle large dnodes #7678 #8931 #9343
  • Use signed types to prevent subtraction overflow #9355
  • Refactor libzfs_error_init newlines #9330
  • Device removal of indirect vdev panics the kernel #9327
  • ZTS: Fix /usr/bin/env: 'python2': No such file or directory #9325
  • Fix clone handling with encryption roots #9267 #9294
  • Canonicalize Python shebangs #9314
  • Fix stalled txg with repeated noop scans #9300
  • ZTS: Introduce targeted corruption in file blocks #9288
  • Clean up do_vol_test in zfs_copies tests #9286
  • Fix noop receive of raw send stream #9221 #9173
  • Clean up zfs_clone_010_pos #9284
  • Refactor checksum operations in tests #9280
  • Use the right booleans #9264
  • Fix panic on DilOS with kstat per dataset statistics #9254 #9151
  • ZTS: Fix removal_cancel.ksh #9259
  • maxinflight can overflow in spa_load_verify_cb() #9272
  • Fix typos #9251
  • Fix typos in tests/ #9250
  • Fix typos in tests/ #9249
  • Fix typos in tests/ #9247
  • Fix typos in tests/ #9246
  • Fix typos in tests/ #9244
  • Fix typos in tests/ #9243
  • Fix typos in tests/ #9242
  • Fix typos in module/zfs/ #9240
  • Fix typos in lib/ #9237
  • Fix typos in tests/ #9248
  • Fix typos in tests/
  • Fix typos in module/ #9241
  • Fix typos in modules/icp/ #9239
  • Fix typos in include/ #9238
  • Fix typos in etc/ #9236
  • Fix typos in contrib/ #9235
  • Fix typos in cmd/ #9234
  • Fix typos in man/ #9233
  • Fix typos in config/ #9232
  • Fix refquota_007_neg.ksh #9257
  • Prevent metaslab_sync panic due to spa_final_dirty_txg #9185 #9186 #9231 #9253
  • Simplify deleting partitions in libtest #9224
  • Use compatible arg order in tests #9228
  • Use smaller default slack/delta value for schedule_hrtimeout_range() #9217
  • Prefer for (;;) to while (TRUE) #9219
  • Add regression test for "zpool list -p" #9134
  • Split argument list, satisfy shellcheck SC2086 #9212
  • ZTS: Fix in-tree dbufstats test case #9118 #9196
  • Fix install error introduced by #9089
  • Document ZFS_DKMS_ENABLE_DEBUGINFO in userland configuration #9191
  • Dedup IOC enum values in libzfs_input_check #9188
  • Enhance ioctl number checks #9187
  • ZTS: Fix vdev_zaps_005_pos on CentOS 6 #9199
  • Minor cleanup in Makefile.am #9189
  • zfs-functions.in: in_mtab() always returns 1 #9168
  • Fix lockdep circular locking false positive involving sa_lock #9110
  • Set "none" scheduler if available (initramfs) #9042
  • Add more refquota tests #9139
  • initramfs: fixes for (debian) initramfs #7904 #9089
  • dmu_tx_wait() hang likely due to cv_signal() in dsl_pool_dirty_delta() #9137
  • Improve write performance by using dmu_read_by_dnode() #9156
  • Assert that a dnode's bonuslen never exceeds its recorded size #8348
  • Make txg_wait_synced conditional in zfsvfs_teardown #9115
  • Prevent race in blkptr_verify against device removal #9112
  • Fix device expansion when VM is powered off #9111
  • spa_load_verify() may consume too much memory #9146
  • Change boolean-like uint8_t fields in znode_t to boolean_t #9092
  • Drop KMC_NOEMERGENCY #9119
  • Don't wakeup unnecessarily in 'zpool events -f' #9091
  • Test cancelling a removal in ZTS #9101
  • lockdep false positive - move txg_kick() outside of ->dp_lock #9094
  • Add channel program for property based snapshots #8443 #9050
  • install path fixes #9087
  • Don't activate metaslabs with weight 0 #8968
  • OpenZFS 9318 - vol_volsize_to_reservation does not account for raidz skip blocks #8973
  • Concurrent small allocation defeats large allocation #8843
  • Fix bp_embedded_type enum definition #8951
  • OpenZFS 9425 - channel programs can be interrupted #8904
  • looping in metaslab_block_picker impacts performance on fragmented pools #8877
  • single-chunk scatter ABDs can be treated as linear #8580
  • make zil max block size tunable #8865
zfs - zfs-0.8.2

Published by tonyhutter about 5 years ago

Supported Kernels

  • Compatible with 2.6.32 - 5.4 Linux kernels

Changes

  • Disabled resilver_defer feature leads to looping resilvers #9299 #9338
  • Fix dsl_scan_ds_clone_swapped logic #9140 #9163
  • Scrubbing root pools may deadlock on kernels without elevator_change() (#9321) #9321
  • QAT related bug fixes #9276 #9303
  • kmodtool: depmod path #8724 #9310
  • Fix /etc/hostid on root pool deadlock #9256 #9285
  • BuildRequires libtirpc-devel needed for RHEL 8 #9289
  • Fix zpool subcommands error message with some unsupported options #9270
  • Fix zfs-dkms .deb package warning in prerm script #9271
  • zvol_wait script should ignore partially received zvols #9260
  • New service that waits on zvol links to be created #8975
  • Always refuse receving non-resume stream when resume state exists #9252
  • Fix Intel QAT / ZFS compatibility on v4.7.1+ kernels #9268 #9269
  • etc/init.d/zfs-functions.in: remove arch warning
  • zfs_handle used after being closed/freed in change_one callback #9165
  • Fix zil replay panic when TX_REMOVE followed by TX_CREATE #7151 #8910 #9123 #9145
  • zfs_ioc_snapshot: check user-prop permissions on snapshotted datasets #9179 #9180
  • Fix Plymouth passphrase prompt in initramfs script #9202
  • Fix deadlock in 'zfs rollback' #9203
  • Make slog test setup more robust #9194
  • zfs-mount-genrator: dependencies should be space-separated #9174
  • Linux 5.3: Fix switch() fall though compiler errors #9170
  • Linux 5.3 compat: Makefile subdir-m no longer supported #9169
  • Fix out-of-order ZIL txtype lost on hardlinked files #8769 #9061
  • Increase default zcmd allocation to 256K #9084
  • Improve performance by using dmu_tx_hold_*_by_dnode() #9081
  • Fix channel programs on s390x #8992 #9080
  • Race between zfs-share and zfs-mount services #9083
  • Implement secpolicy_vnode_setid_retain() #9035 #9043
  • zed crashes when devid not present #9054 #9060
  • Don't directly cast unsigned long to void* #9065
  • Fix module_param() type for zfs_read_chunk_size #9051
  • Move some tests to cli_user/zpool_status #9057
  • Race condition between spa async threads and export #9015 #9044
  • hdr_recl calls zthr_wakeup() on destroyed zthr #9047
  • Fix wrong comment on zcr_blksz_{min,max} #9052
  • Retire unused spl_{mutex,rwlock}_{init_fini} #9029
  • Linux 5.3 compat: retire rw_tryupgrade() #9029
  • Linux 5.3 compat: rw_semaphore owner #9029
  • Fix lockdep recursive locking false positive in dbuf_destroy #8984
  • Add missing __GFP_HIGHMEM flag to vmalloc #9031
  • Use zfsctl_snapshot_hold() wrapper #9039
  • Minor style cleanup #9030
  • Fix get_special_prop() build failure #9020
  • systemd encryption key support #8750 #8848
  • Drop redundant POSIX ACL check in zpl_init_acl() #9009
  • Export dnode symbols #9027
  • Ensure dsl_destroy_head() decrypts objsets #9021
  • Disable unused pathname::pn_path* (unneeded in Linux) #9025
  • Fixes: #8934 Large kmem_alloc #8934 #9011
  • Fix ZTS killed processes detection #9003
  • pkg-utils python sitelib for SLES15 #8969
  • Fix race in parallel mount's thread dispatching algorithm #8450 #8833 #8878
  • Fix dracut Debian/Ubuntu packaging #8990 #8991
  • Remove VERIFY from dsl_dataset_crypt_stats() #8976
  • Improve "Unable to automount" error message. #8959
  • Check b_freeze_cksum under ZFS_DEBUG_MODIFY conditional #8979
  • Fix error text for EINVAL in zfs_receive_one() #8977
  • Don't use d_path() for automount mount point for chroot'd process #8903 #8966
  • nopwrites on dmu_sync-ed blocks can result in a panic #8957
  • Avoid extra taskq_dispatch() calls by DMU #8909
  • -Y option for zdb is valid #8926
  • Fix error message on promoting encrypted dataset #8905 #8935
  • Fix out-of-tree build failures #8921 #8943
  • dn_struct_rwlock can not be held in dmu_tx_try_assign() #8929
  • Remove arch and relax version dependency #8914
  • Add libnvpair to libzfs pkg-config #8919
  • Let zfs mount all tolerate in-progress mounts #8881
  • zstreamdump: add per-record-type counters and an overhead counter #8432
  • Fix comments on zfs_bookmark_phys #8945
  • Add SCSI_PASSTHROUGH to zvols to enable UNMAP support #8933
  • Prevent pointer to an out-of-scope local variable #8924 #8940
  • dedup=verify doesn't clear the blkptr's dedup flag #8936
  • Update vdev_ops_t from illumos #8925
  • Allow unencrypted children of encrypted datasets #8737 #8870
  • Replace whereis with type in zfs-lib.sh #8920 #8938
  • Use ZFS_DEV macro instead of literals #8912
  • Fix memory leak in check_disk() #8897 #8911
  • kmod-zfs-devel rpm should provide kmod-spl-devel #8930
  • ZTS: Fix mmp_interval failure #8906
  • Minimize aggsum_compare(&arc_size, arc_c) calls. #8901
  • Python config cleanup #8895
  • lz4_decompress_abd declared but not defined #8894
  • panic in removal_remap test on 4K devices #8893
  • compress metadata in later sync passes #8892
  • Move write aggregation memory copy out of vq_lock #8890
  • Restrict filesystem creation if name referred either '.' or '..' #8842 #8564
  • ztest: dmu_tx_assign() gets ENOSPC in spa_vdev_remove_thread() #8889
  • Fix lockdep warning on insmod #8868 #8884
  • fat zap should prefetch when iterating #8862
  • Target ARC size can get reduced to arc_c_min #8864
  • Fix typo in vdev_raidz_math.c #8875 #8880
  • Improve ZTS block_device_wait debugging #8839
  • Block_device_wait does not return an error code #8839
  • Remove redundant redundant remove #8839
  • Fix logic error in setpartition function #8839
  • Allow metaslab to be unloaded even when not freed from #8837
  • Avoid updating zfs_gitrev.h when rev is unchanged #8860
  • l2arc_apply_transforms: Fix typo in comment #8822
  • Reduced IOPS when all vdevs are in the zfs_mg_fragmentation_threshold #8859
  • Drop objid argument in zfs_znode_alloc() (sync with OpenZFS) #8841
  • Remove vn_set_fs_pwd()/vn_set_pwd() (no need to be at / during insmod) #8826
  • grammar: it is / plural agreement #8818
  • Refactor parent dataset handling in libzfs zfs_rename() #8815
  • Update comments to match code #8759
  • Update descriptions for vnops #8767
  • Drop local definition of MOUNT_BUSY #8765
  • kernel timer API rework #8647
zfs - zfs-0.8.1

Published by tonyhutter over 5 years ago

Supported Kernels

  • Compatible with 2.6.32 - 5.1 Linux kernels.

Changes

  • Fix comparison signedness in arc_is_overflowing() #8873
  • Fix incorrect error message for raw receive #8863
  • arc_summary: prefer python3 version and install when there is no python #8851
  • Fix %post and %postun generation in kmodtool #8866
  • Reinstate raw receive check when truncating #8852 #8857
  • If $ZFS_BOOTFS contains guid, replace the guid portion with $pool #8356
  • Fix integer overflow of ZTOI(zp)->i_generation #8858
  • hkdf_test binary should only have one icp instance #8850
  • Fixed a small typo in man/man1/raidz_test.1 #8855
  • Allow TRIM_UNUSED_KSYM when build as a builtin-module #8820
  • Make Python detection optional and more portable #8809 #8731
  • Wait in 'S' state when send/recv pipe is blocking #8733 #8752
  • Make zfs_async_block_max_blocks handle zero correctly #8829 #8289
  • Revert "Report holes when there are only metadata changes" #8816 #8834
  • Add link count test for root inode #8732
  • Exclude log device ashift from normal class #8735
  • Fix integer overflow in get_next_chunk() #8778 #8797
  • Double-free of encryption wrapping key due to invalid pool properties #8791
  • tests: fix cosmetic permission issues during 'make install' #8803
  • test-runner.py: change shebang to python3 #8803
  • Endless loop in zpool_do_remove() on platforms with unsigned char #8789
  • Fix embedded bp accounting in count_block() #8800 #8766
  • Disable parallel processing for 'zfs mount -l' #8762 #8811
  • Linux 5.2 compat: Directly call wait_on_page_bit() #8794
  • Linux 5.2 compat: Fix config/kernel-shrink.m4 test failure #8776
  • Linux 5.2 compat: Remove config/kernel-set-fs-pwd.m4 #8777
  • zpool: status -t is not documented in help message #8782
  • zfs-tests: fix warnings when packaging some .shlib files #8787
  • VERIFY3P() message is missing a space character #8786
  • zfs-tests: verify zfs(8) and zpool(8) help message is under 80 columns #8785
  • zfs: don't pretty-print objsetid property #8784
  • zfs: missing newline character in zfs_do_channel_program() error message #8783
  • Fix ksh-path for random_readwrite_fixed.ksh #8779
  • Linux 2.6.39 compat: Test if kstrtoul() exists #8760 #8761
  • Device removal panics on 32-bit systems #8790
  • zpool: trim -p is not a valid option #8781
  • Fix coverity defects: CID 186143 #8788
  • Rename reservation tests from *.sh to *.ksh #8729
  • Fix kstat state update during pool transition #8746
  • Linux 5.2 compat: rw_tryupgrade() #8730
zfs - zfs-0.8.0

Published by behlendorf over 5 years ago

New Features

  • Native encryption #5769 - The encryption property enables the creation of encrypted filesystems and volumes. The aes-256-ccm algorithm is used by default. Per-dataset keys are managed with zfs load-key and associated subcommands.

  • Raw encrypted 'zfs send/receive' #5769 - The zfs send -w option allows an encrypted dataset to be sent and received to another pool without decryption. The received dataset is protected by the original user key from the sending side. This allows datasets to be efficiently backed up to an untrusted system without fear of the data being compromised.

  • Device removal #6900 - This feature allows single and mirrored top-level devices to be removed from the storage pool with zpool remove. All data is copied in the background to the remaining top-level devices and the pool capacity is reduced accordingly.

  • Pool checkpoints #7570 - The zpool checkpoint subcommand allows you to preserve the entire state of a pool and optionally revert back to that exact state. It can be thought of as a pool wide snapshot. This is useful when performing complex administrative actions which are otherwise irreversible (e.g. enabling a new feature flag, destroying a dataset, etc).

  • Pool TRIM #8419 - The zpool trim subcommand provides a way to notify the underlying devices which sectors are no longer allocated. This allows an SSD to more efficiently manage itself and helps prevent performance from degrading. Continuous background trimming can be enabled via the new autotrim pool property.

  • Pool initialization #8230 - The zpool initialize subcommand writes a pattern to all the unallocated space. This eliminates the first access performance penalty, which may exist on some virtualized storage (e.g. VMware VMDKs).

  • Project accounting and quota #6290 - This features adds project based usage accounting and quota enforcement to the existing space accounting and quota functionality. Project quotas add an additional dimension to traditional user/group quotas. The zfs project and zfs projectspace subcommands have been added to manage projects, set quota limits and report on usage.

  • Channel programs #6558 - The zpool program subcommand can be used to perform compound ZFS administrative actions via Lua scripts in a sandboxed environment (with time and memory limits).

  • Pyzfs #7230 - The new pyzfs library is intended to provide a stable interface for the programmatic administration of ZFS. This wrapper provides a one-to-one mapping for the libzfs_core API functions, but the signatures and types are more natural to Python.

  • Python 3 compatibility #8096 - The arcstat, arcsummary, and dbufstat utilities have been updated to be compatible with Python 3.

  • Direct IO #7823 - Adds support for Linux's direct IO interface.

Performance

  • Sequential scrub and resilver #6256 - When scrubbing or resilvering a pool the process has been split into two phases. The first phase scans the pool metadata in order to determine where the data blocks are stored on disk. This allows the second phase to issue scrub I/O as sequentially as possible, greatly improving performance.

  • Allocation classes #5182 - Allows a pool to include a small number of high-performance SSD devices that are dedicated to storing specific types of frequently accessed blocks (e.g. metadata, DDT data, or small file blocks). A pool can opt-in to this feature by adding a special or dedup top-level device.

  • Administrative commands #7668 - Improved performance due to targeted caching of the metadata required for administrative commands like zfs list and zfs get.

  • Parallel allocation #7682 - The allocation process has been parallelized by creating multiple "allocators" per-metaslab group. This results in improved allocation performance on high-end systems.

  • Deferred resilvers #7732 - This feature allows new resilvers to be postponed if an existing one is already in progress. By waiting for the running resilver to complete redundancy is restored as quickly as possible.

  • ZFS Intent Log (ZIL) #6566 - New log blocks are created and issued while there are still outstanding blocks being serviced by the storage, effectively reducing the overall latency observed by the application.

  • Volumes #8615 - When a pool contains a large number of volumes they are more promptly registered with the system and made available for use after a zpool import.

  • QAT #7295 #7282 #6767 - Support for accelerated SHA256 checksums, AES-GCM encryption, and the new QAT Intel(R) C62x Chipset / Atom(R) C3000 Processor Product Family SoC.

Changes in Behavior

  • Relaxed (ref)reservation constraints on volumes, they may now be set larger than the volume size.

  • The arcstat.py, arc_summary.py, and dbufstat.py commands have been renamed arcstat, arc_summary, and dbufstat respectively.

  • The SPL source is now included in the ZFS repository removing the need for separate packages.

  • The dedupditto pool property and zfs send -D option have been deprecated and will be removed in a future release.

Additional Information

  • Supported kernels - Compatible with 2.6.32 - 5.1* Linux kernels.
    * SIMD acceleration is currently not supported for Linux 5.0 and newer kernels.

  • Change log - Complete v0.7.0 - v0.8.0 change log

  • 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 zfs-module-parameters(5) man page for the complete list of the options and what they control.

zfs - zfs-0.8.0-rc5

Published by behlendorf over 5 years ago

Supported Kernels

  • Compatible with 2.6.32 - 5.1 Linux kernels.

Changes

  • As of this release the spl is included in the zfs tarball and is no longer provided separately.

New Features

  • Native encryption
  • Device removal
  • Allocation classes
  • Pool checkpoints
  • Sequential scrub and resilver
  • Project quota
  • Channel programs
  • Direct IO
  • Deferred resilvers
  • Pool initialization
  • pyzfs python3 compatibility
  • Pool TRIM

Bug Fixes

See the updated zpool(8) and zfs(8) man pages for details on these new features.

This tag is the final release candidate for the 0.8.0 release.

zfs - zfs-0.8.0-rc4

Published by behlendorf over 5 years ago

Supported Kernels

  • Compatible with 2.6.32 - 5.0 Linux kernels.

Changes

  • As of this release the spl is included in the zfs tarball and is no longer provided separately.

New Features

  • Native encryption
  • Device removal
  • Allocation classes
  • Pool checkpoints
  • Sequential scrub and resilver
  • Project quota
  • Channel programs
  • Direct IO
  • Deferred resilvers
  • Pool initialization
  • pyzfs python3 compatibility
  • Pool TRIM*

Bug Fixes

See the updated zpool(8) and zfs(8) man pages for details on these new features.
(*) Introduced in zfs-0.8.0-rc4

This tag is provided for evaluation and testing of the upcoming 0.8.0 release.
It is not recommended for production use.

zfs - zfs-0.7.13

Published by tonyhutter over 5 years ago

Supported Kernels

  • Compatible with 2.6.32 - 5.0-rc3 Linux kernels.

Bug Fixes

ZFS

  • test-runner: python3 support #8096
  • Fix flake 8 style warnings #7925 #7952
  • GCC 9.0: Fix ztest "directive argument is not a nul-terminated string" #8330
  • Linux 5.0 compat: Fix bio_set_dev() #8287
  • Linux 5.0 compat: Disable vector instructions on 5.0+ kernels #8259
  • Linux 5.0 compat: Fix SUBDIRs #8257
  • Linux 5.0 compat: Convert MS_* macros to SB_* #8264
  • Linux 5.0 compat: Use totalram_pages() #8263
  • Linux 5.0 compat: access_ok() drops 'type' parameter #8261
  • deadlock between mm_sem and tx assign in zfs_write() and page fault #7939
  • dkms: Enable debuginfo option to be set with zfs sysconfig file #8304
  • Bump commit subject length to 72 characters #8250
  • zfs.8 uses wrong snapshot names in Example 15 #8241
  • Add enclosure_symlinks option to vdev_id #8194
  • vdev_id: new slot type ses #6956
  • vdev_id: extension for new scsi topology #6592
  • Rename macro ZFS_MINOR due to Lustre conflict #8195
  • Add kernel module auto-loading #7287
  • Use autoconf variable for C preprocessor #8180
  • OpenZFS 9577 - remove zfs_dbuf_evict_key tsd #7602
  • Honor --with-mounthelperdir where applicable #6962
  • contrib/initramfs: switch to automake #6761

SPL

  • Linux 4.20 compat: Fix current_kernel_time() #8258
  • Linux 5.0 compat: Fix timespec_sub() https://github.com/tonyhutter/spl/commit/a333b28af91b03d3247ea6aefe9f9212e13634f6
  • Linux 5.0 compat: Fix SUBDIRs #8257
  • Linux 5.0 compat: Use totalram_pages() #8263
  • deadlock between mm_sem and tx assign in zfs_write() and page fault #7939
  • Linux 4.18 compat: Use ktime_get_coarse_real_ts64() #8258
  • Use autoconf variable for C preprocessor #8180
zfs - zfs-0.8.0-rc3

Published by behlendorf almost 6 years ago

Supported Kernels

  • Compatible with 2.6.32 - 4.20 Linux kernels.

Changes

  • As of this release the spl is included in the zfs tarball and is no longer provided separately.

New Features

  • Native encryption
  • Device removal
  • Allocation classes
  • Pool checkpoints
  • Sequential scrub and resilver
  • Project quota
  • Channel programs
  • Direct IO
  • Deferred resilvers
  • Pool initialization*
  • pyzfs python3 compatibility*

Bug Fixes

See the updated zpool(8) and zfs(8) man pages for details on these new features.
(*) Introduced in zfs-0.8.0-rc3

This tag is provided for evaluation and testing of the upcoming 0.8.0 release.
It is not recommended for production use.