差分
このページの2つのバージョン間の差分を表示します。
— |
blog:2019:2019-07-15 [2019-07-15 19:06] (現在) Decomo 作成 |
||
---|---|---|---|
行 1: | 行 1: | ||
+ | ====== FreeBSDのZFSでミラープールにUSB接続のHDDを追加する ====== | ||
+ | FreeBSD 12.0-RELEASEのZFSのミラープールにUSB接続のHDDをアタッチしてみた。USB接続だろうと何だろうと、いつもの手順でzpool attachすれば行けるはずだけど、実のところ今までやったことが無かった。/ | ||
+ | |||
+ | まずは対象のミラープール(zhome)の確認。 | ||
+ | |||
+ | < | ||
+ | $ zpool status zhome | ||
+ | pool: zhome | ||
+ | | ||
+ | status: Some supported features are not enabled on the pool. The pool can | ||
+ | still be used, but some features are unavailable. | ||
+ | action: Enable all features using 'zpool upgrade' | ||
+ | the pool may no longer be accessible by software that does not support | ||
+ | the features. See zpool-features(7) for details. | ||
+ | scan: resilvered 0 in 0 days 00:12:00 with 0 errors on Thu Nov 22 00:25:49 2018 | ||
+ | config: | ||
+ | |||
+ | NAME STATE READ WRITE CKSUM | ||
+ | zhome | ||
+ | mirror-0 | ||
+ | ada7p1 | ||
+ | ada8p1 | ||
+ | logs | ||
+ | mirror-1 | ||
+ | ada5p4 | ||
+ | ada6p4 | ||
+ | cache | ||
+ | ada5p8 | ||
+ | </ | ||
+ | |||
+ | ada7p1とada8p1でミラー構成になっていることが分かる。 | ||
+ | |||
+ | お次にcamcontrolで対象のHDDを確認。 | ||
+ | |||
+ | < | ||
+ | # camcontrol devlist | ||
+ | <TOSHIBA MQ03ABB300 JP050U> | ||
+ | <WD Elements 25A3 1021> | ||
+ | <WD Elements 25A3 1021> | ||
+ | </ | ||
+ | |||
+ | 必要なHDDのみ抜粋したため番号が飛んでいるが、ada7がプールを構成する2.5インチHDDの1つで、da0/ | ||
+ | |||
+ | da0/ | ||
+ | |||
+ | 8TBのHDDを用意したので、gpartでてきとーにda0のパーティションを切り、da1にそのままコピーする。 | ||
+ | |||
+ | < | ||
+ | # gpart create -s gpt da0 | ||
+ | # gpart add > gpart add -a 4k -t freebsd-zfs -s 15620000000 da0 | ||
+ | da0p1 added | ||
+ | $ gpart show da0 | ||
+ | => | ||
+ | | ||
+ | 15620000040 | ||
+ | |||
+ | # gpart backup da0 | gpart restore da1 | ||
+ | $ gpart show da1 | ||
+ | => | ||
+ | | ||
+ | 15620000040 | ||
+ | </ | ||
+ | |||
+ | そして、いつも通りzpool attachする。コマンドが返ってくるまで結構時間が掛かって不安になるけど、強い心で待つ。 | ||
+ | |||
+ | < | ||
+ | # zpool attach zhome ada7p1 da0p1 | ||
+ | # zpool attach zhome ada7p1 da1p1 | ||
+ | </ | ||
+ | |||
+ | あとはプールのresilveringが終わるのを待つだけ、何だけれども、今回初めての現象に遭遇した。 | ||
+ | |||
+ | デバイスをアタッチ後、zpool iostatで読み書きの状況を見ていたら、どういうわけか2MB/ | ||
+ | |||
+ | < | ||
+ | | ||
+ | pool alloc | ||
+ | ---------- | ||
+ | zhome | ||
+ | mirror | ||
+ | ada7p1 | ||
+ | ada8p1 | ||
+ | da0p1 | ||
+ | da1p1 | ||
+ | logs - - - - - - | ||
+ | mirror | ||
+ | ada5p4 | ||
+ | ada6p4 | ||
+ | cache | ||
+ | ada5p8 | ||
+ | ---------- | ||
+ | </ | ||
+ | |||
+ | ミラーの片割れを物理的に取り外し、新しいHDDを取り付けてzpool replaceするいつもの方法、すなわちワザとプールをデグレさせて新しいHDDでミラーを復旧させる良い子のみんなは真似しちゃダメな方法だと直ぐにresilveringが走っていたのだけど…。 | ||
+ | |||
+ | 暫く観察してたところ、どうやらresilveringの前にプールの全走査?をしているっぽい? | ||
+ | |||
+ | < | ||
+ | $ zpool status zhome | ||
+ | pool: zhome | ||
+ | | ||
+ | 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 Jul 14 08:38:19 2019 | ||
+ | 355G scanned at 1.08G/s, 1.25M issued at 3.89K/s, 2.26T total ★←ここ | ||
+ | 0 resilvered, 0.00% done, no estimated completion time | ||
+ | config: | ||
+ | |||
+ | NAME STATE READ WRITE CKSUM | ||
+ | zhome | ||
+ | mirror-0 | ||
+ | ada7p1 | ||
+ | (略) | ||
+ | </ | ||
+ | |||
+ | 上記ログを見て分かる通り、1.08G/ | ||
+ | |||
+ | とりあえず「355G scanned at 1.08G/ | ||
+ | |||
+ | < | ||
+ | $ zpool status zhome | ||
+ | pool: zhome | ||
+ | | ||
+ | scan: resilvered 4.51T in 0 days 07:07:33 with 0 errors on Sun Jul 14 15:45:52 2019 | ||
+ | config: | ||
+ | |||
+ | NAME STATE READ WRITE CKSUM | ||
+ | zhome | ||
+ | mirror-0 | ||
+ | ada7p1 | ||
+ | ada8p1 | ||
+ | da0p1 | ||
+ | da1p1 | ||
+ | logs | ||
+ | mirror-1 | ||
+ | ada5p4 | ||
+ | ada6p4 | ||
+ | cache | ||
+ | ada5p8 | ||
+ | |||
+ | errors: No known data errors | ||
+ | </ | ||
+ | |||
+ | 終わってみれば94MB/ | ||
+ | |||
+ | というわけで、SATAとUSBのHDDを混在させても問題なくZFSミラー構成が取れるという事が分かった。まぁ、当然ですけど。 |