FreeNASのデータディスクの増設・サイズ変更(拡張)メモ
環境
- FreeNAS 11.2 Stable
- Hyper-V on Windows Server 2019
1 | 2022/03/11 追記 |
目的
VM で FreeNAS を動かしているので、できるだけ再起動なしで増設・サイズ変更を認識させる。
本項では、以下の 3 パターンについて扱う
- ディスク増設
- ディスク容量変更(パーティションあり時。Web UI で作った場合はこちら)
- ディスク容量変更(ディスク全体を使用時。zfs プールをコマンドラインで作成した場合)
ディスク増設
Web 画面の shell から、以下のコマンドを叩くだけ。
これで disk 一覧に追加したディスクが表示される。
なお、ZFS プールを作るのであればディスク全体を使用した方が後々楽です。(蛇足 1 参照)
1 | camcontrol rescan all |
ディスク容量変更(パーティションありの場合)
FreeNAS の Web UI から作ったプールの場合はこの手順です。
zpool コマンドを直接叩いて、ディスク全体をプールにした場合は別の手順です。しばらく下まで飛ばして下さい。
ディスク容量の変更を OS に認識させる
1 | # diskinfo -v /dev/da1 # 実行前の容量確認 |
これで、容量が 表示 できる。これで新しい容量が見えるはず。
da4 の部分は、 /dev/da4 の/dev/を省略したもの。
1 | camcontrol reprobe da4 |
zfs パーティションのサイズ変更
必要であれば、zfs pool のサイズを変更します。 というより普通に Web からやっていれば必須です。
1 | # 容量確認 |
FreeNAS で zfs pool を作ると、パーティションを切って作っているようなので、パーティションサイズを拡張します。
1 | # gpart show da4 |
ZFS に容量変更を認識させる
先に書いておきますが、ここで容量が変更されても、Web 画面には反映されません。
どうやったら反映されるんでしょう。。実用上は問題ないはずですが、監視系に問題が起きるかもしれません。
追記: TrueNAS 12.0U6 ではWeb画面にも反映されるようになったようです。(手元の環境で確認)
zpool online する
この方法では、マウント解除は発生しません。
1 | # zpool status minio |
ここで容量が増えればそれで完了です。
(ダメな場合のみ) import/export する方法
注意: 一時的に ZFS pool がマウント解除されます。
1 | # zpool set autoexpand=on minio |
(念のため) マウントポイント確認
export/import した場合に限るかわかりませんが、マウントポイントが変更されてしまい共有として指定できなくなりました。
念のために確認します。
1 | # zfs get mountpoint minio |
ディスク容量変更(パーティションなしの場合)
自力で zpool コマンドを叩いて、ディスク全体を使用した場合の手順です。
ディスク容量の変化を認識させる
1 | # zpool list |
蛇足 1
FreeNAS の GUI から新しいディスクを追加して、pool を作成すると必ず Swap が 2GB ほど取られてしまうので、
十分な Swap or メモリが確保できているのであれば、Shell から自分で zpool コマンドを使って pool を作った方が
無駄がなくて良い。 手動で pool を作る → export →Web UI から import で OK。
ディスク全体を割り当てれば、コマンド 3 つでサイズ変更に対応できるので楽である。(swap 領域、使わないなら無駄になるし)
蛇足 2
調査したけど使わなかったコマンドです。
reopen
1 | # zpool status minio |
GPT パーティションにラベルを付ける
1 | # gpart modify -i 2 -l minio_ssd1 da4 |
蛇足の蛇足
このエラーが解決できずにハマりました。表示上/dev/ が省略されているので、
コマンドの引数でも省略可能だと思い込んでいた。というオチでした。
1 | # zpool online -e minio gptid/183-f2d5-11e9-82df-00155d001e61 |
捕捉
Proxmox VE 7.0 + TrueNAS 12.0U6 の環境では、VirtIOのディスクを拡張子した際に dmesg に以下の出力がされてリサイズがされたかのように思えるが、これはディスク全体のサイズが変わった。と言ってるだけのようで、パーティションは拡大されていない。
1 | GEOM_PART: ada1 was automatically resized. |