私は、かわいらしい小さなHP ProLiantMicroServer上にFreeNASリグを構築しました。
ストレージに関しては、RAIDZ1を使用して3ディスクのZFSプールを作成しました。 FreeNASに慣れながら、3つの小さなディスクから始めましたが、最終的には自宅のNASをそれに置き換えることにしました。
そこで、新しい2つのTBディスクを購入し、各ディスクを一度に1つずつ大きなディスクに交換し、交換するたびにプールを再シルバー化しました。
GUIを介して作成された元のプールは、GPTID参照を使用していました。 zpool status
は、次のようなものを表示します。
pool: vol2
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
vol2 ONLINE 0 0 0
gptid/96857d85-6c2f-11e3-9387-78acc0f794bd ONLINE 0 0 0
プール内のディスクをzpool replace
に置き換えると、代わりにGEOM名(adaN)を使用することになりました。正直なところ、この方法の方がはるかに簡単で直感的であることがわかりました。
ただし、GEOM名を使用してディスクを参照すると、再起動時にドライブのラベルが再作成され、 ZFSが混乱する 、プロセスでZFSプールが破損する可能性があるようです。
私は、各ディスクを「オフライン」にして、GPTIDを使用してzpool replace
に置き換えることができると考えました。これは、再シルバーリングが必要であると想定しているため、データの実行中にデータが危険にさらされます。
ただし、「ada」ディスクのGPTIDが見つからないようです。 ls /dev/gptid
は、4番目の、現在使用されていないディスクを一覧表示します。 glabel list
は同じディスク/ GPTIDとさまざまなFreeNASパーティションを返します。
glabel list
が名前を返す前に、何かをする必要がありますか?ありがとう!
•参照されているGEOM名をGPTIDに置き換えることには実際に意味がありますか?
GEOM名はコントローラスロットから生成されるため、ディスクのコネクタを交換すると、それらのGEOM名も交換されます。 GPTID名はディスクのシリアル番号に基づいており、どこでも同じです。
•新しいディスクのGPTIDが表示されないのはなぜですか。 GPTIDが割り当てられ、glabelリストがそれらの名前を返す前に何かをする必要がありますか?
ディスクが1つのID(この場合はzpoolのGEOM)によって使用されると、他のID(GPTIDを含む)がブロックされます。したがって、ディスクをzpoolから切り離すか、単にオフラインにすると、/ dev/gptidにgptidがないように見えます。
•再銀メッキを伴わない、より安全な方法はありますか?
唯一の方法は、ディスクを切り離して、別の名前でプールに再度接続することです。再シルバー化は、ミラーの検証と同期のプロセスにすぎないため、想像できるほど危険ではありません。同期していないデータのみがコピーされるため、ディスクの取り外しと再接続の間に変更が加えられるリスクがあります。
ZFSは、データの有効性を目標として設計されています。破損したデータは配信されませんが、正しいデータを生成できない場合は配信されません(構成可能なデフォルトの動作)。プールディスクを移動しても、ZFSが検出できる限り、混乱することはありません。 このリンク 、(一部ドイツ語)は非常に役立ちます。これは不完全なヒントにすぎません。そのように考えてください。