
私は小さくて素敵な HP ProLiant MicroServer 上に FreeNAS リグを構築しました。
ストレージに関しては、RAIDZ1 を使用して 3 ディスクの ZFS プールを作成しました。最初は 3 つの小さなディスクから始めて、FreeNAS に慣れていきましたが、最終的には自宅の NAS を FreeNAS に置き換えることにしました。
そこで、新しい 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名(アダN) を使用してください。正直に言うと、この方法の方がはるかに簡単で直感的だと感じました。
しかし、GEOM名を使用してディスクを参照すると、再起動時にドライブのラベルが再設定されるリスクがあるようです。混乱を招くZFSその過程で ZFS プールが破損する可能性があります。
各ディスクを「オフライン」にして、zpool replace
GPTID を使用して に置き換えることができると考えましたが、再シルバリングが必要になると想定されるため、その実行中はデータが危険にさらされます。
しかし、私の「ada」ディスクの GPTID が見つからないようです。ls /dev/gptid
現在使用されていない 4 番目のディスクのみがリストされます。glabel list
同じディスク/GPTID とさまざまな FreeNAS パーティションが返されます。
- 参照されている GEOM 名を GPTID に置き換えることに実際に意味はあるのでしょうか?
- 新しいディスクの GPTID が表示されないのはなぜですか? GPTID が割り当てられて
glabel list
名前が返される前に、何か操作を行う必要がありますか? - 再シルバー化を伴わない、より安全な方法はありますか?
ありがとう!
答え1
•参照されている GEOM 名を GPTID に置き換えることに実際に意味はあるのでしょうか?
GEOM 名はコントローラ スロットから生成されるため、ディスクのコネクタを交換すると GEOM 名も交換されます。GPTID 名はディスクのシリアル番号に基づいており、どこでも同じです。
• 新しいディスクの GPTID が表示されないのはなぜですか? GPTID が割り当てられ、glabel list がその名前を返す前に、何かを行う必要がありますか?
ディスクが 1 つの ID (この場合は zpool の GEOM) によって使用されている場合、他の ID (GPTID を含む) はブロックされます。そのため、ディスクを zpool から切り離すか、単にオフラインにすると、/dev/gptid に gptid が欠落していることが表示されます。
• 再銀化を伴わない、より安全な方法はありますか?
唯一の方法は、ディスクをデタッチして、別の名前でプールに再度アタッチすることです。再ミラーリングは、ミラーの検証と同期のプロセスにすぎないため、想像するほど危険ではありません。同期されていないデータのみをコピーするため、ディスクのデタッチと再アタッチの間に行われた変更のみが危険になります。
答え2
ZFS は、データの有効性という目標を念頭に設計されています。破損したデータは提供しませんが、正しいデータを生成できない場合は何も提供しません (設定可能なデフォルトの動作)。プール ディスクを移動しても、ZFS がそれらを見つけられる限り、ZFS が混乱することはありません。 このリンク、(一部ドイツ語)は非常に役立ちます。これは単なる不完全なヒントです - そのように考えてください。