RAID

内容

·         1 はじめに

o    1.1 物理ディスクと論理ディスクの違い

o    1.2 データの読み書き

o    1.3 RAIDとは?

o    1.4 なぜRAIDを使うのか?

o    1.5 歴史

·         2 RAIDシステムで使用される基本的な概念

o    2.1 キャッシング

o    2.2 ミラーリング。データの複数のコピー

o    2.3 ストライピング。データの一部が別のディスクにある

o    2.4 誤り訂正と不具合

o    2.5 ホットスペア:必要以上に多くのディスクを使用する

o    2.6 ストライプサイズとチャンクサイズ:複数のディスクにデータを分散させる

o    2.7 ディスクをまとめるJBOD、連結またはスパニング

o    2.8 ドライブクローン

o    2.9 異なるセットアップ

·         3 基本:シンプルなRAIDレベル

o    3.1 一般的に使用されているRAIDレベル

§  3.1.1 RAID 0 の「ストライピング

§  3.1.2 RAID 1の「ミラーリング

§  3.1.3 RAID 5 "分散パリティによるストライピング"

§  3.1.4 写真

o    3.2 使用されるRAIDレベルが少ない

§  3.2.1 RAID 2

§  3.2.2 RAID 3 "専用パリティによるストライピング"

§  3.2.3 RAID 4 "専用パリティによるストライピング"

§  3.2.4 RAID 6

§  3.2.5 写真

o    3.3 非標準のRAIDレベル

§  3.3.1 ダブルパリティ/対角パリティ

§  3.3.2 RAID-DP

§  3.3.3 RAID 1.5

§  3.3.4 RAID 5E、RAID 5EE、RAID 6E

§  3.3.5 RAID 7

§  3.3.6 Intel Matrix RAID

§  3.3.7 Linux MD RAID ドライバ

§  3.3.8 RAID Z

§  3.3.9 画像

·         4 RAIDレベルの結合

·         5 RAIDの作成

o    5.1 ソフトウェアRAID

o    5.2 ハードウェアRAID

o    5.3 ハードウェア支援型RAID

·         6 ハードウェア障害に関するさまざまな用語

o    6.1 故障率

o    6.2 データ消失までの平均時間

o    6.3 平均回復までの時間

o    6.4 回復不能ビットエラーレート

·         7 RAIDの問題点

o    7.1 後からディスクを追加する

o    7.2 連携障害

o    7.3 原子性

o    7.4 復元不可能なデータ

o    7.5 ライトキャッシュの信頼性

o    7.6 機器の互換性

·         8 RAIDでできること、できないこと

o    8.1 RAIDでできること

o    8.2 RAIDでできないこと

·         9

·         10 参考文献

·         11 その他のサイト

