web-dev-qa-db-ja.com

2つのSSDハードディスクによるRAID 0(ストライピング)は意味がありますか?

RAIDコントローラ(ハードウェアRAIDコントローラ)を備えたノートブック(Dell M6500、16GB Ram、I7-940M)を持っています。現時点では、最高のパフォーマンスを得るために、RAID 0(ストライプ)の2つのSATA HDDを使用しています。

SSD(Samsung 840 pro)を購入したい。

2つのSSDディスクによるRAID 0(ストライピング)は意味がありますか、それとも1つのディスクで十分ですか?

それで、1 SSD 512GB(RAIDなし)または2 SSD 256GB(RAID 0ストライプ)?

9
Andrea

質問を正しく読む必要があります。

彼はRAID1ミラーではなく、RAID0ストライプについて尋ねています。

私の答え:はい。速度が大幅に向上します。

参照: http://staff.science.uva.nl/~delaat/rp/2009-2010/p30/presentation.pdf

スピード:私のワークステーションはソフトウェアraid(mdadm)を使用してLinux Mintを実行し、XFSをファイルシステムとして持つストライプで4つのドライブを実行します。そのようなワークステーションに座ったら、ONE Platterドライブで昔に戻りたくはありません。

1つのSSDがクラッシュした場合に備えて、増分バックアップでワークステーションを毎日バックアップし、完全バックアップを毎週バックアップします。

あなたの速度は素晴らしいですが、1つのSSDがクラッシュした場合、多くのデータが失われます。だからあなたは警告されています。

クラウドをバックアップして使用し、追加のファイルを保存します。

ストレージ:My NASは、3 TBの2 + 4ドライブを備えたストレージ用にFreeBSD ZFS ZRAID2を純粋に実行しているため、12 TBと3 TBの2つのドライブが冗長性を提供するため、データを失うことなく時間。私のNASは通常のドライブで実行されます。

ZFSは現在、ディスク用の最高のファイルシステムです。確かにストレージ用です。 FreeBSDまたは専用のNAS FreeNAS、ZFSguru、NexentaStorなどのソフトウェアソリューションを探すことができます... FreeBSDシステムを微調整したいのでZFSguruを選択しました。iSCSIとSMB /を使用していますその上でNFS共有。

サーバー:

私のお気に入りは、ZFSにはプラッターを使用し、ZFSではZILにSSDを使用することです。しかし、それは暗い芸術です。

注1:

障害が発生した場合に、ハードウェアRAIDを回避するようにしてください。同じハードウェアを再度使用する必要があります。お客様のマザーボードで安価なRAIDコントローラを使用しないでください。 OSにはraidを処理する方法が他にもあるため、OSがサポートするソフトウェアraidを使用してみてください。

注2:

ZFSを使用する場合は、ハードウェアRAIDコントローラは絶対に避けてください。ドライブを接続するのに十分なSATAポートを備えたマザーボードを探します。 RAID機能のない専用コントローラーがあります。

ZFSを使用してRAIDをセットアップする

注3:

SSDは4ディスク後にスケーリングしなくなりましたHDDは5ディスク後にスケーリングし続けます

注4:

SSDにはさまざまなタイプがあります

SSD SLCとMLCがあります。 1つ目は最も高価ですが、大量の読み取り/書き込み操作に最も高速で最適です。

12
Amtriorix

はい、書き込み速度は向上します。私は4 GBのSSDでRAID 0を30 GBで実行しています。書き込み速度は600 MbPSです。すぐに2台の256 SATA3 SSD RAID 0ドライブにアップグレードします。300MbPSで実行するディスクは1つだけなので、それはあなた次第です。 2つのSATA 3 SSDがある場合、SATA定格は900MbPSを書き込むことができますが、RAID 0のセットアップも必要です。したがって、パフォーマンスを向上させるかどうかは、完全にあなた次第です。はい、それはより速く、そしてあなたはすべてのデータを失うでしょう、しかしそれがゲームのためだけなら、あなたは1日未満でそれを再構築することができます。また、オプションが2x 256GB SSDまたは1x 512 SSDのいずれかを取得することであった場合、2x 256 SSDを使用すると、書き込み速度が大幅に向上します。

3
Eryper

これが私が行ったテストです。結果を見て自分で決めることができます。

環境

  • CPU:Intel Xenon CPU E5-2650 v3 @ 2.30GHz(コア10、論理プロセッサー20)
  • RAM:32GB
  • ファイル:sample.rar(13.5 GBサイズ)
  • ウインドウズ10

テスト

私のワークステーションが含まれています。

  • RAID0ドライブとしての2x 1TB SSDのセットアップ
  • 1 TBハードドライブ
  • Cygwinターミナル、cpおよびtimeコマンドを使用
  • timeコマンドを使用して家族でない場合は、「リアルタイム」を使用して各ケースを比較します

