RAIDとは何ですか?

RAIDは、本来、より低コストで大容量のストレージを作成する手段として、 ネットワークサーバー市場向けに開発されたソリューションです。 本質的に、それは複数のより低コストのハードドライブを取って、より大容量の単一のドライブを提供するためにコントローラを介してそれらをまとめるでしょう。 これはRAIDの略です。安価なドライブまたはディスクの冗長アレイ。 これを達成するために、さまざまなドライブ間で分割されるデータを管理するために、専用のソフトウェアとコントローラが必要でした。

最終的には、標準的なコンピュータシステム処理能力により、この機能はパーソナルコンピュータ市場にフィルタリングされました。

現在、 RAIDストレージは、ソフトウェアベースまたはハードウェアベースであり、3つの異なる目的のために使用できます。 これには、容量、セキュリティ、およびパフォーマンスが含まれます。 容量は、使用されるほぼすべてのタイプのRAID設定に通常含まれる単純なものです。 たとえば、2つのハードドライブを1つのドライブとしてオペレーティングシステムにリンクすると、2倍の容量の仮想ドライブを効果的に作成できます。 パフォーマンスは、パーソナルコンピュータでRAID設定を使用するもう1つの重要な理由です。 2つのドライブが1つのドライブとして使用されている同じ例では、コントローラはデータチャンクを2つの部分に分割し、それぞれの部分を別々のドライブに配置できます。 これにより、ストレージシステムでのデータの書き込みまたは読み取りのパフォーマンスが効果的に倍増します。 最後に、データセキュリティにRAIDを使用することができます。

これは、ドライブ上のスペースの一部を使用して、両方のドライブに書き込まれたデータを本質的に複製することによって行われます。 もう一度、2台のドライブを使用して、データを両方のドライブに書き込むことができます。 したがって、1つのドライブに障害が発生すると、もう1つのドライブにはまだデータが残っています。

お使いのコンピュータシステムに組み込むストレージアレイの目標に応じて、これらの3つの目標を達成するためにさまざまなレベルのRAIDの1つを使用します。

彼らのコンピュータにハードドライブを使用している人にとって、性能はおそらく容量よりももっと問題になるでしょう。 一方、 ソリッド・ステート・ドライブを使用しているドライブでは、より小さいドライブを取り出して1つの大きなドライブを作成する方法が望まれます。 では、パーソナルコンピュータで使用できるさまざまなレベルのRAIDを見てみましょう。

RAID 0

これはRAIDの最下位レベルであり、実際にはレベル0と呼ばれる冗長性を提供しません。本質的に、 RAID 0は2つ以上のドライブをまとめて、より大容量のドライブを形成します。 これはストライピングと呼ばれるプロセッサによって実現されます。 データブロックはデータチャンクに分割され、ドライブ間で順番に書き込まれます。 これは、データをコントローラに同時に書き込むことができるため、ドライブの速度を効果的に増やすことができるため、パフォーマンスが向上します。 以下は3つのディスクでどのように動作するかの例です:

ドライブ1 ドライブ2 ドライブ3
ブロック1 1 2 3
ブロック2 4 5 6
ブロック3 7 8 9


RAID 0がシステムのパフォーマンスを向上させるために効果的に機能するためには、一致するドライブを試してみる必要があります。 各ドライブは、同じ正確な記憶容量とパフォーマンス特性を持つ必要があります。

そうでない場合、容量は、ドライブの最小の倍数とドライブのパフォーマンスのうちの最も遅いものの倍数に制限されます。次のセットに移動する前に、すべてのストライプが書き込まれるのを待たなければなりません。 不一致のドライブを使用することは可能ですが、その場合はJBOD設定がより効果的です。

JBODはほんの一束のドライブを意味し、事実上、互いに独立してアクセスできるが、オペレーティングシステムに対する単一のストレージドライブとして見えるドライブの集まりです。 これは、通常、ドライブ間でデータを分割することによって実現されます。 多くの場合、これはSPANまたはBIGと呼ばれます。

