IOPSに対するRAIDレベルの影響[終了]


11

IOPSに関して、特定のディスク数のIOPSが1つのディスクのIOPSにディスク数を掛けたものであることを示唆するいくつかのソースをWebで見ました。

IOPSについての私の理解が正しい場合(そしてそれがまったく確かでない場合)、現実は-他の多くの要因の中でも-RAIDレベルに依存すると考えていたでしょう。RAID 1/10では、すべてのデータが少なくとも2つのディスクに複製されるため、特定のIOパターンで特定のディスク上の競合が減少します。ただし、RAID 0/5/6などのストライプ化されたRAIDレベルでは、データは複製されるのではなく分散されるため、連続した読み取り要求が同じスピンドルに対して行われ、以前のIOが完了するまでブロックされます。書き込みはさらに競合します。

さまざまな最適化やその他の要因により、現実がはるかに複雑であることに感謝します。私の質問は、非常に基本的なレベルで、IOPSが何を意味するかについての私の理解が正しい軌道に乗っているかどうかだけを追及しています。IOPSがRAIDレベルによってこのような方法で影響を受ける可能性があるという私の主張は、この概念の基本的な誤解を示している可能性があります。


4
RAIDコントローラーキャッシュ、OS、アプリケーションの動作、同期または非同期I / Oおよびディスクタイプの影響を除外するポイントまでこれを単純化します。そう何を探してるんですか?
ewwhite

@ewwhite申し訳ありませんが、私はもっと明確にすべきでした。私は、現実世界の予測をするのではなく、私の思考の基本原則が正しいかどうかを見たいと思っています。実際、物事はあらゆる種類の最適化やその他の複雑さの影響を大きく受けていることを感謝しています。バックグラウンドには実世界の状況がありますが、よく知らないものを調べている場合によくあるように、私は立ち去ってバックグラウンド学習を行うことにしましたので、基本原則をより快適に。
DBR

ストレージとそのパフォーマンスを取り巻く理論と概念に関して、質の高い読書に関する推奨事項があるかどうか尋ねたいと思いましたが、ServerFaultにとって不適切な質問と考えられるかもしれないとは思っていませんでした。私がこれまでに見つけたウェブ上の話題については、高品質の文章はかなり少ないようです。おそらく、それは非常に複雑な話題であり、ほとんど完全に理解していないためでしょう。
DBR

RAIDのパフォーマンスは、RAIDレベルよりもコントローラーハードウェアと実装の制限に大きく依存します。たとえば、RAID0、RAID1、RAID5、およびRAID6は、理論的にはすべてのディスクを長時間読み取りに使用できるため、理想的なコントローラーでまったく同じ読み取り速度を実現できます。
Zac67

回答:


12

HDDの場合、IOPSは通常、ディスクのアクセス時間に左右されます。これは、シークレイテンシ+回転遅延+転送遅延合計です。これらの変数はアクセスパターンに強く依存し、特定のRAIDレイアウト(つまり:ストライプサイズ)およびコントローラー(つまり、先読みチューニング)と明白な相互作用がないため、単純な応答すべて間違っています。

ただし、球形の数字を試してみましょう。最初の近似では、nディスクアレイによって保証されるIOPSは、単一ディスクのIOPSのn倍である必要があります。ただし、RAIDレベルとデータアクセスパターンの両方で、シーク/回転/転送のレイテンシ間でウェイトをシフトすることにより、この1次近似を劇的に変更します。

