web-dev-qa-db-ja.com

ZIL SLOGは本当に必要ですか?

私はSATASSDアレイ上でZFS(おそらくFreeNASを実行している)を使用する家庭/個人用のNASを構築しています。使用法に関しては、システムは「アイドル」であると予想します( ZFSのバックグラウンドのもの(スクラブなど)を数えないことが多く、パフォーマンスの主なボトルネックは1Gbイーサネットであると予想しています。

私は漠然とZILに精通していますが、SLOG /セカンダリZILストレージデバイスの使用について混乱しています。

システムはUPSに接続されるため、システムの電力が突然失われるよりも、カーネルパニックのようなことが発生する可能性が高くなります。とにかく、プールを食べない限り、壊滅的なイベントによって最後の数分間のデータが失われる可能性があることを特に気にする必要はありません。 (これはホームシステムであり、ミッションクリティカルではありません。)

特に、RAMにプライマリZILのみを含めることは可能ですか(そして、その「安全性」への影響はどうなりますか)?専用のSLOGデバイスがない場合、それは可能ですか? SLOGにストレージプールを使用せざるを得ないということですが、実際の影響(パフォーマンスと摩耗の両方)はどのようなものですか? 私がdo専用デバイスを必要とする場合、高性能のNVMe SSD(たとえば、適度なサイズのWD Black SN750)で十分ですか、それとも本当にIntel 900pに250ドルを費やす必要がありますか? (更新を参照)

私が見つけたもののほとんどは、「はい、250ドル900pは絶対に重要ですが、省略した場合の状況を説明していません。

更新:

したがって、私が読んだことのほとんどは、a)ZILをプライマリプールに置くことは恐ろしいことであり(パフォーマンスが半分になり、SSDの場合はさらに悪いことに、書き込みが2倍になります)、b)ZILが「必要」である主な理由は同期書き込みのレイテンシを削減します。私のプールはすべてSSDです(SATAですが、OTOH私のユーザーはすべて、せいぜい1Gb LANによってボトルネックになっています)。3つのオプションがあるようです。

  • SLOGを追加します。私の理解では、PLP以外のデバイスは役に立たないよりも悪い(少なくとも、従うべき他の2つのオプションよりも悪い)が、理論的には、最も安価なオプションのように思われるIntel900pで大丈夫だろう。
  • RAMのみのZILを使用します。 (基本的に、同期について嘘をつきます。)これは悪いように聞こえますが、AFAIUはプールの整合性に影響を与えません。私の使用法では、追加コストの価値があるかどうかはわかりません。 NASがオフラインであるという理由だけで、あらゆる種類の障害が発生すると、データが失われるリスクがあります。おそらく、問題が発生したことがすぐにわかり、次のような修正手順を実行できるようになります。いくつかの種類(たとえば、NASバックアップ)が得られるまで、一時的に他の場所に保存します)。
  • ZILは使用しないでください。すべての書き込みを強制的にディスクに直接送信します。これはRustの回転でパフォーマンスを低下させる可能性がありますが、ZILがすべてのSSDシステムでさえ役立つかどうかは明らかではありません。これは、回転で役立つ主な懸念事項Rust(低速ドライブ) 、シークレイテンシ)は適用されません。

オプション#2に関しては、「データの整合性はデータの整合性である」と人々が指摘するスレッドを見てきました...実際にはそれを除いてそうではありません。書き込みを試みたばかりのファイルを失うこと(そして、何かがうまくいかなかったことをすぐに知ること)と、手動でなんらかの方法で回復できる可能性が非常に高い場合と、数か月または数年前に作成されたファイルを失うことには、大きな違いがあります。一般に、これがどちらの方向にも進む可能性があることはわかりますが、私の場合は、アーカイブの整合性に関心があります。

3
Matthew

まず最初に:素晴らしい投稿、よく書かれ、徹底的に研究されています!あなたはすでに自分で多くの答えを見つけたので、それに少し考えを加えます。


私の提案:試してみてください。最小限の実行可能な構成(プールディスクのみ)を購入してセットアップし、それを使用して、十分に高速であるかどうかを確認します(VMを直接提供しない場合は「はい」でしょう)。

そうでない場合は、別のデバイスを追加します。プールを破壊することなく、好きなだけ追加(ミラーリング)できます。

特定のオールSSD設計が必要な理由も評価する必要があります。 GBあたりのコストが高くなり、ニーズのために無駄になる可能性があります(詳細については、この回答の最後の段落を参照してください)。一方、目標がスモールフォームファクターでの沈黙とシンプルさである場合、それは実行可能な代替手段になります。その場合、コストのために個別のログデバイスに個人的に投資することはありません(とにかくパフォーマンスは問題ありません)。