効果的には、それらのすべてを1つのディスクと見なしますが、ブロックがいっぱいになるまで最初のディスクに書き込まれ、2番目、3番目などに進みます。これは、既存のコンピュータシステムに余分な容量を追加する場合に便利です。さまざまなサイズのドライブを使用していますが、ドライブアレイのパフォーマンスは向上しません。

RAID 0とJBODの設定で最も大きな問題はデータセキュリティです。 複数のドライブがあるため、より多くの障害点があるため、データの破損の可能性が増しました。 RAID 0アレイのドライブが故障すると、すべてのデータにアクセスできなくなります。 JBODでは、ドライブに障害が発生すると、そのドライブ上にあったデータが失われます。 その結果、このストレージ方法を使用してデータをバックアップするための他の手段が必要な方に最適です。

RAID 1

これは、アレイに格納されているデータに対して完全なレベルの冗長性を提供するため、RAIDの最初の真のレベルです。 これは、ミラーリングと呼ばれるプロセスによって行われます。 効果的に、システムに書き込まれるすべてのデータは、レベル1のアレイ内の各ドライブにコピーされます。 この形式のRAIDは通常、ドライブを増やすだけで容量が追加されず、冗長性が増します。 これの例をよりよく説明するために、2つのドライブにどのように書き込まれるかを示すチャートを次に示します。

ドライブ1 ドライブ2
ブロック1 1 1
ブロック2 2 2
ブロック3 3 3


RAID 1の設定から最も効果的な使用を得るために、システムは同じ容量と性能の定格を共有する一致したドライブを再び使用します。

一致しないドライブが使用されている場合、アレイ容量はアレイ内の最小容量ドライブに等しくなります。 たとえば、RAID 1アレイで1.5テラバイトのドライブと1テラバイトのドライブが使用された場合、システム上のこのアレイの容量は単なる1テラバイトに過ぎません。

このレベルのRAIDは、2つのドライブが実質的に同じであるため、データセキュリティに非常に効果的です。 2つのドライブの一方が故障すると、他方のドライブは他方のドライブの完全なデータを有する。 このタイプのセットアップでは、一般に、どのドライブが故障したかを判断します。これは、2台のうちの1台が故障し、故障したドライブの代わりに新しいドライブを挿入して復旧するまで、プロセスが実行されます。 前述したように、これからもパフォーマンスの向上は全くありません。 実際には、RAIDのコントローラのオーバーヘッドによってわずかなパフォーマンスの低下があります。

RAID 1 + 0または10

これは、RAIDレベル0とレベル1の両方のやや複雑な組み合わせです 。 効果的には、このモードで機能するためにコントローラは最低でも4つのドライブを必要としますが、これは2対のドライブを作るためです。 最初のドライブセットはミラーリングされたアレイで、2つのドライブ間のデータを複製します。 ドライブの2番目のセットもミラーリングされていますが、最初のドライブのストリップに設定されています。 これにより、データの冗長性とパフォーマンスの両方が向上します。 以下は、このタイプのセットアップを使用して4台のドライブにデータを書き込む方法の例です。

ドライブ1 ドライブ2 ドライブ3 ドライブ4
ブロック1 1 1 2 2
ブロック2 3 3 4 4
ブロック3 5 5 6 6


正直言って、これはコンピュータシステム上で実行されるRAIDの望ましいモードではありません。 それはいくつかのパフォーマンスの向上を提供していますが、実際にはシステムのオーバーヘッドの膨大な量のため、それほど良くありません。 さらに、ドライブアレイはすべてのドライブを組み合わせた容量の半分に過ぎないので、スペースの無駄です。 不一致のドライブを使用すると、パフォーマンスはドライブの中で最も遅く制限され、容量は最小ドライブのわずか2倍になります。

RAID 5

これは、コンシューマコンピュータシステムで使用できるRAIDの最高レベルであり、容量と冗長性を高めるためにはるかに効果的な方法です。 これは、パリティ付きのデータストライピングのプロセスによって実現されます。 データは複数のドライブ上のストライプに分割されますが、ストライプを横切る1ブロックはパリティ用に確保されるため、最低3台のドライブが必要です。 これをよりよく説明するには、最初に3つのドライブにデータを書き込む方法を見てみましょう。

