Řešení 1:
Používám ZFS na Ubuntu 16.04 a po mnoha pokusech a omylech to fungovalo pro rozšíření velikosti disku a fondu bez restartu. Můj systém je hostován v cloudu u společnosti Profitbricks a používá disky libvirt (nikoli SCSI).
Získejte podrobnosti o fondu a zařízení:
# 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 -
Aktivujte automatické rozbalení:
# zpool set autoexpand=on pool
Nyní se přihlaste k ovládacímu panelu Profitbricks a zvyšte velikost disku ze 40 GB na 50 GB.
Upozornit systém na změnu velikosti disku a rozšířit fond:
# 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 -
Nevím proč, ale někdy je nutné spustit partprobe
a/nebo zpool online -e pool vdb
dvakrát, aby se změny projevily.
Řešení 2:
Na fórech freebsd jsem četl příspěvek, který navrhoval použít zpool online -e <pool> <vdev>
(aniž byste museli nejprve offline vdev)
Toto bylo nakonec řešení, ale vyžadovalo to nejprve deaktivovat automatické rozpínání 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 -
Pomocí zpool set autoexpand=off
následuje zpool online -e
bylo vyžadováno, aby se zpool rozšířil za mě pomocí ZFS na linuxu (v jádře, bez použití FUSE)