各状況のファイルコピー時間は次のとおりです

RAID0からRAID0

real    0m17.089s
user    0m0.140s
sys     0m10.686s

RAID0からHDD

real    1m25.302s
user    0m0.437s
sys     0m21.078s

HDDからHDD

real    1m17.935s
user    0m0.265s
sys     0m14.921s

HDDからSSD

real    1m29.908s
user    0m0.359s
sys     0m13.281s

注:私のワークステーションでは、このRAIDOドライブを使用して150GBの大きなC++/C#プロジェクトをコンパイルしています。 RAID0のセットアップにより、これにより2時間以上節約できました。 RAID0のセットアップ方法が必要な場合は、私が書いたブログ投稿をご覧ください http://codeketchup.blogspot.sg/2016/03/how-to-setup-raid-0-with-ssd .html

2

RAID 0で2つのSSDを使用できますが、一部のシナリオでは、読み取り/書き込み速度がはるかに高速になります(RAID 0に4つのドライブがある極端な例については、この TechReportからのレビュー を参照してください)。 SSDが1つあれば十分ですが、お勧めしません。 RAID 0の2つのドライブは、そのうちの1つが故障した場合、すべてのデータを失うことを意味します。

TechReportもこのレビューを比較しています ドライブファミリー全体のSSDスケーリング これは、パフォーマンスの差をより大きなドライブと比較するのに役立ちます。

この質問に対する答えの大部分は、使用目的によって異なります。開発、写真編集、ゲームなどは、すべて異なるストレージアクセスパターンを持つことができます。より良い技術サイトのレビューを読むのが一番です。

1
Brad Patton

それは意見を求めていますが、:

目標が単一ボリュームの純粋なパフォーマンスである場合、それは理にかなっています。

以下の場合、意味がありません。

  1. ディスクアクセスは十分に高速です(そして、単一の最新のSSDでもほとんどすべての場合に十分高速です。特に、他の潜在的なボトルネックがラップトップコンポーネントである場合)。
  2. 最小限の電力使用が必要な場合(常に2台のドライブを使用することになります。SSDはHDDより少ない電力を使用しますが、それでもスリープ/スタンバイモードよりも多くなります)。
  3. 信頼性が必要な場合(ただし、RAID 0 /ストライプ内の2つの回転ディスクについても同じことが言えます)

これらはすべて、「1つで十分」は「1つのSSD(ストライプではない)で十分」を意味します。SSDとHDDを混在させることは技術的に機能するはずですが、RAIDによっては、両方の世界で最悪の結果になる可能性があります。

0
Hennes

tl; dr基本ベンチマークは、RAID 0(ストライピング)がSSDドライブのスループットを大幅に改善できることを示唆しています。

ベンチマーク構成

  • 2 x 1TB SSD(SanDisk X600 SD9TB8W-1T00-1001、2.5インチ7mm自己暗号化ドライブ)
  • Windows 10、ソフトウェアRAID
  • Lenovo P720ワークステーション、Intel Xeon Silver 4110 2.10GHz
  • ATTO Disk Benchmark 4.00.0f2

RAID 0(ストライピング)

enter image description here

RAID 1(ミラーリング)

enter image description here

個別ディスク

enter image description here

0
Drew Noakes

あなたはスピードを求めており、冗長性を気にしません。 RAID 0はわずかな改善をもたらす可能性があるため、2 256Gb SSDのコストが1 512Gb SSDと変わらない場合は、それを試してください。

0
Simon Sammut

2XまたはNxは、バスを飽和させない場合にのみ高速化できます。一部のマザーボードは、すべてのSATAポートに沿って帯域幅を共有しますが、他のマザーボードでは、各ポートの帯域幅に同時に到達できます。

覚えておいてください...読み取り速度は書き込み速度と同じではありません...通常、書き込み速度は読み取りよりもはるかに遅いです(連続してSSD 32GiBに高速書き込みを試行してください)。それらのほとんどは数メガバイトと非常に高速になります。 25MiB/s以下にドロップダウンします(SSD内のDDR3メモリで内部キャッシュを使用します。いっぱいになると、高速でデータを受信し続けることができないため、書き込みが遅くなります)。

高速ブートが必要な場合(読み取りは重要で、書き込みはそれほど多くない)、ランダムなデータで巨大なファイルを書き込みたい場合は、ベンチマークを少なくともいくつか実行する必要があります。ベンチマークは少なくとも数個のGiB可能な限り速く、一部のSSDには1または2がありますGiB of RAM SSD内に書き込みキャッシュ用... 。

