RAID(アレイ)コントローラとは&キャッシュモード比較 | 若手エンジニアのブログ

若手エンジニアのブログ

文系出身の若手女子エンジニアによる技術ブログ。
日々の経験や学びをアウトプットするためにブログを書いています。
バックエンド(Java+SpringFramework)を経てインフラエンジニアになりました。
今は育休中につき、本で勉強したことを中心にアウトプットしています。

先日、仕事で、RAID・ストレージに関する設計を行いました。

応用情報処理試験程度の表面的な知識しかなく、非常に苦労しました…(^-^;笑

周りの方々に、多大なるご支援を頂き、何とか書くことができましたが、

せっかくなのでその際の学び+αをアウトプットしていきます。

アプリ作るぞー!って言ったけど、このまま仕事での学びを優先させていくと、お蔵入りになりそう……。年末年始休みとかの、時間のある時に、一気にやろうかな。。

 

タイトルの通り、RAIDコントローラとキャッシュモード(ライトスルー、ライトバック)の話をしていきます。

 

もくじ

1.RAIDコントローラ(アレイコントローラ)とは

  ・概要

  ・ハードとソフトの違い

2.キャッシュモード

  ・手法①ライトスルー

  ・手法②ライトバック

  ・どっちがええの?

  ・ライトバックのデメリット回避方法3選

 

 

1.RAIDコントローラ(アレイコントローラ)とは

◎概要

複数台のストレージ(外部記憶装置)を束ねて1台の装置のように運用するディスクアレイおよびRAIDシステムで、ディスクやデータの管理を行う装置のこと。

IT用語辞典 e-Wordsより引用)

 

サーバのストレージは、普通、複数を組み合わせて使う。

単一のストレージ構成だと、

 ・そのストレージが壊れたら終わり

 ・単一ストレージだと、容量的にも足りない(企業のシステムだと足りないはず)

といった弊害がある。

 

そのため複数のストレージを使うのがふつうだが、

これらストレージを、論理的に1つにまとめ、柔軟に使いやすくしてくれるのが「RAIDコントローラ」となる。

平たくいうと、複数のストレージを良い感じに管理してくれるやつである。

 

◎ハードとソフトの違い

RAIDコントローラは、ハードウェア製品を指すが、

ソフトウェアとしてRAIDコントローラの機能を提供するものもある。

 

ハードウェアのRAIDコントローラを使うほうが、当然お値段は高くなるが、I/Oの速さやCPU負荷の軽減といった効果を見込める。

ソフトウェアのRAIDコントローラ機能を使う場合、安価で済むものの、サーバのCPUを利用することになるため、ハードウェアに比べて負荷が重くなる。

 

 

2.キャッシュモード

一般的には、キャッシュメモリ→主記憶装置への書き込みの手法を指す。

今回の話でいくと、RAIDコントローラ→ストレージへの書き込みの手法となる。

 

どちらも本質は同じで、

「動きがめちゃめちゃ速い装置→動きが比較的ゆっくりな装置」への書き込みの手法である。

 

コンピュータの処理には、速さが求められる。

でも、主記憶やストレージへの書き込みには時間がかかる。

そこで、書き込みの手法をきちんと考えましょうというのが、今回のお話。

 

◎手法① ライトスルー

RAIDコントローラ→ストレージへの書き込みが完了するまで、

RAIDコントローラは次の処理を行わない。

ストレージ=遅いほうに合わせるので速度はイマイチだが、RAIDコントローラとストレージでデータの整合性を保つことができる。

 

◎手法②ライトバック

RAIDコントローラ→ストレージへの書き込みは、負荷の小さいときにまとめて行う。

ライトスルーと違って、都度の書き込みではないため、速度は格段に上がる(環境にもよるが、数倍~10倍程度変わることもある)。

ただし、停電やサーバ故障などでRAIDコントローラへの通電がストップすると、ストレージに書き込むはずだったデータが消失する危険がある。

 

◎どっちがええの??

上述の通り、RAIDコントローラのキャッシュモードには、ライトスルー方式とライトバック方式の2種類がある。

では、どちらを採用すると良いかという問題があるが、基本的にはライトバックをお勧めしたい。

 

ライトスルーでは速度面で非常に劣ることと、

ライトバックのデメリット(RAIDコントローラの通電ストップによるデータ喪失)はカバーすることが出来るためである。

カバー方法は以下で紹介する通り3つあるため、製品や状況によって適切な手段を選ぶと良い。

 

◎ライトバックのデメリット回避方法3選

カバー方法① バッテリーの利用(バッテリーバックアップユニット/BBU)

RAIDコントローラには、バッテリーを装着することができる。(製品によってできなかったらごめんなさい)

つまり、急な停電などで、RAIDコントローラへの通電がストップしたとしても、

バッテリーが通電を続けてくれるため、ストレージへのデータ書き込みが可能となるのである。

 

ただ、バッテリーは寿命があるため、定期的(製品にもよるが2年に1回程度)な交換作業が必要となることに注意したい。

 

 

カバー方法② フラッシュバックアップユニット(FBU)の利用

サーバ製品によっては、バッテリーの代わりに、「フラッシュバックアップユニット」と呼ばれる仕組みを利用することもできる。

(ざっと調べた感じでは、Intel、富士通、NECの製品で搭載されているものがある模様)

 

常時内部に電力を蓄えておき、停電などの際にRAIDコントローラへ通電する仕組みであり、効果自体はバッテリーと同じ。
バッテリーよりも優れている点として、性能劣化が少なく、定期交換はほぼ不要。
バッテリーとフラッシュバックアップユニットのどちらかを選べるのであれば、フラッシュバックアップユニットを利用したほうが良さげ。

 

 

カバー方法③ 無停電電源装置(UPS)の利用

サーバ・ストレージそのものに、無停電電源装置を装着させておく方法もある。

無停電電源装置は、急な通電ストップが起きた際も、しばらくの間電力供給を行ってくれる機器であり、

安全にシャットダウンをする時間を稼いだり、データ消失を防いだりといった効果がある。

 

 

今回は以上!