今日の RAID 0 に関する厳然たる真実

in tech

ストレージ フォーラムや Reddit のスレッドに十分な時間を費やしていると、最終的に同じアドバイスが静かな自信を持って繰り返されることに遭遇するでしょう。速度が必要な場合は RAID 0 を使用してください。RAID 0 は複数のドライブにデータをストライピングするため、1 つのディスクが作業を行う代わりに 2 つまたは 4 つのディスクがデータを共有するため、その理由は明白です。理論的には、これはスループットが 2 倍または 4 倍になることを意味し、ベンチマークは多くの場合、この考えを裏付けます。しかし、合成ベンチマークの外に出て実際のワークロードに目を向けると、話はさらに複雑になります (退屈ではありません)。

多くの場合、RAID 0 にはほとんど利点がありませんが、場合によっては状況が悪化することがあります。これを理解するには、なぜ RAID 0 が速度と関連付けられるようになったのか、その前提が今でも当てはまるのか、そして今日パフォーマンスを追い求めているほとんどの人がおそらく他のところに目を向けるべきである理由を考察する必要があります (ドライブに障害が発生するとデータがまったくゼロになるため、RAID 0 が 0 と呼ばれるというよく知られたジョークを再考する必要はありません)。

RAID 0 が評判になった理由

ストライピングは回転ディスクの限界を克服するのに役立ちました

詳細には触れませんが、RAID 0 はデータをストライプに分割し、それらのストライプを複数のディスクに分散することによって機能します。ファイルが書き込まれるとき、システムはそのファイルの異なる部分を異なるドライブに同時に書き込みます。

読み取りアームがハードドライブプラッタの表面を横切って移動します。 クレジット: Radu Bercan / Shutterstock

回転ディスクが主流の世界では、読み取り/書き込みヘッドがディスク表面全体でシークする必要があり、プラッターが正しいセクターまで回転する必要があるため、このアプローチには明らかな利点がありました。

Crucial T710 NVMe SSD を金属ドライバーで机の上に置きました。

HDD が故障するとデータが破壊され、SSD が故障するとデータが保存されます

重要なファイルを HDD に保存するのはやめてください。代わりにそうしましょう

複数のディスクにわたるストライピングにより、これらの制限の影響が軽減されます。 1 つのディスクがすべての作業を完了するのを待つ代わりに、複数のディスクを同時に動作させることができます。

  • 1 つのディスクが提供された場合: 150 MB/秒のシーケンシャル スループット

  • RAID 0 内の 2 つのディスクでは、280 MB/秒のシーケンシャル スループットに達する可能性があります。

  • 4 台のディスクで 560 MB/秒に達する可能性があります

大規模なシーケンシャル読み取りまたは書き込みが大半を占めるワークロードの場合、改善は実際のものであり、多くの場合劇的なものでした。ビデオ編集ワークステーション、スクラッチ ディスク、大規模ファイル処理パイプラインはすべて恩恵を受けました。

当時、RAID 0 は冗長性を犠牲にして速度を提供したため、このトレードオフは許容できるものであるように見えました。いずれかのディスクに障害が発生すると、アレイ全体が失われますが、明らかにパフォーマンスが向上するため、多くの人がそのリスクを受け入れましたが、ストレージのゲームは、そのロジックが説得力を失う形で変化しました。

SSD がベースラインを変えた

ソリッド ステート ストレージにより機械的なボトルネックが解消されました

最大の変化は、ソリッド ステート ドライブの普及によって起こりました。 SSD は、そもそもディスク ストライピングを魅力的なものにした機械的なボトルネックを取り除きました。回転するプラッターや可動ヘッドはありません。アクセス時間が大幅に短縮され、単一のデバイスであってもスループットが大幅に向上します。

