NetApp Tech OnTap NetApp Logo
NetApp Tech OnTap
     
Back to Basics:RAID-DP
シェアする NetAppオフィシャルFacebook

ネットアップの代表的なテクノロジの基礎を解説するBack to Basicsシリーズの第3弾をお届けします。

ディスクドライブのサイズが拡大し続けている中、クリティカルなデータを保護できる耐障害性を実現することは、ますます困難になっています。サイズが大きくなった一方で、ディスクの全般的な信頼性は、ほぼ変わっていません。ディスクのサイズが大きくなったことで、障害が発生したディスクをRAIDのパリティ情報を使用して再構築する際の所要時間は大幅に延びており、その結果として、再構築が完了する前に別のディスク障害やエラーが発生する可能性が高まっています。また、メディアサイズが大きくなるにつれ、ビットエラーやブロックエラーの可能性も高まります。そのため、再構築時にビットエラーやブロックエラーが起きる確率は無視できなくなっており、二重障害が発生する危険性が高まっています。シングルパリティのRAID環境では、二重障害が発生すると、ビジネスが中断され、データが失われることがあります。

ネットアップは、他社に先駆けて独自のデュアルパリティRAID実装であるRAID-DP®を開発し、この耐障害性の問題に対応しています。他のベンダーも、デュアルパリティRAID 6実装を提供していますが、パフォーマンスにほとんど影響を及ぼさずに、同じRAIDグループ内で発生した二重ディスク障害からデータを保護できるRAID 6実装は、RAID-DPのみです。

RAID-DPは、パフォーマンスが非常に高いため、ネットアップのストレージシステムのデフォルトオプションに設定されています。ネットアップのRAID 4実装と比較した場合の、ランダム書き込みパフォーマンスの差は、わずか2%であることが、テストからわかっています。これに対して、別の主要ストレージベンダーのRAID 6におけるランダム書き込みパフォーマンスは、同一システムで実行したRAID 5と比較して33%低下します(RAID 4とRAID 5は、いずれもシングルパリティRAID実装です)。RAID 4が、専用のパリティディスクを使用するのに対し、RAID 5は、RAIDグループ内のすべてのディスクにパリティ情報を分散して、ホットスポットとなるパリティディスクを持たないようにしています。ネットアップのRAID 4の場合は、パリティディスクがホットスポットとなることはありません。あとで説明しますが、その理由は、Data ONTAP®のデータの書き込み方法にあります。

RAID-DPには、次のような大きなメリットがあります。

  • データを最大限に保護:NetApp RAID-DPの場合、二重ディスク障害が原因でデータを損失する確率は、RAID 5構成の100分の1です。RAID 1+0は、RAID 5よりもデータの保護機能に優れていますが、ミラーセットを構成するディスクの両方で障害が発生した場合は、データが失われるリスクがあります。RAID-DPは、RAID 1+0の半分のコストで、二重ディスク障害からデータを100%保護します。
  • 低コスト:RAID 5を実装する場合、RAIDグループサイズは、通常3+1または5+1に限定されます(コストオーバーヘッドは17~25%になります)。RAID 1+0 では、1+1 が必要です(オーバーヘッド 50%)。対照的に、ネットアップは、最大28(26+2)ディスクのRAIDグループサイズをサポートし、容量オーバーヘッドはわずか7%です。
  • パフォーマンスの維持:すでに触れたように、競合他社のデュアルパリティ・テクノロジは、書き込みパフォーマンスを著しく低下させる可能性があり、「読み取り処理が大半を占める」タイプのアプリケーションに最適と言えるでしょう。NetApp RAID-DPであれば、パフォーマンスへの影響は、シングルパリティRAIDの場合とほぼ変わりません。RAID-DPは、ネットアップストレージのデフォルトオプションであり、あらゆるタイプのワークロードに適しています。
  • ソフトウェアのライセンス料が不要:RAID-DP機能は、すべてのネットアップシステムに標準で搭載されており、追加コスト不要で使用できるため、その分の費用をパリティディスクの追加購入に回すことができます。また、RAIDグループのサイズを拡大できるため、パリティディスクの費用を相殺できる可能性があります。

