Details

    • Task
    • Resolution: Won't Fix
    • Minor
    • None
    • Lustre 2.13.0
    • 9223372036854775807

    Description

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

      Attachments

        Issue Links

          Activity

            [LU-12336] Update ZFS Version to 0.8.2
            pjones Peter Jones added a comment -

            ofaaland no - we're just looking at ways to keep things moving along

            pjones Peter Jones added a comment - ofaaland no - we're just looking at ways to keep things moving along
            gerrit Gerrit Updater added a comment - - edited

            Nathaniel Clark (nclark@whamcloud.com) uploaded a new patch: https://review.whamcloud.com/36310
            Subject: LU-12336 build: Update ZFS version to 0.8.2
            Project: fs/lustre-release
            Branch: master
            Current Patch Set: 1
            Commit: 605e397dcf130087b88fc21ac589a48a3b28221b

            gerrit Gerrit Updater added a comment - - edited Nathaniel Clark (nclark@whamcloud.com) uploaded a new patch: https://review.whamcloud.com/36310 Subject: LU-12336 build: Update ZFS version to 0.8.2 Project: fs/lustre-release Branch: master Current Patch Set: 1 Commit: 605e397dcf130087b88fc21ac589a48a3b28221b

            The 0.8.2 release was made today:

            Supported Kernels
            
                Compatible with 2.6.32 - 5.3 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
            
            adilger Andreas Dilger added a comment - The 0.8.2 release was made today: Supported Kernels Compatible with 2.6.32 - 5.3 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
            ofaaland Olaf Faaland added a comment -

            Thank you James. I see Minh working on patching lbuild to build zfs-0.7 for RHEL 8. Does Whamcloud plan to issue a Lustre release for RHEL 8 based on zfs-0.7?

            ofaaland Olaf Faaland added a comment - Thank you James. I see Minh working on patching lbuild to build zfs-0.7 for RHEL 8. Does Whamcloud plan to issue a Lustre release for RHEL 8 based on zfs-0.7?

            Olaf - Here are a few of the tickets that are thought to be caused by or we saw much more frequently when we switched over to run with ZFS 0.8.1:

            LU-11170, LU-12632, LU-12710, LU-4671, LU-12689, LU-12713 and LU-12706.

            If I find more, I'll add the ticket numbers to the list.

            jamesanunez James Nunez (Inactive) added a comment - Olaf - Here are a few of the tickets that are thought to be caused by or we saw much more frequently when we switched over to run with ZFS 0.8.1: LU-11170 , LU-12632 , LU-12710 , LU-4671 , LU-12689 , LU-12713 and LU-12706 . If I find more, I'll add the ticket numbers to the list.
            ofaaland Olaf Faaland added a comment -

            Does someone know the LU- numbers for the DNE failures that are believed to be related to zfs-0.8.1?

            ofaaland Olaf Faaland added a comment - Does someone know the LU- numbers for the DNE failures that are believed to be related to zfs-0.8.1?

            Doesn't confuse me - It's "Revert" [name of previous patch].  It's a standard format (generated by Gerrit).

            pfarrell Patrick Farrell (Inactive) added a comment - Doesn't confuse me - It's "Revert" [name of previous patch] .  It's a standard format (generated by Gerrit).
            spitzcor Cory Spitz added a comment -

            FYI, the revert to master has a confusing title. It reads, "LU-12336 build: Revert Update ZFS version to 0.8.1", which makes it sounds like you are revert to that version rather than reverting from that version.

            spitzcor Cory Spitz added a comment - FYI, the revert to master has a confusing title. It reads, " LU-12336 build: Revert Update ZFS version to 0.8.1", which makes it sounds like you are revert to that version rather than reverting from that version.
            pjones Peter Jones added a comment -

            Reverted from ZFS 0.8.1 back to 0.7.13 as default due to high occurrence of ZFS DNE failures.

            pjones Peter Jones added a comment - Reverted from ZFS 0.8.1 back to 0.7.13 as default due to high occurrence of ZFS DNE failures.

            Oleg Drokin (green@whamcloud.com) merged in patch https://review.whamcloud.com/36137/
            Subject: LU-12336 build: Revert Update ZFS version to 0.8.1
            Project: fs/lustre-release
            Branch: master
            Current Patch Set:
            Commit: 98e19e1fd2b8e2cb4b626f531694e51fe26f1c2b

            gerrit Gerrit Updater added a comment - Oleg Drokin (green@whamcloud.com) merged in patch https://review.whamcloud.com/36137/ Subject: LU-12336 build: Revert Update ZFS version to 0.8.1 Project: fs/lustre-release Branch: master Current Patch Set: Commit: 98e19e1fd2b8e2cb4b626f531694e51fe26f1c2b

            James Nunez (jnunez@whamcloud.com) uploaded a new patch: https://review.whamcloud.com/36137
            Subject: LU-12336 build: revert ZFS version to 0.8.1
            Project: fs/lustre-release
            Branch: master
            Current Patch Set: 1
            Commit: 07db6f79833906a2c5eaf39816a6cdf80c36a751

            gerrit Gerrit Updater added a comment - James Nunez (jnunez@whamcloud.com) uploaded a new patch: https://review.whamcloud.com/36137 Subject: LU-12336 build: revert ZFS version to 0.8.1 Project: fs/lustre-release Branch: master Current Patch Set: 1 Commit: 07db6f79833906a2c5eaf39816a6cdf80c36a751

            People

              utopiabound Nathaniel Clark
              utopiabound Nathaniel Clark
              Votes:
              0 Vote for this issue
              Watchers:
              17 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: