ストレージの故障とデータ損失
前回の記事で外付けストレージの事例として「USB接続の外付けストレージはご家庭でもテレビに接続して録画用として利用されていることも多いですね」と記載しました。筆者の家でもリビングに設置してあるテレビにはUSB接続のHDDが接続されており、ここに録画データを記録しています。先日家族から「テレビの録画リストから番組がごっそり消えたんだけど!?」という苦情があり調べたところ、どうやら外付けで利用していたUSB接続HDDが故障して認識されなくなってしまったようです。残念ですがこうなってしまうとこのHDDに録画されていたデータは失われてしまいます。今回失われたのは家庭内での録画データでしたので「一度見たんだし諦めて」で済みました(感情的にはさておき)。
一方これが企業内で業務に関わるデータであった場合はどうでしょう。「諦めてもう一度作成して」で済ませるわけにはいきませんよね。企業にとって業務データは重要な資産ですから、データを保護するためにバックアップを取得したり、そもそもデータが失われにくくしたりという工夫をすることが一般的です。
今回と次回の2回に渡って説明する「RAID」は、後者の「データが失われにくくする」ための技術です。
「失われてしまったデータをどう復旧するか」をカバーするバックアップについては回を改めて説明する予定です。
今回は技術的な説明であり文字数が多めなのでさっそく説明に入っていきましょう。
「RAID」とは何か ― 言葉の意味
「RAID」(レイド)は、ストレージ関連の用語としてはかなり一般的になった用語ですので、みなさんも耳にされたことがあるかと思います。
「RAID」はレーザー(LASER(*1))のようなアクロニムの一種で
の略です。「では、それは何を意味しているのか」をざっくりと説明すると「複数のディスクを束ねて、冗長性がある一つのディスクであるかのように取り扱う技術」です。
(*1) LASER : LASER(レーザー)は、実は一語ではなく “Light Amplification by Stimulated Emission of Radiation” の略です。筆者は中学の時に調べて以来なぜか気に入ってしまい暗記しています…。
今日では記憶メディアの技術進歩により、1台のHDDで20TBという大容量を記録可能なモデルが販売開始予定であったり、速度性能についてもNVMe接続のSSDであればランダムな読み書きで ”550,000/550,000 IOPs”という性能を実現していたり(*2) 、とドライブ単体でも十分な容量/性能を実現できています。
しかし、RAID技術の礎となる論文(*3)が発表された1987年当時、一般的に入手可能なHDDは容量も小さく性能面でも要求されるレベルには到達していなかったため「複数台のディスクを束ねて使おう」という発想が生まれたのです。
記憶メディアの技術が進化した現在においても、RAIDは信頼性を向上させる技術として企業向けストレージの世界では一般的に使用されています。細部を見ると近年ではSSDの普及に伴って利用されるRAID技術に少し変化が出てきていたりしますが、これについては背景説明なども含めると長くなってしまうので別の回で詳細に説明させていただきます。
(*2) Dell EMC PowerEdge Express Flash NVMe “Write Intensive” PCIe SSD https://i.dell.com/sites/csdocuments/Learn_Docs/en/dell_poweredge_express_flash_nvme_write_intensive_pcie_ssd.pdf
(*3)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
「RAID」の用途、種別
RAIDには「RAID 0」~「RAID 6」まで複数のレベルが存在しており、それぞれ異なる特徴を持っています。また「RAID 1+0」のように複数のRAIDレベルを組み合わせて使用することも可能です。
RAIDについて「複数のディスクを束ねて~」という説明をしましたが、「複数のディスク」は何台でも良いわけではなく、実は使用するRAIDのレベルによって「最低限必要なディスク数」が決まっています。さらに、束ねたディスクは全ての容量をデータ記憶用に使えるわけではなく、RAIDレベルによって効率に差が生じます。
詳細を説明する前に、RAIDレベル毎に簡単な特徴と最小台数、最小台数時のストレージ利用効率をまとめた表をご覧ください。
(*)この表の中の「ストレージ効率(%)」は、小構成台数時の値です。RAID 2~RAID 6については構成台数を増加した場合には異なる値となります。
上記の表をご覧になってすぐに「ああ、なるほど!」と全てを理解していただくことは難しいと思います。ここではなんとなく「RAID レベル毎に構成可能な台数や効率に差があるんだな」ということを掴んでいただければ大丈夫です。
次項以降で代表的な RAID レベルについて説明します。
説明する RAID レベルについて
「一般的によく使用されている」という観点から、今回の残り紙面と、次回の2回に分けて RAID 0, RAID 1, RAID 5, RAID 6 および RAID 1+0について説明を行います。
RAID 2は表に記載したようにそもそも「現在市場に実装している製品がない」ので説明することに実用的な意味合いがありませんし、RAID 3, RAID 4についても使用されるケースが限られているため詳細な説明は省かせていただきます。
また RAID ではありませんが「複数のディスクを束ねて使う」という同様の機能で JBOD(Just a Bunch Of Disks)という機能があるのでこちらについても説明を行います。
RAID 0
RAID 0はデータを分割して複数のディスクに対して読み書きを分散し、並列に実行することで速度の向上を図る構成です。「ストライピング」と呼ぶこともあります(データが複数のディスクに対して分散されて縞状(stripe)に記録されるため)。
読み書きが複数のディスクに対して分散され、並列に実行されるため高速化されます。なおかつディスクの記憶容量もその全てをデータ記憶用として用いることが可能なため容量効率は100%です。
他方、ネガティブな特徴としてRAID 0には耐障害性がありません(RAIDの”R”はどこいった、という話なんですが・・・)。
図1:RAID 0概念図をご覧いただくと、A~Eまでのデータが2台のディスクに分散して書き込まれていますが「同じデータは全体で一つ」しかないことがおわかりいただけるかと思います。ここで示したA~Eまでのデータは上記の通り「分割されたデータの一部」であるため、1つでも失われると元のデータを復旧することができません。
まとめるとRAID 0は「性能の高速化が図られ」、「ストレージ利用効率も100%」であるが「耐障害性がない」ことが特徴です。
企業向けストレージにおいては耐障害性の無さが問題視されるため、通常は後述する RAID 1 と組み合わせて使用されるケースが多いです。
JBOD
JBODは RAID のレベルではないのですが、たまに「RAID 0とどう違うのか」というご質問をいただくので一緒に説明します。
JBODは複数のディスクを連結して一つの大きなディスクとして取り扱う技術です。RAID 0と同様100%の容量効率があります。「単なるディスクの束(Just a Bunch Of Disks)」という名称が示す通り、冗長性や分散書き込みなどの機能はありません。
図2:JBOD 概念図をご覧ください。A~Hまでのデータが2台のディスクに書き込まれています。RAID 0 と違って1台のディスクを完全に使い切ってから2台目のディスクにデータが書き込まれていることに注目してください。
このように JBODはRAID 0が持つ「分散して書き込むため高速化される!」という特徴もありませんが、「複数台のディスクをまとめて管理するだけ」という処理の軽さから、エントリーレベルのストレージ装置でディスク容量を拡張するために使用されることがあります。
RAID 1
RAID 1は同じデータを2台のディスクに対して書き込む構成です。鏡映しのように同じデータが2つ存在するため「ミラーリング」と呼ぶこともあります。
同じデータが常に2台のディスクに書き込まれるため、1台のディスクが故障したとしてもデータが失われることがありません。また通常は故障したディスクの切り離しは自動的に行われるため、1台のディスク故障でシステムが停止することもなく、耐障害性に優れます。その反面同じデータを二重に記録するためRAID 1の容量効率は50%しかなく、RAID 0と異なり読み書きが高速化されることもありません。
まとめると、RAID 1は「ディスク1台の故障ではデータ損失しない/システム停止しない対障害性がある」が、「性能は高速化されず」、「ストレージ利用効率は50%しかない」ことが特徴です。RAID 0 の特徴とほぼ反対ですね。
このため、RAID 0の項でも記載した通り企業向けストレージでは RAID 0とRAID 1を組み合わせて「高速化」と「耐障害性」を両立させて使用するケースが多いです。
RAID 0とRAID 1の組合せには「RAID 1+0」と「RAID 0+1」の二種類があるのですが、紙面が尽きたため詳細な説明は次回行います。
まとめ
今回取り扱った内容は以下の通りです。
・「RAID」は「複数のディスクを束ねて、冗長性がある一つのディスクであるかのように取り扱う技術」である
・「RAID」には「RAID 0」~「RAID 6」のレベルがあり、それぞれ異なる特徴を有する
・「RAID」のうちRAID 0, RAID 1, RAID 5, RAID 6 および RAID 1+0がよく使用されている
・「JBOD」は RAID ではないが「複数ディスクを束ねて一つのディスクとして取り扱う」という意味では似た技術である
・「JBOD」は以下の特徴を有する。
メリット:「複数ディスクを一つのディスクとして扱える」、「処理が軽い」、「容量効率が100%」
デメリット:「複数ディスクを扱っても高速化されない」、「耐障害性がない」
・「RAID 0」は「ストライピング」ともいい、以下の特徴を有する。
メリット:「読み書きを分散するため性能が高速化する」、「容量効率が100%」
デメリット:「耐障害性がない」
・「RAID 1」は「ミラーリング」ともいい、以下の特徴を有する。
メリット:「ディスク1台の故障ではデータ損失しない/システム停止しない対障害性がある」
デメリット:「複数ディスクを扱っても高速化されない」、「容量効率が50%しかない」
・企業向けストレージでは「RAID 0」と「RAID 1」を組み合わせて使用することが多い
次回予告
今回はストレージ技術の中でも比較的知名度が高い(と思われる)「RAID」について説明させていただきました。技術的な話題であり、説明にどうしてもある程度の文字数を必要としてしまうため一度にすべてを取り扱うことが難しいです。
次回は今回説明できなかったRAID 1、RAID 5、RAID 6およびRAID 1+0 について説明する予定です。
それではまた次回、地味でディープなストレージの世界でお目にかかりましょう。
[ 著者紹介 ]
神谷 一郎
Dell Technologies(EMCジャパン株式会社)
ITXコンサルティング部 コンサルタント
ITベンチャー、国内大手ユーザー系SIerなどを経て2012年EMCジャパン入社。 バックアップ製品、ストレージ製品導入プロジェクトにおいて主に基本設計、一部で構築~導入およびユーザーへのスキルトランスファーを担当。その後約2年間のVMware勤務を経て2015年10月より現職。ITインフラアーキテクチャー策定やマルチクラウド環境に関するコンサルティングを主業務とする。SE、PM経験を活かしたテクノロジー系コンサルティングを得意としている。