株式会社グローバルゲート公式ブログ


「RAID」という言葉を聞くと、「HDDが壊れてもデータを守ってくれる技術」というイメージを持つ方が多いのではないでしょうか。もちろんそれは間違いではありません。しかし、それはRAIDが持つ役割の一つに過ぎません。
RAID(Redundant Array of Independent Disks)は、複数のHDDやSSDを組み合わせて、OSからは一つのストレージとして利用できるようにする技術です。単に複数のディスクを束ねるだけではなく、「性能」「可用性」「容量効率」といった目的に応じてデータの配置方法を工夫している点が大きな特徴です。
例えばRAID0では、データを複数のHDDへ分散して同時に読み書きすることで、高速なアクセス性能を実現します。一方で、耐障害性はなく、1台でも故障するとすべてのデータを失ってしまいます。
RAID1では、同じデータを2台のHDDへ同時に保存する「ミラーリング」を行います。そのため、1台が故障してももう一方からデータを読み出せますが、保存できる容量は半分になります。
そして、多くのサーバで採用されているRAID5やRAID6は、「容量効率」と「耐障害性」のバランスに優れたRAIDレベルです。RAID5は1台、RAID6は2台までのHDD故障に耐えながら、大容量ストレージとして利用できることから、企業のファイルサーバやWebサーバ、NASなど幅広い場面で活用されています。
しかし、ここで勘違いしてはいけないことがあります。
RAIDは、サービスを止めにくくするための技術であり、データを永遠に守るための技術ではありません。
例えば、誤ってファイルを削除した場合、その削除操作はRAID全体へ即座に反映されます。また、ランサムウェアによってファイルが暗号化された場合も、その暗号化されたデータが各HDDへ正常なデータとして書き込まれます。さらに、火災や落雷、水害などで装置そのものが失われれば、RAIDを構成するすべてのHDDも同時に失われてしまいます。
つまり、RAIDはバックアップの代わりにはなりません。
では、RAID5やRAID6は何を実現しているのでしょうか。
その答えは、「HDDが故障してもサービスを継続できる環境」を提供していることです。サーバを停止させずに故障したHDDを交換し、その間も利用者は普段どおりシステムを使い続けられます。これは企業システムにおいて非常に大きなメリットです。
そして、その仕組みを支えているのが、次章から詳しく解説する「ストライピング」と「パリティ」です。
多くの方は、「RAID5は1台まで故障しても大丈夫」という結果だけを知っています。しかし、本当に重要なのは、「なぜ故障したHDDのデータを復元できるのか」という仕組みを理解することです。
まずは次章で、1つのファイルがどのように複数のHDDへ分散して保存されるのか、「ストライピング」の仕組みから見ていきましょう。

RAID5やRAID6の仕組みを理解するためには、まず「ストライピング(Striping)」という考え方を知る必要があります。ストライピングとは、1つのファイルを一定サイズごとの小さなデータブロックに分割し、それらを複数のHDDへ順番に分散して保存する仕組みです。
例えば、「ABCDEFGH」という8つのデータブロックで構成された1つのファイルがあるとします。通常のHDDであれば、このファイルは1台のディスクへ連続して保存されます。しかしRAIDでは、このデータをそのまま保存するのではなく、「A」「B」「C」「D」…というようにブロック単位へ分割し、HDD1、HDD2、HDD3、HDD4へ順番に書き込んでいきます。
つまり、1つのファイルは特定のHDDだけに保存されるのではなく、複数のHDDへまたがって保存されることになります。
この仕組みには大きなメリットがあります。
通常は1台のHDDだけがデータを読み書きしますが、ストライピングでは複数のHDDが同時に動作できます。そのため、例えば4台のHDDで構成されたRAID0では、理論上は4台が並列にデータを処理できるため、読み書き速度を大きく向上させることが可能になります。
このように、ストライピングの本来の目的は「高速化」です。
しかし、ここで一つ疑問が浮かびます。
もしHDD2が故障してしまったらどうなるのでしょうか。
ファイルは複数のHDDへ分散して保存されています。つまり、HDD2に保存されていた「B」と「F」のブロックは失われてしまいます。その結果、ファイル全体が完成しなくなり、「ABCDEFGH」という元のファイルを読み出せなくなります。
つまり、ストライピングだけではデータを守ることはできません。
実際、RAID0はストライピングだけを利用したRAIDレベルであり、耐障害性はまったくありません。1台でもHDDが故障すると、そのHDDに保存されていたデータブロックが失われるため、ファイル全体を復元できなくなってしまいます。
ここが、多くの方が誤解しやすいポイントです。
「RAIDはデータを分散しているから安全なのでは?」と思われがちですが、データを分散して保存しているだけでは、故障した部分を補うことはできません。むしろ、分散しているからこそ、一部のブロックが欠けるだけでファイル全体を正常に読み出せなくなってしまうのです。
では、RAID5やRAID6はなぜHDDが故障してもデータを復元できるのでしょうか。
その答えが、次章で解説する「パリティ」です。
パリティは、失われたデータを別の場所へコピーして保存しているわけではありません。複数のデータブロックから計算して作られた「復元情報」を保持することで、故障したHDDのデータを再計算できるようにしています。
つまり、ストライピングは「データを分散する技術」、パリティは「分散したデータを復元するための技術」です。
この2つが組み合わさることで、RAID5やRAID6は高速性と耐障害性を両立しているのです。

