Get device name used in pool:
zpool status nvmpool
# resize /dev/nvme0n1p3 parted /dev/nvme0n1
resizepart 3 End ? [X.XGB]? quit
zpool online -e nvmpool nvme0n1p3
Shrinking of zpool is not possible, but trick with 2nd device (or even file) works:
attach
not add
zpool list rpool -v zpool offline rpool /dev/disk/by-id/SECOND-part3 zpool detach rpool /dev/disk/by-id/SECOND-part3
Resize /dev/disk/by-id/SECOND-part3
to smaller size.
zpool add rpool /dev/disk/by-id/SECOND-part3 zpool remove rpool /dev/disk/by-id/FIRST-part3
Sometimes ZFS refuse to remove device with 'out of space' error (but second device is capable to handle all data). To solve it, add more temporary devices to rpool
zfs create -V 64gb nvmpool/t1 zfs create -V 64gb nvmpool/t2 zpool add rpool /dev/zvol/nvmpool/t1 zpool add rpool /dev/zvol/nvmpool/t2
Resize /dev/disk/by-id/FIRST-part3
to smaller but equal to SECOND-part3 size.
zpool attach rpool /dev/disk/by-id/SECOND-part3 /dev/disk/by-id/FIRST-part3
zpool attach rpool /dev/dusk/by-id existing disk