1台のHDDでデータを保持しておくと障害発生時やディスク故障時に,保持しているデータが破損する可能性がある.複数のディスクを1つの仮想的なディスクとして扱い,アクセスの高速化や高信頼性実現する技術のことをRAID(Redundant Array of Inexpensive Disks)と呼ぶ
RAIDの種類と特徴
RAIDレベルはデータや冗長ビットの記録方法と記憶位置で複数の方式がある.複数のRAIDの方式のうち「RAID 0」「RAID 1」「RAID 3」「RAID 5」「RAID 6」の使用頻度が高い.
RAID0
データをブロック単位で複数ディスクに書き込んでいく(ストライピング).もっともHDDを効率的に使うことができ,同一データがないため高速に読み書きができる.しかし冗長構成を組んでいないため,一台でもディスクが故障した場合,そのディスク内にあるデータは消失してしまう.障害耐性は低い.
RAID1
同じデータを複製して違うディスクに保存する方式.ミラーリングと呼ばれる.同データを書き込むため信頼性が高い.しかしHDDのコストが2倍になるためHDDの利用効率は低い.
RAID3
複数のHDDを使いデータをビット/バイト単位に分割してディスクに保存する.複数のHDDのうち1台はパリティデータを保存する.HDDが損傷しても他のデータとパリティデータから復元することができる.RAID3はあまり普及していない.
パリティデータとはディスクが故障したときに,そのデータをもとに修復するデータ
RAID5
RAID3では修復用のパリティデータをパリティデータ専用のHDDに保存していたが,RAID5ではパリティデータも分散して書き込みを行う.1台のHDDが破損しても,他のHDDに保存されているパリティデータから修復ができる.
RAID6
RAID5に加えて,さらにHDDを追加した構成.重複させたパリティーデータを複数のHDDに分散して保存しておくことで,さらに高信頼性を得られ障害耐性が大幅に向上する.しかしHDDの利用効率は低下する.二重でパリティデータを書き込むためRAID5より書き込み速度は低下する.
障害や故障を減らす信頼性設計手法
システムの信頼性を向上させる設計手法は,下記のものがある.
フォールトアボイダンス(Fault Avoidance)
故障や障害を”回避”することで信頼性を向上させる手法.構成要素の品質の向上や,入念なテスト,定期保守等を行う.
例として,故障してはならない機器などにあてはまる.宇宙船や医療装置は人命にかかわるためフォールトアボイダンスの考えに基づいて設計される.身近なところでは自動車もこの設計手法が用いられる.
フォールトトレランス(Fault Tolerance)
構成要素を冗長化し,故障や障害が起きても運用を維持できるようにすることで信頼性を向上させる手法.RAIDのレベル設計はフォールトトレランスに当たる部分もある.トレランスは”許容”という意味がある.
例として,航空機のエンジンは一台が機能を停止しても飛行を続けられるように設計されている.ITではサーバでリクエストを受け付けているときにそのサーバで障害が発生したとしても,リクエストを別のサーバーに割り振ることで,ダウンタイムなしにサービスを継続させることができるようになっている.
フェールセーフ(Fail Safe)
システムの一部が故障しても,危険性がないような構造やシステムを構築する手法.
例として,信号機が故障すると全て赤になるようになっている.また石油ストーブも倒れると燃焼をストップさせる.
フェールソフト(Fail Soft)
システムの一部が故障しても,サービスのレベルを下げてでも継続させる手法.故障しても,停止ではなく継続重視の考えで設計される.
例として電源を落とせないコンピュータは停電が起きても予備バッテリー等でシステムを継続させる.
フールプルーフ(Fool Proof)
人為的に間違った操作を起こした場合でも,故障や障害が発生しないような仕組みを作る設計手法.
例として,電子レンジは扉が空いた状態では温めをスタートできない.