解決策 1:
私はUbuntu 16.04でZFSを実行していますが、多くの試行錯誤の後、これが再起動せずにディスクとプールのサイズを拡張するために機能しました。私のシステムは Profitbricks のクラウドでホストされており、libvirt (SCSI ではなく) ドライブを使用しています。
プールとデバイスの詳細を取得:
# 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 -
自動拡張を有効にする:
# zpool set autoexpand=on pool
Profitbricks コントロール パネルにログインし、ディスク サイズを 40GB から 50GB に増やします。
システムにディスク サイズの変更を通知し、プールを拡張します:
# 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 -
理由はわかりませんが、 partprobe
を実行する必要がある場合があります および/または zpool online -e pool vdb
変更を有効にするために 2 回。
解決策 2:
zpool online -e <pool> <vdev>
の使用を提案する投稿を freebsd フォーラムで読みました。 (最初に vdev をオフラインにする必要はありません)
これが最終的な解決策でしたが、最初に ZFS autoexpand を無効にする必要がありました :
[[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 -
zpool set autoexpand=off
の使用 続いて zpool online -e
LinuxでZFSを使用してzpoolを拡張する必要がありました(FUSEを使用せずにカーネルで)