web-dev-qa-db-ja.com

2つの別々のzpoolを同じ物理デバイスに存在させることはできますか?

短い:2つの別々のzpool間でディスクを共有できますか?

ロング:raidz2アレイが必要ですが、一度にすべてを購入する余裕はありません。私の考えられる解決策は、2台のドライブから始めることです。各ディスクの半分の容量だけを使用してミラーを作成します。より多くのドライブを購入できる場合は、新しいドライブと初期ディスクの50%の未使用領域を使用して、単一のraidz2vdevで新しいzpoolを作成します。次に、一方のzpoolからもう一方のzpoolにデータをコピーし、ミラーを含むzpoolを削除して、raidz2vdevでzpoolを拡張することを計画しています。

これは機能しますか?

リンクと参照をいただければ幸いです。

5
Alex
  1. はい、2つのパーティション間でミラーリングされたvdevで構成されるプールを作成できます。
  2. はい、それぞれが独自のパーティションを使用して1つのディスクを共有する2つのプールを持つことができます。
  3. はい、raid-z2 vdevのディスクのすべてのサイズを増やすと、使用可能な容量が増えます。

しかし、あなたはそれをすべきではありません。 ZFSは、ディスク全体を提供する場合に最適です。パーティションは「機能」しますが、ディスク全体を使用すると、世界ははるかに簡単になります。本当にミラーを実行したい場合-> raid-z2プールの移行を進めて、ミラーの50%の使用範囲内で生活する準備ができている場合は、別のアイデアがあります。

  1. 2つのディスクを購入する(例:2x2TB)
  2. ミラーリングされたzpoolを作成します:zpool create yourPool mirror cXt1d0 cXt2d0
  3. 同じサイズのディスクを3つ以上購入します。 (例:4x2TB)
  4. 新しいファイルシステムを作成します:zfs create yourPool/fake
  5. 2つのスパースファイルを作成します:mkfile -n 1TB /yourpool/fake/fakehda
  6. ダブルパリティzpoolを作成します:zpool create yourNewPool raidz2 cXt3d0 cXt4d0 cXt5d0 cXt6d0 /yourpool/fake/fakehda /yourpool/fake/fakehdb
  7. zfsは、ファイルシステムを1つのプールから別のプールに送信/受信します。
  8. ミラーから1つのディスクを取り外しますzpool detach yourPool cXt1d0
  9. 偽のディスクを実際のディスクと交換しますzpool replace yourNewPool /yourpool/fake/fakehda cXt1d0
  10. 再銀メッキが完了するのを待ちます。 zpool status yourNewPoolで進行状況を監視します。
  11. 再銀化が完了したら、ミラーを殺しますzpool destroy yourPool
  12. 2番目の古いディスクを再利用しますzpool replace yourNewPool /yourpool/fake/fakehda cXt2d0

このプロセス全体で、データを失うことなく、単一のディスクに障害が発生しても生き残ることができます。

6
notpeter