前章では、ストライピングによって1つのファイルが複数のHDDへ分散して保存される仕組みをご紹介しました。しかし、ストライピングだけではHDDが1台故障しただけでファイルの一部が失われ、元のデータを読み出すことはできません。
では、RAID5やRAID6はなぜHDDが故障してもデータを復元できるのでしょうか。
その秘密が、「パリティ(Parity)」です。
「パリティ」という言葉を聞くと、「データのコピーを別のHDDへ保存しているもの」と思われる方が多いかもしれません。しかし、それは大きな誤解です。
パリティは、データそのものではありません。
パリティとは、複数のデータブロックから計算によって作り出された**「復元のための情報」**です。
例えば、1つのストライプに「A」「B」「C」という3つのデータブロックが保存されているとします。RAID5では、この3つのデータをそのままコピーするのではなく、一定の計算を行って「P(パリティ)」という新しい情報を作成します。
このPは、AでもBでもCでもありません。また、A・B・Cをそのまま保存しているわけでもありません。
つまり、パリティだけを取り出しても、元のデータを読むことはできません。
ここが非常に重要なポイントです。
例えば、紙に書かれたクイズの「答え」だけを見ても、問題文が分からなければ意味が分からないのと同じように、パリティだけでは元データの内容は分かりません。
しかし、残っているデータと組み合わせることで、失われたデータを逆算できるようになります。
つまり、パリティは「データそのもの」を保存しているのではなく、「データ同士の関係」を保存しているのです。
言い換えれば、パリティは**失われたデータへたどり着くためのヒント**とも言えるでしょう。
例えば、あるストライプに保存されていたデータブロックのうち1つが故障によって失われても、残っているデータブロックとパリティを利用することで、その欠けたデータだけを計算によって再現できます。
このため、RAID5では1台、RAID6では2台までのHDD故障であれば、失われたデータを復元しながらシステムを継続して利用できるのです。
ここで覚えておいていただきたいことは、パリティは「予備データ」ではないということです。
もしパリティが単なるコピーであれば、保存容量はミラーリング(RAID1)と同じように大きく減ってしまいます。しかしRAID5やRAID6は、計算によって作られた復元情報だけを保存することで、高い容量効率を維持しながら耐障害性を実現しています。
パリティは「データ」ではなく「復元するための情報」

しHDD2が故障すると…

でも…

ここで重要なのは
パリティ(P)の中にBが入っている訳ではない
ということ。

つまり、パリティとは「失われたデータを保存している場所」ではなく、「失われたデータを導き出すための情報」を保存している場所なのです。
では、その復元情報は、どのような計算によって作られているのでしょうか。
次章では、RAID5・RAID6の心臓部とも言える「XOR(排他的論理和)」という演算について、図解を交えながら分かりやすく解説していきます。