SLOGを追加します。私の理解では、PLP以外のデバイスは役に立たないよりも悪い(少なくとも、従うべき他の2つのオプションよりも悪い)が、理論的には、最も安価なオプションのように思われるIntel900pで大丈夫だろう。

それはデバイスと特定のケースに依存します。一般にPLPが推奨されます。5000$のストレージアレイでは、劣ったSSDを選択するときに50 $を節約してもコストがかからないためです。違う。特に大きなSSDは必要ないので、数GBで十分です。ただし、一方のディスクに障害が発生し、もう一方のディスクに障害が発生しない場合、または同じセクターで障害が発生しない場合(ディスク/デバイスコントローラーによって異なります)、問題はありません。事は、誰もそれを保証することができないので、あなたは安全対策を加えてあなたのリスクを減らすことを試みます。

あなたはそれをプールのデザインと比較することができます。 1枚のディスクは安いですが、何かがうまくいかない場合、あなたは失敗します。これで、より良いディスク、2つの安価なディスク、2つのより良いディスク、3つの安価なディスクなどを購入できます。最終的には、リスクを計算し、予算とバランスを取る必要があります。極端な場合はほとんどの場合悪いので(単一の安価なディスクと利用可能な最高のディスクの32面ミラー)、健全な中間点が推奨されることがよくあります(小さい場合は2面ミラー、大きい場合は3面ミラーになります)。展開)。

SLOGデバイスに必要なものは3つだけです。

  1. 最も弱いプールディスクよりも優れた持続IOPS。 SLOGデバイスの速度が遅い場合は、プールを使用せずにプールを使用するか、別のミラーとしてプールに追加することをお勧めします(低速ですが安全です)。

  2. 高い書き込み耐久性。低い場合は、早めに交換する必要があります。あなたの場合、これはそれほど重要ではありません。どちらの方法でも書き込み量が非常に少なくなり、数日後に2番目のディスクを追加することで交換をずらすことができるからです。

  3. 重大な障害の可能性を決定する信頼性。複数のディスク(ミラー)を使用する、PLPを使用する、高品質のディスクを使用する(または3つすべてを同時に、上記を参照)ことにより、改善できます。繰り返しますが、これはプールディスクの速度(ランダムIOPS)に依存します。

RAMのみのZILを使用します。 (基本的に、同期について嘘をつきます。)これは悪いように聞こえますが、AFAIUはプールの整合性に影響を与えません。また、私の使用法では、追加コストの価値があるかどうかはわかりません。 NASがオフラインであるという理由だけで、あらゆる種類の障害が発生すると、データが失われるリスクがあります。おそらく、問題が発生したことがすぐにわかり、次のような修正手順を実行できるようになります。いくつかの種類(たとえば、NASバックアップ)が得られるまで、一時的に他の場所に保存します)。

これを行うのは、ストレージを完全に信頼できないことがわかっている特殊なアプリケーションが実行されている場合のみです。たとえば、定期的な同期でダウンしたノードのエラーが検出されるマルチミラー(他のストレージノード)のセットアップなどです。一時的に。

マシンが1台しかない場合、パフォーマンスが安くなり、リスクが大幅に増加します。 1回の汚れた偶発的なシャットダウン(ボタンが押された、または子供がUPSにケーブルを引っ張ったなど)はリスクをもたらす可能性があり、確かにあなたの心の安らぎを損ないます。

ZILは使用しないでください。すべての書き込みを強制的にディスクに直接送信します。これはRustの回転でパフォーマンスを低下させる可能性がありますが、ZILがすべてのSSDシステムでさえ役立つかどうかは明らかではありません。これは、回転で役立つ主な懸念事項Rust(低速ドライブ) 、シークレイテンシ)は適用されません。

特別な同期ランダム書き込みのパフォーマンスにのみ影響します...マシンが何に使用されるかについては述べていませんが、一般的な家庭での使用を想像すると、次のようになります。

  • 定期的なクライアントバックアップ(Windows/SMB/CIFSを想定):非同期データストアへの順次書き込みのため、影響を受けません
  • 家族データの長期アーカイブ:ほとんどのデータは保存されており、バックアップと同じ方法でコピーされるため、影響を受けません
  • エンコーディングを含むクライアントへのメディアライブラリの提供:読み取り専用および一時的なエンコーディングはストレージに戻らないため、影響を受けません
  • メールやクラウドアクセスなどのサービス用にいくつかの仮想マシンを実行すると、理論的には影響を受けますが、少数のクライアントだけがアクセスするとパフォーマンスに気付かないでしょう(たとえば、1秒あたり1000以上)

通常のディスクでさえ(ミラーとして)これらの制約を簡単に満たすでしょうが、SSDはそれを通り抜けるだけです。あなたのマシンはほとんどの時間アイドル状態になり、あなたのお金はより多くのストレージまたはより良いオフサイトバックアップシステムによりよく投資されるでしょう。