IOPについて:これは、たとえば小さなファイルの場合、あらゆる種類のストレージ(USB、スティック、プラッターディスク、SSDなど)で最も重要なことです。 )それは...値以上のものを言います。

ここであなたの質問に答えます:-「大きな」IOPが「小さな」ものの2倍未満のIOPを持っている場合、「大きな」ものを購入しないでください...「最大」のIOPを与えるものを購入します

IOPは、「仕様」にある読み取り/書き込み速度よりもはるかに重要です...理由は次のとおりです。-最高値に達したと言う(書き込み速度の場合、内部ではRAM SSDで、データを書き込むのに十分なデータを書き込まない...書き込みキャッシュとしてPC RAMを使用するものもあるので、GiB /秒の書き込み速度と言われています。そのような速度はPCのメインRAMです。 SSDのデータはまだフラッシュされていません)

今、Raid0はあなたをゆるくするだろうと言っているすべての人にとって...

これを行っても、何も失われません:1.-オペレーティングシステムにRAID 0を使用します2.- USBエンクロージャーにオペレーティングシステムのクローンを作成します(USB 3.1 Gen 2 ... 10Gib/sの場合はより良い)

1つのディスクに障害が発生した場合は、障害のあるディスクを取り出して新しいディスクを入れ、クローンを復元すると、数分後にシステムが再起動します。

次に、RAID 0の1つ以上のディスクが停止した後、その起動を高速化する方法を説明します。1.-必要なオペレーティングシステムを用意したら、USBでクローンを作成します。2.- RAID 0のその2つ以上のディスクを取り出します。それらを安全な場所に置きます3.- PCを新しいものに置き、クローンを復元します

1つのディスクが死ぬと、他のディスクを配置して起動する準備が整います...スワップと再起動を実行するのに数秒かかります...次に、別のセットを作成して安全な場所に置きます。

これは、あらゆる種類のLinuxソフトウェアRAIDで機能します。プラッターディスクとSSDも同様です。

コスト:2枚のディスクを用意します。一部は機能し、その他はデータを準備して、それらから起動する準備ができています。

RAID 0のデータ(システムではなく)とフェイルオンゼロ(バックアップ前に行われた変更を除く)の場合:1.-書き込み後、外部メディアに変更をバックアップします(個人的には、異なる種類のメディアで5つの異なるコピーを使用します) 、SSD、プラッターHDD、DVD、メモリカード、USBメモリ)2.-システムの電源を切る前に、バックアップが同期していることを確認します

RAID 0は、使用中の「速度」に優れていることを忘れないでください。

システムのクローンが外部USBエンクロージャにあると考えてください...システムを失うことは問題ありません。LiveLinuxを起動し、クローンを同じディスク(ソフトウェア障害の場合)または新しいディスク(ハードウェア障害の場合)に復元します。

一部のBackUPにすべてのデータがある(複数のコピーがある)と考えてください。追跡内のデータを失うことは問題ではありません。失敗の原因を修正した後、バックアップからデータをコピーしてください(ディスクの交換など)。

次に、そのような「コピーバック」を待たないように考えてください...これは、2番目のディスクセットを使用準備完了状態にすることで実行できます。

そして最後に考えてみてください...失敗した後、作業中にバックグラウンドタスクを実行して、そのような「すぐに使える」2つ目のセットを再作成します。

この習慣を身に付ければ... Linux RAID 0を二度と使用しないでしょう...

... RAMが多く、ZFSを使用できる場合を除きます。

ZFSの主な利点:1.-読み取り/書き込み時のチェックサム。オフ状態のときにビットの変更を検出できます。2.-各ファイルまたはフォルダーの複数のコピーを作成できるパラメーターがあります(RAIDZレベルの有無にかかわらず)。 )3.-スペースの50%以上を失う余裕がある場合は、1つのディスク(ノートブック)だけでZFSコピー= Nを使用できます。オフモードのときに一部のデータが破損した場合でも、ZFSは正しい(それを読み取ることができます)同じディスク上に複数のコピーを保存します)...また、ZFSのRAIDZレベルで並行して使用できます。冗長性が向上しています。

ZFSコピー= Nは古いRAID 1レベルのようなものですが、不良データを検出した場合のチェックサムと自動修正を備えています。

ZFSに関する警告:RAM一部のZFSパーツでビットエラーが発生すると、すべてのZFSが台無しになり、そのようなデータがすべて失われる可能性があります...したがって、ZFSを1つだけ使用してデータを保存しないでください...そしてそれをいつも持っている。

0
Anonymous

私はmdadmまたはハードウェアraid0でテストしていませんが、LVMストリッピングでテストしました。

短い答えは、短いストライプを使用する場合(たとえば4KiBストライプの場合)、組み合わせた読み取り速度は1つのSSD読み取り速度だけよりも遅いということです。