最新の NVMe SSD は、次の性能を簡単に達成できます。 3 ~ 7 GB/秒のシーケンシャル読み取り速度 数十万の IOPS この時点で、RAID 0 は多くの場合不必要になります。たとえば、RAID 0 内の 2 つの SATA SSD が合計約 1 GB/秒のスループットに達すると想像してください。単一のミッドレンジ NVMe ドライブは、すでにその数倍を超えています。アレイを管理して追加の障害リスクを受け入れる代わりに、より簡単な解決策は通常、より高速な単一デバイスを使用することです。

複数の NVMe ドライブが利用可能な場合でも、RAID 0 からのゲインは常に線形であるとは限りません。 PCIe バス、コントローラーのオーバーヘッド、およびソフトウェア スタックは、理論上の最大値に達するずっと前に制限要因となる可能性があります。

シーケンシャル速度は多くの場合間違った指標です

ベンチマークが実際のワークロードを反映することはほとんどありません

RAID 0 が過大評価されているもう 1 つの理由は、実際のワークロードのほとんどが大規模な順次転送によって支配されていないことです。ベンチマークでは、長時間連続した読み取りまたは書き込みを使用してパフォーマンスを測定することがよくあります。これらのテストでは魅力的な数値が得られますが、日常のコンピューティングのアクセス パターンと類似することはほとんどありません。

平均的なユーザー (ほとんどのマニアでも) が実行するほとんどのタスクには、大規模な連続データ ストリームではなく、小規模で分散した読み取りと書き込みが多く含まれます。このような状況では、重要な指標はシーケンシャル帯域幅ではありません。それはレイテンシーとランダム I/O パフォーマンスです。

マザーボードに取り付けられた Crucial T710、Samsung 9100 Pro、および Samsung 990 EVO Plus NVMe SSD の正面からのショット。

NVMe ドライブを使用するとすべてのゲームのロードが速くならないのはなぜですか?

目に見えない速度のためにお金を払っていますか?

個々の操作は依然として基盤となるデバイスに依存しているため、RAID 0 では遅延は大幅に短縮されません。アプリケーションが何千もの小さな読み取りを実行する場合、ストライピングの利点は限定されます。ハードディスクから SSD への移行では劇的な改善が見られるのに対し、1 台の SSD から RAID 0 ペアへの移行では目に見える違いがほとんど生じないのはこのためです。

ファイルシステムはすでに作業を並列化しています

並列処理はストレージ スタック全体にすでに存在します

最新のファイルシステムも RAID 0 の根拠を弱めています。多くのストレージ システムはすでに内部でデバイス間でデータを分散しています。 ZFS などのファイルシステム (大量のデータを保存する場合や特定のワークロードを実行する場合を除く) や btrfs は、従来の RAID ストライピングに依存せずに、I/O 操作を複数のディスクに分散できます。

高度なファイルシステムがなくても、オペレーティング システムは多くの場合、複数の I/O 操作を同時に実行します。アプリケーションは非同期リクエストを発行し、ストレージ コントローラーは操作を並べ替え、SSD ファームウェアは内部フラッシュ チャネル間のアクセスを並列化します。言い換えれば、並列処理はスタックのいくつかの層に存在します。

これらのメカニズムに RAID 0 を追加すると、利益が減少する場合があります。基盤となるデバイスはすでに内部で並列ハードウェアを使用している可能性があるため、追加のストライピングがどの程度役立つかは制限されています。

NVMe 時代と帯域幅増加の幻想

帯域幅が増えてもパフォーマンスが向上するとは限りません

もう 1 つの微妙な要因は、非常に高い帯域幅が多くの場合不要であることです。ワークステーションが単一の NVMe ドライブから 7 GB/秒でデータを読み取ることができるとします。 RAID 0 がこれを 2 倍の 14 GB/秒にすると、その結果は印象的に聞こえますが、問題は実際にどのようなワークロードがその帯域幅を必要とするのかということになります。マジで何?ブルーンズ TD (大好き)?

多くのアプリケーションは、最新の NVMe ドライブ 1 台でも飽和するずっと前に、CPU 処理、メモリ帯域幅、またはソフトウェア アーキテクチャによって制限されます。たとえば、コードのコンパイルは CPU に依存することが多く、ゲームのロードには解凍とアセット処理が含まれ、データベースは生のストレージ速度ではなくクエリ実行によって制限されることがよくあります。

