Solution 1 :
J'exécute ZFS sur Ubuntu 16.04 et après de nombreux essais et erreurs, c'est ce qui a fonctionné pour étendre la taille du disque et du pool sans redémarrer. Mon système est hébergé dans le cloud chez Profitbricks et utilise des lecteurs libvirt (et non SCSI).
Obtenir les détails du pool et de l'appareil :
# 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 -
Activer l'expansion automatique :
# zpool set autoexpand=on pool
Connectez-vous maintenant au panneau de configuration de Profitbricks et augmentez la taille du disque de 40 Go à 50 Go.
Notifier le système du changement de taille de disque et étendre le 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 -
Je ne sais pas pourquoi, mais il est parfois nécessaire d'exécuter partprobe
et/ou zpool online -e pool vdb
deux fois afin d'appliquer les modifications.
Solution 2 :
J'ai lu sur les forums freebsd un post suggérant d'utiliser zpool online -e <pool> <vdev>
(sans avoir besoin de déconnecter d'abord le vdev)
C'était finalement la solution, mais il fallait d'abord que l'expansion automatique de ZFS soit désactivée :
[[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 -
Utilisation de zpool set autoexpand=off
suivi de zpool online -e
était nécessaire pour que le zpool se développe pour moi, en utilisant ZFS sur Linux (dans le noyau, sans utiliser FUSE)