web-dev-qa-db-ja.com

ZFS:将来のドライブ追加の準備

Solaris NASシステムを構築しようとしています。現在、2つのドライブがあり、後日さらに2つ追加する予定です(2TBのエンタープライズレベルのHDDは少し高価です!)。

将来拡張したいということを念頭に置いて、これらのドライブをセットアップするための最適な構成は何ですか?

ドライブをミラーリングしてから、なんとかしてraidzに変換することを考えていましたか?

最大4台のドライブのみで、残りの2台は後で購入されます。

何か案は?

7
Snowpoch

ミラーリングはここに行く方法です。ミラーリングされたペアを簡単に追加して、既存のボリュームを拡張できます。ダウンタイムやトリックはありません。ディスクを追加するだけで、すぐに使用できます。 RAIDZで4x2TBの6TBが本当に必要でない限り、ミラーリングされた4x2TBの4TBの方が適しています。ミラーリングには、CPUオーバーヘッドが削減され、パフォーマンスが向上し、障害が発生した場合の回復が容易になるという利点もあります。

しかし、人々がEdgeに住み、数ドル節約することを好むので、データを2ドライブミラーから4ドライブraidzセットアップに移行する方法を次に示します。

  • 2ドライブミラーを作成しますzpool create mirror cXt1d0 cXt2d0 yourPool
  • ドライブにデータを入力してください
  • ドライブ3、4を購入する(ドライブ1、2と同じサイズ)
  • 深呼吸してください、あなたはあなたが安いので冗長性を忘れようとしています。
  • ドライブ2を取り外してミラーを壊します:zpool detach cXt2d0 yourPool
  • ドライブと同じサイズのスパースファイルを作成します。mkfile -n 500GB /path/file.img
  • ドライブ2、3、4とスパースファイルを使用して、4ドライブのraidzプールを作成します。zpool create raidz cXt2d0 cXt3d0 cXt4d0 /path/file.img newPool
  • スパースファイルをデタッチして、raidz配列を劣化させます。zpool detach /path/file.img newPool
  • Zfs send/zfs recv(または単にrsync/cp it)を使用してyourPoolからnewPoolにデータをコピーします
  • 元のミラーリングされたプールを破棄します:zpool destroy yourPool
  • Drive1をraidzプールに接続します:zpool attach cXt1d0 newPool
  • ZFSがドライブを再シルバー化するのを待ちます(数時間かかります。ステータス%が移動しないことに騙されないでください。バグがあります。ただ、グラインドさせてください)。
  • その深呼吸を吐き出すと、再び冗長なプールができます。
6
notpeter

それをraidzとして設定し、最後のドライブとしてスパースファイルを作成/使用し、そのファイルをすぐにオフラインにして、ドライブを取得したら、スパースファイルを新しいドライブに置き換えて、実際にはraidzになるようにすることもできます。オフラインのスパースファイルをドライブに置き換えた後、zfs線形スパンに変換します。

同等性はありませんが、スクラブや自動修復機能など、ZFSのほとんどの機能をオンラインで利用できます。

0
Brian Thomas

コンテンツをバックアップしてzpoolを再作成したいのでなければ、これはできないと思います。 2台のデバイスでraidzプールを作成することはできますが、後で4台のドライブでraidzに拡張することはできません。最初の2つのドライブでミラーを作成し、次の2つのドライブでプールに2番目のミラーを追加することができますが、これでは必要なスペースが得られません。

0
Mark