本稿では、NetApp RAID-DPテクノロジの仕組み、適切な使用事例、RAID-DPを実装するにあたってのベストプラクティスなどについて解説します。

Data ONTAPでのRAID-DPの仕組み

NVRAM、WAFLとの緊密な統合

RAID-DPは、NetApp NVRAM、NetApp WAFL®(Write Anywhere File Layout)と緊密に統合された状態で、Data ONTAPに実装されています。これこそが、RAID-DPが他のRAID 6実装よりひときわ高いパフォーマンスを誇っている理由です。

メモリへの書き込みの方がディスクへの書き込みより大幅に高速なため、ストレージ・システム・ベンダーは、一般にバッテリでバックアップされた不揮発性RAM(NVRAM)を使用して書き込みをキャッシュし、書き込みパフォーマンスを高めています。ネットアップも、すべてのストレージシステムにNVRAMを搭載していますが、NetApp Data ONTAPオペレーティング環境におけるNVRAMの使用方法は、通常のストレージアレイとはまったく異なります。

NVRAMは、Data ONTAPが最後の整合ポイント以降に受信した書き込み要求のジャーナルとして使用されています。Data ONTAPは、数秒ごとに整合ポイントと呼ばれる特別なSnapshot™コピーを作成します。整合ポイントは、ディスク上のファイルシステムのイメージで、完全な整合性が保たれています。整合ポイントは、ディスクに新しいブロックが書き込まれているときも変更されません。Data ONTAPは、既存のディスクブロックを上書きすることがないためです。このアプローチであれば、障害が発生しても、Data ONTAPは、最新の整合ポイントにリバートし、NVRAMの書き込み要求のジャーナルを再生するだけで済みます。

このように、ネットアップのNVRAMの使用方法は、ディスクドライバのレイヤで書き込み要求をキャッシュする、従来のストレージアレイとはまったく異なっており、必要なNVRAMの量が少なくて済む、書き込み応答時間が短縮される、ディスクへの書き込みが最適化されるなど、いくつものメリットをもたらします。

書き込みの最適化:RAID 4

こうした書き込みキャッシュアプローチは、ネットアップのRAIDの実装方法と緊密に統合されているため、ネットアップの場合、ディスクの書き込みパフォーマンスが基盤のRAIDアレイに合わせて最適化されるように、書き込みをスケジューリングできます。本稿では、ネットアップの書き込みプロセスの最適化方法を、ネットアップのRAID 4実装、RAID-DPの順で説明します。

RAIDアレイは、データをストライプ単位で管理します。ストライプとは、RAIDグループ内の各ディスクから1ブロックずつを集めて1つにまとめたものです。ストライプごとに、1ブロックがパリティブロックに指定されます。図1は、水平パリティを使用した、従来のRAID 4グループを示しています。このRAID 4グループは、4つのデータディスク(「D」と表示された先頭4列)と、1つのパリティディスク(「P」と表示された最後の列)から構成されています。

RAID 4パリティの例

図1)RAID 4パリティの例

この例では、わかりやすくするために、パリティの計算方法として、各水平ストライプ内の値を加算し、その合計をパリティ値として保存(3 + 1 + 2 + 3 = 9)する方法を採りました。実際には、パリティは、排他的論理和(XOR)演算を使用して計算されます。

単一障害からデータを再構築する必要が生じた場合は、パリティの生成に使用したプロセスを単純に逆にします。たとえば、ディスク1で障害が発生したと仮定した場合、RAID 4では、残りのデータからディスク1の各ブロックのデータを再計算します。図1の例では、パリティに保存された値から、残りの全ディスクの値を減算するだけです(9 - 3 - 2 - 1 = 3)。このことから、シングルパリティRAIDでは、単一ディスク障害の場合しかデータを保護できない理由もおわかりいただけるかと思います。値が2つ失われると、情報が足りないため、失われた値を再計算することができません。