Zettlab D4 NAS と Geekom A5 ミニ PC および TerraMaster F4 SSD NAS を木製の棚に設置しました。

おそらく NAS は必要ありません: ほとんどの人にとって DAS の方が優れている理由

NAS では販売されていませんか?代わりに DAS を入手してください

これらのシナリオでは、RAID 0 は理論上のスループットを向上させますが、実際的な改善はほとんどありません。これは、すでに交通量が最小限に抑えられている高速道路をアップグレードするのと似ています。追加のレーンが存在しますが、ほとんどが空のままです。

RAID 0が実際に役立つ場合

一部の順次ワークロードは依然としてストライピングの恩恵を受けています

その評判は誇張されていますが、RAID 0 は役に立たないわけではありません (完全に役に立たないわけではありません)。それが意味のある状況はまだあります。

ビデオ編集のスクラッチ ストレージ、高解像度のメディア処理、または一時的なシミュレーション出力など、非常に大きなファイルを順次処理するワークロードでは、スループットの向上による恩恵を受けることができます。

これらのタスクには多くの場合、追加の帯域幅により処理時間が直接短縮される連続的なデータ ストリームが含まれます。このような環境では、通常、RAID 0 は使い捨てストレージとして扱われます。データは一時的なものであるか、簡単に再生成されるため、信頼性のトレードオフは許容されます。

ただし、このようなシナリオでも、最新の NVMe ドライブは、RAID 0 が不要になるほど十分なスループットを提供することがよくあります。


今日のスピードはさまざまな選択肢から生まれます

RAID 0 は本質的に悪いものではなく、ディスクがストレージを支配する場合の非常に現実的な問題を解決しました。パフォーマンスの向上は明らかで、測定も簡単でした。

そのアドバイスを生み出した環境はほとんど消滅した。現在では、控えめな SSD であっても、かつては複数のディスクを連携して動作させる必要があったレベルのスループットと遅延を実現しています。最近の多くのワークロードでは、RAID 0 は複雑さとリスクを増大させますが、目に見えるメリットはほとんどありません。

ほとんどのシステムでは、パフォーマンスは、適切な SSD、賢明なバックアップ、実際に重要なワークロードの調整など、さまざまな選択によって決まります。 RAID 0 には今でもニッチな用途がありますが、速度のためにそれが必要であるという前提は、以前の世代のストレージに属しています (問題のあるユーザーを追加したいのですが、編集者がそれを維持する場合は追加しません)。

  • Crucial T700 M.2 SSD タグ

    ストレージ容量

    2TB

    ハードウェアインターフェース

    NVMe

    Crucial T700 Gen5 NVMe M.2 SSD は、最大 12,400 MB/秒の超高速速度を提供し、高性能ゲーム、コンテンツ作成、要求の厳しいアプリケーションに最適です。 PCIe Gen5 テクノロジーと高度な熱管理を備え、比類のないパフォーマンスと信頼性を実現します。次世代のストレージを求める愛好家に最適


  • Crucial T710 PCIe Gen5 NVMe SSD。

    ストレージ容量

    1TB、2TB、4TB

    ハードウェアインターフェース

    M.2 NVMe

    ブランド

    重要な

    転送速度

    読み取り14.9GB/秒、書き込み13.8GB/秒

    TBW

    600、1,200、2,400

    Crucial T710 PCIe Gen5 NVMe SSDには、1TB、2TB、4TBのドライブサイズがあり、最大14.9GB/秒の読み取りおよび書き込み速度を備えています。市場で最速の NVMe ドライブの 1 つとして、T710 のパフォーマンスは比類のないものです。


関連記事

前の投稿
古い Raspberry Pi 2 ボードを捨てないでください。再利用する 5 つの方法があります
次の投稿
これらの Sony WH-1000XM5 ヘッドフォンは現在ほぼ 25% オフです