web-dev-qa-db-ja.com

RAID 0にドライブのヒープを追加すると、パフォーマンスが向上しますか?

rAID 0にドライブのヒープを追加すると、パフォーマンスが向上しますか?ストライプRAIDの2つのドライブは通常1つのドライブよりも高速であることはわかっていますが、たとえば、ストライプRAIDの2つのドライブと8つのドライブのパフォーマンスの違いに気付くでしょうか?あなたが本当にこれ以上利益を得られない前にレイドのドライブの数に一般的な制限はありますか?

同様の質問がここで尋ねられました

RAID 10アレイにドライブを追加すると、パフォーマンスが向上しますか?

しかし、レイド0に多くのドライブを追加すると、2や4を追加するだけで改善されるかどうか本当に質問しています。パフォーマンスは向上し続けますか?

10
Peter Cullen

理論的には、ロードがより多くのドライブで共有されるため、raid0のドライブが増えるとパフォーマンスが向上します。ただし、実際には、RAIDコントローラーの帯域幅、CPUとメモリのパフォーマンスなどによって制限されます。パフォーマンスの向上は直線的ではありません。つまり、4ディスクは2ディスクの2倍の速度ではありません。

Raidコントローラーを備えた合理的に最新のシステム、またはlinux 'mdadmでソフトウェアraidを使用する場合でも、8台のドライブを使用すると2台を使用するよりも高速になるため、システムの残りのパフォーマンスを妨げないでください。 CPU、レイドおよび/またはディスクコントローラー、メモリ、それはすべてそれを処理できるはずです。ドライブを追加するほど、システムリソースの使用が増える場合があります。特に、ソフトRAIDの組み合わせでオンボードSATAコントローラーを使用する場合。しかし、全体的なユーザビリティを実際に妨げるものは何もありません。 Linuxを使用している場合、サーバー指向のタスクがユーザーの応答性よりも優先されるように、「プリエンプト」なしで構成されたカーネルを使用することができます。

https://rt.wiki.kernel.org/index.php/RT_PREEMPT_HOWTO

もちろん、ドライブを追加すればするほど、ドライブの1つが故障してレイド全体が破壊される可能性が高くなります。運が良ければ、8ドライブのraid0が1〜2年以上続くことはないと思います。 16ドライブのraid0は問題を要求し、それからraid10を検討します。それでも十分高速で、心配する必要はほとんどありません。

詳細なシステム仕様がない限り、システムのリソースを最大化するドライブの数については知りません。約16個のディスクを超えると、故障率により制限されると思います(私はそれについて考えたくありません)。

当然、raid0は、問題なくいつでも失われる可能性があるデータにのみ使用します。ビルドサーバーや大規模な科学計算用のスクラッチスペースなどに最適です。実際、これらのシナリオは私がraid0を頻繁に使用したものであり、それはさもなければほこりを集めていた古い、低容量、安価なディスクの束からもう少し多くの生命を絞る素晴らしい方法です。少なくともmdadmを使用すると、サイズを混在させることもできます。

Mdadmを使用する場合、特定の構成ではraid0のパフォーマンスに近づく可能性があるため、単にraid10を使用することを検討する価値があります。これは、raid0の読み取りパフォーマンスであり、他のraidレベル(raid0を除く)よりも書き込みパフォーマンスが向上しています。他のRAIDレベルよりも優れた冗長性が得られ、Raid0に比べて速度がわずかに低下するだけです。それは両方の世界で最高です、あなたはそれをしばしば見つけません。

https://en.wikipedia.org/wiki/RAID#Non-standard_levels

Linux MD RAID 10は、一般的なRAIDドライバーを提供します。この「近い」レイアウトでは、デフォルトで2つのドライブを備えた標準RAID 1と、4つのドライブを備えた標準RAID 1 + 0になります。ただし、奇数を含む任意の数のドライブを含めることができます。 MD RAID 10は、「far」レイアウトで、f2レイアウトのドライブが2つしかない場合でも、ストライプとミラーの両方を実行できます。これはストライプ化された読み取りでミラーリングを実行し、RAID 0の読み取りパフォーマンスを提供します。LinuxソフトウェアRAIDによって提供される通常のRAID 1は読み取りをストライプ化しませんが、読み取りを並行して実行できます。

コメントで提案されているように、最小のディスクでアレイのサイズを定義するのではなく、すべてのディスク領域を利用する場合、mdadmでサイズを混合しても速度は向上しません。

また、raid0ではシーク時間が改善されず、少し遅くなることさえあります。 SSDベースのraid0の場合、シーク時間は非常に短くなります(0.08から0.16ミリ秒の間 https://en.wikipedia.org/wiki/Hard_disk_drive_performance_characteristics#cite_note-HP_SSD-6 )それは問題ではありません私は期待しています。

11
aseq

これはワークロードに依存しますが、IMHOはい、既存の2つのディスクアレイに2つのディスクを追加すると、全体的なパフォーマンスが向上します。

ボトルネックがどこにあるかを理解する必要があります。

  • CPU-CPUが処理できるデータフローの量
  • バス/コントローラー-それが運ぶことができるデータの量、
  • SSD/HDD-提供/取得できるデータの量。

LinuxソフトウェアRAIDがあると仮定し、さらに2つのディスクを追加します[〜#〜] may [〜#〜]結果は次のようになります:

  • 〜十分な大きさのデータブロックへのアクセス時間を2倍短縮します。
  • 〜ダブルIOPS、
  • 〜コントローラに十分なバスがあり、CPUがトラフィックを処理できると仮定すると、スループットが2倍になります。

*〜これは、以下の要因で2倍のブーストになることはなく、常に10〜20%未満です。それは多かれ少なかれ線形に見えます。権威ある答えとして扱わないでください。私はそれについての研究をしていません。

1