前章では、パリティがデータのコピーではなく、失われたデータを導き出すための「復元情報」であることを解説しました。では、そのパリティはどのような計算によって作られているのでしょうか。
RAID5で使われる代表的な計算が、「XOR(排他的論理和)」です。
XORという名前だけを見ると難しく感じるかもしれませんが、基本的なルールはとてもシンプルです。XORは2つの値を比較し、同じ値なら「0」、異なる値なら「1」を返します。
0 XOR 0 = 0
0 XOR 1 = 1
1 XOR 0 = 1
1 XOR 1 = 0
つまり、2つのビットが同じか違うかを調べる計算です。
例えば、データAが「1011」、データBが「0110」だった場合、同じ位置にあるビット同士をXORで計算します。
1011 データA
XOR
0110 データB
──────
1101 パリティP
この「1101」が、AとBから作られたパリティです。しかし、このパリティの中にAやBのコピーが保存されているわけではありません。Pは、AとBをXORした結果にすぎないため、Pだけを見ても元のデータを判別することはできません。
それでも復元に利用できるのは、XORに「同じ値を2回組み合わせると打ち消される」という性質があるからです。
A XOR A = 0
A XOR 0 = A
先ほど作成したパリティは、次の関係になっています。
A XOR B = P
ここでデータBが失われた場合、残っているAとPをXORします。
A XOR P
= A XOR(A XOR B)
=(A XOR A)XOR B
= 0 XOR B
= B
Aが2回登場したことで互いに打ち消され、失われていたBだけが残るのです。
実際の値でも確認してみましょう。
1011 残っているデータA
XOR
1101 パリティP
──────
0110 失われたデータB
このように、パリティは失われたデータを直接保管しているのではなく、残っているデータと再計算することで元の値を導き出せる情報なのです。
RAID5では、実際には2つだけでなく、同じストライプに含まれる複数のデータブロックをXORしてパリティを作ります。
P = A XOR B XOR C
この状態でBが失われた場合は、次のように計算します。
B = A XOR C XOR P
Pの中にはA、B、Cの関係が記録されているため、残っているAとCを組み合わせると、それらが打ち消されてBを復元できます。
また、XORは計算する順番を入れ替えても結果が変わりません。そのため、どのHDDに保存されたデータが失われても、残っているすべてのデータブロックとパリティをXORすることで、欠けた1つを求められます。
このシンプルな仕組みこそが、RAID5が1台のHDD故障に耐えられる理由です。
XORは失われたデータを魔法のように取り戻しているのではありません。データを書き込む時点で計算しておいたパリティと、故障後も残っているデータを使い、欠けた情報をその場で再計算しているのです。
次章では、実際にHDDが故障したとき、RAID5がこのXORを使ってどのようにデータを読み出し、交換したHDDへ再構築していくのかを詳しく見ていきましょう。

ここまで、ストライピングによるデータの分散、パリティの役割、そしてXOR演算の仕組みについて解説してきました。
それでは、実際にRAID5を構成するHDDが1台故障した場合、システム内部ではどのような処理が行われるのでしょうか。
ここでは、RAIDコントローラーが失われたデータを復元するまでの流れを見ていきましょう。
例えば、4台のHDDでRAID5を構成しているとします。あるストライプには、「A」「B」「C」という3つのデータブロックと、それらから計算されたパリティ「P」が保存されています。
通常時は、それぞれのHDDから必要なデータを読み出すだけなので、パリティはほとんど利用されません。
しかし、ある日HDD2が故障し、「B」のデータブロックが読み出せなくなったとします。
普通のストレージであれば、この時点でファイルの一部が欠けてしまうため、正常にデータを読み出すことはできません。
ところがRAID5では、RAIDコントローラーが「Bだけが失われている」ことを検出すると、残っている「A」「C」、そしてパリティ「P」を読み出し、その場でXOR演算を実行します。
B = A XOR C XOR P
この計算によって、失われたBを瞬時に再計算し、アプリケーションへ返します。
つまり、利用者から見れば、HDDが故障しているにもかかわらず、普段どおりファイルを開いたり、データベースへアクセスしたりできるのです。
ここで重要なのは、RAID5は故障したHDDの内容をどこかから「コピー」しているわけではないということです。
毎回、残っているデータブロックとパリティを使って必要なデータを計算し、その結果を返しています。
そのため、故障した状態では通常よりも多くのHDDへアクセスし、さらにXOR演算も行う必要があるため、システム全体の性能は低下します。これは「デグレードモード」と呼ばれ、RAID5が故障に耐えながらサービスを継続している状態です。
その後、故障したHDDを新品へ交換すると、RAIDコントローラーはすべてのストライプについて同じ計算を繰り返します。
ストライプ#1では「B」を復元し、ストライプ#2では「E」、ストライプ#3では「H」…というように、失われたすべてのデータブロックを順番に再計算し、新しいHDDへ書き戻していきます。
この処理を「リビルド(Rebuild)」と呼びます。
リビルドが完了すると、新しいHDDには故障前とまったく同じ内容が再構築され、RAID5は元の正常な状態へ戻ります。
つまり、RAID5は故障した瞬間に一括でデータを復元するのではなく、「必要なデータを読み出すための計算」と、「新しいHDDへ書き戻すリビルド」を組み合わせることで、障害から復旧しています。
これこそが、RAID5が企業サーバやNASで広く採用されている理由です。
一方で、この仕組みには限界もあります。RAID5が復元できるのは、あくまで**同時に1台までのHDD故障**です。リビルドが完了する前にさらにもう1台のHDDが故障すると、計算に必要な情報が不足し、データを復元できなくなる可能性があります。
この弱点を克服するために登場したのが「RAID6」です。
次章では、RAID5では1台までしか故障に耐えられない理由と、RAID6がなぜ2台同時故障にも対応できるのか、その仕組みを詳しく見ていきましょう。

