zfs

OpenZFS on Linux and FreeBSD

OTHER License

Stars
10.4K
Committers
625

Bot releases are visible (Hide)

zfs - zfs-0.8.0-rc2

Published by behlendorf almost 6 years ago

Supported Kernels

  • Compatible with 2.6.32 - 4.19 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*

Bug Fixes

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

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

Published by tonyhutter almost 6 years ago

Supported Kernels

  • Compatible with 2.6.32 - 4.19 Linux kernels.

Bug Fixes

ZFS

  • Add BuildRequires gcc, make, elfutils-libelf-devel #8095 #8102
  • Fix flake8 "invalid escape sequence 'x'" warning #8056
  • ZTS: Update O_TMPFILE support check #7528
  • Allow use of pool GUID as root pool #8052
  • Fix arc_release() refcount #8000
  • Prefix all refcount functions with zfs_ #7963
  • Linux 4.19-rc3+ compat: Remove refcount_t compat #7885 #7932
  • Zpool iostat: remove latency/queue scaling #7945 #7694
  • Fix statfs(2) for 32-bit user space #7122 #7937
  • Skip import activity test in more zdb code paths #7797 #7801
  • Reduce taskq and context-switch cost of zio pipe #7736
  • Fix race in dnode_check_slots_free() #7147 #7388

SPL

  • Add BuildRequires gcc, make, elfutils-libelf-devel #8095 #8102
  • Linux 4.20 compat: current_kernel_time() #8074
  • Backport vnode.h changes from zfs:93ce2b4c
  • Define timestruc_t for Lustre compatibility #8014
zfs - zfs-0.7.11

Published by tonyhutter about 6 years ago

Supported Kernels

  • Compatible with 2.6.32 - 4.18 Linux kernels.

Bug Fixes

ZFS

SPL

zfs - zfs-0.8.0-rc1

Published by behlendorf about 6 years ago

Supported Kernels

  • Compatible with 2.6.32 - 4.18 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

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

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

Published by tonyhutter about 6 years ago

Updated 9/17/18: We've found a serious regression in 0.7.10 (https://github.com/zfsonlinux/zfs/issues/7906 https://github.com/zfsonlinux/zfs/issues/7899). Please use 0.7.9 or 0.7.11.

Supported Kernels

  • Compatible with 2.6.32 - 4.18 Linux kernels.

Bug Fixes

ZFS

  • Correctly handle errors from kern_path #7764 #7864
  • Fix build with CONFIG_GCC_PLUGIN_RANDSTRUCT f4ee628820df2b80b6cc17ff00d1687ea5a1ac64
  • Fix 'zfs recv' of non large_dnode send streams #7617 #7662
  • Fix object reclaim when using large dnodes #7097 #7433
  • Fix problems receiving reallocated dnodes #6821 #6864
  • Fedora 28: Fix misc bounds check compiler warnings #7826 #7830
  • Fix libaio-devel requirement for Debian-based distributions #7829 #7831
  • Add libaio-devel BuildRequires #7821 #7824
  • Add missing zfs-dracut RPM dependencies #7729 #7747
  • Don't modify argv[] in user tools #7760
  • Fix arcstat.py handling of unsupported options #7799
  • Allow inherited properties in zfs_check_settable() #7755 #7576 #7757
  • Fix zfs incremental send remove '-o' properties #7478
  • OpenZFS 8906 - uts: illumos rootfs should support salted cksum #6501 #7714
  • Fix zpl_mount() deadlock #7598 #7659 #7691 #7693
  • Fix kernel unaligned access on sparc64 #7642 #7684
  • Default ashift for Amazon EC2 NVMe devices #7676
  • Linux 4.14 compat: blk_queue_stackable() #7645
  • Add pool state /proc entry, "SUSPENDED" pools #7331 #7563
  • zpool reopen should detect expanded devices #7546
  • Support Debian DKMS builds #7358 #7540 #7554
  • module param callbacks check for initialized spa #7496 #7521
  • Trim new line from zfs_vdev_scheduler #3356 #6573
  • Fix ENOSPC in "Handle zap_add() failures in ..." #7401 #7421
  • Fix divide-by-zero in mmp_delay_update() #7391
  • OpenZFS 8997 - ztest assertion failure in zil_lwb_write_issue #7084
  • Linux compat 4.18: check_disk_size_change() #7611
  • Linux 4.18 compat: inode timespec -> timespec64 #7643
  • zv_suspend_lock in zvol_open()/zvol_release() #6342

SPL

  • Add rwsem_tryupgrade for 4.9.20-rt16 kernel (SPL) #7589
  • Add pool state /proc entry, "SUSPENDED" pools (SPL) #7331 #7563
  • Linux 4.18 compat: inode timespec -> timespec64 #7643
zfs - zfs-0.7.9

Published by tonyhutter over 6 years ago

Supported Kernels

  • Compatible with 2.6.32 - 4.17 Linux kernels.

Bug Fixes

