記憶メディアの進化

RAIDに関する記事を執筆するのに際し、久し振りに前回ご紹介した『RAID 技術の礎となる論文 』(*1)を読み直してみました。Appendix込みでも20数ページというコンパクトな論文ですが、RAIDを理解するのに必要な要素が分かり易く図入りで記載されていて味わい深いものがあります。この論文の発表段階ではRAID 0とRAID 6はまだ取り扱われていませんでした。

この論文にはRAID構成用として使用するパーソナルコンピューター用HDDの事例としてコナー(Conner)社(※現在はSeagate社に吸収されています)のCP3100というHDDが取り上げられています。論文中に掲載されたCP3100の性能では、最大で30 IOPSという値が記載されています。また、比較対象として掲載された大型コンピューター用ディスク装置であるIBM社のIBM 3380は200 IOPS、富士通社のM2361Aは40 IOPSです。一方32年後の現在では、前回掲載したNVMe接続のSSDではランダム書き込み175,000 IOPS(2)と文字通り桁違いの性能です(3) 。容量面でもCP3100 は100MB、IBM 3380が7,500MB、富士通 M2361Aが600MB(*4)ですから、こちらも桁違いです。技術の進化を感じていただけますでしょうか。

(1) RAID技術の基礎となる論文:David A. Patterson, Garth A. Gibson and Randy H. Katz, “A Case for Redundant Arrays of Inexpensive Disks (RAID)”, EECS Department University of California, Berkeley, Technical Report No. UCB/CSD-87-391, December 1987
(
2) Dell PowerEdge Express Flash NVMe “Performance”
PCIe SSD

(3) 厳密にはこの論文とSSDの資料では性能測定方式など前提条件に違いがあります。
(
4) いずれもフォーマット後の値

「RAID」の用途、種別(続き)

さて、それでは前回に続いてRAIDのレベルについて説明いたします。前回はRAID 0、RAID 1および(RAIDではありませんが)JBODについて説明しました。今回はRAID 1+0(とRAID 0+1)、RAID 5、RAID 6について説明します。

RAID 1+0

図 1:RAID 1+0概念図

RAID 1+0(5)は前回説明した RAID 1で「ミラーリング」されたディスク群(ミラーセット)を複数用意し、それらを使用したRAID 0(ストライピング)を構成する手法です(6)

前回「RAID 0には耐障害性がありません」という説明をしましたが、RAID 1を組み合わせることで耐障害性を持たせたのがRAID 1+0 です。図を見ていただくとおわかりになるかと思いますが、RAID 1+0はミラーセット①とミラーセット②のそれぞれで1台ずつドライブが故障してもデータが失われることなく稼働し続けることが可能です。

一方でRAID 0が持つ読み書きを複数ディスクに分散、並列化することでアクセス性能が高速化される特徴はそのままです。

RAID 1+0のメリットはアクセス性能の高速化が図られた上に耐障害性を持つことです。

デメリットは、これも図を見ていただいてもおわかりになるかと思いますが、容量効率が50%しかないことおよび最小構成時でもドライブが4台必要なことです。

(5) ”RAID 10” や “RAID 1/0” と表記することもあります
(6) 図では”ミラーセット①”, “ミラーセット②”の2セットでRAID 0を構成していますが、必要に応じて構成するミラーセットは増加させることが可能です。

RAID 0+1

図 2:RAID 0+1概念図

『“RAID 1+0”があれば“RAID 0+1”もあるんじゃないの?』と思ったあなた、正解です。理論上はRAID 0+1という構成を組むことも可能です。可能ではあるのですが、実際に使われるケースはほぼありません。なぜでしょうか?

これは、RAIDを組み合わせる順番にヒントがあります。”RAID 1+0”は「RAID 1で作成したミラーセットを使用してRAID 0を構成する」仕組みでしたが、”RAID 0+1”は「RAID 0で作成したストライプセットを使用してRAID 1を構成する」仕組みです。一見すると同じように見えますが、図1と図2をよく見比べてください。”RAID 1+0”の場合(図1)はミラーセット①とミラーセット②のそれぞれで1台ずつドライブが故障した場合でも各ミラーセットは動作し続けることが可能です。これに対して“RAID 0+1”の場合(図2)にはストライプセット①あるいはストライプセット②のいずれのストライプセットについても1台ドライブが故障した時点でその機能を失います。同じ4台のドライブで構成したとして、得られる効果はほぼ同様であるにもかかわらず、耐障害性で差がついてしまうため、”RAID 1+0”ではなく“RAID 0+1”を選択する理由がないのです。

RAID 5

図 3:RAID 5概念図

RAID 5はRAID 0のようにデータを分割して複数のディスクに分散し、並列に読み書きを実行することを可能としますが、RAID 0と違いデータ書き込み時に“パリティ”と呼ばれるエラー訂正用の情報を生成して書き込みます。パリティはデータと同様全てのドライブ上に分散して書き込まれます。RAID 5を構成するドライブ台数が増加しても“パリティ”用として使用される容量はドライブ1台分の容量で済むため、ドライブの利用効率が高いことが特徴の一つです。ドライブ3台という最小構成時でも容量効率は66.7%(3分の2)です。

RAID 5では構成するドライブが故障した場合には、残ったドライブのデータとパリティを使用して失われたデータを再生成することが可能です

デメリットは、書き込み時にパリティを生成する際ホストから送信されてきたデータとは別にディスク上のデータを読み出す必要があるため、書き込み性能面でのオーバーヘッドが避けられないことです。読み出しについてはデータが分散配置され、並列で読み出しが可能なため高速に行うことが可能です。

