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と紛らわしいので注意。

zpool detach ZTANK ada
$ zpool status zhome2
  pool: zhome2
 state: DEGRADED
status: One or more devices could not be opened.  Sufficient replicas exist for
        the pool to continue functioning in a degraded state.
action: Attach the missing device and online it using 'zpool online'.
   see: http://illumos.org/msg/ZFS-8000-2Q
  scan: resilvered 572G in 1h50m with 0 errors on Mon Aug  1 00:18:18 2016
config:

        NAME                      STATE     READ WRITE CKSUM
        zhome2                    DEGRADED     0     0     0
          mirror-0                DEGRADED     0     0     0
            15064995861805685088  UNAVAIL      0     0     0  was /dev/ada12p1
            3873376026971882544   UNAVAIL      0     0     0  was /dev/ada13p1
            ada13p1               ONLINE       0     0     0
            ada12p1               ONLINE       0     0     0
zpool remove POOOLNAME ada0p0

ミラーにしてる時は順次デバイスをdetachし、最後の1つをremoveする。

zpool detach POOLNAME ada0p0
zpool detach POOLNAME ada1p0
...
zpool remove POOLNAME adaXp0

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.1503545588.txt.gz
  • 最終更新: 2017-08-24 12:33
  • by Decomo