web-dev-qa-db-ja.com

誰かがRAID-0を平易な英語で説明できますか?

私は何年にもわたってRAIDについて聞いたり読んだりしており、たとえば、RAIDを支援する方法として理論的に理解しています。サーバーPCはデータ損失の可能性を減らしますが、今私は新しいPCできるだけ速くなりたいそして2台のドライブは、マシンの知覚パフォーマンスを大幅に向上させることができます。

質問 ハードドライブのパフォーマンス向上のための推奨事項 で、著者はRAID-02つの7200RPMドライブを一緒に使用する予定であると述べています 。これは、Windows 7がインストールされている私にとって実際的な意味は何ですか? 2台のドライブを購入して、デバイスマネージャーに移動し、「それらを一緒にRAID-0」することはできますか?

私はネットワーク管理者でもハードウェアの人でもありません、私はただの開発者で、コンピュータストア来週私に超高速マシンを作ってください。 RAIDのウィキペディアページ を読むことはできますが、木が多すぎて、森が足りませんより高速なPC:

RAID-0:「パリティなしのストライプセット」または「ストライピング」。パフォーマンスの向上と追加のストレージを提供しますが、冗長性やフォールトトレランスはありません。冗長性がないため、このレベルは実際には安価なディスクの冗長アレイではありません。つまり、真のRAIDではありません。ただし、RAIDと類似しているため(特に、コントローラーが複数のディスクにデータを分散する必要があるため)、単純なストリップセットは通常RAID 0と呼ばれます。ディスクに障害が発生するとアレイが破壊され、ディスクの数が増えるとより大きな影響があります。アレイ(少なくとも、壊滅的なデータ損失は、RAIDのない単一のドライブと比較して2倍深刻です)。データがRAID0ドライブに書き込まれると、データがフラグメントに分割されるため、1つのディスクに障害が発生するとアレイ全体が破壊されます。フラグメントの数は、アレイ内のディスクの数によって決まります。フラグメントは、同じセクターのそれぞれのディスクに同時に書き込まれます。これにより、データのチャンク全体のより小さなセクションをドライブから並行して読み取ることができ、帯域幅が増加します。 RAID 0はエラーチェックを実装していないため、エラーを回復することはできません。アレイ内のディスクが多いほど帯域幅は広くなりますが、データ損失のリスクが高くなります。

では、平易な英語で、「RAID-0」は、来週注文するより高速なWindows-7 PCの構築にどのように役立ちますか?

8
Edward Tanguay

RAID-0構成は、2つの別々のハードディスクを利用し、それぞれにデータの「チャンク」を書き込んで、アクチュエータの動きを最小限に抑え、データの読み取り/書き込みを高速化します(各アームはある意味で半分の作業を行います)。これに関する注意点は、フォールトトレランスが不足していることです。1つのドライブが停止すると、すべてのデータが失われます。また、データを処理するドライブが2あるため、データが失われる可能性は基本的に2倍になります。 RAID1 + 0を検討することをお勧めします。これにより、速度の利点とフォールトトレランスが得られます。障害が発生したときに別のディスクにスワップインして、他のディスクに再構築させることができます。

ウィキペディアのRAID-0イメージは、それをよく示しています。

alt text

ディスクがA.txtというファイルを表示していると想像してください。ここで、各セクションをたとえば4096バイトのクラスターとして想像してください。各ディスクはこのテキストファイルの約16384バイトを保持しており、1つのディスクが停止した場合、残りの半分を回復する方法はありません。

ディスクを2つに制限している場合は、オペレーティングシステムでRAID-0構成のみを行うことをお勧めします。重要なファイルはすべて、外付けドライブなどの別のメディアに保存する必要があります。可能であれば、もう1台のハードドライブに保存する必要があります。フォールトトレランスのない高速なマシンを使用することと、ファイルが安全な低速のマシンを使用することの違いを意味する場合は、低速のマシンを選択します。少なくとも私にとっては、後悔するよりは安全だと思います。

14
John T

RAID0(ストライピング)を使用する場合、データの各ブロックは部分的に1つのディスクに書き込まれ、部分的に他のディスクに書き込まれます。

1MBのファイルを作成するとします。ハードディスクが1つしかない場合は、ファイルを書き込むだけです。議論のために、これには10秒かかるとしましょう。

RAID0に2つのディスクがある場合、各ディスクは0.5MBを書き込みます。議論のために、これには半分の時間がかかるため、パフォーマンスが向上します。

同様の方法でデータの読み取りが高速になります。1つのディスクから1MBを読み取る代わりに、2つのディスクから0.5MBが読み取られます。