豆知識

RAID 5ではパリティの生成に XOR 演算が使用されます。XOR(排他的論理和)について詳しくは Wikipedia などをご参照(*7)いただくとして、理屈抜きで演算結果を表にしましたのでご覧下さい。

0 XOR 0 → 0
0 XOR 1 → 1
1 XOR 0 → 1
1 XOR 1 → 0

このルールに従って、Wikipedia にも記載されている 0011 と 0110 の例を使って説明します。

【例】
図3の「A」に記録されているデータが “0011”、「B」に記録されているデータが “0110” だとします。この場合生成されるパリティは “0101” となります(上の演算結果表と見比べてください)。

0011 : A
0110 : B
0101 : Parity

データ「A」が記録されているドライブが故障した場合、残されたドライブに記録されているデータ「B」と パリティからデータ「A」を再生成できるでしょうか・・・

0110 : B
0101 : Parity
0011 : XOR演算結果(=A)

どうやら無事にデータ「A」が再生成できたようです。

この例に示した通り、データの再生成には残ったデータ(失われたデータを記録する際のパリティ生成に使用したデータ)とパリティが必要なため、RAID 5においてデータ再生成が可能なのはドライブ1台の故障までです。同時に2台以上の故障が発生した場合、残念ですがデータは失われます。
(*7 XOR (排他的論理和):『フリー百科事典 ウィキペディア日本語版』(https://ja.wikipedia.org/wiki/%E6%8E%92%E4%BB%96%E7%9A%84%E8%AB%96%E7%90%86%E5%92%8C)

RAID 6

図4:RAID 6概念図

RAID 5ではドライブ1台の故障が発生しても失われたデータを再生成できることがわかりました。故障したドライブは正常なドライブと交換され、再生成されたデータが交換後のドライブに書き込まれれば元通りです。では、「元通り」になるまでの間に別のドライブが故障したらどうなるのか・・・。これは「同時に2台以上の故障」という状態になるため、データが失われてしまいます。

RAIDを構成するドライブの多くは同じ時期に導入され、またRAID 5は全てのディスクに読み書きを分散させるためどのドライブの消耗度合いも似たような傾向になります。このため「あるドライブが故障した」際、その原因が長時間の使用による劣化だった場合には他のドライブが同じように故障する可能性も決して低くはないことは想像していただけるかと思います。

このRAID 5における「再生成中に発生する新たなドライブ故障」にも耐えうるRAIDレベルとして、RAID 6が考案されました。RAID 6をシンプルに表すと「RAID 5に、RAID 5で使用するのとは別のパリティを付け加えてドライブ2台の同時故障まで耐えられるようにしたもの」です。

RAID 6において追加のパリティを生成する方式として「2D-XOR」と「P+Q」という2つの方式が考案されました。「2D-XOR」方式は追加パリティの記録用ディスクが固定されてしまうため、現在では追加されるパリティも全てのディスクに分散される「P+Q」方式が広く採用されています。図4は「P+Q」方式における RAID 6 の概念図です。

RAID 6のメリットはドライブ2台の同時故障までデータが保持されることです。また、データが分散配置され、並列で読み出しが可能なことはRAID 5と同様であり、読み出しは比較的高速に行うことが可能です。

一方 RAID 6のデメリットはパリティを二重に生成するためRAID 5よりもオーバーヘッドが大きいことと、RAID 5 よりも容量効率が劣ることです。RAID 6の最小構成はドライブ4台ですが、この時の容量効率は50%しかありません。

まとめ

今回取り扱った内容は以下の通りです。

・「RAID 1+0」は以下の特徴を有する。
 メリット:ミラーセット毎に1台のドライブ故障まで許容する耐障害性がある/読み書き性能向上
 デメリット:容量効率が50%

・「RAID 0+1」は以下の特徴を有する。
 メリット:RAID 1+0とほぼ同じ

 デメリット:RAID 1+0非で耐障害性が劣る(ためにほぼ使われない)
・「RAID 5」は 、以下の特徴を有する。
 メリット:ドライブ1台の故障まで耐え得る耐障害性と、データ分散によるアクセス性能向上が併存している
 デメリット:パリティ生成用にオーバーヘッドが生じる

・「RAID 6」は 、以下の特徴を有する。
 メリット:ドライブ2台の故障まで耐え得る高い耐障害性と、データ分散によるアクセス性能向上が併存している
 デメリット:パリティ生成に RAID 5 より負荷が高い

次回予告

前回と今回の2度に渡りストレージ技術の「RAID」について説明させていただきました。今回は RAID 5 の項においてパリティ生成の話題まで説明したため、読みにくい面もあったかと思います。

今回で「RAID」の話題を終える予定でしたが、次回もう1回だけ「使い分け」や実装方式、類似の技術などについて回をいただこうと考えています。

それではまた次回、地味でディープなストレージの世界でお目にかかりましょう。

[ 著者紹介 ]
神谷 一郎
Dell Technologies(EMCジャパン株式会社)
ITXコンサルティング部 コンサルタント

ITベンチャー、国内大手ユーザー系SIerなどを経て2012年EMCジャパン入社。 バックアップ製品、ストレージ製品導入プロジェクトにおいて主に基本設計、一部で構築~導入およびユーザーへのスキルトランスファーを担当。その後約2年間のVMware勤務を経て2015年10月より現職。ITインフラアーキテクチャー策定やマルチクラウド環境に関するコンサルティングを主業務とする。SE、PM経験を活かしたテクノロジー系コンサルティングを得意としている。