2009/05/12

知人が冗長化をわかっていなかった

Twitterでも呟いたのだけど、整理してこちらにも。

知人が「RAIDコントローラが壊れたらどうせシステムダウンするんだから、RAID構成になんてしない」とか言い始めて本当にアホかと思った。RAIDも含め、冗長化とは「障害が発生した場合にも、システムの機能を維持できるように、予備のシステムもしくは予備の機構を配置すること」でしょ?「大きな障害が発生したら防げないから小さな障害の防止は行わない」というのは、「隣の家が火事になるのは防げないから火災報知器は設置しない」とか「震度10には耐えられないから震度5対応の耐震装置は設置しない」とか「怪我すると困るから運動はしない」とか「交通事故が怖いから家から出ない」とか「人間いつか死ぬんだから歯みがきなんてしない」とか「どうせ世界一になんてなれないから努力なんてしない」とか「別れると傷つくからもう恋なんてしない」と同じことじゃないか。それはそれ、これはこれ、だ。

もちろん費用対効果のバランスを取る必要はある。けれど、そのシステムは24H365Dサービスを行うサービスで、ユーザも100を越えるなのだから、サービスレベルを維持するために必要な対策を取る必要がある。「HDDが壊れたからサービス停止します」が許されるシステムじゃないだろうに。今時HDDなんて大した値段しないんだし、1+0あたりでRAID組んでおくのが良いのではないかと思うのだが。もちろんHDD以外の冗長化対策だって、必要に応じ取る必要がある。冗長化ってそういうことでしょう?

大切なのは、ちゃんとリスク分析すること、サービスレベルを設定すること、サービスレベルを維持するために必要な対策をとること。「どうせ壊れたら動かないんだから対策はしない」は技術者として、またユーザに対しサービスを提供する者として、最悪な対応だと思う。