Soluzione 1:
Sto eseguendo ZFS su Ubuntu 16.04 e dopo molte prove ed errori, questo è ciò che ha funzionato per espandere le dimensioni del disco e del pool senza riavviare. Il mio sistema è ospitato nel cloud presso Profitbricks e utilizza unità libvirt (non SCSI).
Ottieni i dettagli del pool e del dispositivo:
# zpool status -v
...
NAME STATE READ WRITE CKSUM
pool ONLINE 0 0 0
vdb ONLINE 0 0 0
# zpool list
NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
pool 39.8G 27.1G 12.7G - 49% 68% 1.00x ONLINE -
Attiva espansione automatica:
# zpool set autoexpand=on pool
Ora accedi al pannello di controllo di Profitbricks e aumenta la dimensione del disco da 40 GB a 50 GB.
Notifica al sistema la modifica della dimensione del disco ed espandi il pool:
# partprobe
Warning: Not all of the space available to /dev/vdb appears to be used,
you can fix the GPT to use all of the space (an extra 10485760 blocks) or
continue with the current setting?
# zpool online -e pool vdb
# partprobe
# zpool list
NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
pool 49.8G 27.1G 21.7G - 40% 55% 1.00x ONLINE -
Non sono sicuro del perché, ma a volte è necessario eseguire partprobe
e/o zpool online -e pool vdb
due volte per rendere effettive le modifiche.
Soluzione 2:
Ho letto sui forum di freebsd un post che suggeriva di usare zpool online -e <pool> <vdev>
(senza dover prima mettere offline il vdev)
Questa alla fine era la soluzione, ma era necessario prima disabilitare l'espansione automatica ZFS :
[[email protected] ~]# zpool list
NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT
dfbackup 214G 207G 7.49G 96% 1.00x ONLINE -
[[email protected] ~]# zpool get autoexpand
NAME PROPERTY VALUE SOURCE
dfbackup autoexpand on local
[[email protected] ~]# zpool set autoexpand=off dfbackup
[[email protected] ~]# zpool online -e dfbackup /dev/disk/by-id/virtio-sbs-XLPH83
[[email protected] ~]# zpool list
NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT
dfbackup 249G 207G 42.5G 82% 1.00x ONLINE -
Usando zpool set autoexpand=off
seguito da zpool online -e
era necessario per espandere zpool per me, usando ZFS su Linux (nel kernel, non usando FUSE)