2006年03月31日

止まらない仕組みを目指して(1)

はてなブックマークに登録

形あるものはいつかは壊れますが、ハードディスクの故障率の高さにはよく悩まされます。
駆動し続ける部品なので、壊れること自体は仕方がないとあきらめていますが、これが壊れ方によってはとんでもなくやっかいなトラブルに繋がることがあります。

DSASのコンセプトは、「夜中にサーバが止まっても、人が朝まで寝ていられるシステム」なので、サーバ1台落ちたところで叩き起こされることはありません。ただし、それは「サービスが正常に稼働していること」が絶対条件です。

ディスク障害の場合、エラーが発生した瞬間にサーバが停止することはほとんどありません。
I/Oエラーでデータが読めないだけであればアプリケーション側でどうにでも対処はできそうですが、万一ライブラリ関連(/lib/*とか)が壊れてしまうと制御不能な状態に陥ってしまいます。
困った事に、そんな状況下でもメモリ上ですでに動いているプロセスは稼働し続けるため、負荷分散器からのヘルスチェックに対して正常なレスポンスを返してしまい、「壊れているのに負荷分散対象から外れないノード」ができあがってしまうことになります。

そうなると、おちおち寝てもいられません。電話で叩き起こされてデータセンターへ連絡し、該当サーバの電源を落としてもらうようにお願いするのが世の常です。今では、ほとんどのマシンで IPMIを利用しているので、電源 On/Offをリモートで制御できるようになり、迅速で手軽な対応が可能になりましたが、やはりディスク障害が原因で起こされるのは気分のよいものではありません。まあ故障する事は避けられないとしても、壊れても急な対応を必要としない仕組みにはできないものでしょうか。

このようなケースでは通常、Raidの導入を検討すると思いますが、全サーバへ導入するにはコストと手間がかかるという話もあり、それよりもなによりも、「止まってもいいサーバのディスクをRaidにする」というのが、どうしても納得できる手段ではなかったのです。一瞬、全バイナリをstaticlink に・・と頭をよぎりったりもしましたが、何故かめまいがしたので別な手段を考えてみました。
klab_gijutsu2 at 16:13│Comments(2)TrackBack(0)

トラックバックURL

この記事へのコメント

1. Posted by yamamoto   2006年09月27日 14:09
さっきこちらのBlogを知って興味深く読ませてもらっています。
「止まってもいいサーバのディスクをRaidにる」
のところはRaidにする、でしょうか。
2. Posted by yasui   2006年09月27日 15:21
yamamotoさん、ご指摘ありがとうございます。
早速本文を訂正しました。
こんな昔の記事を読んで頂いてる上に脱字にも気づいて頂けるなんて感激です。
今後ともよろしくお願いします。

この記事にコメントする

名前:
URL:
  情報を記憶: 評価: 顔   
 
 
 
Blog内検索
Archives
このブログについて
DSASとは、KLab が構築し運用しているコンテンツサービス用のLinuxベースのインフラです。現在5ヶ所のデータセンタにて構築し、運用していますが、我々はDSASをより使いやすく、より安全に、そしてより省力で運用できることを目指して、日々改良に勤しんでいます。
このブログでは、そんな DSAS で使っている技術の紹介や、実験してみた結果の報告、トラブルに巻き込まれた時の経験談など、広く深く、色々な話題を織りまぜて紹介していきたいと思います。
最新コメント