RAIDとは、Redundant Array of Inexpensive DisksまたはRedundant Array of Independent Disksの頭文字をとったものです。RAIDはコンピューティングで使われる用語です。RAIDでは、複数のハードディスク1つの論理ディスクにします。これにはさまざまな方法があります。ハード ディスクを一緒に配置するそれぞれの方法には、互いに独立した単一のディスクとしてドライブを使用する場合に比べて、いくつかの利点と欠点があります。RAID が使用される主な理由は以下の通りです。

  • データの紛失を少なくするためにはこれは、データのコピーを複数持つことで行われます。
  • 小さいディスクをたくさん持つことで、より多くのストレージスペースを確保するために。
  • より柔軟性を得るために(システムが動作し続けている間にディスクを変更または追加することができます
  • より早くデータを手に入れるために

全ての目標を同時に達成することは不可能なので、選択が必要です。

悪いこともあります。

  • ある種の選択は、1つ(または複数)のディスクが故障したためにデータが失われることからデータを保護することができます。ただし、データが削除されたり上書きされたりすることからは保護されません。
  • いくつかの構成では、RAID は 1 台または複数のディスクが故障しても耐えられるようになっています。故障したディスクを交換した後、データを再構築する必要があります。構成とディスクのサイズにもよりますが、この再構築には長い時間がかかります。
  • ある種のエラーが発生すると、データの読み込みができなくなる

RAIDに関する作業のほとんどは、1988年に書かれた論文に基づいています。

技術が開発されて以来、企業はデータを保存するために RAID システムを使用してきました。RAIDシステムには様々な方法があります。RAIDシステムが発見されて以来、RAIDシステムを構築するためのコストは大幅に下がりました。このため、家庭で使用されているコンピュータや家電製品にもRAID機能が搭載されています。そのようなシステムは、例えば、音楽映画を保存するために使用することができます。

序章

物理ディスクと論理ディスクの違い

ハードディスクはコンピュータの一部です。通常のハードディスクは磁気を利用して情報を保存します。ハードディスクが使用されると、オペレーティングシステムで利用できるようになります。Microsoft Windowsでは、各ハードディスクにはドライブ文字が付けられます(C:で始まるもの、A:またはB:はフロッピードライブ用に予約されています)。UnixやLinuxのようなオペレーティングシステムでは、単一ルートのディレクトリツリーを持っています。これは、コンピュータを使う人が情報がどこに保存されているかわからないことがあることを意味します(公平に言えば、多くのWindowsユーザは自分のデータがどこに保存されているかも知らないのです)。

コンピューティングでは、ハードディスク(ハードウェアであり、触れることができるもの)を物理ドライブ物理ディスクと呼ぶことがあります。オペレーティングシステムがユーザーに表示するものは、論理ディスクと呼ばれることがあります。物理ドライブは、ディスクパーティションと呼ばれる異なるセクションに分割することができます。通常、各ディスクパーティションには1つのファイルシステムが含まれています。オペレーティングシステムは、論理ディスクのように各パーティションを表示します。

したがって、ユーザーにとっては、多数の物理ディスクを使用したセットアップと多数の論理ディスクを使用したセットアップの両方が同じに見えます。ユーザーは、「論理ディスク」が物理ディスクと同じなのか、それとも単にディスクの一部なのかを判断することができません。ストレージ・エリア・ネットワーク(SAN)は、この見方を完全に変えます。SANで見えているのは、多数の論理ディスクだけです。

データの読み書き

コンピュータでは、データはビットとバイトの形で構成されています。ほとんどのシステムでは、8ビットが1バイトを構成しています。コンピュータのメモリはデータを格納するために電気を使用していますが、ハードディスクは磁気を使用しています。したがって、データがディスクに書き込まれると、電気信号は磁気信号に変換されます。ディスクからデータを読み出すときには、その逆の方向に変換されます。磁場の極性から電気信号が作られます。

RAIDとは何ですか?

RAID アレイは、2 つ以上のハードディスク結合して論理ディスクを作成します。これが行われる理由は様々です。最も一般的なものは以下の通りです。

  • アレイの1つ以上のディスクが故障した場合に、データの損失を停止します。
  • より高速なデータ転送を実現します。
  • システムが動作し続けている間にディスクを変更する機能を取得します。
  • 複数のディスクを結合して、より多くのストレージ容量を得るために、より高価なディスクではなく、安価なディスクをたくさん使用することもあります。

RAID は、コンピュータ上で特別なハードウェアやソフトウェアを使用して行われます。結合されたハードディスクは、ユーザーには1つのハードディスクのように見えます。ほとんどのRAIDレベルは冗長性を高めています。これは、データをより頻繁に保存したり、データを再構築する方法の情報を保存したりすることを意味します。これにより、データを失うことなく複数のディスクが故障することが可能になります。故障したディスクが交換されると、そのディスクに含まれているはずのデータが、システムの他のディスクからコピーされたり、再構築されたりします。これには長い時間がかかります。時間がかかるかどうかは、アレイのサイズなど、さまざまな要因によって異なります。

なぜRAIDを使うのか?

多くの企業が RAID を使用している理由の一つは、アレイ内のデータを簡単に使用できることです。データを使用する側は、RAIDを使用していることを全く意識する必要がありません。障害が発生してアレイが復旧している間は、データへのアクセスが遅くなります。この間にデータにアクセスすると、復旧プロセスも遅くなりますが、データを全く操作できないよりははるかに速いです。しかし、RAID レベルによっては、新しいディスクの使用準備中にディスクが故障しない場合があります。その時にディスクが故障すると、アレイ内のすべてのデータを失うことになります。

ディスクを結合するさまざまな方法をRAIDレベルと呼びます。レベルの数値が大きければ大きいほど良いというわけではありません。異なるRAIDレベルには、異なる目的があります。RAID レベルによっては、特別なディスクと特別なコントローラが必要なものもあります。

歴史

1978 年、IBM に勤務していた Norman Ken Ouchi という人物が、後に RAID 5 となる計画を提案しました。その計画には、RAID 1と似たようなものや、RAID 4の一部を保護することも記載されていました。

1987 年にバークレー大学の職員が研究の計画に協力しました。彼らは、RAID技術が1台のハードドライブではなく、2台のハードドライブを認識できるようにしようとしていました。彼らは、RAIDテクノロジーが2台のハードドライブを搭載した場合、1台のハードドライブのみの場合よりもはるかに優れたストレージを実現できることを発見しました。しかし、クラッシュする頻度が高くなっていました。

1988 年、David Patterson、Garth Gibson、Randy Katz が「A Case for Redundant Arrays of Inexpensive Disks (RAID)」という記事の中で、RAID の異なるタイプ(1 から 5)について書いています。この記事は、新しい技術をRAIDと呼ぶ最初の記事であり、その名称は正式なものとなりました。

デスクトップシステムに組み込まれた RAID アレイを構成する 4 台のディスクのクローズアップ。青色のラッチは、システムが稼働している間にディスクの交換を可能にします。Zoom
デスクトップシステムに組み込まれた RAID アレイを構成する 4 台のディスクのクローズアップ。青色のラッチは、システムが稼働している間にディスクの交換を可能にします。

ハードディスクがアレイから取り外されました。Zoom
ハードディスクがアレイから取り外されました。

RAIDシステムで使用される基本的な概念

RAIDは、1994年に発行されたピーター・チェン氏らの記事「RAID: High-Performance, Reliable Secondary Storage」に記載されている、いくつかの基本的な考え方を使用しています。

キャッシング

キャッシングは、RAID システムでも使用される技術です。RAID システムで使用されるキャッシュには様々な種類があります。

最近のシステムでは、書き込み要求は、データがキャッシュに書き込まれたときに行われたと表示されます。これは、データがディスクに書き込まれたことを意味しません。キャッシュからのリクエストは、必ずしもキャッシュに書き込まれた順番で処理されるとは限りません。このため、システムに障害が発生した場合には、時々、一部のデータが関係するディスクに書き込まれていないことがあります。このため、多くのシステムでは、バッテリによってバックアップされたキャッシュを備えている。

ミラーリングすること。複数のデータのコピー

ミラーといえば、これは非常にシンプルな考え方です。データは一つの場所にしかないのではなく、データの複数のコピーがあります。これらのコピーは通常、異なるハードディスク(またはディスクパーティション)にあります。2つのコピーがある場合、そのうちの1つはデータに影響を与えずに故障することができます(もう1つのコピーにはデータが残っているため)。ミラーリングはまた、データを読み取るときにブーストを与えることができます。データは常に応答の速いディスクから取り出されます。すべてのディスクを更新する必要があるため、データの書き込みは遅くなります。

ストライピング。データの一部が別のディスクにある

ストライピングでは、データは異なる部分に分割されます。これらの部分は、最終的に異なるディスク(またはディスクパーティション)に分割されます。これは、データの書き込みが並列に行われるため、データの書き込みが速くなることを意味します。これは、データの各ブロックが1つのディスクにしか存在しないため、障害が発生しないという意味ではありません。

誤り訂正と誤り

さまざまな種類のチェックサムを計算することができます。チェックサムを計算する方法の中には、間違いを見つけることができるものもあります。冗長性を使用するほとんどの RAID レベルでは、これが可能です。いくつかの方法はより困難ですが、エラーを検出するだけでなく、修正することができます。

ホットスペア:必要以上に多くのディスクを使用する

RAIDが何かをサポートしている方法の多くは、ホットスペアと呼ばれるものです。ホットスペアとは、通常の動作では使用されない空のディスクのことです。ディスクが故障した場合、データを直接ホットスペアディスクにコピーすることができます。この方法では、故障したディスクを新しい空のドライブに交換してホットスペアにする必要があります。

ストライプサイズとチャンクサイズ:複数のディスクにデータを分散させる

RAID は、データを複数のディスクに分散させることで動作します。この文脈でよく使われる用語には、ストライプサイズチャンクサイズの2つがあります。

チャンクサイズは、アレイの単一ディスクに書き込まれる最小のデータブロックです。ストライプサイズは、すべてのディスクに分散されるデータブロックのサイズです。このように、4 つのディスクがあり、ストライプサイズが 64 キロバイト (kB) の場合、16 キロバイトが各ディスクに書き込まれることになります。したがって、この例のチャンクサイズは16キロバイトになります。ストライプサイズを大きくすると、データ転送速度が速くなりますが、最大レイテンシも大きくなります。この場合、これはデータのブロックを取得するのに必要な時間です。

ディスクをまとめる。JBOD、連結またはスパニング

多くのコントローラ(およびソフトウェア)は、次のような方法でディスクをまとめることができます。最初のディスクを、それが終わるまで取って、次に2番目のディスクを取る、というように。このようにして、いくつかの小さなディスクは、より大きなディスクのように見えます。これは、冗長性がないので、本当の意味でのRAIDではありません。また、スパニングは、RAID 0では何もできないディスクを組み合わせることができます。一般的に、これは単なるディスクの(JBOD)と呼ばれています。

これは、論理ドライブが異なる物理ドライブで構成されているため、RAIDの遠い親戚のようなものです。コンカチネーションは、複数の小さなドライブを1つの大きな有用なドライブにするために使用されることがあります。これはRAID 0ではできません。例えば、JBODでは3GB、15GB、5.5GB、12GBのドライブを35.5GBの論理ドライブにまとめることができますが、これはドライブ単体よりも有用な場合が多いです。

右図では、ディスク 0 の端 (ブロック A63) からディスク 1 の先頭 (ブロック A64)、ディスク 1 の端 (ブロック A91) からディスク 2 の先頭 (ブロック A92) までのデータが連結されています。RAID 0 が使用された場合、ディスク 0 とディスク 2 は、アレイ内の最小ディスク (ディスク 1) のサイズである 28 ブロックに切り詰められ、合計 84 ブロックのサイズになります。

RAIDコントローラの中には、JBODを使用してRAID機能のないドライブでの作業について語るものがあります。各ドライブはオペレーティングシステムで別々に表示されます。このJBODはコンカチネーションと同じではありません。

多くの Linux システムでは、「リニアモード」や「アペンドモード」という用語が使われています。Mac OS X 10.4 の実装(「連結ディスクセット」と呼ばれる)では、ディスクは上記のように動作しますが、連結ディスクセットで1台のドライブに障害が発生しても、残りのドライブに使用可能なデータを残すことはできません。

コンカチネーションは、Linux の論理ボリュームマネージャの用途の一つです。仮想ドライブを作成するために使用することができます。

ドライブクローン

最近のハードディスクのほとんどは、S.M.A.R.T.(Self-Monitoring, Analysis and Reporting Technology)と呼ばれる規格を持っています。SMARTは、ハードディスクドライブ上の特定のものを監視することができます。S.M.A.R.Tや他のディスクテストで修正可能なエラーが多すぎると報告されているため、特定のコントローラは、それが失敗する前に、単一のハードディスクを交換することができます。これを行うには、コントローラはすべてのデータをホットスペアドライブにコピーします。この後、ディスクは別のものと交換することができます(これは単に新しいホットスペアになります)。

異なるセットアップ

ディスクのセットアップと上記の技術をどのように使用するかは、システムの性能と信頼性に影響を与えます。ディスクの数が多くなると、いずれかのディスクが故障する可能性が高くなります。このため、エラーを見つけて修正できるメカニズムを構築しなければなりません。これにより、システム全体の信頼性が向上し、障害を生き延びて修復することができるようになります。

 

サイズの異なる3つのディスクを搭載したJBODZoom
サイズの異なる3つのディスクを搭載したJBOD

基本:シンプルなRAIDレベル

一般的に使用されているRAIDレベル

RAID 0 "ストライピング"

RAID 0は冗長性がないので、本当の意味でのRAIDではありません。RAID 0では、ディスクは単純にまとめて大きなディスクを作ります。これは「ストライピング」と呼ばれています。1つのディスクが故障すると、アレイ全体が故障します。そのため、重要なデータにRAID 0が使われることはほとんどありませんが、ディスクからのデータの読み書きは、各ディスクが同時にファイルの一部を読み取るため、ストライピングの方が速くなります。

RAID 0 では、後から来たディスクブロックは通常、異なるディスクに配置されます。このため、RAID 0 で使用されるディスクはすべて同じサイズでなければなりません。

RAID 0は、LinuxやUnixのようなOSではスワップスペースによく使われます。

RAID 1 "ミラーリング"

RAID 1 では、2 台のディスクが一緒に置かれます。両方とも同じデータを保持し、一方はもう一方を「ミラーリング」します。これは、ハードウェアコントローラで実装してもソフトウェアで実装しても、簡単で高速な設定が可能です。

RAID 5 "分散パリティによるストライピング"

RAID レベル 5 は、おそらくほとんどの場合に使用されているものです。RAID 5 ストレージアレイを構築するには、少なくとも 3 台のハードディスクが必要です。各データブロックは3つの異なる場所に保存されます。これらのうち2つの場所にはブロックがそのまま保存され、3つ目にはチェックサムが保存されます。このチェックサムは、ビット加算のみを使用するリード-ソロモンコードの特殊なケースです。通常はXOR法で計算されます。この方法は対称性があるので、1つの失われたデータブロックは、他のデータブロックとチェックサムから再構築することができます。ブロックごとに、チェックサムを保持するパリティブロックを別のディスクが保持します。これは冗長性を高めるために行われます。どのディスクも故障する可能性があります。全体として、チェックサムを保持しているディスクは1つなので、使用可能な容量は1つのディスクを除くすべてのディスクの容量となります。結果として得られる論理ディスクのサイズは、パリティ情報を保持している 1 つのディスクを除いて、すべてのディスクのサイズになります。

もちろん、これはRAIDレベル1よりも遅く、書き込みのたびにパリティ情報を計算して更新するためにすべてのディスクを読み込む必要があるからです。RAID 5 の読み込み性能は、同じディスク数であれば RAID 0 とほぼ同等です。パリティブロックを除いて、ドライブ上のデータの分布はRAID 0と同じパターンに従います。RAID 5 が若干遅いのは、ディスクがパリティブロックをスキップしなければならないためです。

故障したディスクのあるRAID 5は動作を継続します。これはデグレードモードになっています。デグレードされた RAID 5 は非常に遅くなる可能性があります。このため、多くの場合、追加のディスクが追加されます。これはホットスペアディスクと呼ばれています。ディスクが故障した場合、データを直接追加ディスクに再構築することができます。RAID 5 は、ソフトウェア上でも非常に簡単に行うことができます。

主に失敗した RAID 5 アレイのパフォーマンスの問題が原因で、一部のデータベース専門家は BAARF-Battle Against Any Raid Five と呼ばれるグループを結成しました。

アクティブな書き込みがある間にシステムが故障した場合、ストライプのパリティがデータと一致しなくなることがあります。ディスクやブロックが故障する前にこれを修復しないと、データ損失が発生する可能性があります。不正確なパリティは、そのストライプ内の欠落したブロックを再構築するために使用されます。この問題は「ライトホール」と呼ばれることがあります。この問題が発生する可能性を減らすために、バッテリーバックアップキャッシュや同様の技術が一般的に使用されています。

写真

·        

RAID 0 は単に異なるブロックを異なるディスクに配置します。冗長性はありません。

·        

レイド1では、両方のディスクにすべてのブロックが存在します。

·        

RAID 5 はデータに対して特別なチェックサムを計算します。チェックサムを持つブロックとデータを持つブロックの両方がすべてのディスクに分散されます。

RAIDレベルの使用量が少ない

RAID 2

これは非常に大きなコンピュータで使用されていました。RAIDレベル2を使用するには、特別な高価なディスクと特別なコントローラが必要です。データはビットレベルで配布されます(他のレベルはすべてバイトレベルのアクションを使用します)。特別な計算が行われます。データはビットの静的なシーケンスに分割されます。8つのデータビットと2つのパリティビットがまとめられます。その後、ハミングコードが計算されます。その後、ハミングコードの断片が異なるディスクに分散されます。

RAID 2 はエラーを修復できる唯一の RAID レベルであり、他の RAID レベルはエラーを検出することしかできません。必要な情報が意味を成さないことに気づくと、単にそれを再構築します。これは、他のディスクの情報を使用して計算して行われます。その情報が欠落していたり、間違っていたりすると、何もできなくなります。ハミングコードを使用するため、RAID 2 は情報のどの部分が間違っているかを検出し、その部分だけを修正することができます。

RAID 2 は最低でも 10 台のディスクが必要です。その複雑さと、非常に高価で特殊なハードウェアが必要なため、RAID 2はもはやあまり使われていません。

RAID 3 "専用パリティによるストライピング"

レイドレベル3は、RAIDレベル0とよく似ています。パリティ情報を格納するために追加ディスクが追加されます。これは、他のディスク上のブロックの値をビット単位で加算することで行われます。パリティ情報は別の(専用の)ディスクに格納されます。これでは、パリティディスクがクラッシュすると、パリティ情報が失われてしまうので良くない。

RAID レベル 3 は通常、少なくとも 3 台のディスクで行われます。2 ディスクのセットアップは、RAID レベル 0 と同じです。

RAID 4 "専用パリティによるストライピング"

これは、パリティ情報がシングルバイトではなく、より大きなブロックで計算されることを除けば、RAID 3 と非常に似ています。これは RAID 5 に似ています。RAID 4アレイには、少なくとも3台のディスクが必要です。

ariphord6

RAID レベル 6 は、オリジナルの RAID レベルではありませんでした。RAID 5 アレイにパリティブロックを追加します。少なくとも4つのディスク(容量のために2つのディスク、冗長性のために2つのディスク)が必要です。RAID 5 は、リード・ソロモンコードの特殊なケースとして見ることができます。RAID 5は特殊なケースですが、ガロア場GF(2)での加算が必要なだけです。これは XOR で簡単にできます。RAID 6 はこれらの計算を拡張します。もはや特殊なケースではなく、すべての計算が必要です。RAID 6 では、通常 GF(28)の追加チェックサム(多項式と呼ばれる)が使用されます。このアプローチでは、何台でも故障したディスクから保護することができます。RAID 6 は、2 つのディスクの損失から保護するために 2 つのチェックサムを使用する場合のためのものです。

RAID 5 と同様に、パリティとデータはブロックごとに異なるディスク上にあります。2つのパリティブロックもまた、異なるディスクに配置されています。

RAID 6 を実行するには、さまざまな方法があります。それぞれの方法は、書き込み性能や必要な計算量が異なります。より高速な書き込みが可能になるということは、通常、より多くの計算が必要になることを意味します。

RAID 6 は RAID 5 よりも遅いですが、2 台のディスクが故障しても RAID を継続することができます。RAID 6は、1台のドライブが故障した後、残りのディスクの1台に1つ以上の不良セクタがあってもアレイを再構築できるので、人気が出てきています。

写真

·        

RAID 3 は RAID レベル 0 とよく似ています。各データブロックのチェックサムを保持するディスクが追加されます。

·        

RAID 4 は RAID レベル 3 に似ていますが、より大きなデータブロックに対してパリティを計算します。

·        

RAID 6 は RAID 5 と似ていますが、2 つの異なるチェックサムを計算します。これにより、データを失うことなく、2つのディスクが故障することができます。

非標準のRAIDレベル

ダブルパリティ/対角パリティ

RAID 6 は 2 つのパリティブロックを使用します。これらは多項式上で特別な方法で計算されます。ダブルパリティ RAID (ダイアゴナルパリティ RAID とも呼ばれます) は、これらのパリティブロックごとに異なる多項式を使用します。最近、RAIDを定義した業界団体は、ダブルパリティRAIDはRAID 6の別の形態であると述べています。

RAID-DP

RAID-DPはダブルパリティを持つもう一つの方法です。

RAID 1.5

RAID 1.5 (RAID 15 と混同しないように) は、プロプライエタリな RAID 実装です。RAID 1と同様に、2つのディスクのみを使用しますが、ストライピングとミラーリングの両方を行います(RAID 10に似ています)。ほとんどのことはハードウェアで行われます。

RAID 5E、RAID 5EE、RAID 6E

RAID 5E、RAID 5EE、RAID 6E (EnhancedE を追加) は、一般的にホットスペア付きの異なるタイプの RAID 5 または RAID 6 を指します。これらの実装では、ホットスペアドライブは物理ドライブではありません。むしろ、ディスク上の空き領域という形で存在します。これによりパフォーマンスは向上しますが、ホットスペアは異なるアレイ間で共有できないことを意味します。この方式は2001年頃にIBM ServeRAIDによって導入されました。

RAID 7

これはプロプライエタリな実装です。RAID 3 または RAID 4 アレイにキャッシングを追加します。

インテル マトリックス RAID

インテルのメインボードの中には、この機能を持つRAIDチップを搭載しているものがあります。2つまたは3つのディスクを使用し、それらを均等にパーティション化して、RAID 0、RAID 1、RAID 5、またはRAID 1+0レベルの組み合わせを形成します。

Linux MD RAIDドライバ

これは Linux でソフトウェア RAID を行うためのドライバの名前です。通常のRAIDレベル0~6に加えて、RAID 10の実装もあります。Kernel 2.6.9 以降、RAID 10 は単一レベルとなっています。この実装にはいくつかの非標準的な機能があります。

RAID Z

SunはZFSと呼ばれるファイルシステムを実装しています。このファイルシステムは、大量のデータを扱うために最適化されています。これには、論理ボリュームマネージャが含まれています。また、RAID-Zと呼ばれる機能も含まれています。コピーオンライトポリシーを採用しているため、RAID 5のライトホールと呼ばれる問題を回避しています。データを直接上書きするのではなく、ディスク上の新しい場所に新しいデータを書き込む。書き込みが成功すると、古いデータは削除されます。これは、フルストライプの書き込みのみを行うため、小さな書き込みのためのリード・モディファイ・ライト操作の必要性を回避します。小さなブロックはパリティ保護の代わりにミラーリングされますが、これはファイルシステムがストレージの構成を知っているからです。そのため、必要に応じて余分なスペースを割り当てることができます。RAID-Z2 には、2 つの形式のパリティを使用して RAID 6 と同様の結果を得る RAID-Z2 もあります。

写真

·        

RAID DP(ダブルパリティ)のセットアップの図。

·        

マトリックスRAIDのセットアップ。

RAIDレベルの結合

ユーザーは論理ディスクのみを見ることになります。上記のRAIDレベルにはそれぞれ良い点と悪い点があります。しかし、RAID は論理ディスクでも動作します。このようにして、上記のRAIDレベルの1つを論理ディスクのセットで使用することができます。多くの人は、数字を一緒に書いてメモします。時には、間に'+'や'&'を書くこともあります。一般的な組み合わせ(2 つのレベルを使用)は以下の通りです。

  • RAID 0+1: 2つ以上のRAID 0アレイを組み合わせてRAID 1アレイにします。
  • RAID 1+0: RAID 0+1 と同じですが、RAID レベルが逆になっています。これにより、上記のRAID 0+1よりもディスク障害が発生することが少なくなります。
  • RAID 5+0: 複数の RAID 5 を RAID 0 でストライプ化します。各RAID 5の1つのディスクが故障する可能性がありますが、そのRAID 5を単一の故障ポイントとします。
  • RAID 5+1。RAID 5 のセットをミラーリングする: RAID が 6 台のディスクで構成されている状況では、どの 3 台でも失敗する可能性があります (データが失われることはありません)。
  • RAID 6+0: RAID 0上に複数のRAID 6アレイをストライプ状に配置し、各RAID 6の2つのディスクはデータ損失なしに故障することができます。

各300GBのディスクを6台、合計1.8TBの容量で、1.5TBの使用可能なRAID5を作ることができます。このアレイでは、1台のディスクが故障してもデータが失われることはありません。RAID 50では、1.2TBの容量に削減されますが、各RAID 5の1台のディスクが故障する可能性があり、それに加えてパフォーマンスが顕著に向上します。RAID 51 は使用可能なサイズを 900 GB に縮小しますが、3 台のドライブが故障することはありません。

·        

RAID 0+1: 複数のRAID 0アレイをRAID 1と組み合わせて使用します。

·        

RAID 1+0: RAID 0+1よりも堅牢です。ミラーを作成する2台のドライブが故障しない限り、複数のドライブの故障をサポートします。

·        

RAID 5+1。このうち3台のドライブであれば、データを失うことなく故障する可能性があります。

RAIDの作成

RAID を作成するには、さまざまな方法があります。それは、ソフトウェアで行うこともできますし、ハードウェアで行うこともできます。

ソフトウェアRAID

ソフトウェアでRAIDを作るには、2つの方法があります。ソフトウェアRAIDの場合、通常のハードディスクのようにディスクを接続します。RAIDを動作させるのはコンピュータです。つまり、アクセスのたびに CPU は RAID の計算を行う必要があります。RAID 0 や RAID 1 の計算は簡単です。しかし、RAID 5、RAID 6、または組み合わせたRAIDレベルの計算は、多くの作業を必要とします。ソフトウェアRAIDでは、故障したアレイから自動的に起動するのは難しいかもしれません。最後に、ソフトウェアで行われるRAIDの方法は、使用するオペレーティングシステムに依存します。オペレーティングシステムは通常、RAIDアレイを作成するためにハードディスク全体ではなくハードディスクパーティションを使用します。

ハードウェアRAID

RAID はハードウェアで作成することもできます。この場合、特別なディスクコントローラが使用されます。このコントローラカードは、RAID を実行しているという事実をオペレーティングシステムやユーザから隠します。チェックサム情報の計算やその他のRAID関連の計算は、そのコントローラ内の特別なマイクロチップ上で行われます。これにより、RAIDはオペレーティングシステムから独立しています。オペレーティングシステムは RAID を見ず、単一のディスクを見ます。メーカーによってRAIDの方法は異なります。これは、あるハードウェアRAIDコントローラで構築されたRAIDは、異なるメーカーの別のRAIDコントローラでは再構築できないことを意味します。ハードウェアRAIDコントローラは高価なものを購入することが多いです。

ハードウェア支援型RAID

ハードウェアRAIDとソフトウェアRAIDのミックスです。ハードウェアRAIDは特殊なコントローラチップを使用しますが、このチップは多くの操作を行うことはできません。システムが起動したときにのみアクティブになり、オペレーティングシステムが完全にロードされるとすぐに、この構成はソフトウェアRAIDのようになります。マザーボードの中には、接続されているディスクのためのRAID機能を持っているものもありますが、多くの場合、これらのRAID機能はハードウェアアシストRAIDとして実行されます。これは、これらの RAID 機能を使用したり、故障したディスクから回復したりするために特別なソフトウェアが必要であることを意味します。

ハードウェア障害に関するさまざまな用語

ハードウェアの故障について語るときには、さまざまな用語が使われています。

故障率

故障とは、システムが故障する頻度のことです。RAID システムの平均故障時間 (MTTF) または平均故障間時間 (MTBF) は、そのコンポーネントのそれと同じです。結局のところ、RAID システムは個々のハードドライブの故障から保護することはできません。しかし、より複雑なタイプのRAID(「ストライピング」や「連結」を超えるもの)は、個々のハードドライブが故障してもデータを無傷に保つのに役立ちます。

データ消失までの平均時間

平均データ損失時間(MTTDL)は、あるアレイでデータ損失が発生するまでの平均時間を示します。与えられたRAIDのデータ損失までの平均時間は、そのハードディスクのデータ損失までの平均時間よりも高くなったり低くなったりします。これは使用されているRAIDのタイプによって異なります。

平均回復時間

冗長性を持つアレイは、いくつかの障害から回復することができます。平均復旧時間は、障害が発生したアレイが正常な状態に戻るまでの時間を示しています。これには、故障したディスク機構を交換する時間と、アレイを再構築する時間(つまり、冗長性のためにデータを複製する時間)の両方が追加されます。

回復不可能なビットエラーレート

回復不可能なビットエラーレート(UBE)は、周期的冗長検査(CRC)コードと複数回のリトライを使用した後、ディスクドライブがデータを回復できなくなるまでの時間を教えてくれます。

RAIDの問題点

また、RAIDの背後にある考え方や技術にも一定の問題があります。

後日、ディスクを追加する

ある種のRAIDレベルでは、後からハードディスクを追加するだけでアレイを拡張することができます。パリティブロックのような情報は、多くの場合、複数のディスクに分散しています。アレイにディスクを追加するということは、再編成が必要になることを意味します。このような再編成は、アレイの再構築のようなもので、長い時間がかかることがあります。これが行われたときには、アレイ上のファイルシステムとオペレーティングシステムの両方がそれを知る必要があるため、追加のスペースはまだ利用できないかもしれません。ファイルシステムの中には、作成後の成長をサポートしていないものもあります。そのような場合、すべてのデータをバックアップし、アレイを新しいレイアウトで再作成し、データをその上に復元する必要があります。

ストレージを追加するもう一つの方法は、新しいアレイを作成し、論理ボリュームマネージャに状況を処理させることです。これにより、RAID1 (それ自体は2つのディスクに制限されています)であっても、ほぼすべてのRAIDシステムを成長させることができます。

連携失敗

RAID のエラー訂正メカニズムは、ドライブの故障が独立していることを前提としています。装置の一部が故障する頻度を計算し、データ損失が非常に起こりにくいようにアレイを配置することが可能です。

しかし、実際にはドライブは一緒に購入されることが多かった。これらのドライブは、ほぼ同じ年代のもので、同じように使用されています(摩耗と呼ばれています)。多くのドライブは、機械的な問題が原因で故障します。ドライブが古いほど、より多くの機械部品が摩耗しています。古い機械部品は、若い部品よりも故障する可能性が高くなります。これは、ドライブの故障はもはや統計的に独立していないことを意味します。実際には、1台目のディスクが復旧する前に2台目のディスクが故障する可能性があります。これは、実際にはデータ損失がかなりの割合で発生する可能性があることを意味します。

原子性

RAID システムで発生するもう一つの問題は、アプリケーションがアトミック性と呼ばれるものを期待していることです。全てのデータが書き込まれているか、書き込まれていないかのどちらかです。データの書き込みはトランザクションとして知られています。

RAIDアレイでは、通常、新しいデータは古いデータがあった場所に書き込まれます。これは、Update in-placeとして知られるようになりました。データベース研究者のジム・グレイは1981年にこの問題についての論文を書きました。

アトミックライトセマンティクスを許可しているストレージシステムはほとんどありません。オブジェクトがディスクに書き込まれるとき、RAIDストレージデバイスは通常、オブジェクトのすべてのコピーを並列に書き込みます。非常に多くの場合、データの書き込みを担当するプロセッサは1つだけです。このような場合、異なるドライブへのデータの書き込みは重複します。これは、オーバーラップ書き込みまたはスタッガード書き込みとして知られています。そのため、書き込み中にエラーが発生すると、冗長コピーが異なる状態のままになることがあります。さらに悪いことに、コピーが古い状態でも新しい状態でもないままになってしまうことがあります。しかし、ロギングは元のデータが古い状態か新しい状態のどちらかにあることに依存しています。これは論理的な変更をバックアップすることを可能にしますが、RAID ディスク上でアトミックライトセマンティックを提供しているストレージシステムはほとんどありません。

バッテリバックアップ型の書き込みキャッシュを使用することで、この問題を解決できますが、停電時のシナリオでしか解決できません。

トランザクションサポートは、すべてのハードウェア RAID コントローラにはありません。そのため、多くのオペレーティングシステムでは、書き込みが中断された際のデータ損失から保護するためにトランザクションをサポートしています。Novell Netware は、バージョン 3.x 以降、トランザクション追跡システムを搭載しています。Microsoft は NTFS のジャーナリング機能を介してトランザクション追跡を導入しました。NetApp WAFLファイルシステムは、ZFSと同様に、その場でデータを更新しないことでそれを解決しています。

復元不可能なデータ

ハードディスク上のセクタの中には、ミスにより読めなくなったものがあるかもしれません。RAID の実装によっては、データを別の場所に移動し、ディスク上のセクタを不良セクタとしてマークすることで、このような状況に対処できるものもあります。これは、エンタープライズクラスのディスクドライブでは約1015分の1ビット、通常のディスクドライブでは約1014分の1ビットで発生します。ディスクの容量は着実に増加しています。これは、ディスク障害後にアレイを再構築する際にこのようなエラーが発生するため、RAIDの再構築ができないことがあることを意味しているのかもしれません。RAID 6 のようなある種の技術はこの問題に対処しようとしていますが、非常に高い書き込みペナルティ、つまりデータの書き込みが非常に遅くなるという問題があります。

ライトキャッシュの信頼性

ディスクシステムは、データがキャッシュにあるとすぐに書き込み操作を確認することができます。データが物理的に書き込まれるまで待つ必要はありません。しかし、任意の停電は、その後、そのようなキャッシュ内にキューイングされた任意のデータの重大なデータ損失を意味することができる。

ハードウェアRAIDでは、このキャッシュを保護するためにバッテリーを使用することができます。これで問題が解決することが多いです。電源が落ちた場合、電源が回復したときにコントローラはキャッシュの書き込みを完了させることができます。しかし、この解決策は失敗する可能性があります: バッテリーが消耗していたり、電源が長時間切れていたり、ディスクが別のコントローラに移動していたり、コントローラ自体が故障していたりする可能性があります。一部のシステムでは定期的にバッテリーチェックを行うことができますが、これはバッテリー自体を使用しており、バッテリーが完全に充電されていない状態で放置されています。

機器の互換性

異なるRAIDコントローラ上のディスクフォーマットは、必ずしも互換性があるとは限りません。そのため、異なるハードウェア上でRAIDアレイを読み込むことができない場合があります。その結果、ディスク以外のハードウェアの障害が発生した場合、データを復旧するために同一のハードウェアを使用するか、バックアップが必要になる場合があります。

RAIDでできること、できないこと

このガイドは、RAID関連のフォーラムのスレッドから抜粋したものです。これは、RAID を選択することのメリットとデメリットを指摘するために行われました。パフォーマンスの向上や冗長性のために RAID を選択したいと考えている人を対象としています。フォーラム内の他のスレッドへのリンクが含まれています。

RAIDでできること

  • RAID は稼働時間を守ることができます。RAID レベル 1、0+1/10、5、6 (および 50 や 51 などの変種) は、機械的なハードディスクの故障を補います。ディスクが故障した後でも、アレイ上のデータを使用することができます。テープDVDなどの遅いバックアップメディアから時間をかけてリストアする代わりに、RAIDではアレイの他のメンバーから交換用のディスクにデータをリストアすることができます。この復元プロセスの間は、劣化した状態でユーザーが利用できるようになります。ダウンタイムはすぐに収益力の低下につながるため、これは企業にとって非常に重要です。家庭ユーザーにとっては、冗長性によって保護されていないディスクが故障した場合に、数十枚のDVDやかなりの数のテープから時間をかけて復元する必要がある大容量メディアストレージアレイのアップタイムを保護することができます。
  • RAIDは特定のアプリケーションでパフォーマンスを向上させることができます。RAID レベル 0、5、6 はすべてストライピングを使用しています。これにより、複数のスピンドルを使用してリニア転送の転送速度を向上させることができます。ワークステーションタイプのアプリケーションは、大容量のファイルを扱うことが多いです。このようなアプリケーションでは、ディスクストライピングの恩恵を大きく受けることができます。そのようなアプリケーションの例としては、ビデオやオーディオファイルを使用するアプリケーションがあります。このスループットは、ディスクからディスクへのバックアップにも役立ちます。RAID 1 や他のストライピングベースの RAID レベルは、マルチユーザデータベースで使用されるような、多数の同時ランダムアクセスを伴うアクセスパターンのパフォーマン スを向上させることができます。

RAIDではできないこと

  • RAIDでは、アレイ上のデータを保護することはできません。RAIDアレイは1つのファイルシステムを持っています。これにより、単一の障害点が発生します。このファイルシステムには、物理ディスクの故障以外にも多くのことが起こり得ます。RAID は、これらのデータ損失の原因からデータを守ることはできません。RAID はウイルスによるデータの破壊を防ぐことはできません。RAID は破損を防ぐことはできません。ユーザーがデータを変更したり、誤って削除したりしても、RAIDはデータを保存しません。RAIDは、物理ディスク以外のコンポーネントのハードウェア障害からデータを保護しません。RAIDは、火災や洪水などの自然災害や人為的災害からデータを保護しません。データを保護するには、DVD、テープ、または外付けハードディスクなどのリムーバブルメディアにバックアップする必要があります。バックアップは別の場所に保管する必要があります。RAIDだけでは、災害が発生しても(発生した場合ではなく)データの損失を防ぐことはできません。災害は防ぐことはできませんが、バックアップによってデータの損失を防ぐことができます。
  • RAIDでは、ディザスタリカバリを単純化することはできません。単一のディスクを実行する場合、ディスクは共通のデバイスドライバが付属しているため、ほとんどのオペレーティングシステムで使用することができます。しかし、ほとんどのRAIDコントローラは特別なドライバを必要とします。汎用コントローラ上のシングルディスクで動作するリカバリツールは、RAIDアレイ上のデータにアクセスするために特別なドライバを必要とします。これらのリカバリツールのコードが不十分で、追加ドライバを提供できない場合、RAIDアレイにはリカバリツールからアクセスできない可能性があります。
  • RAID はすべてのアプリケーションでパフォーマンスを向上させることはできません。この記述は、典型的なデスクトップアプリケーションのユーザーやゲーマーに特に当てはまります。ほとんどのデスクトップアプリケーションやゲームでは、生のスループットよりもディスクのバッファ戦略とシークパフォーマン スが重要です。生の持続的転送速度を上げても、そのようなユーザーがアクセスするほとんどのファイルは、一般的に非常に小さいため、ほとんど利益は得られません。RAID 0 を使用したディスクストライピングは、リニア転送性能を向上させますが、バッファとシーク性能は向上しません。その結果、RAID 0 を使用したディスクストライピングは、例外もありますが、ほとんどのデスクトップアプリケーションやゲームでは、パフォーマンスの向上はほとんどありません。ハイパフォーマンスを目標とするデスクトップユーザやゲーマーにとっては、2台の遅い/小さいドライブをRAID 0で動作させるよりも、より速く、より大きく、より高価な1台のディスクを購入した方が良いでしょう。RAID-0 で最新、最大、最大のドライブを実行しても、パフォーマンスを 10% 以上向上させることはできず、特にゲームなどのアクセスパターンによってはパフォーマンスが低下する可能性があります。
  • RAIDを新しいシステムに移すのは難しい。1台のディスクであれば、新しいシステムへの移動は比較的簡単です。新しいシステムに同じインターフェイスが利用可能であれば、単純に接続することができます。しかし、RAIDアレイの場合はそう簡単ではありません。RAIDがどのように設定されているかを示すある種のメタデータがあります。RAID BIOSはこのメタデータを読み取ることができなければならないので、アレイを正常に構築し、オペレーティングシステムからアクセスできるようにすることができません。RAIDコントローラメーカーはメタデータに異なるフォーマットを使用しているため(同じメーカーの異なるファミリのコントローラであっても、互換性のないメタデータフォーマットを使用している場合があります)、RAIDアレイを異なるコントローラに移動させることはほとんど不可能です。RAIDアレイを新しいシステムに移動する際には、コントローラも移動させる計画を立てる必要があります。マザーボードに内蔵されたRAIDコントローラの普及により、これは非常に困難です。一般的には、RAIDアレイのメンバーとコントローラを一緒に移動させることは可能です。Linux や Windows Server 製品のソフトウェア RAID は、この制限を回避することもできますが、ソフトウェア RAID には他にも(主にパフォーマンスに関連した)問題があります。

最もよく使用される RAID レベルは、RAID 0、RAID 1、RAID 5 です。3台のディスクがあり、それぞれ1TBの同一のディスクが3台あり、ある時間帯にドライブが故障する確率が1%であるとします。

RAIDレベル

使用可能容量

失敗する確率

失敗する確率

一件落選

0

3 TB

2,9701%

34

1

1 TB

0,0001%

百万

5

2 TB

0,0298%

3356


AlegsaOnline.com - 2020 / 2023 - License CC3