7 Commits

Author SHA1 Message Date
Thomas Lamprecht 796e3f981f bump version to 2.1.7-pve1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-12-06 16:41:34 +01:00
Stoiko Ivanov b7feed7429 d/control: add libudev-dev and libaio-dev to build-depends
noticed by lintian on my system (after a new install)

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2022-12-06 16:39:35 +01:00
Stoiko Ivanov dceb3ed09f trim: clean up, fix
This does:
  * fix get_transp() on non-bash
  * re-indent of the code from #990745
  * fix terminology: it's pool
  * remove -e: I originally actually fixed -e,
    but it turns out literally every bit that could fail
    is already either || : or wasn't by accident (like in the #990745 code)
  * simplify get_transp() and explain why we do it instead of matching nvme path
  * use remove -L from the data we feed to lsblk, zpool w/o -L is measurably faster
  * pipe the devices into while read to match rest of code
  * use read -r in main loop
  * match the userprop with case/esac instead of if tree
  * shellcheck-clean the script

(cherry picked from debian-upstream[0]
commit 769a09407c6b65db981804a05a81ea63d004ebeb)

[0] https://salsa.debian.org/zfsonlinux-team/zfs
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2022-12-06 16:39:35 +01:00
Stoiko Ivanov 8e0b77bbc4 update zfs submodule to 2.1.7 and refresh patches
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2022-12-06 16:39:35 +01:00
Stoiko Ivanov 0b16d88d9c install zfs-load-key.service
following upstream shipping it as a symlnk to /dev/null (to mask it)

follows commit b18419d7068b7ebcaa6dfbee85263177feffa711 from
debian-upstream:
https://salsa.debian.org/zfsonlinux-team/zfs/

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2022-10-18 08:40:30 +02:00
Stoiko Ivanov 81fe4f0591 cherry-pick a few patches from zfs-2.1.7-staging
While checking the current state of 2.1.6 we noticed that there were
some changes in debian-upstream [0] resulting from a bug-report in
zfs-upstream [1].

Our packages should be unaffected (they do not ship the
init-scripts in the first place).
Since the issue was fixed by zfs-upstream already on the
zfs-2.1.7-staging branch we should include it as well as it might save
users, who somehow got debian-upstream's zfs-packages installed on PVE
some trouble.

The other 2 changes seem small and isolated enough so including them
as well.

