RAID1です。
1つHDDが壊れてもサービスを継続でき…ると思っていたのですが、実際はそうではなく、 止まります。
止まり方としては「telnetできなくなり、リセットまたは電源のOFF/ONをしなければいけない」状況になります。
→ ハードウェアRAIDだとどうなんでしょうか…
HDDの一時的障害でも、リセットまたは電源のOFF/ONは必要で、立ち上がると勝手に同期がはじまります。
HDDの一時的障害ではなく、本当に障害が発生している場合は、立ち上がってきません。
立ち上がってきても良さそうなのですが、今まで2回HDDが故障しているのですが、2回とも立ち上がってきませんでした。
立ち上がってこない場合、被疑のHDDを切り離して電源をONすると立ち上がってきます。
被疑のHDDをもう一度接続すると、立ち上がってきません。
※ErogameScapeのサーバーはHDD1台×2で運用していまして、GRUBがインストールされています。
もしかしたらGRUBをインストールしてないHDDだったら、被疑のHDDを切り離さなくても立ち上がってこれたり、HDDが故障してもサービスを継続できる…かもしれません。どうなんでしょうか。
被疑のHDDを交換したら、
- fdiskで領域を確保する
- mdadmコマンドで同期させる
- grubをインストールする
googleで検索すると、手順の中で「壊れたHDDに故障したというマークをつけて、切り離す」ということをしているものもありますが、多分、オンラインでHDDを交換できるサーバーの場合の手順な気がします。
実際の手順は
LinuxMania: ソフトウェアRAID1 障害時の復旧手順(Fedora,CentOS)
の通りです。
いろいろなソフトウェアRAIDの構築の手順のHPのfdiskの結果を見ると
sdb1が/boot、sdb2はSWAP、sdb3が他の領域という設定です。
SWAP領域はRAIDにする必要はないので、本当はIdが82のSystemが「Linux スワップ / Solaris」とした方がいいと思います。スワップ領域はミラーリングされている必要がないので、わさわざ負荷のかかるRAIDにする意味がないから…です。
と、どこかのHPに書いてあって、そうしています。
あと、もう一点。
fdiskをするときに、/bootからブート可能とするため、「a」でブート可能フラグをつけていますが、GRUBを使う場合、ブート可能フラグをつけていなくてもちゃんとブートできます。
実際、ErogameScapeのサーバーはブートフラグがついていなくても起動できていて「あれ?なんで起動できているのだっけ?」と調べたら以下のHPにいきつきました。
GRUBであればブートフラグがついていなくてもブートできます。
もし、ソフトウェアRAIDを使ってみたい、しかも多数の人に使われるサーバーで使いたいという場合は注意することがあります。
- mdadmコマンドで同期させる際に、滅茶苦茶時間がかかります。
- mdadmコマンドで同期させる際に、とても負荷がかかります。
サーバーとして運用しながらの値です。
サーバーとして運用しないでいればもっと早い気がしますが、それでもうん時間単位かかります。
2.については、ロードアベレージで1くらい食います。
ErogameScapeのサーバーは資源に余裕がありまくりですので、ロードアベレージで1食っても全然大丈夫ですが、シビアな使い方をしている場合は、サーバーとして運用しないで同期させるのがいいと思います。
これは実際やってみないと分からないことで、何年か前にソフトウェアRAIDを組もうと思ったときに、いろんなサイトを見たのですが「同期に時間がかかるから注意だ」「同期は負荷がかかるから注意だ」と書いてなかったので気がつきませんでした。
また、HDDは案外壊れますが、そんなにも壊れないとも言えますので、壊れた時のことを考えてちゃんと復旧のマニュアルを自分用に作っておくのがいいです。
確かにgoogleで検索するとそれなりにヒットするのですが、自分でやってみると「あれ?」と思うことがよくあります。
例えば、HPによっては「マスターのHDDが故障した場合は、スレーブのHDDをマスターのHDDが刺さっていたところに差し替える」と書いてありまして、これは…多分GRUBをスレーブのHDDにコピーしていない場合のことだと思うのですが、そういった「自分の環境と微妙に違う」ということがありますので、ぜひ、ちゃんと故障したときのことを考えてマニュアルを作っておいた方がいいです。
※ちなみに私は紙でもっていてクリアファイルに挟んで保管しています。