RAID0はフォールトトレラントではないことに注意してください。つまり、RAID0セット内の1つのディスクが失われると、ボリューム全体が失われます。

Windows 7は、ディスクの管理ツールでRAID0ボリュームを作成できます。ディスクをダイナミックディスクにアップグレードしてから、マルチディスクボリュームを作成する必要があります。 Windowsは、RAID0ボリュームを「ストライプボリューム」と呼びます。

6
ThatGraemeGuy

RAID-0は、2つ(またはそれ以上)のドライブ上のデータを交互に使用して、読み取りアクセスの速度を2倍(またはそれ以上)にします。ただし、この速度は、いずれかのドライブに障害が発生するとすべてのデータが失われるため、データが失われるリスクが高くなります

RAID-1は、両方のドライブにコピーを書き込むことでデータをミラーリングします。これにより、データが失われるリスクが低くなりますが、通常は何も読み取られません。もっと早く。

ドライブが4つある場合は、実際にはRAID 1 + 0であるRAID-10、またはミラーリングされたデータセット(RAID 1)を使用してストライプ化(RAID 0)することで、両方の長所を活かすことができます。

多くのサーバーが使用するRAID-5について聞いたことがあるかもしれません。これは、データをストライプ化するだけでなく、パリティ情報も保存するため、単一のドライブに障害が発生する可能性があり、すべてのデータが安全で、空のドライブに再構築できるためです。故障したドライブは交換されます。

ただし、テラバイトドライブが一般的になりつつある現在、データ量が多いため、ドライブでエラーが発生する可能性が非常に高いため、2台目のドライブが先行するRAID-5システムで障害が発生する重大なリスクがあります。最初のものは交換できます。これは主に、ドライブの数が8台未満の少数のシステムで問題になります。

ソリューション? RAID-10を使用すると、パリティ計算が不要なため、RAID-10は派手なRAID-5よりも高速であることがわかります。

したがって、高速開発マシンの場合、データを危険にさらすことなくストライピングのすべての速度の利点を得ることができるように、RAID-10を使用することを強くお勧めします。 この記事 をご覧ください。これには、現在Wikipediaの記事から欠落しているRAID-10の優れた図もあります。また、4台のドライブに移動すると、ストレージが2倍になるだけですが、読み取り時間が4倍になることに注意してください。コンパイルされた言語を使用する場合、その4倍のほとんどすべてがより高速なコンパイルで増加することがわかります。

2
Michael Dillon

基本的に、RAID-0は2つのドライブを1つのように扱う方法です。そのため、2つのドライブには2つのバスがあり、2つのバスはより高速になります。

このように考えてください。 1MBのファイルを単一のハードドライブに書き込む代わりに、すべての奇数ビットを1つのディスクに書き込み、すべての偶数ビットを2番目のディスクに書き込みます。理論的には、データの書き込みと読み取りが2倍速くなります。ただし、ファイルはドライブ間で分割されます。したがって、1つのディスクに障害が発生した場合、2番目のディスクのすべてのデータは完全に役に立たなくなります。

1
Samwise

では、平易な英語で言えば、「RAID-0」は、来週注文する予定のより高速なWindows-7PCの構築にどのように役立つのでしょうか。