[0] https://salsa.debian.org/zfsonlinux-team/zfs/-/commits/master
[1] https://github.com/openzfs/zfs/issues/14010

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2022-10-18 08:40:30 +02:00
Thomas Lamprecht b8330d8fb8 d/control: recommend bsd-mailx | mailutils for ZED
so that it actually can send out mail by default

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-10-17 13:44:58 +02:00
8 changed files with 46 additions and 46 deletions
+6
View File
@@ -1,3 +1,9 @@
zfs-linux (2.1.7-pve1) bullseye; urgency=medium
* update ZFS to 2.1.7
-- Proxmox Support Team <support@proxmox.com> Tue, 06 Dec 2022 16:41:31 +0100
zfs-linux (2.1.6-pve1) bullseye; urgency=medium
* update ZFS to 2.1.6
+3
View File
@@ -5,12 +5,14 @@ Maintainer: Proxmox Support Team <support@proxmox.com>
Build-Depends: abigail-tools,
debhelper-compat (= 12),
dh-python,
libaio-dev,
libblkid-dev,
libcurl4-openssl-dev | libcurl4-gnutls-dev,
libelf-dev,
libpam0g-dev,
libssl-dev | libssl1.0-dev,
libtool,
libudev-dev,
lsb-release,
python3-cffi,
python3-setuptools,
@@ -221,6 +223,7 @@ Architecture: linux-any
Depends: zfsutils-linux (>= ${binary:Version}),
${misc:Depends},
${shlibs:Depends}
Recommends: bsd-mailx | mailutils
Description: OpenZFS Event Daemon
OpenZFS is a storage platform that encompasses the functionality of
traditional filesystems and volume managers. It supports data checksums,
@@ -14,7 +14,7 @@ Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/etc/systemd/system/zfs-import-scan.service.in b/etc/systemd/system/zfs-import-scan.service.in
index d3c083f7e..b1c8c7b9d 100644
index 598ef501b..e4f3a70c1 100644
--- a/etc/systemd/system/zfs-import-scan.service.in
+++ b/etc/systemd/system/zfs-import-scan.service.in
@@ -13,7 +13,7 @@ ConditionPathIsDirectory=/sys/module/zfs
@@ -31,7 +31,7 @@ index e4056a92c..030611419 100644
enable zfs-mount.service
enable zfs-share.service
diff --git a/etc/systemd/system/Makefile.am b/etc/systemd/system/Makefile.am
index 5e65e1db4..8e6baeb68 100644
index 35f833de5..af3ae597c 100644
--- a/etc/systemd/system/Makefile.am
+++ b/etc/systemd/system/Makefile.am
@@ -7,6 +7,7 @@ systemdunit_DATA = \
@@ -26,7 +26,7 @@ Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2 files changed, 21 insertions(+), 21 deletions(-)
diff --git a/cmd/arc_summary/arc_summary3 b/cmd/arc_summary/arc_summary3
index 7b28012ed..fe6a6d9e2 100755
index 301c485b3..ac46f5843 100755
--- a/cmd/arc_summary/arc_summary3
+++ b/cmd/arc_summary/arc_summary3
@@ -617,13 +617,13 @@ def section_arc(kstats_dict):
+32 -42
View File
@@ -1,4 +1,4 @@
#!/bin/sh -eu
#!/bin/sh -u
# directly exit successfully when zfs module is not loaded
if ! [ -d /sys/module/zfs ]; then
@@ -14,66 +14,56 @@ get_property () {
# since they're not available on pools https://github.com/openzfs/zfs/pull/11680
# TODO: use zpool user-defined property when such feature is available.
pool="$1"
zfs get -H -o value "${PROPERTY_NAME}" "${pool}" 2>/dev/null || return 1
zfs get -H -o value "${PROPERTY_NAME}" "${pool}" 2>/dev/null
}
trim_if_not_already_trimming () {
pool="$1"
if ! zpool status "${pool}" | grep -q "trimming"; then
# Ignore errors (i.e. HDD pools),
# and continue with trimming other pools.
zpool trim "${pool}" || true
# This will error on HDD-only pools: doesn't matter
zpool trim "${pool}"
fi
}
# Walk up the kernel parent names:
# this will catch devices from LVM &a.
get_transp () {
local dev="$1"
local par_dev="$dev"
local pd
while true; do
pd=$(lsblk -dnr -o PKNAME "$par_dev")
if [ "$?" -ne 0 ]; then
return $?
fi
if [ -z "$pd" ]; then
break
else
par_dev="/dev/$pd"
fi
done
lsblk -dnr -o TRAN "$par_dev"
dev="$1"
while pd="$(lsblk -dnr -o PKNAME "$dev")"; do
if [ -z "$pd" ]; then
break
else
dev="/dev/$pd"
fi
done
lsblk -dnr -o TRAN "$dev"
}
zpool_is_nvme_only () {
zpool=$1
# get a list of devices attached to the specified zpool
for x in $(zpool list -vHPL "${zpool}" |\
awk -F'\t' '{if($2 ~ /^\/dev\//) print $2}'); do
if [ "$(get_transp $x)" != "nvme" ]; then
return 1
fi
done
pool_is_nvme_only () {
pool="$1"
# get a list of devices attached to the specified pool
zpool list -vHP "${pool}" | \
awk -F'\t' '$2 ~ "^/dev/" {print $2}' | \
while read -r dev
do
[ "$(get_transp "$dev")" = "nvme" ] || return
done
}
# TRIM all healthy pools that are not already trimming as per their configs.
zpool list -H -o health,name 2>&1 | \
awk -F'\t' '$1 == "ONLINE" {print $2}' | \
while read pool
while read -r pool
do
# read user-defined config
ret=$(get_property "${pool}")
if [ $? -ne 0 ] || [ "disable" = "${ret}" ]; then
:
elif [ "enable" = "${ret}" ]; then
trim_if_not_already_trimming "${pool}"
elif [ "-" = "${ret}" ] || [ "auto" = "${ret}" ]; then
if zpool_is_nvme_only "${pool}"; then
trim_if_not_already_trimming "${pool}"
fi
else
cat > /dev/stderr <<EOF
ret=$(get_property "${pool}") || continue
case "${ret}" in
disable);;
enable) trim_if_not_already_trimming "${pool}" ;;
-|auto) pool_is_nvme_only "${pool}" && trim_if_not_already_trimming "${pool}" ;;
*) cat > /dev/stderr <<EOF
$0: [WARNING] illegal value "${ret}" for property "${PROPERTY_NAME}" of ZFS dataset "${pool}".
$0: Acceptable choices for this property are: auto, enable, disable. The default is auto.
EOF
fi
esac
done
+1
View File
@@ -8,6 +8,7 @@ lib/systemd/system/zfs-import-scan.service
lib/systemd/system/zfs-import@.service
lib/systemd/system/zfs-import.target
lib/systemd/system/zfs-import.service
lib/systemd/system/zfs-load-key.service
lib/systemd/system/zfs-mount.service
lib/systemd/system/zfs-scrub-monthly@.timer
lib/systemd/system/zfs-scrub-weekly@.timer