[基礎解説]
RAID基礎辞典 1.RAID 0とRAID 1とは デジタルアドバンテージ 小林 章彦2010/10/21 |
|
インターネットの普及などによってサーバやクライアントPCで取り扱うデータの容量は増え、種類は多様化している。毎日やり取りされる電子メールの数はうなぎのぼりに増えているし、以前は文章とグラフ程度であった営業用資料に、いまではデジタル・カメラで撮影した製品写真などを貼り込むことも珍しくなくなってきた。また、プレゼンテーションで動画が使われるといった例も増えてきており、こうした流れはさらに広がっていくことが予想される。
当然、それらのデータを保存するディスク・システムも大容量化している。特にここ数年、ハードディスクの大容量化が進んでおり、クライアントPCでも1Tbytesや2Tbytesといった、一昔前ならば大規模なサーバでしか搭載されていなかったような容量のハードディスクが搭載されるようになってきている。
このようにハードディスクが大容量化すると、バックアップ先となるメディアも限定されることから、バックアップを取るのも難しくなってくる。そこで、重要となるのがディスク・システムの耐障害性である。万一ハードディスクが故障したら、失われたデータの損失も大きいが、復旧の間の業務の中断による損失、作業コストなども甚大なものになるからだ。そのためか、以前はサーバで利用されてきたRAID技術が、クライアントPCや外付けUSBハードディスクなどでも採用され始めている。RAIDとは、複数台のハードディスクを組み合わせて、信頼性を高めた1台のハードディスクとして運用するための技術である。
RAID自体は、1987年にUCB(University of California, Berkeley:カリフォルニア大学バークレイ校)のDavid A. Patterson氏らが発表した論文によって初めて紹介されたものであり、新しいものではない。この論文では、RAIDレベルは1〜5まで定義されていた(その後、RAID 0とRAID 6が追加されている)。RAID製品のカタログなどに、「RAID 1」や「RAID 5」と書かれているのがRAIDレベルである。「レベル」といっても、数字が大きいほど、あるいは小さいほど、性能や機能が高いわけではないことに注意したい。RAIDレベルは、ディスク・システムの性能や機能のグレードを表すわけではなく、単にRAIDシステムを実現するための方式を表すものだ。したがってレベルの大小とは関係なく、性能や機能のそれぞれに長所や短所が存在する。本稿では、ストレージ製品などのカタログでよく見かけるRAIDレベルについて解説していく。
■RAID 0(ストライピング)
RAID 0では、2台以上のディスクを組み合わせ、ディスクに対する読み書きの処理を複数のディスクに対して同時並行的に実行することで、アクセス速度を高速化する。
RAID 0の動作原理 |
RAID 0では、ディスクの台数に合わせてデータを分割して、各ディスクに格納する。例えばデータ・ブロックA1/A2を読み出す場合、各ディスクに並行してアクセスすることで、ほぼ同時にA1/A2を読み出すことが可能になる。つまり、RAIDなしの場合と比べて単純計算で2倍速く読み出せる。 |
例えば、ディスクが3台ある場合は、データを3つに分けてそれぞれのディスクに対して同時に書き込むことにより、理論的には1台の場合と比べて3分の1の時間で書き込みができる。従って、一般的にRAID 0では、ディスクの台数を増やすほど性能(データ転送速度)も高くなる傾向にある。
またRAID 0は、複数のディスクをあたかも1台のディスクであるかのように扱うことで大容量の単一ストレージを実現する。ディスク容量の利用効率は100%、つまり全ディスクの容量を無駄なく利用できるわけだ*1。例えば、1Tbytesのハードディスク3台でRAID 0を構成すると、実効容量は1Tbytes×3台=3Tbytesとなる。
*1 各ディスクの容量が異なる場合、RAID 0では全ディスクの合計容量を使い切れない。そのため基本的にRAIDでは、ディスク・アレイを構成する各ディスクの容量は同一にそろえることが推奨される。 |
RAID 0のデメリットは、冗長性をまったく備えていないことである。むしろディスク台数が多くなると、ディスク1台の場合と比べて、耐障害性は悪化する。もしRAID 0で運用中の各ディスクのうち、1台でも壊れてしまうと、全体へのアクセスが不能になってしまうからだ。
RAID 0(ストライピング)の技術は、RAIDにおける高速化技術の基本である。RAID 0以外のRAIDレベルのうち、その多くは冗長性を持たせる何らかの仕組みと、ストライピングを組み合わせることで、耐障害性を維持しつつ性能を向上させている。
■RAID 1(ミラーリング)
RAID 1は、RAIDレベルの中で、最も単純な手法でディスクの耐障害性を高めている。その手法とは、同一のデータを複数のディスクに書き込み、一方のディスクが故障しても、他方で処理を続行できるようにする、というものだ。つまりRAID 1では、同じデータを格納したディスクの「コピー」を用意することで、障害に備えているわけだ。通常は2台のディスクを使って実現する。RAID 1は「ミラーリング」と呼ばれることもある。
RAID 1の動作原理 |
RAID 1では、アレイ内の各ディスクにまったく同一のデータを書き込む。1台のディスクが故障した場合でも、残りのディスクが稼働し続けることで、データは失われずに済む。 |
RAID 1では、同一のデータを2台以上のディスクに書き込むため、ディスク容量の利用効率は50%以下になるというデメリットがある(2台のディスクの容量が異なると、利用効率は50%よりさらに下がる)。例えば1Tbytesのデータを記録するには、1Tbytes×2台=2Tbytes分の容量のディスクが必要になる。
性能については、2台のディスクに同一のデータを書き込まなければならないという原理のため、ディスク1台の場合と比べ、書き込み時のオーバーヘッドが大きい。しかし、ハードウェアによって各ディスクへ並行して書き込みを行うことにより、このオーバーヘッドを最小限に抑えることは可能だ。読み出し性能はディスク1台の場合とほぼ同等であるが、RAID 0と同じ原理で、複数のディスクから同時並行読み出しを実行することによって、データの読み出し性能を高めることもできる。ただしRAID 0ほど性能は向上しない。
■RAID 10/1+0/0+1
RAID 0では耐障害性がないこと、RAID 1では複数のディスクをまとめた大容量の単一ディスクを構築できないことが、それぞれのデメリットとして挙げられる。そこで、この2つのRAIDレベルを組み合わせて、ストライピング・セット(RAID 0)をミラー構成(RAID 1)にする、もしくは逆にミラー・セット(RAID 1)をストライピング構成(RAID 0)にすれば、両者のデメリットを解消し、逆に両者のメリットを享受できる。この組み合わせRAID技術は、RAID 10、RAID 1+0、RAID 0+1などと呼ばれる。標準として定められているわけではなく、ベンダによって呼称や実装方法が異なる。
この組み合わせRAIDでは、RAID 1により耐障害性を、またRAID 0により高速化と大容量化を実現する。ただし最小構成のディスク台数は4台と多めだ。またストライピング・セット(RAID 0)をミラー化(RAID 1)するアレイ構成(一般にRAID 0+1と呼ばれる)では、1台ディスクが故障すると、次の2台目の故障でデータが失われる可能性が非常に高いという欠点がある。一方、ミラー・セット(RAID 1)をストライプ化(RAID 0)するアレイ構成(一般にRAID 10やRAID 1+0と呼ばれる)では、ミラー・セットを構成するディスク2台が両方とも故障するまで、データは保持される。
RAID 10の動作原理 |
ミラー・セット(RAID 1)をストライピング構成(RAID 0)とすることで、耐障害性と高速化、大容量化を実現する。この構成の場合、同じミラー・セットを構成するディスク2台が両方とも故障するまで、データは保持される。例えばディスク1の故障に続き、ディスク3(もしくはディスク4)が故障しても、ディスク・システム全体としては稼働し続けることができる。 |
INDEX | ||
[基礎解説]RAID基礎辞典 | ||
1.RAID 0とRAID 1とは | ||
2.RAID 2とRAID 3、RAID 4とは | ||
3.RAID 5とRAID 6とは | ||
基礎解説 |
- Azure Web Appsの中を「コンソール」や「シェル」でのぞいてみる (2017/7/27)
AzureのWeb Appsはどのような仕組みで動いているのか、オンプレミスのWindows OSと何が違うのか、などをちょっと探訪してみよう - Azure Storage ExplorerでStorageを手軽に操作する (2017/7/24)
エクスプローラのような感覚でAzure Storageにアクセスできる無償ツール「Azure Storage Explorer」。いざというときに使えるよう、事前にセットアップしておこう - Win 10でキーボード配列が誤認識された場合の対処 (2017/7/21)
キーボード配列が異なる言語に誤認識された場合の対処方法を紹介。英語キーボードが日本語配列として認識された場合などは、正しいキー配列に設定し直そう - Azure Web AppsでWordPressをインストールしてみる (2017/7/20)
これまでのIaaSに続き、Azureの大きな特徴といえるPaaSサービス、Azure App Serviceを試してみた! まずはWordPressをインストールしてみる
|
|