ドライブ1 ドライブ2 ドライブ3
ブロック1 1 2 p
ブロック2 3 p 4
ブロック3 p 5 6


本質的に、ドライブコントローラは、アレイ内のすべてのドライブに書き込まれるデータのまとまりを取ります。 データの第1ビットは第1ドライブに配置され、第2ビットは第2ドライブに配置される。 第3のドライブは、基本的に第1および第2のバイナリデータの比較であるパリティビットを得る。 バイナリ数学では、0と1だけです。ビットを比較するブール演算プロセスが行われます。 2つが偶数(0 + 0または1 + 1)まで加算される場合、パリティビットはゼロになります。 2つが奇数(1 + 0または0 + 1)まで加算される場合、パリティビットは1になります。 この理由は、ドライブの1つが故障した場合、コントローラーは、欠落しているデータが何であるか把握することができるからです。 たとえば、ドライブ1に障害が発生し、ドライブ2と3だけを残し、ドライブ2に1のデータブロックがあり、ドライブ3にパリティブロック1がある場合、ドライブ1の欠損データブロックはゼロでなければなりません。

これにより、効果的なデータ冗長性が実現され、ドライブに障害が発生した場合でもすべてのデータを復元できます。 ほとんどのコンシューマ設定では、機能状態になっていないため、システムが停止しても障害が発生します。 システムを機能させるには、故障したドライブを新しいドライブに交換する必要があります。 次に、コントローラー・レベルでデータ再構成プロセスを実行し、逆ブール関数を実行して不足しているドライブのデータを再作成する必要があります。 これには時間がかかりますが、特に大容量ドライブの場合は、少なくとも回復可能です。

現在、RAID 5アレイの容量は、アレイ内のドライブ数と容量によって異なります。 もう一度、アレイはアレイ内の最小容量のドライブによって制限されるため、一致するドライブを使用することをお勧めします。 有効なストレージスペースは、ドライブ数から最低容量の1倍を差し引いたものに等しくなります。 したがって、数学的には(n-1)* Capacityminです。 したがって、RAID 5アレイに3つの2GBドライブがある場合、合計容量は4GBになります。 2つの2GBドライブを使用する別のRAID 5アレイでは、6GBの容量があります。

RAID 5のパフォーマンスは、データがドライブに書き込まれているときにパリティビットを作成するために行わなければならないブールプロセスのため、他の形式のRAIDよりも少し複雑です。 つまり、書き込みパフォーマンスは、同じ数のドライブを持つRAID 0アレイよりも小さくなります。 一方、ブール・プロセスはドライブからストレート・データを読み取るために実行されないため、読取りパフォーマンスは書込みほど損なわれません。

すべてのRAID設定の大きな問題

私たちは、パーソナルコンピュータで使用できるRAIDの各レベルのさまざまな賛否両論について議論しましたが、RAIDドライブセットアップの作成に関しては、多くの人が気づいていない別の問題があります。 RAIDセットアップを使用するには、ハードウェアコントローラソフトウェアまたはオペレーティングシステムのソフトウェアのいずれかで構築する必要があります。 これは基本的に、データがドライブ上でどのように書き込まれ、読み込まれるかを適切に追跡するために必要な特別なフォーマットを初期化します。

これはおそらく問題のようには思えませんが、RAIDアレイをどのように構成するかを変更する必要がある場合でもそうです。 たとえば、データが不足していて、RAID 0またはRAID 5アレイのドライブを追加したいとします。 ほとんどの場合、RAIDアレイを最初に再構成しないと、これらのドライブに格納されていたデータも削除されません。 これは、データを完全にバックアップし、新しいドライブを追加し、ドライブアレイを再構成し、そのドライブアレイをフォーマットし、元のデータをドライブに復元する必要があることを意味します。 それは非常に苦しいプロセスになる可能性があります。 その結果、最初にアレイをセットアップしていることを確認してください。