前章では、RAID5を構成するHDDが1台故障しても、残っているデータとパリティから失われたデータを復元できる仕組みを解説しました。
ここでRAID5の構成図をよく見ると、あることに気付きます。
パリティは特定のHDDだけに保存されているのではなく、ストライプごとに保存先が変わっているのです。
例えば4台のHDDでRAID5を構成した場合、次のように配置されます。

このように、P1はHDD4、P2はHDD3、P3はHDD2、P4はHDD1というように、パリティの保存場所を順番に変えていきます。
では、なぜこのような複雑な配置をするのでしょうか。
もしパリティを常にHDD4へ保存すると仮定してみましょう。
RAID5ではデータを書き換えるたびに、そのデータに対応するパリティも更新する必要があります。つまり、HDD1~HDD3へデータを書き込んだとしても、パリティを保存するHDD4には頻繁に書き込みが発生します。
するとHDD4だけにI/Oが集中し、HDD4がRAID全体の性能を左右するボトルネックになってしまいます。
そこでRAID5では、パリティをストライプごとに異なるHDDへ配置します。
データだけでなくパリティの書き込みも各HDDへ分散することで、特定の1台だけに負荷が集中することを防ぎ、RAIDを構成するHDDをバランスよく利用できるようにしているのです。
ここで、もう一つ重要なポイントがあります。
「パリティ専用HDD」が存在するわけではありません。
あるストライプではパリティを保存しているHDDが、次のストライプでは通常のデータを保存します。つまり、RAID5を構成するすべてのHDDが「データ用」と「パリティ用」の両方の役割を担当しているのです。
この仕組みは、RAID5の容量効率にもつながっています。
例えば、同じ容量のHDDを4台使ってRAID5を構成した場合、利用可能な容量はおおむね3台分です。パリティは各HDDへ分散されていますが、アレイ全体で見れば「1台分相当」の容量がパリティに使われます。
そしてHDDが1台故障しても、各ストライプには残りのデータとパリティが存在するため、前章で説明したXOR演算によって失われたブロックを再計算できます。
ただし、ここで注意したいのは、パリティを分散しているから1台の故障に耐えられるわけではないということです。
1台の故障からデータを復元できる本質的な理由は、各ストライプにXORで作られたパリティという「復元情報」が存在するからです。パリティを分散する主な目的は、その復元情報の書き込み先を特定のHDDへ集中させず、負荷を分散することにあります。
つまりRAID5は、
・「データを分散するストライピング」
・「失われたデータを導き出すパリティ」
・「パリティそのものも分散する仕組み」
この3つを組み合わせることで、性能・容量効率・耐障害性のバランスを実現しているのです。
しかし、RAID5のパリティは1種類しかありません。そのため、同じストライプから2つのデータブロックが同時に失われると、未知のデータが2つになり、1つのパリティだけでは元の値を一意に求められません。
そこで登場するのが、2種類のパリティを持つ「RAID6」です。
次章では、RAID6がなぜHDD2台の同時故障にも耐えられるのか、その仕組みを詳しく見ていきましょう。

