RAIDの使い分け
前回まで2回に渡りRAID技術について説明をさせていただきました。RAID 0/RAID 1/RAID 5/RAID 6および複合型であるRAID 1+0、類似技術としてJBODを紹介しています。
さて、これだけ種類があるRAID方式ですが、一体どれを利用すれば良いのでしょうか? 本連載で前提としている企業向けストレージ装置で従来よく利用されていたRAID方式は RAID 1+0 あるいは RAID 5 です。
両方式について前回説明をさせていただきましたが、改めて両者の特徴を表形式でまとめます。
いかがでしょう。端的に両者の特徴を表すと「RAID 1+0は速い/容量効率が悪い」「RAID 5は容量効率が良い/遅い」となります。このうち速さについては障害発生時により顕著に表れます。RAID 1+0の場合、例え1台のドライブが障害で使用不可になっても RAID 1によりペアとなるドライブ(ミラー先)に同一のデータが書き込まれています。このため利用するサーバーからは障害発生前と同様の速度で利用することが可能です。一方 RAID 5の場合にはドライブ障害が発生した後再構成が完了するまでは前後のデータとパリティを利用して失われた分のデータを都度再構成する必要があり、速度は顕著に遅くなります。
障害からの復旧についても同様で、RAID 1+0であれば障害発生ドライブを交換した後は単純にミラー先からデータをすべてコピーすれば良いだけですが、RAID 5はコピーするためのデータを計算により再構成しながら書き込む必要があるため、どうしても復旧までに要する時間は長くなります。
このため、「速度が要求される用途」例えば本番環境で稼働するデータベースの領域などは RAID 1+0で構成し、ログファイルの格納先など「速度性能はそれほど求めないが大容量が必要」な領域は RAID 5、それ以外の中庸な領域は RAID 1 などといった使い分けが行われてきました。
記憶メディアの大容量化、SSD登場による大幅な速度性能向上と「RAIDの使い分け」への影響
前回記事の冒頭で紹介させていただいた通り、記憶メディアは過去30年以上に渡り猛烈な勢いで進化してきました。HDDは記録技術の進化により著しく大容量化しましたし、フラッシュメディア(SSD)の登場は文字通り桁違いの高速性を実現しました。
しかしこれらの「大容量化」「高速化」がRAID方式の選定に影響を与えたのです。
[大容量化による影響] RAID 5からRAID 6への移行
RAID 5は同一RAIDグループ内でドライブ一台までの障害に対応することができます。再構成が完了してしまえば再びいずれかのドライブが障害を起こしても対応することができます。しかし、ドライブの大容量化が進むにつれて再構成に要する時間も飛躍的に長くなってしまいました。これに伴い、RAID 5では「再構成中にRAIDグループ内で別のドライブに障害が発生し、結果的にRAIDグループ全体のデータが失われる」リスクが増大し、実際にこのようなケースが散見され始めたのです。
このリスクに対応するため、従来RAID 5が選択されていた領域においてRAID 5に代わりRAID 6が選択されるようになってきました。
RAID 6はRAID 5と比較すると速度、容量効率の両面で劣りますが「同一RAIDグループ内で2台までのドライブ障害に耐え得る」という点でRAID 5に対して大きな優位性があります。上記の通り再構成に要する時間が長大化する中、業務用データの重要性を鑑みるとこの特徴は強力です。この特徴によりRAID 5ではなくRAID 6が採用されるようになったのです。
[高速化による影響] RAID 1+0からRAID 5/6への移行
次に「高速化」による影響です。近年登場したSSDはHDDと比較して桁違いの高速性能を誇ります。弊社が公開している資料ベースで比較するとNVMe接続のSSD(1)ではランダム読み込みで700,000+ IOPSとありますが、一方HDDでは(2)109~260 IOPSとなっています(*3)。このように性能面ではHDDとは比較にならない優位性を発揮するSSDですが、一方で容量単価を見た場合(低廉化が進んできてはいますが)HDDよりも高価であるという現実があります。
このように「大幅に高速だが高価」な特徴を持つSSDの登場は、従来「容量効率が悪くても高速性を重視する」領域で利用されてきたRAID 1+0のポジションを奪いました。SSDが実現する桁違いの高速性能に加え、RAIDコントローラーやCPUの性能向上もありRAID 5/6の採用による速度面へのペナルティを勘案してもなお「HDDをRAID 1+0で構成する」より「SSDをRAID 5/6で構成する」方が速度面でも優位になったのです。
(*1)Dell PowerEdge Express Flash NVMe “Performance” PCIe SSD
(*2)HDD Characteristics and Metrics*
https://i.dell.com/sites/csdocuments/Shared-Content_data-Sheets_Documents/en/dell_hdd_characteristic_and_metrics.pdf
(*3)引用元資料の性質が異なるため、性能測定の前提条件であるブロックサイズが異なるなど詳細な条件が異なります。そのため厳密な意味で直接比較が可能な値ではありません。
2019年現在よく利用されているのはRAID 5あるいはRAID 6
上記のような状況下、2019年現在新規に導入される企業向けストレージ装置においてRAID 1+0が採用されるケースは大幅に少なくなりました。
RAID 5も再構成に長時間を要する、という弱点はありつつもまだ利用されています。 R AID 5とRAID 6のいずれを選択するか、は費用とリスクを勘案して決定されます。全体の構成が大きくなればなるほどRAID 6との間で価格差も生じてしまうためです。
大容量化に伴いRAID 5でRAIDグループ全体のデータが損失するリスクが高まってきているのは事実ですが、企業において喪失してはいけないデータについてはバックアップが作成される前提があるため、リスクとして評価されるのは「データが損失した場合にバックアップからリストアするために要する時間」を許容できるかどうか、という点になります。
ドライブレベルを超えて実装されるデータ保護方式
これまで取り扱ってきた「RAID」は「Redundant Arrays of Independent Disks(4)」を略した名称でした。文字通りディスク(ドライブ)レベルでの保護に関する技術です。これに対し、近年登場したSDS(Software Defined Storage)やそれを利用したHCI(Hyper Converged Infrastructure)ではしばしばドライブレベルではなく、システムを構成する「ノード 」(5)レベルでのデータ保護技術が用いられます。これを「RAIN(Redundant Arrays of Independent Nodes)」と呼びます。・・・呼ぶんですが、実際にはこの呼称が利用されるケースは少なく、この後説明する保護方式そのもの(「複製(レプリケーション)」あるいは「erasure coding(イレイジャーコーディング)」で呼称するケースの方が多いように見受けられます。
(*4)RAIDシリーズ第1回で記載した通り発案当初は「Redundant Arrays of Inexpensive Disks」でした。
(*5)ノード:システム全体を構成する分散コンポーネントの単位。SDSやHCIでは「サーバー」とほぼ同義です。
※なおSDSやHCIについての詳細は回を改めて説明させていただくこととし、今回はデータ保護方式の概要に絞って説明します。
RAINではデータの固まりを複数のブロックに分割して分散配置しますが、この時分散される先のドライブが別のノード上に存在するのがRAIDとの大きな違いです。RAIDは基本的にサーバーやストレージ装置など単一の筐体内においてドライブを跨いでデータを保護する仕組みですが、RAINでは別の筐体に存在するドライブを利用することで、ノードを跨いだデータ保護を実現します。文字で説明するより図をご覧いただいた方がわかりやすいかもしれません。
RAINの特徴
RAINによるデータ保護は「データ」単位で行われるため、個々のドライブで見るとドライブ全体が保護されているわけではないことが特徴です。RAIDはあくまで「ドライブ」が単位でしたが、RAINではドライブの一部領域に記録された「データ」が複数のノード間で保護されています。製品によってはノード内で更にRAIDを使用したドライブ保護を組み合わせることができる実装もあるようですが、「データを保護する」という観点からは二重投資になってしまうため多くのケースではノード内でのRAIDは用いない実装となっています。
RAIN利用時のデータ保護方式
RAIDに様々なレベルがあったように、RAINにも様々な保護方式がありますが、大まかな概要はRAIDに近い技術が採用されています。即ち「データコピー(ミラーリング)」か「符号化による保護」です。
前者は筐体を跨いでデータをコピーするため「複製(レプリケーション)」とも呼ばれます。同一のデータを複数のノードにコピーしておくことで、あるノードに障害が発生した場合でも別のコピーを用いて業務を継続することが可能です。「コピーをいくつ作成するか」は要求される保護レベルによって変更することができます。コピーの数を増やせば増やすだけ耐障害性は向上しますが、その分容量も余分に必要になります。通常は2~3程度のコピーを作成することが多いようです。
後者は「erasure coding(イレイジャーコーディング)」と呼ばれ、複数のデータブロックからパリティを生成し、冗長化を図ります。多くの実装で「リード・ソロモン符合」と呼ばれる数学式が使用されますが、これは前回紹介したRAID 6の「P+Q」方式で2番目のパリティを生成する際に使用されるものと同じ方式です。
理論上は冗長化のためのパリティを多数持つことが可能ですが、計算負荷と実用上の容量効率を勘案してRAID 5相当の「1パリティ」かRAID 6相当の「2パリティ」を選択可能としている実装が多いです。
まとめ
今回取り扱った内容は以下の通りです。
・企業向けストレージでは「RAID 1+0」「RAID 5」がよく利用されていた。
・SSD登場(による高速化)の影響で「RAID 1+0」が利用されるケースが減少した。
・HDD大容量化の影響で「RAID 6」が採用されるケースが増加した。
⇒ 2019年現在、企業向けストレージでよく利用されるのは「RAID 5」「RAID 6」である。
⇒ どちらを利用するかは多重障害時の復旧時間要件を勘案して選択する。
・SDSやHCIでは「RAID」ではなく「RAIN」という筐体を跨がって保護が可能な構成が利用される。
・「RAIN」によるデータ保護は大きく分けて「複製(レプリケーション)」と「erasure coding(イレイジャーコーディング)」二つの方式が使用され、それぞれ RAID 1 や RAID 5/6 に近似した保護方式である。
次回予告
3回に渡ってRAIDとその周辺技術について説明させていただきました。
次回は年末ということもあり、1回で完結する話題を取り上げようと考えています。具体的にどのような話題になるかは次回までのお楽しみということで。
それではまた次回、地味でディープなストレージの世界でお目にかかりましょう。
[ 著者紹介 ]
神谷 一郎
Dell Technologies(EMCジャパン株式会社)
ITXコンサルティング部 コンサルタント
ITベンチャー、国内大手ユーザー系SIerなどを経て2012年EMCジャパン入社。 バックアップ製品、ストレージ製品導入プロジェクトにおいて主に基本設計、一部で構築~導入およびユーザーへのスキルトランスファーを担当。その後約2年間のVMware勤務を経て2015年10月より現職。ITインフラアーキテクチャー策定やマルチクラウド環境に関するコンサルティングを主業務とする。SE、PM経験を活かしたテクノロジー系コンサルティングを得意としている。