差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
|
zfs:zfs_tips [2016-03-07 14:34] Decomo |
zfs:zfs_tips [2020-12-03 19:49] (現在) Decomo ↷ freebsd:zfs_tips から zfs:zfs_tips へページを移動しました。 |
||
|---|---|---|---|
| 行 7: | 行 7: | ||
| ==== Root on ZFS環境ではシステム用とデータ用でプールを分ける ==== | ==== Root on ZFS環境ではシステム用とデータ用でプールを分ける ==== | ||
| - | ブート領域も含めてZFSでFreeBSD環境を作ることを界隈ではRoot on ZFSと呼んだりする。この時、例え物理ストレージが1台だけだとしても、システムとデータでパーティションを分け、それぞれ別のプールにした方が良い。 | + | ブート領域も含めてZFS上にFreeBSD環境を作ることを、界隈ではRoot on ZFSと呼んだりする。この時、例え物理ストレージが1台だけだとしても、システムとデータでパーティションを分け、それぞれ別のプールにした方が良い。 |
| なぜならば、システムが入っているプール、すなわちルートプールは以下の様な制限があるからだ。 | なぜならば、システムが入っているプール、すなわちルートプールは以下の様な制限があるからだ。 | ||
| 行 13: | 行 13: | ||
| * 単一またはミラー構成しかサポートしない | * 単一またはミラー構成しかサポートしない | ||
| * 複数のvdevを持てない | * 複数のvdevを持てない | ||
| - | | + | |
| + | |||
| + | 要するに、運用状況に応じて後からどうにかできる、というZFSのメリットを享受できないのだ。 | ||
| 行 22: | 行 24: | ||
| zpool import -R / | zpool import -R / | ||
| </ | </ | ||
| + | |||
| ==== zpool.cacheの場所を指定してプールをインポートする ==== | ==== zpool.cacheの場所を指定してプールをインポートする ==== | ||
| < | < | ||
| 行 27: | 行 30: | ||
| </ | </ | ||
| -Rと合わせてRoot on ZFSなFreeBSDに便利 | -Rと合わせてRoot on ZFSなFreeBSDに便利 | ||
| + | |||
| + | ==== プールの名前を変更する ==== | ||
| + | |||
| + | 一旦エクスポートして新名称を与えてインポートする手順を踏む。 | ||
| + | < | ||
| + | zpool export ztank | ||
| + | zpool import ztank ztank_new_name | ||
| + | </ | ||
| ==== Unicode正規化方式を指定してFSを作成 ==== | ==== Unicode正規化方式を指定してFSを作成 ==== | ||
| 行 40: | 行 51: | ||
| ==== 1デバイスのプールにミラー用のデバイスを追加する ==== | ==== 1デバイスのプールにミラー用のデバイスを追加する ==== | ||
| < | < | ||
| - | zpool attach | + | zpool attach |
| </ | </ | ||
| ada1p1が既存のデバイスで、ada2p1が追加するミラー用のデバイス。 | ada1p1が既存のデバイスで、ada2p1が追加するミラー用のデバイス。 | ||
| addと紛らわしいので注意。 | addと紛らわしいので注意。 | ||
| + | |||
| + | ==== ミラー用のデバイスを取り外す ==== | ||
| + | |||
| + | zpool detach ZTANK UUID または zpool detach ZTANK デバイス | ||
| + | < | ||
| + | # zpool status zhome2 | ||
| + | pool: zhome2 | ||
| + | | ||
| + | status: One or more devices could not be opened. | ||
| + | the pool to continue functioning in a degraded state. | ||
| + | action: Attach the missing device and online it using 'zpool online' | ||
| + | see: http:// | ||
| + | scan: resilvered 572G in 1h50m with 0 errors on Mon Aug 1 00:18:18 2016 | ||
| + | config: | ||
| + | |||
| + | NAME STATE READ WRITE CKSUM | ||
| + | zhome2 | ||
| + | mirror-0 | ||
| + | 15064995861805685088 | ||
| + | ada1p1 | ||
| + | ada2p1 | ||
| + | ada3p1 | ||
| + | |||
| + | # zpool detach zhome2 15064995861805685088 | ||
| + | # zpool detach zhome2 ada1p1 | ||
| + | # zpool status zhome2 | ||
| + | pool: zhome2 | ||
| + | | ||
| + | scan: none requested | ||
| + | config: | ||
| + | |||
| + | NAME STATE READ WRITE CKSUM | ||
| + | zhome2 | ||
| + | mirror-0 | ||
| + | ada2p1 | ||
| + | ada3p1 | ||
| + | |||
| + | </ | ||
| + | |||
| + | ==== UNAVAILなデバイスを置き換える ==== | ||
| + | |||
| + | zpool replace ZTANK UNAVAILデバイスのUUID 新しいデバイスのID | ||
| + | < | ||
| + | # zpool status | ||
| + | pool: zdata | ||
| + | | ||
| + | status: One or more devices could not be opened. | ||
| + | the pool to continue functioning in a degraded state. | ||
| + | action: Attach the missing device and online it using 'zpool online' | ||
| + | see: http:// | ||
| + | scan: resilvered 589G in 1h0m with 0 errors on Sun Apr 29 00:02:27 2018 | ||
| + | config: | ||
| + | |||
| + | NAME STATE READ WRITE CKSUM | ||
| + | zdata | ||
| + | raidz2-0 | ||
| + | ada0p1 | ||
| + | ada1p1 | ||
| + | 13314283577528650983 | ||
| + | 1814680760048993662 | ||
| + | logs | ||
| + | ada4p5 | ||
| + | cache | ||
| + | ada4p4 | ||
| + | |||
| + | errors: No known data errors | ||
| + | |||
| + | # zpool replace zdata 13314283577528650983 ada2p1 | ||
| + | # zpool replace zdata 1814680760048993662 ada3p1 | ||
| + | # zpool status | ||
| + | pool: zdata | ||
| + | | ||
| + | status: One or more devices is currently being resilvered. | ||
| + | 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 | ||
| + | raidz2-0 | ||
| + | ada0p1 | ||
| + | ada1p1 | ||
| + | replacing-2 | ||
| + | 13314283577528650983 | ||
| + | ada2p1 | ||
| + | replacing-3 | ||
| + | 1814680760048993662 | ||
| + | ada3p1 | ||
| + | logs | ||
| + | ada4p5 | ||
| + | cache | ||
| + | ada4p4 | ||
| + | |||
| + | errors: No known data errors | ||
| + | </ | ||
| + | |||
| + | ==== ZILを外す ==== | ||
| + | < | ||
| + | zpool remove POOOLNAME ada0p0 | ||
| + | </ | ||
| + | ミラーにしてる時は順次デバイスをdetachし、最後の1つをremoveする。 | ||
| + | < | ||
| + | zpool detach POOLNAME ada0p0 | ||
| + | zpool detach POOLNAME ada1p0 | ||
| + | ... | ||
| + | zpool remove POOLNAME adaXp0 | ||
| + | </ | ||
| + | |||
| + | ===== gpartコマンド例集 ===== | ||
| + | |||
| + | ZFSと一緒に使う事が多いので、gpartコマンド例も一緒にまとめておく。 | ||
| + | |||
| + | ==== GPTでパーティションテーブルを初期化 ==== | ||
| + | |||
| + | < | ||
| + | gpart create -s gpt adaX | ||
| + | </ | ||
| + | |||
| + | ==== パーティションテーブルを削除 ==== | ||
| + | |||
| + | < | ||
| + | gpart destroy adaX | ||
| + | </ | ||
| + | |||
| + | この時、パーティションテーブルが空じゃないと'' | ||
| + | |||
| + | ==== パーティションの追加 ==== | ||
| + | |||
| + | < | ||
| + | gpart add -a 4k -s SIZE -t freebsd-zfs adaX | ||
| + | </ | ||
| + | |||