前章までで、RAID5はデータからパリティを作成し、HDDが1台故障しても残ったデータとパリティから失われたデータを復元できることを解説しました。
では、RAID6はなぜHDDが2台同時に故障してもデータを復元できるのでしょうか。
最大の違いは、RAID5が1種類のパリティを持つのに対し、RAID6では**「P」と「Q」という2種類のパリティ**を持っていることです。
ここで重要なのは、単純に同じパリティを2個保存しているわけではないという点です。
例えば、A・B・Cという3つのデータから、RAID5と同じようにXORを使ってPを作ったとします。
P = A XOR B XOR C
もしBだけが失われたのであれば、A・C・Pが残っているため、
B = A XOR C XOR P
として復元できます。
ところが、BとCが同時に失われたらどうでしょう。
P = A XOR ? XOR ?
未知のデータが2つ存在するため、Pという1つの復元情報だけではBとCそれぞれの値を決定できません。
例えるなら、
B + C = 10
という情報だけを与えられて、「BとCはいくつですか?」と聞かれているようなものです。
B=4、C=6かもしれませんし、B=3、C=7かもしれません。式が1つしかないため、答えを1つに決めることができないのです。
そこでRAID6では、Pとは**異なる計算方法**で作った、もう1つの復元情報「Q」を用意します。
イメージとしては、
P → A・B・Cから作った1つ目の復元情報
Q → A・B・Cから別の規則で作った2つ目の復元情報
となります。
これによって2つのデータが失われても、
Pから得られる関係
Qから得られる別の関係
という2つの手掛かりを使って、2つの未知データを導き出せるようになります。
先ほどの数字の例なら、
B + C = 10
B × 2 + C = 14
という2本の式があれば、B=4、C=6と一意に求められるのと同じ考え方です。
実際のRAID6では、Pには主にXORによるパリティを使用し、Qには有限体(Galois Field)上の演算を利用した別のパリティを生成します。実装ではReed-Solomon系の符号化が利用されることもあります。
少し難しく聞こえますが、ここで複雑な数学を覚える必要はありません。
大切なのは、
「失われる可能性のあるデータが2つなら、それぞれを特定できる独立した2種類の復元情報が必要になる」
という考え方です。
RAID6では、このPとQもRAID5と同じように特定のHDDへ固定せず、ストライプごとに分散して保存します。そのため、どのHDDが2台故障しても、残ったデータとP・Qから失われたブロックを再構築できます。
もちろん、その代償として容量も必要です。同じ容量のHDDをN台使った場合、RAID5の実効容量がおおむね「N-1台分」なのに対し、RAID6では「N-2台分」となります。
しかし大容量HDDではリビルドに長い時間がかかることがあります。その最中に別のHDDが故障しても耐えられる「もう1台分の余裕」は、大容量ストレージを運用するうえで非常に大きな意味を持ちます。
つまりRAID6とは、単に「RAID5よりパリティを1個増やしたもの」ではありません。
異なる2種類の復元情報を持つことで、2つのデータを同時に失っても、それぞれを計算によって導き出せる仕組みなのです。

