====== ZFS: resize zpool ======
===== extend pool =====
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
====== ZFS: shrink zpool ======
Shrinking of zpool is not possible, but trick with 2nd device (or even file) works:
* add 2nd device to zpool (can be smaller - only to fit data)
* remove 1st device - zpool will copy all data to another device.
* to create mirror, use ''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