通常のRAID実装の場合、データ(およびパリティ)がすでに含まれるストライプに新しいデータを書き込むためには、パリティブロックを読み込み、ストライプの新しいパリティ値を計算してからでないと、データブロックと新しいパリティブロックを書き込むことはできません。それでは、書き込むブロックごとに膨大なオーバーヘッドが必要になります。

ネットアップは、可能なかぎり、メモリ内に書き込みをバッファして(NVRAM内のジャーナルによって保護)、RAIDのフルストライプとパリティを書き込むことにより、このオーバーヘッドを減らしています。このため、書き込みの前にパリティデータを読み取る必要がなく、WAFLは、データブロックのフルストライプのパリティを1回計算するだけで済みます(ブロックの正確な数は、RAIDグループのサイズによって異なります)。WAFLは、既存ブロックの変更時に上書きを行わないこと、またデータとメタデータ(データの編成方法を説明するアカウンティング情報)を任意の場所に書き込めることから、このようなことが可能になっています。他のデータレイアウトでは、変更されたデータブロックは、通常上書きされ、メタデータを特定の場所に書き込まなければならないことも少なくありません。

対角パリティの追加:RAID-DP

NetApp RAID-DPは、RAIDグループあたり、パリティディスクを2つ使用します。1番目のパリティディスクは、水平ストライプに対して計算されたパリティを保存します(前述)。2番目のパリティディスクは、対角ストライプから計算されたパリティを保存します。図2は、図1の水平パリティに、対角パリティストライプを1つ(青色で示したブロック)と、2番目のパリティディスク(「DP」と表示されたディスク)を追加したものです。

対角パリティの追加

図2)対角パリティの追加

対角パリティストライプの計算には、水平パリティディスクのブロックも含められます。RAID-DPでは、元のRAID 4構造内のすべてのディスクが同一に扱われます。データディスクとパリティディスクは区別されません。対角パリティストライプからは、1つのディスクが除外されていることに注目してください。図3には、複数の水平パリティストライプと対角パリティストライプを示しました。

複数のストライプ(水平パリティと対角パリティを表示)

図3)複数のストライプ(水平パリティと対角パリティを表示)

各対角パリティストライプからは、1つのディスクのみが除外されており、除外されているディスクは、対角パリティストライプによって異なります。また、対角パリティディスクにパリティが保存されない対角ストライプが1つありますが(図3では白のブロックで表示)、全データをリカバリする機能には影響しません。

二重ディスク障害からのリカバリ

水平パリティと対角パリティを組み合わせることによって、同じRAIDグループ内の2つのディスクに障害が発生した場合でもリカバリできます。単一ディスク障害、またはブロック / ビットエラーの場合は、水平パリティのみを使用して、消失データを再構築できます。

二重ディスク障害が発生すると、RAID-DPではまず、図4に示しているように、再構築の開始点となるチェーンが検出されます。パリティからデータを再構築できるのは、失われた要素が1つの場合に限られます。各対角パリティストライプで、ディスクのうち1つを除外するのは、このためです。

対角パリティを使用したRAID-DPリカバリの開始

図4)対角パリティを使用したRAID-DPリカバリの開始

対角パリティを使用して1つ目のブロックをリカバリすることで、今度は水平パリティを使用して2つ目のブロックをリカバリできるようになります(図4の最上行)。すると次には、対角パリティを使用して、別の消失ブロックをリカバリできるようになります。このリカバリチェーンは、対角パリティが存在しないストライプのために終了するまで続きます。終了した時点で、別のエントリポイントが検出され、別の対角 / 水平ストライプチェーンを使用したリカバリが開始されます。最終的に、十分な数の消失ブロックに値が埋まると、パリティの存在しないストライプのすべての値を、水平パリティのみを使用して再計算できるようになります。このプロセスをさらに詳しくご覧になりたい場合は、TR-3298:『RAID-DP』を参照してください。