ここまで、RAID5・RAID6がどのようにデータを分散し、パリティを作り、HDDが故障したときに失われたデータを復元しているのかを見てきました。
仕組みを理解すると、RAIDに対する見方も少し変わってきたのではないでしょうか。
「RAID5ならHDDが1台壊れても大丈夫」「RAID6なら2台まで大丈夫」という知識だけでは、適切なサーバ設計はできません。
重要なのは、RAIDが何からデータを守り、何からは守れないのかを理解することです。
RAID5では、HDDが1台故障しても、残っているデータとパリティから失われたブロックを再計算できます。RAID6では2種類のパリティを利用することで、2台同時故障にも対応できます。
つまりRAIDが得意なのは、「HDDというハードウェアの故障」への対策です。
HDDが壊れてもサーバを停止せず、サービスを継続しながら故障したHDDを交換し、リビルドによって正常な状態へ戻す。この可用性を高めることこそ、RAIDの大きな役割なのです。
しかし、RAIDにもできないことがあります。
例えば、管理者が誤って重要なファイルを削除した場合、その削除処理はRAIDを構成するすべてのHDDへ正しく反映されます。ランサムウェアによってデータが暗号化された場合も、その暗号化された内容が正常な書き込みとしてRAIDへ保存されます。
さらに、RAIDコントローラーの障害、ファイルシステムの破損、操作ミス、火災や水害、サーバそのものの盗難など、RAIDだけでは防げない障害も数多く存在します。
そこで必要になるのが「バックアップ」です。
バックアップの目的は、サービスを止めないことではありません。
データを失ってしまったときに、過去の正常な状態へ戻せるようにすることです。
ここにRAIDとバックアップの決定的な違いがあります。
================================
RAID
↓
HDDが壊れても
↓
サービスを止めずに使い続ける
↓
「可用性」を守る
バックアップ
↓
データを失っても
↓
過去の正常な状態へ戻す
↓
「データ」を守る
===============================
どちらか一方だけでは、十分とは言えません。
RAIDだけでは、誤削除やランサムウェア、災害からデータを守れません。一方、バックアップだけでは、HDDが故障した瞬間にサービスが停止し、復元が完了するまで利用できなくなる可能性があります。
だからこそ、実際のサーバ設計では、
「RAIDで止めない。そしてバックアップで戻せるようにする。」
という二段構えが重要になります。
例えば業務サーバではRAID5やRAID6を使ってHDD障害に備えながら、別のサーバやストレージへ定期的にバックアップを取得します。さらに重要なデータであれば、遠隔地やクラウドにもコピーを保存することで、サーバ全体を失うような災害にも備えることができます。
そしてバックアップは、保存するだけでは十分ではありません。世代管理を行い、定期的に復元テストを実施し、「本当に戻せるバックアップ」であることを確認する必要があります。
ここまで理解すると、RAIDレベルを選ぶ基準も変わってきます。
単に「RAID6の方が安全だから」という理由ではなく、必要な容量、書き込み性能、HDD台数、リビルド時間、許容できる停止時間、バックアップからの復旧時間などを考え、システムに適した構成を選択することが重要です。
RAIDはバックアップではありません。
しかし、RAIDが不要という意味でもありません。
・RAIDは「止めない」ための仕組み。
・バックアップは「失っても戻す」ための仕組み。
この2つの役割を正しく理解し、組み合わせること。
それこそが、大切なサービスとデータを守るサーバ設計の基本なのです。
GSVは企業の大切なデータを守る安全なNASサーバーシステムです。自動バックアップやRAID構成による多重保存で、データの消失リスクを最小限に抑えます。ネットワーク接続だけで社内外から安全にデータにアクセス可能で、異なるOS間でもスムーズな運用が可能です。
スケジュール管理やToDoリストの一元管理機能を備え、チームの業務効率化を支援します。契約期間中の無償アップデートで常に最新機能を利用可能です。
さらに、無停電電源装置(UPS)の標準装備、ウイルス検知システム、柔軟なアクセス制限により、物理的な障害やセキュリティリスクからも企業データを保護。GSVは安全で効率的なデータ管理環境を提供します。
【関連記事】
カテゴリー
月別アーカイブ
ブログ内検索
執筆メンバーについて

モーリー
Webデザイナー。
当サイトのデザインと管理も担当しています。

ナミー
Webディレクター。
本社制作部の紅一点。お客様に寄り添った提案を心かげています。

タカ
サーバーエンジニア。
Webサイトにとってサーバーは命、ネットワークは血液です。Webサイトの安定稼働のために日夜注力しています。

たっくん
ITアドバイザー
Webサイトの活用方法からオフィスのネットワーク整備まで、多角的にITの活用方法をご案内させていただきます。

ノーさん
制作部ディレクター。
業種を問わず多くのお客様を担当させていただきました。Webサイトのお悩み、活用方法などぜひご相談ください。
カン
制作部デザイナー。
制作部最年少の若手ですが、だからこそ生まれるアイデア・発想にご期待ください。