• 締切済み

自宅サーバーの冗長化

お世話になります。 現在Linuxで自宅サーバー(web)を運用しているのですが、 最近冗長化とスクリプトに目覚め(笑)自分でサーバーを冗長化する スクリプトを作りました。 今のところ、ネットワーク障害、サービス障害には耐えられるように なっています。 しかし、ハード障害に関してはどのようにして障害を検知すればいいのかが わからず困っています。 とりあえずHDDの間欠障害を検知したいと思っています (完全に壊れたらRAIDでも組んでいない限りサービス障害検知にひっかかるので) いろいろと調べていくうちに SMARTD というデーモンを利用すれば障害を検知 できそうかなぁというところまでわかったんですが、これはHDDの温度や、いつ に何回エラーが出たなどのログを見れるだけで白黒ハッキリしてないlogしかなさそう なんです。(実際みてみましたが意味がよくわかりません・・・・) ハッキリこういったメッセージが出ればアウトっていうのがわかりません。 どなたかSMARTについて詳しい方いらっしゃいませんか? ちなみにサーバー冗長化スクリプトの動き(仕様)は以下になります。 ・メインと予備で2ノード(2台)構成 ・※1メインサーバではサービス監視スクリプトを常時実行。 サービスが停止した場合、それを検知しIPアドレスを自動で変更(予備との疎通を切るため)。 ・予備はネットワーク監視スクリプト(メインとの疎通)を常時実行 疎通がとれなくなった場合、メインが停止したと判断し、メインが使用していたIPへ切り替え、サービスを起動。 前提条件として ・サービスの設定は両ノードとも同じ設定にしておく(apacheの設定) ・webのデータはメインから予備に定期的にコピーする となっています。 SPOFに対応してないとかデータの整合性がどうのとかのつっこみ所満載のへっぽこ仕様ですが勘弁してください(笑 ちなみに、メインにハード障害が起こった場合(検知できたら)、 ネットワーク疎通を意図的に切断することで(※1の部分です)フェイルオーバーさせる仕様を考えてます。

みんなの回答

  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.1

SMARTのエラー情報を分析しても殆ど役にたたないとGoogleさんが実体験に基づいてレポートを出しています。 勿論特定のエラーについては明らかに有意差が出ているということなので、その特定の値だけ見ておけば良いということにはなりますが、実際にはそのエラーが出なくても突然死することはよくありますので、気休め程度です。 http://gigazine.net/index.php?/news/comments/20070219_disk_failures/ 気休めに力を注ぐぐらいならもっと実用的な方面(RAIDの構築)に力をいれられたらと思いますが。

sentakuc
質問者

お礼

なるほど~ SMARTも完璧ではないということですね(^^; 障害検知をしようとした背景としてサービス、ネットワーク障害を検知できるのにハードだけできないのはなぁ・・・というそれだけの発想なんでw RAIDは今のところ考えていません。一応HAな構成を目指しているので。(ホットスワップできればいいですがそれはそれなりにお金がかかるので・・・) 参考情報ありがとうございました。