ZFSとBSDを使用してファイルサーバーを構築することを計画しており、iSCSIを介して同じラック内の他のマシンに格納されているドライブを接続することでファイルサーバーをより拡張可能にしたいと考えていました(たとえば、1台のマシンでZFSを実行し、他のマシンでiSCSIを使用しています) ZFSボックスで接続してzpoolに追加できるターゲット)。
これを試した他の人を探すことで、ZFS上でiSCSI共有を公開することに関するリソースが得られましたが、その逆については何もわかりませんでした。主に次の質問があります。
容量に関しては、最初は約10 TBのデータ(冗長性は考慮されていません)であり、近い将来の合理的な目標は20 TBに拡張することです。したがって、冗長性を使用すると、おそらく合計ストレージの約40〜50TBになります。可能であれば、GELIを使用してすべてのデータを暗号化しておくことも必要です。
助けてくれてありがとう。
容量の観点からのあなたの目標は何ですか? ZFSはターゲットを確認し、それらをプールに集約できるため、これは間違いなく可能です。ただし、かなりのパフォーマンスと信頼性をテーブルに残しています。
スケーリングに関する私の推奨事項(容量のニーズと思われるもの)は、外部SASマルチパスケーブルドライブエンクロージャーとZFS対応コントローラーに投資することです。これが必要な状況である場合言うまでもなく、2TBのディスクで満たされたone 2外部エンクロージャーによって提供される24TBの使用可能なRAID1 + 0ストレージは、専門家による設計アドバイスの恩恵を受ける領域にあります。そのレベルでは、他のシステムに存在するディスクを使用するiSCSIは、処理を高速化しません。
ISCSI設計は、遅延、信頼性、およびサポート性の理由で失敗します。
イーサネット経由のiSCSIに関する質問については、iSCSIは最も高速なプロトコルです。これは基本的に、ワイヤーを介したストレートディスクブロックアクセスです。それはまともなギガビットNICを飽和させます。
ネットワーク上のターゲットの喪失に関して、(ほぼ)私が見たすべてのiSCSIターゲットの実装は、ある種のマルチパスをサポートしています。 open-ietdはまだマルチパスをサポートしていないかもしれないと思います。最悪の場合、ジャーナリングファイルシステムを使用しています。ターゲットがオンラインに戻ったときに、ジャーナルを再生する必要がある場合があります。ストレージサーバーをドロップすることで、iSCSIを介したファイルシステムをまだ破損していません。
注:私は実際にこれを行っていないので、塩を少し入れてこれを取ります。 ZFSについて読んでいるときにこれについて言及しているのを見ましたが、現在これらの参照を見つけることができません...
ZFSが物理レイアウトを完全に可視化できるように、各物理ディスクを個別のLUNとしてエクスポートする必要があります。これは、IOスケジューリングとレプリケーションについて正しい決定を下すために必要です。
この目的のためにiSCSIoverギガビットイーサネットは十分に高速ですか、それとも適切なパフォーマンスを得るには10GbEに切り替える必要がありますか?
これは、ディスクの速度、ディスクの数、および達成したいパフォーマンスによって異なります。 15k RPMディスクは、最大105MiB/s、つまり840Mbit/sを転送できます。単一のギガビットリンクを介してそのようなディスクに複数アクセスすると、リンクが飽和状態になり、ネットワークがボトルネックになります。使用するディスクの最大速度を見つけ、ディスクの数を掛けると、それをサポートするために必要なネットワーク帯域幅が得られます。
もちろん、これは、ZFSサーバーから可能な限り最大のパフォーマンスが必要であることを前提としています。 100Mbit/sを超えて接続されているクライアントが少数しかない場合、これは必要ないため、予想される最大需要を計算します。 RAIDZ1/2/3を使用している場合、そしてもちろん、サーバーが同じNICクライアントがサーバーにアクセスするときに、この帯域幅を共有する必要があります。
ISCSIターゲットを実行しているマシンの1つがネットワークから切断されると、どうなりますか?
ZFSは、ディスクが使用できなくなったと見なします。 RAID1/2/3を使用している場合、これによってクライアントへのサービスが中断されることはありません。ホットスペアを構成した場合、ZFSはデータの再同期を開始します。 iSCSIターゲットが戻ってきたら、イニシエーターが自動的に再接続すると想定して、ZFSはiSCSIターゲットの使用を再開する必要があります。 (これはテストする必要があります。)