web-dev-qa-db-ja.com

家に最適なZFSプール構成NAS

映画(Plex Media Serverを使用)、写真、バックアップを保存するために使用する自宅のNASをアップグレードしたいと考えています。

現在、raidz1プールに5つの3TBディスクがあります。

SATAポートの数に制限がありましたが、8ポートコントローラーを購入したことで、SATAポートの数が14に制限されました。 (システムの場合は-1、つまり13ポート)。

このサーバーを数年間維持するつもりなので、パフォーマンスが高く、将来的に互換性のある方法でサーバーを作成したかったので、書き込みと読み取りのパフォーマンスを向上させるために、SSDを使用してZILとL2ARCを保存することをお勧めします。

ZILの場合、数GBで十分だと読みましたが、ミラーリングすることをお勧めします。

だから、これは私が考えたセットアップです:

  • 1システムSSD
  • 11ストレージディスク(raidz2)
  • ZIL/L2ARC用にスライスされた2つのSSD(ZILをミラーリングし、キャッシュ用に他の2つのスライスを追加)

スライスされたSSDの私の理由は次のとおりです。

  • これまでで最速のシステムは必要ないので、IOを共有するZILとL2ARCのトレードオフを受け入れることができます
  • 私はまだZILをミラーリングする利点があるので、クラッシュした場合でも安全である必要があります

ストレージディスクは現在3TBドライブであり、私が理解しているように、プールの合計サイズは(numberOfDisks-2)*sizeOfSmallestDiskです。つまり、(11-2)* 3TB = 27TB

だから、私の質問は:

  • この設定はバランスが取れていますか?
  • ログとキャッシュのためにSSDをスライスすることは可能ですか?
  • プールサイズの計算式は正しいですか?
  • ディスクを1つずつ大きなディスクに交換し、すべてが更新されたらプールを拡大することはできますか?たとえば、ディスクを4TBのディスクに交換し、36TBのストレージを取得します
  • これはLinuxで正常に機能しますか?現在OpenIndianaを使用しており、Ubuntuサーバーに移行したいと考えています。

前もって感謝します。

私の主なインスピレーションの源:

2
Stéphane Goetz

あなたのポイントのほとんどは正しいので、私は残りに焦点を当てます:

  1. ZILにSLOGデバイスを使用すると、同期された書き込みが小さい場合にのみ役立ちます。そのため、仮想マシンをそのデバイスに保存する場合は必須であり、他のほとんどの家庭のユースケース、特にバックアップやストリーミングメディアではほとんど役に立ちません。後でいつでも追加および削除できるため、追加せずに開始し、必要な場合にのみ追加する必要があります。

  2. L2ARCは読み取りパフォーマンスを向上させることができますが、RAMよりも遅く、追加のRAMが必要であり、同じデータが読み取られる場合にのみ役立ちます。繰り返しますが、映画や音楽全体のストリーミングには適していませんが、頻繁にアクセスされる、または何百人ものユーザーがファイル共有にアクセスするWebサイトをホストします。大まかなルールは次のとおりです。まず、RAM(ボードによって異なりますが、32、64、128、または256 GB)おそらく)、L2ARCについて考えてください。

  3. 同じデバイス上のZILとL2ARCは、それらのニーズが直接反対しているため、通常はお勧めできません。

    • ZILは、小さなランダム同期用に常に書き込まれますIO(大きくてシーケンシャルIOはバイパスし、非同期IOまったく使用しません)、つまり、書き込みレイテンシが非常に低いSSD(Intelは、安価なコンシューマーSSDでもこの特性を指定する唯一のベンダーです)、許容可能な書き込みIOPS(ほぼすべてのSSDで十分です)が必要です。ここ)、および大量のTBWにより、SSDが毎年使い果たされて死ぬことはありません。サイズの場合、小規模なシステムでは通常10 GB未満で十分です。電源とSSDが同時に故障した場合のデータ損失を防ぐために、ミラーリングをお勧めします。
    • 一方、L2ARCは数倍大きくする必要があり(RAMによっては> 64 GBが一般的です)、書き込まれることはめったにありませんが、頻繁に読み取られるため、高い読み取りIOPS、許容可能な読み取り遅延が必要であり、TBWについてはそれほど気にしません。 。ミラーリングはキャッシュデバイスにすぎず、問題なく紛失して再作成できるため、ほとんどの場合、お金の無駄です。
  4. もちろん、単一のルートプールも可能ですが、それをミラーリングすると、頭痛の種を減らすことができます。通常はそれほどヒットしないので、2つの低速ディスクまたはUSBデバイス(各メインボードには内部にヘッダーとして少なくとも2つのUSBポートがあります)は家庭での使用には完全に問題なく、別の使用可能なディスクスロットを取得します。特にUPSなしで実行している場合、2つのrpoolデバイスが本当に安心します。

  5. プールのサイズは正しいですが、2x Z2(各6ディスク)または1x Z3(各12ディスク)のいずれかで12ディスクを選択することもできます。経験則として、Z1/2/3を使用する場合は、最初に使用可能なすべてのディスクスロットにデータを入力する必要があります。これは、ディスクサイズを1つずつアップグレードするのは簡単ですが、後でディスクを追加することはできないためです。

  6. Linuxについてはわかりませんが(正常に動作するはずです)、他のillumosベースのシステムを見たことがありますか? OmniOSは小さく、シンプルで安定しており、ニーズに合わせてカスタマイズできます(KVMおよびLXブランドのゾーンも含まれます)。SmartOSも同様ですが、ゾーン(コンテナー)に重点を置いているため、すべてのサービスを互いに独立して実行でき、Solarisで利用できないいくつかのサービスのこれらのゾーンでLinuxゲストを実行することもできます。DelphixとNexentaStore Community Editionもありますが、私はそれらをテストしていません。