1
user121391

答えてくれてありがとうuser121391に。コメントが許すよりももっと詳細に、私はある点についてフォローアップしたかった。

私の理解では、PLP以外のデバイスは役に立たないよりも悪いです[...]

ZILの目的は、実際に同期書き込みを行うオーバーヘッド(およびその他の問題)なしに同期書き込みの保証を提供することです。

Actual同期書き込みは、待機時間とバッチ書き込みを一緒に行うことができないため、(「より遅い」メインストレージプールへの書き込みが原因で)潜在的に遅く、効率が低下します。前者はSSDプールではそれほど問題にはなりませんが、後者は特に、アプリケーションがファイルに一度に数バイトを書き込んでから同期を発行するなどの病的なことをしている場合に問題になる可能性があります。

ZILは、保留中の書き込みのログを記録する「安全な」書き込みバッファーであることが意図されているため、障害(電源の喪失、カーネルパニックなど)が発生した場合でも、書き込みは失われません。個別のZILデバイス(「SLOG」)がない場合、ZILは通常プライマリストレージプールにミラーリングされますが、これはもちろん低速です。また、SSDプールの場合は2倍の書き込みが悪いことを意味します。

これにより、4つのオプションが残ります。これらは、私の質問のオプションにほぼ似ています。

  • ZILを無効にして、プールに直接書き込みます。
  • 非PLPSLOGを使用します。
  • PLPSLOGを使用します。
  • ZILをRAMのみに保持します。

ここでは、#2が他のどのオプションよりも悪い理由だけに関心があります...より正確には、#4よりも厳密に悪いです。 (そうではないことを除いて、しかし、私たちはそれに戻ります。)

ZILは、書き込みが多く、読み取りがほとんどないバッファーです。 ZILが読み取られる唯一のケースは、システムが完全にダウンした場合(電力損失、カーネルパニックなど)です。このような場合、ZILは、ユーザー/アプリケーションがディスクに安全にコミットされていることが保証されているが、実際にはコミットされていない書き込みを再構築するために使用されます。

安全性の観点から、ZIL SLOGがデータが書き込まれたことを報告したら、それが実際にhas書き込まれたことが重要です。ただし、非PLPデバイスは多くの場合、内部(ハードウェアへの)キャッシュを使用し、これについて嘘をつきます。したがって、システムが突然ダウンした場合、PLP以外のデバイスは、RAM内のZILが失われるのと同じように、ZILを破損するリスクがあります。したがって、電源障害が発生した場合、非PLP SLOGは、ZILをRAMに保持するだけの利点を提供しないという重大なリスクにさらされます。

OTOH、システムが他の原因でダウンした場合でも、PLP以外のZILは、システムの電源が切れる前に書き込みを終了することを願っています(そうなったとしても、ハードウェアがソフトリセットに気付くことさえありません)。まだプールを保護します。したがって、安価なSSDはRAMのみのZILよりも優れていますが、電力を失うことなくシステムがダウンする場合に限られます。電力損失が発生した場合、非PLP ZILはRAMのみのZILと同じくらい危険ですが、RAMのみのZILよりも遅いです。 PLPでSLOGを使用することのすべての欠点と、利点の一部のみ。

Intel Optaneは興味深い事例を提示しています。技術的にはPLPはありませんが、理論的にはneeding PLPがなくても同じように安全です。その理由は、そもそもPLPが必要な理由にまでさかのぼります。ドライブには内部キャッシュがあり、パフォーマンスを向上させるために同期書き込みについてうそをつきます。私が理解しているように、Optaneにはキャッシュがないため、ZFSがZILへの同期書き込みを行うと(同期が完了したことをユーザー/アプリケーションに報告する場合のみ)、書き込み実際には安全にコミットされますデバイスに。

Optaneは、他のいくつかの点で興味深いものです(読んでください:本当に良い SLOGの選択になります)。紙の上では最速ではないかもしれませんが、低遅延であり、これはZILパフォーマンスの最も重要な要素として報告されています。 900pは絶対に見事な書き込み耐久性も持っています(5.1 PBWは私が見た中で最も近い競合他社の約3.5倍、その価格帯で最も「伝統的な」SSDの約8倍、そして比較してなんと24倍です3分の1の価格である800P)。それを、ZILをシミュレートするように設計されたベンチマークで他のすべてのものを水から吹き飛ばす傾向がある方法と組み合わせると、選択肢は本当に私の元の質問の選択肢になります:a)900P、b)RAMのみ、またはc)無効化ZIL。

...最後はおそらくパフォーマンスの面では問題ありませんが、ドライブの耐久性の側面で私は不安になります。

0
Matthew