zfs:zfs_tips

差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

次のリビジョン
前のリビジョン
zfs:zfs_tips [2016-03-07 10:30]
Decomo Page name changed from freebsd:zfsメモ to freebsd:zfs_tips
zfs:zfs_tips [2020-12-03 19:49] (現在)
Decomo ↷ freebsd:zfs_tips から zfs:zfs_tips へページを移動しました。
行 1: 行 1:
-====== ZFSメモ ======+====== ZFS Tips ====== 
 + 
 +ZFSを使い始めて早6年、自分なりにノウハウもたまってきたので纏めてみる。尚、FreeBSD自宅鯖のゆる~い環境での実績であり、ミッションクリティカルな環境では必ずしも適合しないと思われるので、そこんとこ承知の上で夜露死苦! 
 + 
 +===== あれこれ ===== 
 + 
 +==== Root on ZFS環境ではシステム用とデータ用でプールを分ける ==== 
 + 
 +ブート領域も含めてZFS上にFreeBSD環境を作ることを、界隈ではRoot on ZFSと呼んだりする。この時、例え物理ストレージが1台だけだとしても、システムとデータでパーティションを分け、それぞれ別のプールにした方が良い。 
 + 
 +なぜならば、システムが入っているプール、すなわちルートプールは以下の様な制限があるからだ。 
 + 
 +  * 単一またはミラー構成しかサポートしない 
 +  * 複数のvdevを持てない 
 +    * すなわちslogやL2ARCを持てない 
 + 
 +要するに、運用状況に応じて後からどうにかできる、というZFSのメリットを享受できないのだ。 
  
 ===== コマンド例集 ===== ===== コマンド例集 =====
行 7: 行 24:
 zpool import -R /path/to/mountroot poolname zpool import -R /path/to/mountroot poolname
 </code> </code>
 +
 ==== zpool.cacheの場所を指定してプールをインポートする ==== ==== zpool.cacheの場所を指定してプールをインポートする ====
 <code> <code>
行 12: 行 30:
 </code> </code>
 -Rと合わせてRoot on ZFSなFreeBSDに便利 -Rと合わせてRoot on ZFSなFreeBSDに便利
 +
 +==== プールの名前を変更する ====
 +
 +一旦エクスポートして新名称を与えてインポートする手順を踏む。
 +<code>
 +zpool export ztank
 +zpool import ztank ztank_new_name
 +</code>
  
 ==== Unicode正規化方式を指定してFSを作成 ==== ==== Unicode正規化方式を指定してFSを作成 ====
行 25: 行 51:
 ==== 1デバイスのプールにミラー用のデバイスを追加する ==== ==== 1デバイスのプールにミラー用のデバイスを追加する ====
 <code> <code>
-zpool attach poolname ada1p1 ada2p1+zpool attach POOLNAME ada1p1 ada2p1
 </code> </code>
 ada1p1が既存のデバイスで、ada2p1が追加するミラー用のデバイス。 ada1p1が既存のデバイスで、ada2p1が追加するミラー用のデバイス。
  
 addと紛らわしいので注意。 addと紛らわしいので注意。
 +
 +==== ミラー用のデバイスを取り外す ====
 +
 +zpool detach ZTANK UUID または zpool detach ZTANK デバイス
 +<code>
 +# 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
 +          mirror-0                DEGRADED             0
 +            15064995861805685088  UNAVAIL      0          was /dev/ada0p1
 +            ada1p1                ONLINE               
 +            ada2p1                ONLINE               0
 +            ada3p1                ONLINE               0
 +
 +# zpool detach zhome2 15064995861805685088
 +# zpool detach zhome2 ada1p1
 +# zpool status zhome2 
 +  pool: zhome2
 + state: ONLINE
 +  scan: none requested
 +config:
 +
 +        NAME                      STATE     READ WRITE CKSUM
 +        zhome2                    DEGRADED             0
 +          mirror-0                DEGRADED             0
 +            ada2p1                ONLINE               0
 +            ada3p1                ONLINE               0
 +
 +</code>
 +
 +==== UNAVAILなデバイスを置き換える ====
 +
 +zpool replace ZTANK UNAVAILデバイスのUUID 新しいデバイスのID
 +<code>
 +# zpool status
 +  pool: zdata
 + 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 589G in 1h0m with 0 errors on Sun Apr 29 00:02:27 2018
 +config:
 +
 + NAME                      STATE     READ WRITE CKSUM
 + zdata                     DEGRADED             0
 +   raidz2-0                DEGRADED             0
 +     ada0p1                ONLINE               0
 +     ada1p1                ONLINE               0
 +     13314283577528650983  UNAVAIL      0          was /dev/ada2p1
 +     1814680760048993662   UNAVAIL      0          was /dev/ada3p1
 + logs
 +   ada4p5                  ONLINE               0
 + cache
 +   ada4p4                  ONLINE               0
 +
 +errors: No known data errors
 +
 +# zpool replace zdata 13314283577528650983 ada2p1
 +# zpool replace zdata 1814680760048993662 ada3p1
 +# zpool status
 +  pool: zdata
 + state: DEGRADED
 +status: One or more devices is currently being resilvered.  The pool will
 + continue to function, possibly in a degraded state.
 +action: Wait for the resilver to complete.
 +  scan: resilver in progress since Sun Apr 29 09:24:43 2018
 +        26.5G scanned out of 1.19T at 343M/s, 0h59m to go
 +        12.8G resilvered, 2.18% done
 +config:
 +
 + NAME                        STATE     READ WRITE CKSUM
 + zdata                       DEGRADED             0
 +   raidz2-0                  DEGRADED             0
 +     ada0p1                  ONLINE               0
 +     ada1p1                  ONLINE               0
 +     replacing-2             UNAVAIL      0         0
 +       13314283577528650983  UNAVAIL      0          was /dev/ada2p1/old
 +       ada2p1                ONLINE                (resilvering)
 +     replacing-3             UNAVAIL      0         0
 +       1814680760048993662   UNAVAIL      0          was /dev/ada3p1/old
 +       ada3p1                ONLINE                (resilvering)
 + logs
 +   ada4p5                    ONLINE               0
 + cache
 +   ada4p4                    ONLINE               0
 +
 +errors: No known data errors
 +</code>
 +
 +==== ZILを外す ====
 +<code>
 +zpool remove POOOLNAME ada0p0
 +</code>
 +ミラーにしてる時は順次デバイスをdetachし、最後の1つをremoveする。
 +<code>
 +zpool detach POOLNAME ada0p0
 +zpool detach POOLNAME ada1p0
 +...
 +zpool remove POOLNAME adaXp0
 +</code>
 +
 +===== gpartコマンド例集 =====
 +
 +ZFSと一緒に使う事が多いので、gpartコマンド例も一緒にまとめておく。
 +
 +==== GPTでパーティションテーブルを初期化 ====
 +
 +<code>
 +gpart create -s gpt adaX
 +</code>
 +
 +==== パーティションテーブルを削除 ====
 +
 +<code>
 +gpart destroy adaX
 +</code>
 +
 +この時、パーティションテーブルが空じゃないと''gpart: Device busy''と怒られる。大抵パーティションテーブルには何かしら書かれてる事多いので、殆どの場合でこのメッセージを見る事になる。その時は''-F''オプションで強制的に削除する。
 +
 +==== パーティションの追加 ====
 +
 +<code>
 +gpart add -a 4k -s SIZE -t freebsd-zfs adaX
 +</code>
 +
  • zfs/zfs_tips.1457314248.txt.gz
  • 最終更新: 2016-03-07 10:30
  • by Decomo