私の個人的な提案:

  • 使い慣れたオペレーティングシステムを使用してください(Solarisの安定性が必要な場合は、OmniOSを試してください。仮想化が必要な場合は、SmartOSを試してください)。
  • USBディスク(USB3 HDDまたはSLCメモリ付きのUSB3スティック)でミラーリングされたrpoolを使用して、ディスク用のより多くのスロットを公開します
  • メインボードから6ポート、HBAカードから6ポートを使用すると、コントローラーを紛失してシステムが稼働し続ける可能性があります。
  • 将来的には、ニーズに応じて2つの空きポートをSLOGまたはL2ARCデバイスに使用できます。
  • レイアウト(12は非常に良い数値です。ほとんどのコントローラーは4または8ポートであるため、16が次に最適です):
    • 最大のパフォーマンスが必要な場合:両方のコントローラーにそれぞれ6x2ミラー
    • 最大の復元力が必要な場合:4x3ミラーまたは1x RAID Z3(12)または2x RAID Z2(6)
    • 最大スペースが必要な場合:1x RAID Z2(12)
  • 最大化RAM最初に、次に他の何か

コメントからのフォローアップ質問について:

システムに2つのミラーリングされたUSB3スティックを使用するというアイデアは好きですが、起動可能ですか?

USBスティックは基本的にUSBディスクと同じであるため、問題なく起動できます(非常に古いメインボードを除きますが、過去10年間のすべてが問題ないはずです)。 SmartOSやESXiなどの一部のシステムは、ベストプラクティスとして宣伝しています。

一方、(FreeNASのように)USBスティック用にカスタマイズされていないため、ディスクへの書き込みが頻繁に行われ、安価なスティックがかなり早く消耗するため、推奨されないものもあります(これが、多くのRaspberryPiが早期に失敗する理由です-Linuxシステム破壊不可能なHDDがあり、デジタルカメラのように頻繁に書き込まないように設計された5 EURのUSBスティックやSDカードはないと考えています)。

SLCスティック(または実際のSSD)を使用すると、これらの問題は発生しません。もちろん、それらはより高価で、16 GBスティックで約30〜40ユーロです(MachExtreme MX-ESは、このセクターで唯一価値のあるものです)。 SSDの方が安い場合もありますが(32GBの場合は30EUR)、USBアダプターが必要になり、より多くのスペースを占有します。ケースの外側ですばやくバックアップ/スワップしたり、内側でアクセス制御に使用したりできます(光沢のあるおもちゃが好きな子供がいる場合)。

ログ/キャッシュディスクは必要ないようですが、ディスクに14個すべてのポートを使用する必要がありますか?

あなたのニーズと予算に依存します。ミラーを使用する場合は、後でミラーを柔軟に追加できます。 RAID-Znを使用する場合は、簡単に追加できないため、プールを作成する前に最終的な量を設定します。一方、バックアップ(3.5インチドライブのスロットインキャディを使用など)や、ニーズが変化した場合のキャッシュの目的で、一部のポートを空けておきたい場合があります。柔軟性よりもスペースを重視するかどうかはあなた次第です。 (そしてそれはあなたのハードウェアがサポートする多くの拡張カードに依存します)。

2x7 RaidZ2のようなものが一緒に縞模様になっていますか?これを実行してコントローラーに障害が発生した場合、プールは失敗しますが、コントローラーを同じものと交換すると、再度実行されますか?

はい。すべてがソフトウェアで行われるため、別のコントローラーを使用しても機能します。各vdevが機能するように十分なディスクを追加するだけで、プールをオンラインに戻すことができます。

あなたの場合、8ポートコントローラーに障害が発生した場合、たとえば、これらのディスクのうち5つ(7〜2)をシステムに追加する必要があります(他の6つのディスクはまだ実行されているため、8つ目はとにかく消耗します)。 4ポートコントローラーと1つのUSBディスクを使用します(接続が基本的に無意味であることを示すために、お勧めしません)。

通常、コントローラーを同じモデルに交換するだけです。構成が問題なく機能し、パフォーマンスが十分であることがわかっているためです(コントローラーあたり8つのディスクがあるため、コントローラー自体の価格はとにかくかなり安いです。

これを行うと、プールの一部を他の部分に触れずに成長させることができますか?

Vdevを個別に拡張できますが、プール自体がオンラインである場合に限ります(つまり、コントローラーを交換し、エラーを再シルバー化した後)。 「アンバランス」に拡張すると、他のvdevが展開された場合、新しいブロックと変更されたブロックを除いて、データが後でリバランスされないことを考慮してください(コピーオンライトは読み取り時にデータを並べ替えません)。これはパフォーマンスのニーズには問題ないはずですが、完全を期すために言及したいと思います。

1
user121391