zfs:zfs_tips

文書の過去の版を表示しています。


ZFS Tips

ZFSを使い始めて早6年、自分なりにノウハウもたまってきたので纏めてみる。尚、FreeBSD自宅鯖のゆる~い環境での実績であり、ミッションクリティカルな環境では必ずしも適合しないと思われるので、そこんとこ承知の上で夜露死苦!

ブート領域も含めてZFS上にFreeBSD環境を作ることを、界隈ではRoot on ZFSと呼んだりする。この時、例え物理ストレージが1台だけだとしても、システムとデータでパーティションを分け、それぞれ別のプールにした方が良い。

なぜならば、システムが入っているプール、すなわちルートプールは以下の様な制限があるからだ。

  • 単一またはミラー構成しかサポートしない
  • 複数のvdevを持てない
    • すなわちslogやL2ARCを持てない

要するに、運用状況に応じて後からどうにかできる、というZFSのメリットを享受できないのだ。

zpool import -R /path/to/mountroot poolname
zpool import -o cachefile=/path/to/writable/zpool.cache poolname

-Rと合わせてRoot on ZFSなFreeBSDに便利

一旦エクスポートして新名称を与えてインポートする手順を踏む。

zpool export ztank
zpool import ztank ztank_new_name
zfs create -o nomalization=type fsname
zdb -U /path/to/zpool.cache
zpool attach POOLNAME ada1p1 ada2p1

ada1p1が既存のデバイスで、ada2p1が追加するミラー用のデバイス。

addと紛らわしいので注意。

ZFSと一緒に使う事が多いので、gpartコマンド例も一緒にまとめておく。

gpart create -s gpt adaX
gpart destroy adaX

この時、パーティションテーブルが空じゃないとgpart: Device busyと怒られる。大抵パーティションテーブルには何かしら書かれてる事多いので、殆どの場合でこのメッセージを見る事になる。その時は-Fオプションで強制的に削除する。

gpart add -a 4k -s SIZE -t freebsd-zfs adaX
  • zfs/zfs_tips.1469862092.txt.gz
  • 最終更新: 2016-07-30 16:01
  • by Decomo