本稿では、RAID-DPの背景にある基本概念を容易にご理解いただけるように単純化した例で説明しましたが、RAIDグループ内に多数のディスクがあり、データが何百万行もある実際のストレージ環境であっても、実行されるプロセスは同じです。例では、隣接する2つのデータディスクに障害が発生した場合のリカバリを紹介しましたが、このプロセスは、ディスクが隣接しているかどうかに関係なく、また障害が発生したディスクがデータディスクか、パリティディスク自体かに関係なく機能します。

書き込みの最適化:RAID-DP

RAID 4についての説明ですでに触れたように、WAFLは、常に、可能なかぎり書き込みをバッファし、ディスクにブロックのフルストライプを書き込もうとします。RAID-DPは、データブロックをメモリ上にバッファすることによって、1回の読み取り操作で複数の水平 / 対角パリティを計算します。RAID-DPのパフォーマンス・オーバーヘッドがRAID 4より2%高いのは、対角パリティを計算し、2番目のパリティブロックを書き込むオーバーヘッドが追加で発生するためです。

使用事例

RAID-DPは、ネットアップストレージで非常に広く使用されているテクノロジとなっているため、RAID-DPの使用を推奨する事例ではなく、あえて使用する必要のない例外的な事例をご紹介します。RAID-DPは、ネットアップのお客様の90%以上に利用いただいており、極めてビジネスクリティカルなワークロードや、パフォーマンスが重視されるワークロードにも使用されています。RAID-DPは、ネットアップのすべての新ストレージシステムでデフォルトオプションとなっており、ネットアップは、そのベストプラクティスでRAID-DPの使用方法を規定しています。また、RAID-DPは、ネットアップに関する公開パフォーマンス・ベンチマークにおいても使用されています。ネットアップのソフトウェアは、すべてRAID-DPと完全な互換性があります。このRAID 6実装が、他社製品にはないネットアップの特長になっています。

RAID-DPの代わりにRAID 4を使用することが選択肢となりうる例外的な事例としては、スクラッチスペース、テスト環境、ラボ環境など、耐障害性が重要でない状況を挙げることができます。

RAID-DPの使用

RAID-DPは、Data ONTAPバージョン6.5で導入されました。

RAID-DPボリュームの作成

RAID-DP RAIDグループを使用してアグリゲート(またはトラディショナル・ボリューム)を作成するには、ネットアップのグラフィカルなツールを使用してストレージをプロビジョニングするときに、該当するオプションを選択するか、またはaggr createまたはvol createコマンドに-t raid_dpスイッチを追加します。

Data ONTAPは、RAIDの種類が指定されていないと、デフォルトのRAIDを自動的に使用します。現在提供中のData ONTAPバージョンの場合は、いずれもRAID-DPです。ご使用のシステムでデフォルトに設定されているRAIDの種類は、Data ONTAP Information Libraryで、ご使用のData ONTAPのバージョンを選択すると確認できます(NetApp NOW®へのアクセス権が必要です)。

Broome-Tioga BOCESのストレージインフラ

既存のRAID 4 RAIDグループをRAID-DPに変換できます。変換は、アグリゲートレベル、またはトラディショナル・ボリューム・レベルで実行されます。RAIDグループごとに、対角パリティディスクに使用できるディスクが必要です(RAIDグループ内で最大のディスクと同等サイズ以上)。

RAID-DPのRAIDグループサイズの選択

RAID-DPでは、パリティ用のディスクを追加する必要がありますが、RAIDグループサイズを拡大できるため、使用可能な容量への影響は相殺できる可能性があります。使用可能な容量への影響を軽減、またはゼロにする1つの方法は、ご使用中のディスクドライブの種類に該当するデフォルトのRAID-DPグループサイズを使用することです。デフォルトのRAID-DP RAIDグループサイズの倍数単位でアグリゲートを作成してください。