ZFS

  • Remove DEBUG_STACKFLAGS to bypass compiler error
  • Fedora 28: Add BuildRequires: libtirpc-devel #7494 #7495
  • RHEL 7.5 compat: FMODE_KABI_ITERATE #7460 #7463
  • Add back iostat -y or -w descriptions #7479 #7483
  • Add test with two kinds of file creation orders #7411
  • Allow mounting datasets more than once #5796 #7207
  • Fix zfs_arc_max minimum tuning #7417
  • Linux compat 4.16: blk_queue_flag_{set,clear} #7428 #7431
  • Linux compat 4.16: blk_queue_flag_{set,clear} #7410
  • Fix 'zfs send/recv' hang with 16M blocks #7365 #7404
  • Clean up (k)shlib and cfg file shebangs
  • Fix "file is executable, but no shebang" warnings #7359 #7395
  • Exclude python scripts from RPM shebang check #7360 #7399
  • Update mmp_delay on sync or skipped, failed write #7330
  • Fedora 28: Fix misc bounds check compiler warnings #7361 #7368
  • Fix hung z_zvol tasks during 'zfs receive' #6330 #6890 #7343
  • Add support for nvme based devids #7356
  • chmod -x on etc/init.d/zfs-*.in automake files #7355 #7327
  • Fix mmap / libaio deadlock #7335 #7339
  • Remove libattr requirement #7344 #7351
  • Fedora 28: Fix "Macro %_dracutdir has empty body" #7326 #7328
  • modprobe zfs during dracut mount #7322
  • Add support for nvme disk detection #7304
  • Report pool suspended due to MMP #7296
  • Add zfs_scan_ignore_errors tunable #7293
  • Allow to limit zed's syslog chattiness #6886 #7260
  • Record skipped MMP writes in multihost_history #7212
  • Introduce a destroy_dataset helper #7224 #7246 #7249 #7267

SPL

  • Fix undefined RPM macros #703
  • Exclude python scripts from RPM shebang check
  • Linux compat 4.16: SECTOR_SIZE #697
  • Remove sysevents #696
zfs - zfs-0.7.8

Published by tonyhutter over 6 years ago

This is a one-patch release to fix a major regression: #7401.

Supported Kernels

  • Compatible with 2.6.32 - 4.16 Linux kernels.

Bug Fixes

ZFS

  • Revert "Handle zap_add() failures in mixed ... " #7416
zfs - zfs-0.7.7

Published by tonyhutter over 6 years ago

Updated 4/9/18: We've found a serious regression in 0.7.7 (https://github.com/zfsonlinux/zfs/issues/7401). Please use 0.7.6 or 0.7.8.

Supported Kernels

  • Compatible with 2.6.32 - 4.16 Linux kernels.

Bug Fixes