ビデオ編集に多くのディスク容量が必要な場合を除いて、RAID-0は使用しないでください。代わりに、2番目のドライブのお金を小さなSSD(80GB'ish)に費やしました。

あなたがそれを使いたいのなら、これは私が与えることができる最も簡単な説明です:

本を書いたり読んだりする秘密を想像してみてください。彼女の速度は限られています。

これで、2人の秘書と2冊の本があれば、速度を2倍にすることができますが、実際には、ほとんどの場合、一方はアイドル状態で、もう一方は一生懸命働いています。 (たとえば、本の1つから章を読むということは、その本を持っている秘書ができるだけ速く読んでいることを意味しますが、他の本は何の関係もありません)。

ここで、RAID0を賢くしようとしています。各Wordを交互に使用します。単語1は最初の本にあり、単語2は2番目の本にあり、単語3は最初の本にあり、単語4は2番目の本にあります..。

配列から章を読むと、両方の秘書が忙しいです。理論的には、パフォーマンスが2倍になります。


それは私が与えることができる最も技術的な説明ではありません。少し技術的ですが、非常に良いのは この回答 姉妹​​サイトです。

0
Hennes

RAID 0が行うことは、基本的に、データの半分を一方のドライブに、残りの半分をもう一方のドライブに置くことです。 1つのドライブが故障すると、すべてのデータが失われます。頻繁にバックアップを実行します。それは基本的にいくつかの面で速度を2倍にし、他の面では同じままです。

0
Brian

このように作業する場合、RAID0が最適です。

1.-読み取り/書き込みタスクで高速が必要/必要(100万を超える小さなファイルでプロジェクトをコンパイルするなど)2.- PCの電源を切る前に、常に外部メディアでバックアップを実行します

アレイの1つのディスクですべてのデータが失われると、すべての人が言うのはなぜですか?すべてがBackUPにある場合、これは完全に誤りです。

失うのは、通常のアクセスでアレイに格納されている情報へのアクセスです(フォレンジックアクセスは一部の部分を回復できる場合があります)。

Raid XをBackUPの代替として使用してはなりません(決して使用しないでください)。したがって、すべてのディスクに同時に障害が発生したという理由だけでアレイが失われる可能性があります(場合によっては発生することもあります)。

私はいつもこれを行います(WindowsではなくLinuxで、後でWindowsを使用しない理由を説明します):RAID 0で3つのディスク(マザーボードで可能な最大数、2つのSataと1つのPata)を使用し、次にRAID0をLinuxルート用にパーティション分割します。もう1つはスワップ用(2GiBのRAMのみ、最大マザーボードで処理可能)、もう1つはデータ用です...そして常に5つの外部(USB)デバイス(ペンドライブ、DVD、HDDなど)にバックアップがあります。

したがって、内部ディスクに問題が発生した場合は、新しいディスクと交換し、レイドとパーティションを再作成して、すべてのデータ(OSファイル、ブート、データなど)を元に戻します...ほんの数分...そして再びオンにします。

ゲイン:すべてのディスクアクセスの速度を3倍にします...私のマザーボードはSata Iで、各ディスクの80MiB/sを取得します(Pataからの80MiB/sが一番上にあることを考えると素晴らしいです)。

パタの部分では、デバイスは1つしかありません(HDDマスターとDVDスレーブのように、同じポートに2つのデバイスを配置すると、マザーボードの帯域幅が大幅に減少します。また、HDDのように各ポートに2つのデバイスを配置すると、速度が低下します。マスターポート0とDVDマスターポート1は、ばかげているように見えますが、両方のポート間で帯域幅を共有しているため、DVDを外部USBエンクロージャーで使用します(このようなものから起動できます)。

では、なぜWindowsではなくLinuxを使用するのでしょうか。

私のマザーボードにはRAID機能がないため、ハードウェアアシストなしでWindowsがRAID 0から起動することはありません。完全なハードウェアRAIDであるか、単なる偽のRAIDである場合でも、WindowsをRAID0から起動するにはハードウェアRAIDコントローラーが必要です...カウンターパート、またはLinuxでは正反対です。

Linuxでは、あらゆる種類のRaid、ZFSから起動できます。また、Raid 0内にgrub.cfgファイルを配置し、そこから起動することもできます(grubステージはlvmなどについて知る必要があります。 install-grub2は、lvmモジュールをプリロードするように指示します)...さらに... grub2は、ファイルが暗号化された(LUKS)上にある別の暗号化された...などで起動できます。それぞれに独自のパスフレーズ、アルゴリズムなどがあり、その上、中間、または複数のポイントで、必要に応じてLVM(レイド)を実行できます...必要に応じて複雑にすることができます...また、内部および外部のUSBデバイスをパーツとして使用するなど。

Windowsは非常に制限されており、Windows側(ハードウェアのない純粋なソフトウェア)では、すべてのディスクが動的(基本ではない)である必要があるため、それらから起動することはできません。

WindowsブートデバイスをRAID0にするには、ハードウェアRAID(純粋な100%または単に偽のRAID)が必須です。

また、VHD/VHDXは、実際のハードウェア(仮想マシンなし)を介してWindowsを内部から起動する場合は、動的にすることはできません。

今私は> 500MiB/sで書き込むことができる2つのSSDを持っています(友人のSata IIIマザーボードでテスト済み)Pata部分(96 MiB/Sのみを与える)はボトルネックのように見えます、私は各Sataで137 MiB/sしか得られませんポートするので、137 + 137 +96は370になります...間違っています...レイド0では3 *遅くなるので、3 * 96 = 282なので、2つのSataだけを使用すると2 * 137 = 274になります。そのPataSSDを使用することによる利益(もちろんSataからPataへのアダプターを使用)は282に非常に近いので、2つのSataのみを使用し続け、BIOSでPataポートを無効にします...そして驚き...

Pataポートを無効にした後、各Sataポートで146MIB/sを取得しました...なぜそれが増加するのか誰が知っていますか?したがって、2 * 146 = 292は、3つのディスクを使用したときに得た282よりも多くなります。

だから私はすべてに言わなければなりません...テストとテスト、そしてそのようなテストでばかげたことを試してください... Pataポートを無効にすると、Sataポートが少し速くなります。

しかし、Windowsの場合...ブートドライブのRAID 0にはハードウェアRAIDが必要です。ブートもシステムパーティションもないdadaディスクのRAID 0は、ディスク管理から実行できます。

したがって、3つ以上のディスクとWindowsがある場合...基本ディスクとしてのブートとシステム用に1つのディスクを使用し、残りのディスクをRAID0にします。

サーバーのようなものではないもの(ダウンタイムをゼロにする必要がある場合)でRAID1またはRAID5を使用する理由がわかりません...どのRAIDレベルでも、バックアップの必要性が回避されません。すべてのバックアップを行う場合、なぜ何らかのレベルが必要なのですか。 RAID 0を除いて、RAIDの?

開発者など(サーバーではない)の場合、ディスクに障害が発生した場合、すべてを復元するのに十分な時間(1日または2日)があります...システムの適切なクローン、データの適切なバックアップ、および机の上に置くことで数時間以内にオンにできる別のディスク(PCの電源を切り、損傷したディスクを交換し、Raid構成を復元し、システムを復元し、BackUPからデータを復元します)。

ゼロダウンタイムを必要としないものはすべて、Raid0を使用して、バックアップの実行を忘れないようにしてください。

もう1つのポイント...(私はそれを難し​​い方法で学びます)... Windowsで...私は通常のNTFSパーティションにテキストファイル(またはそれらの多く)を保存します、私はまだそのパーティションの他のフォルダで作業します数時間、私はそのようなファイルを数時間後に読みました...それから私はWindowsを正常にシャットダウンしました、警告なし、何も問題がない信号はありません...翌日私はそのファイルを読みましたそしてそれらのいくつかは数日前のようでした書き込みと読み取りの後で...ファイルが古い時点になったかのように...作業の一部を失った...非常に奇妙ですが、3回発生しました...あなたが思うとデータがファイルに保存されましたが、再起動後、実際にはそうではなかったことがわかります。

これは、Windowsキャッシュがディスクに書き込む方法と、NTFSジャーナリングの実装が非常に悪いことを示した大きなバグです...したがって、Windowsを二度と信頼することはありません...再起動する前に、外部メディア(USBペンドライブ、暗号化されたHDD)でバックアップを実行しますVeraCryptなどで...書き込みキャッシュがWindows自体によって管理されていない場合)、フラッシュ(VeraCryptアンマウント)とWindowsイジェクトUSBを強制し、それを再接続して(Bit2Bit)すべてのデータが同一で​​あることを確認します。 。次に、USBを安全に取り出し、再起動するか、電源を切ります。

次回の起動時に、外部バックアップを再テストします...そして時々次のことがわかります:1.-外部USBにコピーされた内部非RAID NTFSに書き込まれたファイルは、外部USB2でOKです。-そのようなファイルは古いものです。内部ディスクの状態なので、USBから新しいバージョンを回復する必要があります

それは本当にばかげています...しかし、BUGはこれを引き起こしました:1。-データはファイルに書き込まれるように求められ、書き込みキャッシュはオンで、データはRAMにあり、ディスクには決して行きません(BUG)2.-あなたはファイル(RAMキャッシュ上にあるため)、ディスク3から再度読み取ることはありません。-Windowsをシャットダウンすると、RAMキャッシュはディスクに書き込まれません( BUG)なので、次にファイルが読み取られるとき、古い状態のデータがあります。

本当に奇妙なこと... NTFSパーティションがWindowsソフトウェアRaid0上にある場合にバグが発生することはありません...しかし、ベーシックディスク上の通常のNTFSの場合、Vista、7、8、8.1、および10(バージョン1709が見られず、更新されてから十分な時間がありません)...年に3回近く発生し、開発者であることが発生すると非常に苦痛になります....ソースコードの修正されたバグが再表示されるなど...次の手順に従うまで:1.-そのデバイスに書き込みキャッシュがない状態でUSB経由でシャットダウンする前にバックアップします(7-Zipを使用して、100万を超える小さなファイルを大きなファイルに圧縮してパックします)。 2.-安全なイジェクトUSb3.-シャットダウン、再起動など4.-次回の起動時に、最初に行うことは、内部ディスク上のすべてのデータが古い状態になる可能性があることを考慮することです...したがって、USBからすべてのデータを復元します。これで、WindowsBUGが再び影響を与えることはないと確信しています。

それはすべて時間の無駄であり、実際に何が節約されたかわからないため、Windows over VirtualBOX over Linux overLinuxソフトウェアのRAID0の混合ソリューションに移行しました。

Linux、VirtualBOX、Windowsの順に起動します...そしてその上ですべてのディスクの書き込みキャッシュを無効にします... Linuxキャッシュの方がはるかに優れており、LInuxで同様のバグが表示されることはありません。

LinuxOSはRAID0を超えており、VirtualBOXはファイルを仮想ディスクとして使用し(1つはシステム用、もう1つは私のプロジェクト用など)、それぞれがLinux Software Raid0を超えています。

Windowsがデータを書き込まない(書き込みキャッシュのバグがオン)ことについては何の苦痛もありません。Windows内の書き込みキャッシュは、Windowsが参照するすべてのパーティションでオフになっています。 WindowsシステムとWindowsデータ仮想ディスクの両方でLinuxRAID0の速度とLinuxディスクキャッシュを取得します。私は多くの時間を得る... USB 3.1 Gen 2(10Gib/s、> 1GiB/s)への毎日32GiBの節約は1分未満で完了し(Sata IIIマザーボードの場合)、SataIマザーボードでは32GiB /(2 * 146)= 112秒(2分強)。

したがって、すべてのWindowsとデータをバックアップするには、1日3分もかかりませんでした...では、RAID 0を使用しないのはなぜですか?すべてを失うと、そのようなファイルを復元するのに3分もかかりませんでした... Linuxクローンの復元(約20分)を除いて、ハードディスクを交換するために10、Liveディストリビューションを起動するために5、レイドを再作成するために5 0およびLinuxクローンの復元。

したがって、1つのディスクに障害が発生した場合、再び動作するのに30分もかからないのですが、1日あたり3分未満のコストで(BackUPの場合)...そしてBackUPの日は必須です。 ZFSなどであるかどうかに関係なく使用します。

常に人為的エラーの可能性があります。間違ったフォルダを削除するとどうなりますか?など...バックアップは、何かが本当にうまくいかないときに持っている最も重要なものです。

そして、最後の状態だけでなく、過去のバックアップがある方がよいでしょう。

非常に優れたBackUPの習慣があるため、RAID 0は、リスクの損失がゼロの本当に改善されています(BackUPがあるため、データはRaidアレイから失われますが、BackUPからは失われません)。

0
Anonymous

RAID 0は、2つのドライブにデータの単一ブロックを効果的に拡張するため、そのブロックの書き込みまたは読み取りが必要な場合は、両方のドライブで部分的に実行されるため、操作が高速になります。たとえば、16Kのストライプサイズがある場合、8Kが各ドライブに常駐します。

問題は、あなたが述べたように、パリティがないことです。 1つのドライブが停止すると、すべてのブロックの半分が停止したドライブにあるため、すべてのデータが失われます。通常、ドライブをRAID 0で構成することはお勧めしませんが、必要な場合はOSをRAID0に配置しません。 OSとRAID0 2の他のドライブ用の小さな高速ドライブ(SSDを考えてください)を入手して、それにアプリケーションをインストールするだけかもしれません。

0
MDMarra

開発作業を行う開発者マシンが必要な場合は、信頼性の高いものが必要です。そのため、書き込まれたデータが2番目のドライブにコピーされるRAID1を使用します。

このように、最初のドライブにすべての正確なコピーがあるので、最初のドライブに障害が発生した場合、2番目のドライブに切り替えることができ、システムは何も問題がなかったように感じます。


しかし、まだスピードを求めているのであれば、RAID0は次のようになります。

Drive1とdrive2の2つのドライブがあります。

たとえば、1MBのファイルをデスクトップに書き込みます。これで、RAIDコントローラーがドライブに書き込むファイルを受信すると、ファイルが半分(0.5MBと0.5MB)に分割され、それぞれがそれぞれのドライブに書き込まれるため、ファイルの書き込みに必要な時間は半分になります。 。

また、ファイルを読み取っているときはその逆です。ドライブ1から0.5MB、ドライブ2から0.5MBが取得されるため、ドライブが1つしかない場合の半分の時間(理論上)でファイルを取得できます。 (ランダムな読み取りアクセス時間についてはまだ詳しく調べていません)

これは、RAID0および1の非常に単純化されたバージョンです。


私は個人的にWindows7のインストールをRAID0(2x 250GB)で実行しており、書き込み時間のパフォーマンスの向上を保証できます。 Adobe Master Collection CS3、Full Suiteを約1〜2分でインストールしましたが、7200rpmドライブが1つしかない古いシステムでは約5分以上かかりました。

0
shrmn