ハードディスクドライブ(SATA、FC、SAS)の場合、RAIDグループサイズが12(10+2)~20(18+2)の範囲に収まり、RAIDグループレイアウトが均一になる(すべてのRAIDグループに同じ数のドライブが含まれる)ようにサイジングすることを推奨します。均一なRAIDグループレイアウトを作成できるRAIDグループサイズが複数ある場合は、範囲内でより大きなRAIDグループサイズ値を使用することを推奨します。ときどき起こることですが、RAIDグループでドライブの数がどうしても不足してしまう場合は、アグリゲート内で、RAIDグループの数から1を引いた数のドライブ数を下回るグループが存在しないようにしてください(これが不可能な場合は、RAIDグループサイズを1つ小さくしてください)。ドライブの数が足りず、RAIDグループが不完全になってしまう場合は、RAIDグループ間に均一に分散して、ドライブが2つ以上不足しているRAIDグループが存在しないようにします。

RAID-DPの管理

RAID-DPを新しく使用する場合や、RAID-DPに切り替える場合でも、操作手順はほとんど変更する必要がありません。ストレージシステムには、RAID 4とRAID-DPアグリゲート / ボリュームを混在させることができ、管理に使用するコマンドも同じです。

RAID-DPの再構築

二重ディスク障害が発生すると、RAID-DPは、再構築プロセスの優先度を自動的に引き上げるため、リカバリはさらに短時間で完了します。その結果、二重ディスク障害からのデータの再構築にかかる時間は、単一ディスク障害の場合よりもわずかながら短くなります。二重ディスク障害の場合、あるディスクに障害が起きてから、時間をおいて2番目のディスクに障害が起きる可能性が高いため、この間、水平パリティを使用して、少なくとも一部の情報がすでに再作成されています。RAID-DPは、2番目のディスク障害で2つの要素がなくなっているポイントからリカバリを開始することで、このような状況に自動的に適応します。

Data ONTAPには、RAIDの再構築がシステムパフォーマンスに与える影響を調整できるオプションが備わっています。

raid.reconstruct.perf_impactオプションは、デフォルトではmediumに設定されています。このオプションには、low、medium、highの3つの値を指定できます。このオプションをlowに設定すると、フォアグラウンドI / Oへの対応にシステムリソースが優先的に使用されるため、RAIDの再構築にかかる時間は長くなることがあります。このオプションをhighに設定すると、RAIDリカバリ処理は、割り当てられるシステムリソースの増加を要求してフォアグラウンドI / Oと競合できます(そのため、フォアグラウンドI / Oのパフォーマンスは低下します)。

状況によっては、このオプションの調整が必要になることがありますが、最後の手段として使用してください。通常は、デフォルト値のままにすることを推奨します。

まとめ

NetApp RAID-DPテクノロジは、一般的なストレージワークロードのほぼすべてに使用できる、重要な耐障害性ツールです。NetApp RAID-DPの詳細については、NetApp TR-3298:『RAID-DP™:Network Appliance™のRAID Double Parityの実装によるデータ保護』WP-7005:『NetApp RAID-DP: Dual-Parity RAID 6 Protection Without Compromise』をご参照ください。


Jay White
テクニカル・マーケティング・エンジニア
ネットアップ


Jayは、テクニカル・マーケティング・エンジニアとして、システムの耐障害性、ストレージサブシステム(シェルフ、ドライブなど)、RAIDを担当しています。ストレージサブシステムの構成や耐障害性に関して、テクニカルレポートやFAQも多数執筆しています。



Carlos Alvarez
シニア・テクニカル・マーケティング・エンジニア
ネットアップ


2008年にネットアップに入社して以来、Carlosはストレージの効率化に専門的に取り組んでおり、重複排除、データ圧縮、シンプロビジョニングについて深い専門知識を持っています。Carlosは、お客様の環境で最も効果を発揮するNetApp Storage Efficiencyテクノロジの最適な組み合わせについて、頻繁にアドバイスを行っています。


関連情報
関連情報
その他のBack to Basics

ネットアップのコアテクノロジの基礎について、シリーズでご紹介しています。過去に掲載された記事は以下のとおりです。

関連情報
 
Go further, faster TRUSTe
お問い合わせ   |   購入方法   |   フィードバック   |   採用情報  |   登録   |   プライバシーポリシー   |   © 2011 NetApp