単一のディスクあたり100 IOPS(7200 RPMディスクの標準値)および4ディスクアレイ(多くの場合、2方向のみに制限されているRAID1を除く)を想定して、いくつかの例を見てみましょう。

  • 単一のディスクは読み取りと書き込みの両方で100 IOPSです(注:書き込みの合体のため、書き込みIOPSは一般に読み取りIOPSよりも高くなりますが、簡単にするために無視してください)
  • RAID0(4方向ストライピング)には、最大 4倍のランダムIOPSと最大 4倍のシーケンシャルIOPSがあります。ここでのキーワードは「最大」です。ストライピングとデータ調整の性質により、ランダムにアクセスされるセクターが主に単一のディスクに存在する場合、IOPSははるかに低くなります。
  • RAID1(2方向ミラーリング)は、プロファイルがより複雑です。異なるディスクは異なるデータをシークできるため、ランダム読み取りIOPSは最大2倍ですが、同じ1倍(またはオーバーヘッドによりわずかに低い)ランダム書き込みIOPSがあります。すべての物事がうまく整合させる場合(例:100大ではなく%のシーケンシャル読み込み、/ミラーリングモードでも、取り扱いチャンク/ストライプの概念を使用してRAIDコントローラ、先読み正しく動作など)を順次読み取り可能いつかシングルを2倍まで可能ディスク値、シーケンシャル書き込みは単一ディスクの1倍に制限されたまま(つまり、高速化なし)
  • RAID10(4方向ミラーリング)は、パフォーマンス面では、4方向RAID0ストライピングと2方向ミラーリングの中間です。ランダム読み取りIOPSは最大4倍、ランダム書き込みIOPSは最大2倍です。シーケンシャル転送の場合、RAID1の注意事項が適用されます。シーケンシャル読み取りIOPSは最大4倍ですが、シーケンシャル書き込みIOPSは2倍しかありません。一部のRAID10実装(つまりLinux MDRAID)は、パフォーマンスプロファイル異なる RAID10アレイの異なるレイアウトを提供することに注意してください。
  • RAID5(ストライプパリティ)には最大4倍のランダム読み取りIOPSがありますが、ランダム書き込みIOPSは、ストライプサイズに対する書き込みの大きさ、大きなストライプキャッシュの可用性、ストライプ再構築アルゴリズムなどのいくつかの要因に依存しますそれ自体(read-reconstruct-write vs read-modify-write)などは、単一ディスクのIOPSの0.5倍(またはそれ以下)から2倍までの範囲になります。単一のディスクの3倍のIOPS(読み取りと書き込みの両方)で、シーケンシャルワークロードはより予測可能です
  • RAID6(ストライプダブルパリティ)は、RAID5の兄弟とほぼ同じように動作しますが、書き込みパフォーマンスが低下します。単一ディスクの最大4倍のランダム読み取りIOPSがありますが、ランダム書き込みパフォーマンスはRAID5よりも低く、絶対値は同じ(0.5倍-2倍)ですが、実際の単語の平均は低くなります。順次読み取りおよび書き込みは、単一ディスクのIOPSの2倍に制限されます。

繰り返しますが、上記は単純でほとんど壊れた近似です。とにかく、(かなり不完全な)RAID IOPS計算機で遊びたい場合は、こちらをご覧ください

さて、現実の世界に戻りましょう。実際のワークロードでは、多くの場合RAID10がより高速で優先される選択肢あり、アレイの性能が低下しても高いパフォーマンスを維持します。RAID5およびRAID6は、本質的に読み取り中心またはシーケンシャルでない限り、パフォーマンスに依存するワークロードで使用しないでください。深刻なRAIDコントローラーには、主に(重いストライプキャッシングによる)RAID5 / 6の低ランダム書き込みパフォーマンスを克服するために、大きな電力損失で保護されたライトバックキャッシュがあります。アレイの速度を本当に気にしない限り、キャッシュレスRAIDコントローラーRAID5 / 6を使用しないでください。

SSDは異なる獣です。パリティベースのRAIDは本質的に平均アクセス時間が非常に短いため、パフォーマンスオーバーヘッドがはるかに低く、HDDよりもはるかに実行可能なオプションです。ただし、小さなランダム書き込み中心のワークロードでは、とにかくRAID10セットアップを使用します。


アレイの速度を本当に気にしない限り、キャッシュレスRAIDコントローラーでRAID5 / 6を使用しないでください。自分が何をしているかを本当に知っていて、IOパターンを厳密に制御できれば、これを回避できます。アレイのストライプサイズに一致するシーケンシャルIOのみを実行している場合は、キャッシュレスRAID5 / 6を使用しても問題ありません。また、RAID5 / 6アレイに十分なランダムな小ブロック書き込み操作を行うと、キャッシュはパフォーマンスを節約できませんが、パフォーマンスを低下させる「十分なIO操作」の値は、本当に優れたRAIDコントローラーにとっては膨大な数になります。
アンドリューヘンレ

@AndrewHenle確かに、ストライプアラインされたシーケンシャルな読み取り/書き込みのみを発行する場合、RAD5 / 6モードのキャッシュレスコントローラーでも良い結果が得られます。ただし、これは非常に狭い使用パターンです(つまり、ストリーミングとバックアップ)。汎用ワークロードの場合、パリティなしRAIDと組み合わせたキャッシュレスコントローラーは非常に遅くなります。一部のコントローラーで、パリティーRAIDを作成できるように、電力損失で保護されたライトバックキャッシュが必要です
shodanshok

私は.... 19-MB-ので、大きな-必須被速くストライプサイズが遅いと、なぜその企業のメールストレージ21-ドライブRAID6アレイのだろ管理者の詳細を考えていた
アンドリュー・ヘンレ

1

定義の問題です。システムのさまざまなレベルでIOPSを測定すると、さまざまな値が得られます。たとえば、2つのミラー化されたディスクがあり、できるだけ速く書き込みをしているとします。ディスクへのIOPSは、1台のディスクが同様の書き込み負荷で処理できるIOPSの2倍になります。ただし、コントローラーに入るIOPSは、1つのディスクが処理できるIOPSの数に等しくなります。

通常、私たちが関心を持っているのは、アレイに入れることができる論理IOPSの数であり、ディスクレベルで何が起こっているかは特に気にしません。その場合、あなたは正解であり、IOPSはRAIDレベル、ディスクの数、個々のディスクのパフォーマンス、そして場合によっては操作の特定の特性に依存します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.