これは競合状態のようです。LVMが並列ではなく、一度に1つのブロック要求を各SSDに送信しているようです。

したがって、リクエストを処理する時間がSSDがRAMにデータを送信するのにかかる時間よりも長い場合、2つ以上のSSDがデータをRAMに送信しない場合、ほとんどの場合、コマンドを待機し、そのようなコマンドを処理します。

大きなストリップサイズを配置し始めたときのみ、組み合わせた読み取り速度は単一のSSDよりも高くなり始め、i AMAは1MiBストライプについて話します。ゲインは、2xSSDを使用した場合、1つだけよりも1.3倍から1.5倍速くなりました。

そのため、最初に、キュー深度が1の4KiBでSSDがどの程度優れているかを確認します。本当に良い場合は、小さなストライプサイズでストリッピングを行わないでください。ストリッピングを行わないでください。

また、2つの並列プロセスでテストしました。両方のddコマンドを使用して、両方から同時に読み取ると速度が低下するかどうかを確認しました。

そのため、それらをストライプ化するよりも、異なるもの(OS/APPS)に使用する方がはるかに優れています。

SSDではなく回転ディスクの場合、ストライピングは大きな利益をもたらします。

どういうわけか、OSは一度に1つのディスクにリクエストを送信し、OSがストリッピングセット内の次のディスクにリクエストを送信している間、前のディスクはすべてのデータをRAMに送信しているため、何もせずに待機しなければなりません。次のリクエストのために。

したがって、LVMストライプは十分に実装されておらず、ストライプのリクエストキューを送信することで改善できると思います。そのため、各SSDは、各リクエストでRAMに送信するデータを増やします。

数学の方程式は次のとおりです。RAMにデータを送信する時間に対するデータの送信を開始する時間。

最初の部分が方程式の2番目の部分よりも大きい場合、ストリップは1つだけを使用するよりも遅くなるだけで、本当に大きな改善を得るためには、方程式の2番目の部分は最初の部分よりもはるかに大きくなければなりません。

良好なSSDの場合、最初の部分(LVM上)は2番目の部分よりも大きくなります。良好な回転HDDの場合、最初の部分(LVM上)は2番目の部分よりもはるかに小さいです。

これは、2つの高速SSD(キュー深度が1の4KiBで35M​​ib/Sを超える)でLVM2を使用して行った私自身のテストに基づいており、最大1MiBの4KiBのストライプでテストしました。ストライプサイズが128KiBになるまで、合計速度はSSDを1つだけ使用するよりも低くなり、その後、合計速度は最大である1MiBまで少し大きくなります(2つのSSDを使用すると、1つだけの場合より1.3倍速くなります)。

したがって、30%のゲインしか得られませんが、異なるタスク(ストライピングではない)で並行して使用すると、96%のゲインが得られます(それぞれに98%の読み取り速度を同時に使用できます)。

それを数字で言えば、386MiB /秒で1つのSSD線形読み取り、186MiB /秒で2xSSD LVM2 4KiBストライプ線形読み取りなので、1つのSSDのみを使用するよりもはるかに遅くなります。 2xSSD LVM2 487MiB/sでの1MiBストライプ線形読み取り。異なるプロセスの同じ(ストリップされていない)での両方からの線形読み取りは、それぞれから374MiB /秒を取得するため、合計すると2x374 = 738MiB/sになります。

したがって、テスト結果に基づく私の結論は次のとおりです。LVM2を使用すると、巨大なストライプサイズ(1MiB)ではゲインが非常に低くなり、通常のストライプサイズ(4KiBから64KiBまで)では大幅に失われます。

バルクデバイス(/ dev/sda、/ dev/sdb)とバルク論理ボリューム(/ dev/mapper/test-test)からddコマンドを使用して、status=progressおよびブロックサイズが1MiB、カウントが10000なので、10GiBを読み取ります。キャッシュなどを完全に回避するために、各テスト後に再起動を行います。

私はSystemRescueCDライブLinuxバージョンを使用して、不変ディスク(読み取り専用メディア)からのブートなど、リブートの違いを回避しています。

私はいつかLinux mdadmを使ってソフトウェアraidでテストすることを知っているといいのですが。

0
Claudio

私の仕事用のコンピューターはDell M6500で、Corsair 240gb SSDを実行しています。 M6500はSATA 2インターフェイスを備えているため、SATA 3ドライブのフルスピードを利用できません。私のパソコン、つまりRAID 0ストライプに160GBのHDDが2つ搭載されたM6400よりもはるかに高速だと思います。 SSDが2つあればブーストが上がると思いますが、SSDが1つだけの場合の2倍にはなりません。

0
Michael C