差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
zfs:zfs_tips [2016-03-11 16:21] 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のメリットを享受できないのだ。 | ||
行 49: | 行 51: | ||
==== 1デバイスのプールにミラー用のデバイスを追加する ==== | ==== 1デバイスのプールにミラー用のデバイスを追加する ==== | ||
< | < | ||
- | zpool attach | + | zpool attach |
</ | </ | ||
ada1p1が既存のデバイスで、ada2p1が追加するミラー用のデバイス。 | ada1p1が既存のデバイスで、ada2p1が追加するミラー用のデバイス。 | ||
行 55: | 行 57: | ||
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 | ||
+ | </ | ||