From dba32e417635359b1d68180b77193e1c9ddd1e8f Mon Sep 17 00:00:00 2001 From: Nathaniel Clark Date: Thu, 1 Aug 2019 12:53:47 -0400 Subject: [PATCH] LU-12336 build: Update ZFS version to 0.8.1 New Features 0.8.0 * 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. Changes for 0.8.1 * 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 * 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 * 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 * 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 Signed-off-by: Nathaniel Clark Change-Id: I32973aa5e553eba40abb27fb36461b02674efcd8 Reviewed-on: https://review.whamcloud.com/34951 Reviewed-by: Andreas Dilger Reviewed-by: James Simmons Tested-by: jenkins Tested-by: Maloo Reviewed-by: Oleg Drokin --- contrib/lbuild/lbuild | 4 ++-- lustre/ChangeLog | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/contrib/lbuild/lbuild b/contrib/lbuild/lbuild index 2d070098..813c419 100755 --- a/contrib/lbuild/lbuild +++ b/contrib/lbuild/lbuild @@ -1006,11 +1006,11 @@ build_spl_zfs() { # The spl/zfs spec files expect RPM_BUILD_ROOT to point to the root of the # destination for the rpms export RPM_BUILD_ROOT=$TOPDIR - SPLZFSVER=${SPLZFSVER:-0.7.13} + SPLZFSVER=${SPLZFSVER:-0.8.1} SPLZFSTAG=${SPLZFSTAG:-} # "spl zfs" prior to 0.8.0 # "zfs" for 0.8.0 and later - SPLZFSPKGS="spl zfs" + SPLZFSPKGS="zfs" # The files expect a kver to be set to the kernel version . local kver=$(find_linux_release) diff --git a/lustre/ChangeLog b/lustre/ChangeLog index d6f7bd7..4b0ab12 100644 --- a/lustre/ChangeLog +++ b/lustre/ChangeLog @@ -28,7 +28,7 @@ TBD Whamcloud 4.15.0-32 (Ubuntu 18.04) vanilla linux 4.15.0 (ZFS only) * Recommended e2fsprogs version: 1.45.2.wc1 or newer - * Recommended ZFS / SPL version: 0.7.13 + * Recommended ZFS version: 0.8.1 * NFS export disabled when stack size < 8192 (32-bit Lustre clients), since the NFSv4 export of Lustre filesystem with 4K stack may cause a stack overflow. For more information, please refer to bugzilla 17630. -- 1.8.3.1