web-dev-qa-db-ja.com

RAIDレベルがIOPSに与える影響

IOPSに関しては、特定の数のディスクのIOPSが単一のディスクのIOPSにディスクの数を掛けたものであるとWebでいくつかの情報源を見てきました。

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

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

11
dbr

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

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

1つのディスクあたり100 IOPS(7200 RPMディスクの典型的な値)と4つのディスクアレイ(RAID1を除いて、多くの場合2ウェイのみに制限される)を想定して、いくつかの例を見てみましょう。

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

繰り返します:上記は単純でほとんど壊れた近似です。とにかく、(非常に不完全な)RAID IOPS計算機でプレイしたい場合は、見てください こちら

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

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

12
shodanshok

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

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

1
David Schwartz