もしRAIDボードが壊れたら
ハードディスクは壊れやすいのでRAIDで冗長性を確保することが多いですが、RAIDボードは壊れにくいのでRAIDボードが壊れたらどうしようというところまで考えている人は意外と少ないです。
もし今RAID5でサーバを組んでいたとして突然RAIDボードが壊れたとしたらどうなるか。「RAIDボードが壊れたら単に新しいRAIDボードに交換すればよいのでは? 」と単純に考える人もいると思います。しかしもしそうだとしたらRAID設定した情報はどうやって復元しましょうか。「え?単に同じ設定を新しいRAIDボードに同じように施せばよいのでは?」と思うかもしれませんが、この方法で本当に大丈夫なのでしょうか?
と、今回はそんなことを考えていきたいと思います。
【RAID構成情報ってどこに書かれている?】
RAID構成情報ってどこに書かれているか。高価なRAIDボードであればRAIDボードとHDD双方に、安価なRAIDボードであればRAIDボード上だけに書かれていることが多いようです。
これを確かめるには次の手順で行えます。例えばHDD3本でRAID5を構成し、マシンの電源を落とします。マシンが停止しているときHDD1~3の順番を入れ替えてからマシンの電源を入れます。このときHDDが入れ替わったことをRAIDボードが検知してくれるようであればHDDにRAID構成情報が書き込まれています。逆にRAIDが壊れてしまったらRAIDボード上にしかRAID構成情報が書き込まれていないことになります。
【新しいRAIDボードにそれまでのRAID構成情報を移せるか】
もし高価なRAIDボードが壊れたのであれば、新しいRAIDボードに入れ替えるだけで勝手にHDDからRAID構成情報が新しいRAIDボードに引き継がれます。
それに対して安価なRAIDボードが壊れたのであればもうちょっと深く考える必要があります。
もし安価なRAIDを使っていて、[HDD1][HDD2][HDD3] & [HDD4(HotSpare)]というRAID5構成を組んだとします。これがしばらく使っているうちにHDD2が壊れてしまい、HDD2を新しいHDDに入れ替えたとすると構成は[HDD1][HDD3][HDD4] & [HDD2(HotSpare)に変わります。さて、もしこの時点でRAIDボードが壊れてしまった場合どうなるでしょう。ひょっとしたら新しいRAIDボードに入れ替えて新たに[HDD1][HDD3][HDD4] & [HDD2(HotSpare)という設定を施せば復活するかもしれないし復活しないかもしれません(使用するRAIDボードによるでしょう)。確実に言えるのは、このとき最初の設定[HDD1][HDD2][HDD3] & [HDD4(HotSpare)]にしてしまったら間違いなくRAID5は飛んでしまうでしょう。
つまり、安価なRAIDボード使っているとしたら、新しいRAIDボードに入れ替えてもRAID構成を復旧できるかどうかはボードによるし、もし対応可能なボードであっても壊れる直前のRAID構成情報を正しく把握していなければ復旧が行なえないことになります。
ただし安価なRAIDボードを使っていてもRAID構成がミラーリング(RAID1)なのであれば、RAID1には特にパリティ情報を保持しているわけではなく単にHDD1とHDD2に同じ情報を書き込んでいるだけなので、もしRAIDボードが死んでも、HDDだけ取り出してサーバに直接つなげば普通に読み書きできる場合が多いです。
というわけで、RAID5やRAID6といったパリティを用いるタイプのRAIDを組むのであれば高価なRAIDボード(数万円くらいするもの)でないと怖いですが、RAID1であれば安価なRAIDボードでもそれなりに使えるのではないでしょうか。
【高価なRAIDボードにバッテリーが搭載されている理由】
ここからは余談となりますが、高価なRAIDボードにはバッテリーが搭載されていることがあります。これはRAID構成情報を保持するためのものではなく、キャッシュデータを保持するメモリに何らかの理由で電源供給ができなくなった場合電源供給できるようにすること及び、もしRAIDボードの交換となった場合、キャッシュデータごと新しいRAIDボードに引き継げるようにバッテリーが搭載されている模様です。(DELLのRAIDボードとか)
【オンボードRAIDが壊れた場合】
マザーボードにRAIDチップが搭載されているような場合は、RAIDチップが壊れてしまうとマザーボードごと入れ替えなければならないので面倒です。
以上、RAIDについて述べてきました。RAIDって奥深いですね。
The comments to this entry are closed.
Comments
HPのSmartArrayは、ライトキャッシュの情報を不測の電源断から守る為にバッテリーを使ってますね。
再起動時にライトバックしてデータの一貫性を保っています。
DELLのRAIDボードの話は興味深いですね。
Posted by: ななし | June 23, 2009 04:48 AM
>キャッシュデータごと新しいRAIDボードに引き継げるように
長いことDELLのサーバー扱っててRAIDカードの故障も幾度か経験してるけど、そんな機能無かったですよ?
普通に不足の電源断に対してメモリ上のデータを保持する目的だけです。
それとも最新のではそういう機能がついているのでしょうか?
Posted by: b-wind | June 23, 2009 02:01 PM
b-windさんへ。
DELL社のサポートサイトからの引用ですが、
「TBBU は、キャッシュデータが存在する状況で電源ユニットに予期しない中断が発生した場合に、最大 72 時間までメモリモジュールに無停電電源を供給します。 電源障害のためにコントローラが故障した場合は、TBBU を新しいコントローラに移動してデータを復旧することができます。 」
という部分をはしょって書いてました。わかりにくくてすみません。
Posted by: sanonosa | June 23, 2009 02:11 PM
なかなか興味深い記事ですね、参考になります。
>もしRAIDボードが死んでも、HDDだけ取り出してサーバに直接つなげば普通に読み書きできる場合が多いです。
高価かどうかは別として、
HDDとRAIDボード両方に構成情報を記録している
3wareのRAIDボードをミラーリングで使用してて、
HDDだけ取り外して後で中身を見ようとしたら
不明なパーティション1個だけしかなくて困ったことがありましたな。
Posted by: ・x・! | June 23, 2009 07:47 PM
Dellだと、バッテリーはPERC系カードについてますね。
ただ、購入して半年ぐらい通電しなかったら(電源プラグをサーバ本体に挿していなかったら)、バッテリーが完全に放電し、交換しないといけなくなりますが。
使用前なのに、何度サポートに電話したことか…
Posted by: はん | June 23, 2009 09:14 PM
このあたりのボードに不具合があった場合は
その非をメーカーは簡単にはみとめようとしないですね。
Posted by: | July 13, 2009 05:17 PM
7/31は「システム管理者感謝の日」のようですね:)
http://itpro.nikkeibp.co.jp/article/OPINION/20090729/334717/
Posted by: taro | July 30, 2009 10:23 AM
>高価なRAIDボードであればRAIDボードとHDD双方に、安価なRAIDボードであればRAIDボード上だけに書かれていることが多いようです。
安価と高価の境界は何万円くらいでしょうか。メーカーによっても違うと思いますが・・・。
自分のRAIDカードはLSIです。LSIだと何万円くらいが境界なんでしょうか。
Posted by: how | October 06, 2011 10:20 AM
> 安価と高価の境界は何万円くらいでしょうか。メーカーによっても違うと思いますが・・・。
残念ながら調べたことがないのでわかりません。このあたりは都度確認しないといけなそうですね。
Posted by: sanonosa | October 06, 2011 12:08 PM
>高価なRAIDボードであればRAIDボードとHDD双方に、安価なRAIDボードであればRAIDボード上だけに書かれていることが多いようです。
HDDに書かれる場合は、ユーザー領域に書かれるんでしょうか、それとも非ユーザー領域に書かれるんでしょうか。
Posted by: how | October 10, 2011 05:18 PM
普通に考えれば非ユーザ領域に書かれる実装をしているものが多いと思いますが、この手のご質問は直接メーカーに問い合わせていただいたほうが良い気がします。
Posted by: sanonosa | October 11, 2011 10:50 AM
やはり非ユーザー領域ですか。
このあたりはメーカーもなかなか教えてくれないんですよね。
ありがとうございました。
Posted by: how | October 11, 2011 12:33 PM