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 -

            Yes I think so

            pjones Peter Jones added a comment - Yes I think so

            Should this be closed due to being superseded by  LU-13178 ?

            ofaaland Olaf Faaland added a comment - Should this be closed due to being superseded by   LU-13178 ?

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

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

            ZFS 0.8.3 was released 2020-01-23

            utopiabound Nathaniel Clark added a comment - ZFS 0.8.3 was released 2020-01-23
            bzzz Alex Zhuravlev added a comment - - edited

            one interesting observation is that object destroy is way-way slower on ZFS, even with all debugging disabled - 5 times slower than ldiskfs's one.
            another interesting observation is how declarations are expensive, in sanity/60a again:

            decl create               520650 samples [usec] 6 283 3300193
            create                    29 samples [usec] 11 92 909
            decl write                4666640 samples [usec] 2 9796 14906209
            write                     6205641 samples [usec] 0 2562 1803711
            

            so for real write taking 0.3 usec we declared new potential llog object (each declaration taking 6.3 usec and write declaration itself taking 3.2 usec. overall time of writes is 10% of declaration time.. no jokes. and 29 real creates in the end.

            bzzz Alex Zhuravlev added a comment - - edited one interesting observation is that object destroy is way-way slower on ZFS, even with all debugging disabled - 5 times slower than ldiskfs's one. another interesting observation is how declarations are expensive, in sanity/60a again: decl create 520650 samples [usec] 6 283 3300193 create 29 samples [usec] 11 92 909 decl write 4666640 samples [usec] 2 9796 14906209 write 6205641 samples [usec] 0 2562 1803711 so for real write taking 0.3 usec we declared new potential llog object (each declaration taking 6.3 usec and write declaration itself taking 3.2 usec. overall time of writes is 10% of declaration time.. no jokes. and 29 real creates in the end.

            yes, on - DEBUG_SLAB and DEBUG_PAGEALLOC are enabled, off - disabled.

            bzzz Alex Zhuravlev added a comment - yes, on - DEBUG_SLAB and DEBUG_PAGEALLOC are enabled, off - disabled.
            ofaaland Olaf Faaland added a comment -

            Alex,

            Re: the graph with series labeled zfs/ldiskfs:on/off, what is on or off?  CONFIG_DEBUG_SLAB and CONFIG_DEBUG_PAGEALLOC?

            Thanks

            ofaaland Olaf Faaland added a comment - Alex, Re: the graph with series labeled zfs/ldiskfs:on/off, what is on or off?  CONFIG_DEBUG_SLAB and CONFIG_DEBUG_PAGEALLOC? Thanks
            ofaaland Olaf Faaland added a comment -

            thanks Alex

            ofaaland Olaf Faaland added a comment - thanks Alex
            bzzz Alex Zhuravlev added a comment - Peter, I looked at 5 reports mentioned in LU-11170 (from serial consoles): https://testing.whamcloud.com/test_sets/98efeea0-7f0b-11e8-8fe6-52540065bddc – v0.7.9-1 https://testing.whamcloud.com/test_sets/98efeea0-7f0b-11e8-8fe6-52540065bddc – same report https://testing.whamcloud.com/test_sets/8de6a208-8945-11e8-9028-52540065bddc – v0.7.9-1 https://testing.whamcloud.com/test_sets/9bb5e252-8e9c-11e8-b0aa-52540065bddc – v0.7.9-1 https://testing.whamcloud.com/test_sets/029c73ea-8e9e-11e8-87f3-52540065bddc – v0.7.9-1 then LU-12632 : https://testing.whamcloud.com/test_sets/d52265ac-d409-11e9-9fc9-52540065bddc – v0.8.1-1 https://testing.whamcloud.com/test_sets/c12d9bb2-f96f-11e9-b62b-52540065bddc – v0.7.13-1 https://testing.whamcloud.com/test_sets/a70981de-0fb2-11ea-bbc3-52540065bddc – v0.7.13-1 and LU-12572 : https://testing.whamcloud.com/test_sets/2894009c-b56f-11e9-b023-52540065bddc – v0.7.13-1 https://testing.whamcloud.com/test_sets/b04ecaf6-c953-11e9-97d5-52540065bddc – v0.8.1-1 https://testing.whamcloud.com/test_sets/19cb1252-90b8-11e9-abe3-52540065bddc – v0.7.13-1 https://testing.whamcloud.com/test_sets/f5ff99e2-9a1c-11e9-b26a-52540065bddc – v0.7.13-1 https://testing.whamcloud.com/test_sets/5e5172b4-c8e8-11e9-90ad-52540065bddc – v0.8.1-1 https://testing.whamcloud.com/test_sets/d66394cc-abc3-11e9-a0be-52540065bddc – v0.7.13-1 I will trigger additional testing with 0.8.2 to see how it's doing..
            bzzz Alex Zhuravlev added a comment - PR created https://github.com/zfsonlinux/zfs/pull/9836

            People

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

              Dates

                Created:
                Updated:
                Resolved: