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


10

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

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

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

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

回答:


11

理論的には、ロードがより多くのドライブで共有されるため、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を使用することを検討する価値があるかもしれません。他の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は、「ファー」レイアウトで、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)。


サイズを混在させる場合は、RAID0を適用することはできません。少なくとも、それらのディスクにあるすべてのスペースを使用するためには適用できません。パフォーマンスを向上させないJBODを使用する必要があります。
Tero Kilkanen、2015年

mdadmを使用してサイズを混在させることができます。これは非常に柔軟で、mdadmを使用すると、3つのディスクraid10を構成することもできます。raidコントローラーでサイズを混在させることはできないと思います。これらは柔軟性が低く、高速です。
aseq

1
これを確認しましたが、RAID0が必要な場合は、アレイの最小のデバイスがアレイ全体のサイズを定義します。つまり、100 GB、200 GB、および300 GBのドライブがある場合、300 GBのRAID0アレイと100 GBおよび200 GBの空き容量が得られ、他の目的に使用できます。リニアモードでは、すべてのデバイスの完全な容量が得られますが、並列パフォーマンスは得られません。
Tero Kilkanen、2015年

1
そうですね。
aseq 2015年

2
ローテーションメディアでは、シーク時間と転送時間の問題もありませんか?ディスクを追加すると、読み取り/書き込みされる量がより多くのプラッターに分散されます(それぞれがより少ない==より高速に実行する必要があります)が、すべてのディスクはシーク操作を実行する必要があります(ドライブを追加しても削減されません)。したがって、実行している操作の種類(つまり、小さな読み取りが失われた場合といくつかの大きな読み取りが失われた場合)に応じて、転送速度を上げると(ドライブを追加することで)小さな違いまたは大きな違いが生じる可能性があります。
Molomby、2015年

1

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

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

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

2枚の追加のディスクを追加すると、のは、LinuxのソフトウェアRAIDがあると仮定しようMAYの結果:

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

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

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