ZFS

  • Fix MMP write frequency for large pools #7205 #7289
  • Handle zio_resume and mmp => off #7286
  • Fix zfs-kmod builds when using rpm >= 4.14 #7284
  • zdb and inuse tests don't pass with real disks #6939 #7261
  • Take user namespaces into account in policy checks #6800 #7270
  • Detect long config lock acquisition in mmp #7212
  • Linux 4.16 compat: get_disk_and_module() #7264
  • Change checksum & IO delay ratelimit values #7252
  • Increment zil_itx_needcopy_bytes properly #6988 #7176
  • Fix some typos #7237
  • Fix zpool(8) list example to match actual format #7244
  • Add SMART self-test results to zpool status -c #7178
  • Add scrub after resilver zed script #4662 #7086
  • Fix free memory calculation on v3.14+ #7170
  • Report duration and error in mmp_history entries #7190
  • Do not initiate MMP writes while pool is suspended #7182
  • Linux 4.16 compat: use correct *_dec_and_test()
  • Allow modprobe to fail when called within systemd #7174
  • Add SMART attributes for SSD and NVMe #7183 #7193
  • Correct count_uberblocks in mmp.kshlib #7191
  • Fix config issues: frame size and headers #7169
  • Clarify zinject(8) explanation of -e #7172
  • OpenZFS 8857 - zio_remove_child() panic due to already destroyed parent zio #7168
  • 'zfs receive' fails with "dataset is busy" #7129 #7154
  • contrib/initramfs: add missing conf.d/zfs #7158
  • mmp should use a fixed tag for spa_config locks #6530 #7155
  • Handle zap_add() failures in mixed case mode #7011 #7054
  • Fix zdb -ed on objset for exported pool #7099 #6464
  • Fix zdb -E segfault #7099
  • Fix zdb -R decompression #7099 #4984
  • Fix racy assignment of zcb.zcb_haderrors #7099
  • Fix zle_decompress out of bound access #7099
  • Fix zdb -c traverse stop on damaged objset root #7099
  • Linux 4.11 compat: avoid refcount_t name conflict #7148
  • Linux 4.16 compat: inode_set_iversion() #7148
  • OpenZFS 8966 - Source file zfs_acl.c, function zfs_aclset_common contains a use after end of the lifetime of a local variable #7141
  • Remove deprecated zfs_arc_p_aggressive_disable #7135
  • Fix default libdir for Debian/Ubuntu #7083 #7101
  • Bug fix in qat_compress.c for vmalloc addr check #7125
  • Fix systemd_ RPM macros usage on Debian-based distributions #7074 #7100
  • Emit an error message before MMP suspends pool #7048
  • ZTS: Fix create-o_ashift test case #6924 #6977
  • Fix --with-systemd on Debian-based distributions (#6963) #6591 #6963
  • Remove vn_rename and vn_remove dependency zfsonlinux/spl#648 #6753
  • Fix "--enable-code-coverage" debug build #6674
  • Update codecov.yml #6669
  • Add support for "--enable-code-coverage" option #6670
  • Make "-fno-inline" compile option more accessible #6605
  • Add configure option to enable gcov analysis #6642
  • Implement --enable-debuginfo to force debuginfo #2734
  • Make --enable-debug fail when given bogus args #2734

SPL

  • Fix spl-kmod builds when using rpm >= 4.14 zfsonlinux/spl#691
  • Fix more cstyle warnings zfsonlinux/spl#687
  • Fix function name typos zfsonlinux/spl#686
  • Staticize kstat_default_update() zfsonlinux/spl#686
  • Fix multiple evaluations of VERIFY() and ASSERT() on failures zfsonlinux/spl#684 zfsonlinux/spl#685
  • Split spl-build.m4 zfsonlinux/spl#682
  • Fix cstyle warnings zfsonlinux/spl#681
  • Add cv_timedwait_io() zfsonlinux/spl#674
  • Remove all spin_is_locked calls zfsonlinux/spl#665
  • Remove vn_rename and vn_remove zfsonlinux/spl#648 zfsonlinux/spl#661
  • Allow longer SPA names in stats zfsonlinux/spl#641
zfs - zfs-0.7.6

Published by tonyhutter over 6 years ago

Supported Kernels

  • Compatible with 2.6.32 - 4.15 Linux kernels.

Bug Fixes

ZFS

  • Fix 'zfs receive -o' when used with '-e|-d' #7088
  • Extend zloop.sh for automated testing #6999
  • Cleanup zloop working directory after each pass #6663
  • OpenZFS 8835 - Speculative prefetch in ZFS not working for misaligned reads #7062
  • Fix Debian packaging on ARMv7/ARM64 #7046 #7058
  • Fix shellcheck v0.4.6 warnings #7040
  • Remove l2arc_nocompress from zfs-module-parameters(5) #7043
  • Fix incompatibility with Reiser4 patched kernels #6241 #7021
  • Use zap_count instead of cached z_size for unlink #7019
  • Revert raidz_map and _col structure types #6981 #7023
  • zhack: fix getopt return type #7016
  • Fix ARC hit rate #6171 #6852 #6989
  • Fix 'zpool add' handling of nested interior VDEVs #6678 #6996
  • Call commit callbacks from the tail of the list #6986
  • Handle broken pipes in arc_summary #6965 #6969
  • Handle invalid options in arc_summary #6983
  • OpenZFS 8794 - cstyle generates warnings with recent perl #6973
  • Update for cppcheck v1.80 #6879
  • Fix data on evict_skips in arc_summary.py #6882 #6883
  • Minor code cleanups in arc_python.py #6869
  • Fix arc_summary.py -d crash with Python3 #6849 #6850
  • Sort output of tunables in arc_summary.py #6828
  • Add documentation strings to arc_summary.py #6818
  • Rewrite fHits() in arc_summary.py with SI units #6815
  • Minor code cleanup in arc_summary.py #6802
  • Rewrite of function fBytes() in arc_summary.py #6784
  • Fix bug in distclean which removes needed files #6636
  • dmu_objset: release bonus buffer in failure path #6575
  • Fix zfs_ioc_pool_sync should not use fnvlist #6529
  • vdev_mirror: load balancing fixes #6461
  • Use /sbin/openrc-run for openrc init scripts #6519

SPL

  • Fix Debian packaging on ARMv7/ARM64 zfsonlinux/spl#7046 zfsonlinux/spl#678
  • Linux 4.15 compat: timer updates #670 zfsonlinux/spl#671
zfs - zfs-0.7.5

Published by tonyhutter almost 7 years ago

Supported Kernels

  • Compatible with 2.6.32 - 4.14 Linux kernels.

Bug Fixes

  • Fix multihost stale cache file import #6933 #6971
  • Fix ZTS MMP tests and ztest -M behavior #6666
  • Enable QAT support in zfs-dkms RPM #6932
  • Add zfs-import.target services in spec file #6955
  • Enable zfs-import.target in systemd preset #6968
zfs - zfs-0.7.4

Published by tonyhutter almost 7 years ago

Supported Kernels

  • Compatible with 2.6.32 - 4.14 Linux kernels.

Important Notices

  • The new systemd zfs-import.target file was added to the RPM packages but not automatically enabled at install time. This leads to an incorrect unit ordering on startup and missing mounted file systems. This issue can be resolved by running systemctl enable zfs-import.target after installing the packages. #6953

Bug Fixes

  • Allow test-runner to filter test groups by tag #6788
  • Fix NFS sticky bit permission denied error #6889 #6910
  • Add /usr/bin/env to COPY_EXEC_LIST initramfs hook #5360 #6913
  • Fix 'zpool create|add' replication level check #6907 #6911
  • Preserve itx alloc size for zio_data_buf_free() #6912
  • Fix 'zfs get {user|group}objused@' functionality #6908
  • Linux 4.14 compat: CONFIG_GCC_PLUGIN_RANDSTRUCT #5390 #6903
  • initramfs: Honor canmount=off #6897
  • initramfs: Honor mountpoint=none/legacy #6897
  • zpool(8): Fix "zpool import -t" #6894
  • Fix column alignment with long zpool names #6786
  • Emit history events for 'zpool create' #6712 #6486
  • Fix dirty check in dmu_offset_next() #3125 #6867
  • Disable automatic dependencies in zfs-test package #6868
  • Fix truncate(2) mtime and ctime handling #6811 #6819
  • OpenZFS 7531 - Assign correct flags to prefetched buffers (https://www.illumos.org/issues/7531)
  • Handle compressed buffers in __dbuf_hold_impl() #5742 #6797
  • Fix undefined %{systemd_svcs} in RPM scriptlets #6838 #6841
  • Bug fix in qat_compress.c when compressed size is < 4KB #6827
  • Disable automatic dependencies in DKMS package #6467 #6835
  • Initramfs fixes #6807
  • systemd zfs-import.target and documentation #6764
  • Update zfs module parameters man5 #6785
  • Fix status command options in zpool(8) #6792 #6794
  • arcstat: flush stdout / outfile after each line #6775
  • Ensure arc_size_break is filled in arc_summary.py #5526 #6770
  • Correct flake8 errors after STYLE builder update #6776
  • Support integration with new QAT products #6767
  • Reimplement vdev_random_leaf and rename it #6631 #6665
  • Linux 4.14 compat: vfs_read & vfs_write #656 #667
  • Update spl module parameters man5 with missing parameter details #664
  • Pool io stat shows wlentime instead of rlentime #652 #651
  • spl-module-parameters.5 manpage: fix macro #643
  • splat.1 manpage: fix spelling of 'hexadecimal' #642
  • Fix use-after-free in taskq_seq_show_impl #638 #640
zfs - zfs-0.7.3

Published by tonyhutter almost 7 years ago

Supported Kernels

  • Compatible with 2.6.32 - 4.13 Linux kernels.

Bug Fixes

  • Add DKMS package on Debian-based distributions (zfs) #6044 #6731
  • Fix function documentation to correctly mirror code #6754
  • Increase default zloop.sh vdev size #6758
  • Typo in dsl_dataset.h #6756 #6273
  • Fix chattr/cleanup failure #6749
  • Fixes for SPARC support #6733 #6738 #6750
  • Explicitly depend on icp module in initramfs hook #6751
  • Fix boot from ZFS issues #6700 #6747
  • Skip FREEOBJECTS for objects which can't exist #5699 #6507 #6616
  • Free objects when receiving full stream as clone #5699 #6507 #6616
  • Fix intra-pool resumable 'zfs send -t ' #6618 #6619 #6623
  • Fix ARC behavior on 32-bit systems #5352 #6734
  • Fix inclusion of libgcc_s.so on Void #6715
  • Use bitwise '&' instead of logical '&&' #6684 #6722
  • Remove unnecessary equality check #6685
  • Use linear abd in vdev_copy_uberblocks() #6718 #6713
  • receive_freeobjects() skips freeing some objects #6694 #6695
  • Scale the dbuf cache with arc_c #6561
  • Add DKMS package on Debian-based distributions (spl) #657
  • Add parenthesis to btop and ptob macros (#662) #660
zfs - zfs-0.7.2

Published by tonyhutter about 7 years ago

Supported Kernels

  • Compatible with 2.6.32 - 4.13 Linux kernels.

Bug Fixes

  • Correct cppcheck errors #6662 #6653
  • Increase default arc_c_min #6659
  • Export symbol dmu_tx_mark_netfree() #6660
  • ZTS fix slog_replay_volume.ksh failure #6654
  • Linux 4.14 compat: IO acct, global_page_state, etc #6655 #6635
  • Modifying XATTRs doesnt change the ctime #3644 #6586
  • Fix volume WR_INDIRECT log replay #6620 #6603
  • Improved dnode allocation and dmu_hold_impl() #6611 #6611
  • Linux 4.8+ compatibility fix for vm stats #6528
  • Disable mount(8) canonical paths in do_mount() #1791 #6429 #6437
  • Fix range locking in ZIL commit codepath #6238 #6315 #6356 #6477
  • Fix remounting snapshots read-write #6510 #6515
  • Fix ZTS grow_pool/setup #6499 #6516
  • vdev_id: implement slot numbering by port id #6484
  • Fix NULL pointer when O_SYNC read in snapshot #6478 #6494
  • zio_dva_throttle_done() should allow zinjected ZIO #6383 #6384
  • Man page fixes #6492
  • Crash in dbuf_evict_one with DTRACE_PROBE #6463
  • Tag zfs-0.7.1- Fix dnode allocation race #6414
zfs - zfs-0.7.1

Published by tonyhutter about 7 years ago

Supported Kernels

  • Compatible with 2.6.32 - 4.12 Linux kernels.

Bug Fixes

  • Fix dnode allocation race zfsonlinux/zfs#6414 zfsonlinux/zfs#6439
  • Add debug log entries for failed receive records zfsonlinux/zfs#6465
  • dracut: Install commands required for vdev_id zfsonlinux/zfs#6443 zfsonlinux/zfs#6452
  • Only record zio->io_delay on reads and writes zfsonlinux/zfs#6425 zfsonlinux/zfs#6440
  • mmp_on_uberblocks: Use kstat for uberblock counts zfsonlinux/zfs#6407 zfsonlinux/zfs#6419
  • Fix volmode=none property behavior at import time zfsonlinux/zfs#6426
  • Fix aarch64 build zfsonlinux/zfs#6424
  • Disable zfs_send_007_pos zfsonlinux/zfs#6422
  • Correct man page generation zfsonlinux/zfs#6409 zfsonlinux/zfs#6411
  • Add assert under lock to detect cases of dispach of a preallocated zfsonlinux/zfs#609
  • Remove misguided HAVE_MUTEX_OWNER check, take 2 zfsonlinux/zfs#639 zfsonlinux/zfs#632
  • spl-mutex: fix race in mutex_exit zfsonlinux/zfszfsonlinux/zfs#6401 zfsonlinux/zfs#637
  • Add __divmoddi4 and __udivmoddi4 for 32-bit arch zfsonlinux/zfs#6417 zfsonlinux/zfs#636
  • Fix aarch64 build zfsonlinux/zfs#635
zfs - zfs-0.7.0

Published by behlendorf about 7 years ago

New Features

  • Resumable zfs send/receive - Allow an interrupted zfs receive to be resumed if the stream was prematurely terminated (e.g. due to remote system or network failure).

  • Compressed zfs send/receive - Use the zfs send -c option to directly send the compressed data in the ARC or on-disk to another pool without needing to decompress it.

  • Multiple Import Protection - Prevents a shared pool in a fail-over configuration from being imported on different hosts at the same time. When the multihost pool property is on, perform an activity check prior to importing the pool to verify it is not in use.

  • Customized zpool iostat|status columns - Additional columns can be added to the zpool iostat and zpool status output to show more information. Several useful scripts are provided which can report drive temperature, SMART data, enclosure LED status, and more. Administrators and users can add additional scripts to meet their needs.

  • Latency and request size histograms - Use the zpool iostat -l option to show on-the-fly latency stats and zpool iostat -w to generate a histogram showing the total latency of each IO. The zpool iostat -r option can be used to show the size of each IO. These statistics are available per-disk to aid in finding misbehaving devices.

  • Scrub Pause - The zpool scrub -p option can be used to pause/resume an active scrub without having to cancel it.

  • Delegations - The zfs allow and zfs unallow subcommands can be used to delegate ZFS administrative permissions for the file systems to non-privileged users.

  • Large dnodes - This feature improves metadata performance allowing extended attributes, ACLs, and symbolic links with long target names to be stored in the dnode. This benefits workloads such as SELinux, distributed filesystems like Lustre and Ceph, and any application which makes use of extended attributes.

  • User/group object accounting and quota - This feature adds per-object user/group accounting and quota limits to the existing space accounting and quota functionality. The zfs userspace and zfs groupspace subcommands have been extended to set quota limits and report on object usage.

  • Cryptographic checksums - Stronger SHA-512, Skein, or Edon-R checksums are available.

  • JBOD Management

    • Automatic drive online - Newly detected devices which are determined to be part of an imported pool are automatically brought online.
    • Automatic drive replacement - When the autoreplace pool property is on, any new device found in the same physical location as a device that previously belonged to the pool, is automatically formatted and replaced.
    • Automatic hot spares - When a device is faulted start a rebuild to a hot-spare device if available.
    • Fault LEDs - Set the fault LED for a device when it's faulted, clear it when it has been replaced.
    • Drive health monitoring - Automatically fault a device when an excessive number of read, write, or checksum errors are detected.
    • Force fault - Use zpool offline -f to proactively fault a problematic device.
    • Multipath aware - Can be used with advanced multipath configurations.

Performance

  • ARC Buffer Data (ABD) - Allocates ARC data buffers using scatter lists of pages instead of virtual memory. This approach minimizes fragmentation on the system allowing for a more efficient use of memory. The reduced demand for virtual memory also improves stability and performance on 32-bit architectures.
  • Compressed ARC - Cached file data is compressed by default in memory and uncompressed on demand. This allows for an larger effective cache which improves overall performance.
  • Vectorized RAIDZ - Hardware optimized RAIDZ which reduces CPU usage.
    Supported SIMD instructions: sse2, ssse3, avx2, avx512f, and avx512bw, neon, neonx2
  • Vectorized checksums - Hardware optimized Fletcher-4 checksums which reduce CPU usage.
    Supported SIMD instructions: sse2, ssse3, avx2, avx512f, neon
  • GZIP compression offloading - Hardware optimized GZIP compression offloading with QAT accelerator.
  • Metadata performance - Overall improved metadata performance. Optimizations include a multi-threaded allocator, batched quota updates, improved prefetching, and streamlined call paths.
  • Faster RAIDZ resilver - When resilvering RAIDZ intelligently skips sections of the device which don't need to be rebuilt.

Changes in Behavior

  • Non-privileged users are allowed to run zpool list, zpool iostat, zpool status, zpool get, zfs list, and zfs get. These commands no longer need to be added to the /etc/sudoers file.
  • The permissions of the /dev/zfs device have changed from 0600 to 0666 to let ZFS do access control in kernel space and make zfs allow and zfs unallow work properly. If you have been changing permissions / group owner of the device file yourself your change won't work correctly anymore and breaks proper behavior of zfs allow. From this release forward you should be able to satisfy your use-case with the officially supported zfs allow command.
  • By default task queues are now dynamic and worker threads will be created and destroyed as needed. This allows the system to automatically tune itself to ensure the optimal number of threads are used for the active workload which can result in a performance improvement.
  • Accessing snapshots over NFS now requires the crossmnt option be added to the /etc/exports file. The nfsd service is now aware that snapshots are different filesystems. A result of this change is that older distributions, like CentOS 6.x, can no longer provide access to snapshots over NFS.

Supported Kernels

  • Compatible with 2.6.32 - 4.12 Linux kernels.

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 a more complete description of the options and what they control.
  • Added:
    • dbuf_cache_hiwater_pct - Percent over dbuf_cache_max_bytes when dbufs must be evicted
    • dbuf_cache_lowater_pct - Percent below dbuf_cache_max_bytes when dbufs stop being evicted
    • dbuf_cache_max_bytes - Maximum size in bytes of the dbuf cache
    • dbuf_cache_max_shift - Cap the size of the dbuf cache to a log2 fraction of arc size
    • dmu_object_alloc_chunk_shift - CPU-specific allocator grabs 2^N objects at once
    • send_holes_without_birth_time - Ignore hole_birth txg for zfs send
    • zfetch_max_distance - Max bytes to prefetch per stream
    • zfs_abd_scatter_enabled - Toggle whether ABD allocations must be linear
    • zfs_abd_scatter_max_order - Maximum order allocation used for a scatter ABD
    • zfs_arc_dnode_limit - Minimum bytes of dnodes in ARC
    • zfs_arc_dnode_limit_percent - Percent of ARC meta buffers for dnodes
    • zfs_arc_dnode_reduce_percent - Percentage of excess dnodes to try to unpin
    • zfs_arc_meta_limit_percent - Percent of arc size for arc meta limit
    • zfs_arc_pc_percent - Percent of pagecache to reclaim ARC to
    • zfs_compressed_arc_enabled - Disable compressed arc buffers
    • zfs_deadman_checktime_ms - Dead I/O check interval in milliseconds
    • zfs_delete_blocks - Delete files larger than N blocks asynchronously
    • zfs_dmu_offset_next_sync - Enable forcing txg sync to find holes
    • zfs_free_bpobj_enabled - Enable processing of the free_bpobj
    • zfs_metaslab_segment_weight_enabled - Enable segment-based metaslab selection
    • zfs_metaslab_switch_threshold - Metaslab selection max buckets before switching
    • zfs_multihost_fail_intervals - Max allowed period without a successful mmp write
    • zfs_multihost_history - Historical statistics for last N multihost writes
    • zfs_multihost_import_intervals - Number of zfs_multihost_interval periods to wait for activity
    • zfs_multihost_interval - Milliseconds between mmp writes to each leaf
    • zfs_multilist_num_sublists - Number of sublists used in each multilist
    • zfs_per_txg_dirty_frees_percent - Percentage of dirtied blocks from frees in one TXG
    • zfs_sync_taskq_batch_pct - Percentage of CPUs to run an IO worker thread
    • zfs_vdev_mirror_non_rotating_inc - Non-rotating media load increment for non-seeking I/O's
    • zfs_vdev_mirror_non_rotating_seek_inc - Non-rotating media load increment for seeking I/O's
    • zfs_vdev_mirror_rotating_inc - Rotating media load increment for non-seeking I/O's
    • zfs_vdev_mirror_rotating_seek_inc - Rotating media load increment for seeking I/O's
    • zfs_vdev_mirror_rotating_seek_offset - Offset in bytes from the last I/O to trigger seek increment
    • zfs_vdev_queue_depth_pct - Queue depth percentage for each top-level vdev
    • zfs_vdev_raidz_impl - Select RAIDZ implementation.
    • zil_slog_bulk - Limit in bytes slog sync writes per commit
    • zio_dva_throttle_enabled - Throttle block allocations in the ZIO pipeline
    • zvol_request_sync - Synchronously handle bio requests
    • zvol_threads - Max number of threads to handle I/O requests
    • zvol_volmode - Default volmode property value
    • spl_max_show_tasks - Max number of tasks shown in taskq proc
    • spl_panic_halt - Cause kernel panic on assertion failures
  • Removed:
    • l2arc_nocompress - Skip compressing L2ARC buffers
    • zfetch_block_cap - Max number of blocks to fetch at a time
    • zfs_arc_num_sublists_per_state - Number of sublists used in each of the ARC state lists
    • zfs_disable_dup_eviction - Disable duplicate buffer eviction
    • zfs_vdev_mirror_switch_us - Switch mirrors every N microseconds
    • zil_slog_limit - Max commit bytes to separate log device
  • Changed:
    • zfs_admin_snapshot - Enable mkdir/rmdir/mv in .zfs/snapshot
zfs - v0.7.0-rc5

Published by behlendorf over 7 years ago

Supported Kernels

  • Compatible with 2.6.32 - 4.12 Linux kernels.

New Features

  • Added createtxg and guid native pool properties.
  • Added property overriding -o|-x to zfs receive.
  • Added zpool offline -f option to force fault a device.
  • Added zpool sync command to force a transaction group sync.
  • Added support to zpool iostat/status -c for user provided scripts.
  • Added zpool scrub -p to pause/resume an active scrub.
  • Added volmode property from FreeBSD to control volume visibility.
  • Added multihost pool property which prevents a fail-over configuration
    from importing a shared pool on different hosts at the same time.

Performance

  • Skip unnecessary resilver IOs for raidz pools.
  • Faster multi-threaded object allocation.

Bug Fixes

  • Fixed zpool scrub thinking it repaired offline device.
  • Fixed snapdev property inheritance behavior.
  • Fixed unneeded writes when bpobj has no entries.
  • Fixed volume deadlock by refining the locking.
  • Fixed hang when using volumes on single core systems.
  • Fixed zpool import finding wrong spare/l2cache when path changes.
  • Fixed incorrect warning when raidz and mirror pools do have similar redundancy.
  • Fixed memory leak in zpool event handling.
  • Fixed memory leak in zvol_set_volsize().
  • Fixed ida leak in zvol_create_minor_impl().
  • Fixed file handle leak in dir_is_empty_readdir().
  • Fixed missing arc_free_cksum() call in arc_release().
  • Fixed mount error message when using kernels without nbmand support.
  • Fixed inaccurate zfs send size estimate for some volumes.
  • Fixed L2ARC for devices which don't support 512b access.
  • Fixed L2ARC writing beyond target size.
  • Fixed panic when setting zfs_vdev_aggregation_limit=16777216.
  • Fixed panic in bookmark deletion.
  • Fixed panic in zfs create.
  • Fixed panic when running zpool clear on a readonly pool.
  • Fixed several minor LZ4 issues.
  • Fixed zinject(8) to allow a fractional percentage of errors to be injected.
  • Fixed setting arc_meta_limit and arc_dnode_limit on change.
  • Fixed large dnode send stream flag conflict with upstream.
  • Fixed stack usage in dsl_dir_tempreserve_impl().
  • Fixed gcc 7.1.1 build warnings.
  • Fixed glibc-2.23 compatibility warnings.
  • Fixed Clang build warnings.
  • Fixed Musl libc build warnings.
  • Fixed Linux kernel compatibility issues.
  • Fixed need for --with-linux-obj option when specifying --with-linux to configure.
  • Fixed .deb dependency warnings.
  • Fixed test-runner to return non-zero exit code on failure.
  • Fixed and enabled additional ZFS Test Suite tests.
  • Applied 29 upstream OpenZFS patches.
  • Applied upstream mdoc(7) formatting for zpool(8) and zfs(8) man pages.
  • Assorted documentation and man page updates.

This tag is the final rc prior to the release of 0.7.0.

zfs - v0.6.5.11

Published by tonyhutter over 7 years ago

Supported Kernels

  • Compatible with 2.6.32 - 4.12-rc3 Linux kernels.

Bug Fixes

  • Linux 4.12 compat: super_setup_bdi_name() - add missing code zfsonlinux/zfs#6089 zfsonlinux/zfs#6324
  • Musl libc fixes zfsonlinux/zfs#6310
  • Increase zfs_vdev_async_write_min_active to 2 zfsonlinux/zfs#5926
  • Fix int overflow in zbookmark_is_before()- Fix RHEL 7.4 bio_set_op_attrs build error zfsonlinux/zfs#6234 zfsonlinux/zfs#6271
  • Fix RHEL 7.4 bio_set_op_attrs build error zfsonlinux/zfs#6253
  • GCC 7.1 fixes zfsonlinux/zfs#6253
  • Remove complicated libspl assert wrappers zfsonlinux/zfs#4449
  • Compatibilty with glibc-2.23 zfsonlinux/zfs#6132
  • glibc 2.5 compat: use correct header for makedev() et al. zfsonlinux/zfs#5945
  • Fix RWSEM_SPINLOCK_IS_RAW check failed zfsonlinux/zfs#622
zfs - v0.6.5.10

Published by tonyhutter over 7 years ago

Supported Kernels

  • Compatible with 2.6.32 - 4.12-rc3 Linux kernels.

Performance

  • OpenZFS 8005 - poor performance of 1MB writes on certain RAID-Z configurations zfsonlinux/zfs#5931

Bug Fixes

  • Add MS_MANDLOCK mount failure message zfsonlinux/zfs#4729 zfsonlinux/zfs#6199
  • Fix import wrong spare/l2 device when path change zfsonlinux/zfs#6158
  • Fix import finding spare/l2cache when path changes zfsonlinux/zfs#6158
  • Linux 4.9 compat: fix zfs_ctldir xattr handling zfsonlinux/zfs#6189
  • Linux 4.12 compat: fix super_setup_bdi_name() call zfsonlinux/zfs#6147
  • Linux 4.12 compat: CURRENT_TIME removed zfsonlinux/zfs#6114
  • Linux 4.12 compat: super_setup_bdi_name() zfsonlinux/zfs#6089
  • Limit zfs_dirty_data_max_max to 4G zfsonlinux/zfs#6072 zfsonlinux/zfs#6081
  • OpenZFS 8166 - zpool scrub thinks it repaired offline device zfsonlinux/zfs#5806 zfsonlinux/zfs#6103
  • vdev_id: fix failure due to multipath -l bug zfsonlinux/zfs#6039
  • Guarantee PAGESIZE alignment for large zio buffers zfsonlinux/zfs#6084
  • Fix harmless "BARRIER is deprecated" kernel warning on Centos 6.8 zfsonlinux/zfs#5739 zfsonlinux/zfs#5828
  • Add kmap_atomic in dmu_bio_copy- zdb: segfault in dump_bpobj_subobjs() zfsonlinux/zfs#3905
  • Fix atomic_sub_64() i386 assembly implementation zfsonlinux/zfs#5671 zfsonlinux/zfs#5717
  • Fix loop device becomes read-only zfsonlinux/zfs#5776 zfsonlinux/zfs#5855
  • Allow ZVOL bookmarks to be listed recursively zfsonlinux/zfs#4503 zfsonlinux/zfs#5072
  • Fix zfs-mount.service failure on boot zfsonlinux/zfs#5719
  • Fix iput() calls within a tx zfsonlinux/zfs#5758
  • Fix off by one in zpl_lookup zfsonlinux/zfs#5768
  • Linux 4.11 compat: iops.getattr and friends zfsonlinux/zfs#5875
  • Linux 4.11 compat: avoid refcount_t name conflict zfsonlinux/zfs#5823 zfsonlinux/zfs#5842
  • Linux 4.12 compat: PF_FSTRANS was removed zfsonlinux/spl#614
  • Clear PF_FSTRANS over spl_filp_fallocate() zfsonlinux/splzfsonlinux/zfs#4529
  • glibc 2.25 compat: remove assert(X=Y) zfsonlinux/spl#610
  • Linux 4.11 compat: remove stub for __put_task_struct zfsonlinux/spl#608
  • Linux 4.11 compat: add linux/sched/signal.h zfsonlinux/spl#608
  • Linux 4.11 compat: vfs_getattr() takes 4 args zfsonlinux/spl#608
  • Fix powerpc build zfsonlinux/spl#607
  • Linux 4.11 compat: set_task_state() removed zfsonlinux/spl#603
zfs - v0.7.0-rc4

Published by behlendorf over 7 years ago

Supported Kernels

  • Compatible with 2.6.32 - 4.11 Linux kernels.

New Features

  • Added script support to zpool iostat -c extended output
  • Added feature@multi_vdev_crash_dump compatibility
  • Added GZIP compression offloading with QAT accelerator

Performance

  • Fixed performance of 1MB writes on certain RAID-Z configurations (OpenZFS 8005)
  • Fixed lseek(SEEK_HOLE) performance for dirty files
  • Fixed large file delete can starving out write ops (OpenZFS 6569)
  • Improved ARC memory reclaim behavior
  • Improved asynchronous ZVOL performance
  • Allow higher ashift values (up to 16)
  • Multi-threaded spa_sync() (OpenZFS 7968)
  • Increased zfs_vdev_async_write_min_active (to 2) which can speed up rebuilds
  • Increased indirect block size (OpenZFS 7104)

Bug Fixes

  • Fixed immediately update label 2,3 uberblocks when vdev expands
  • Fixed human-readable sizes in command line utilities
  • Fixed page size alignment for large buffers
  • Fixed zfs_dirty_data_max_max limit (4G)
  • Fixed incorrect compressed send streams
  • Fixed zdb -e regression for active cacheless pools
  • Fixed vdev_id failure due to multipath -l bug
  • Fixed leak in send_iterate_fs()
  • Fixed large block/gzip/raidz boot pools allowed
  • Fixed ZVOL BLKFLSBUF ioctl invalidates cache
  • Fixed block device cache invalidation during zpool import|labelclear
  • Fixed header inclusions for standards conformance
  • Fixed size inflation in spa_get_worst_case_asize
  • Fixed panic destroying a metaslab deferred range tree (OpenZFS 8023)
  • Fixed zpool create accepts raidz and mirrors with similar redundancy
  • Fixed zpool list reporting 16.0e for expandsz (OpenZFS 7885)
  • Fixed check ashift validity in zpool add
  • Fixed wrong offset args in vdev_cache_write()
  • Fixed 'zdb -o' segmentation fault
  • Fixed zfs_znode_alloc() failure in zfs_mknode() with retry
  • Fixed race in rollback, zil close, and zil flush (OpenZFS 3821)
  • Fixed zpool status -v error message
  • Fixed NFS snapdir automounting
  • Fixed harmless "BARRIER is deprecated" kernel warning on Centos 6.8
  • Fixed ARC space accounting leak (OpenZFS 7867)
  • Fixed loop device becoming read-only for Linux kernel older than 4.1
  • Fixed dsl_dataset_rollback_sync() may try to free already free blocks (OpenZFS 7199)
  • Fixed off by one in zpl_lookup
  • Fixed enclosure LED handling
  • Fixed zfs receive of deduplicated streams
  • Fixed zfs get behavior with bookmarks (OpenZFS 7386)
  • Added zdb(8) lookup files by path (OpenZFS 6410)
  • Added zdb(8) only dump unique configurations and uberblocks
  • Added zdb -G to print zfs_dbgmsg's
  • Added zdb -ll to print the nvlist payload stats
  • Added constrained paths to the ZFS Test Suite (OpenZFS 7290)
  • Added test framework for the ZED to the ZFS Test Suite (auto-online, auto-replace)
  • Added new test cases and enabled additional existing test cases in the ZFS Test Suite
  • Added debug and console logs dumping to the ZFS Test Suite
  • Allow c99 when building ZFS in the kernel tree
  • Applied 106 upstream OpenZFS patches
  • Assorted documentation and man page updates

This tag is provided for evaluation and testing of the upcoming 0.7.0 release.

zfs - v0.7.0-rc1

Published by behlendorf over 7 years ago

Supported Kernels

  • Compatible with 2.6.32 - 4.8 Linux kernels.

New Features

  • Added zfs allow/unallow support
  • Added large dnode feature
  • Added resumable send/recv feature
  • Added -gLp to zpool subcommands for alternative vdev names
  • Added -lhHpw options to zpool iostat for avg latency, histograms, & queues
  • Added -r request size histograms to zpool iostat
  • Added ZFS Test Suite and zloop.sh
  • Added support for lazyatime semantics
  • Added "clones" property
  • Added logging on zvol discard operations
  • Adding initial Fault Management Logic (FMA)

Performance

  • Added support for vectorized algorithms (RAIDZ, and Fletcher-4)
  • Improved I/O prefetching
  • Improved ZFS N-way mirror read performance by using load and locality
  • Improved ARC metadata management
  • Optimized tree comparison functions

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