社内インフラの障害対応
先日、会社のメールが突然受信できなくなった。
遠隔からメールサーバーにPING を飛ばしてみたが、疎通せず、遠隔ログインも行えない。
現地に行って、機器を確認してみると、どのLED も光っておらず完全に停止していた。
一旦サーバーを回収し、調査したところ、電源の故障だった。
このサーバーは導入してから、既に5年を経過しておりそろそろ何かしらの不具合が発生してもおかしくはないと思っていたが、突然起こると少々テンぱってしまうものである。
たまたま電源の保守部材を所持していたので、電源を交換して障害自体は復旧した。
上司には早速このサーバーのリプレイスをした方が良いことを伝え、承諾はしてもらいました。
私の会社ではサービスのサポートをメールで受けているが、最悪少しぐらいなら受信ができなくても直接業務に支障をきたすわけではない(もちろん半日以上使えないとなると問題だが)
これが、メールが会社の業績に大きく関係してくる会社になると、数分間メールが受信できなくなるだけで、億単位で売り上げに影響するところもあるという。
そういった会社になると、サーバーへの冗長化構成に対するコストは惜しまないであろう。
他にもサーバーの用途は色々あるが、その会社に対する可用性を十分に分析し、冗長構成が必要な用途と必要でない用途を明確に分けて必要なところにはコストは惜しまず、そうでないところは“ほどほど”にといった運用をしているのが通例ではないだろうかと思っていたが、そうでもないようである。
某大手上場企業に勤める私の友人が言っていたのを思い出す。
友人の企業は名前を出せば誰もが分かる、大企業だが、サービスインフラに関しては確かに最悪の事態を考えてコストをかけているそうだが、社内インフラに関しては経理が結構渋いようで、冗長構成を図っているものもあまりないようだ。
大企業でさえこの程度なのかと思ったことがある。
とりあえず、今回は大惨事にならなくてほんとに良かった!
さまざまな冗長構成
サーバーの冗長構成といっても、単に2台のサーバーを準備しそれぞれをマスター機・スレーブ機という構成だけが冗長構成ではない。
昨今ではクラウドコンピューティングというシステムが話題になっているが、あれの構成もある意味冗長構成になっているといえる。
クラウドコンピューティングのシステムは複数台の機器をEucalyptus などのクラウド基盤ソフトウェアで束ねたりすることで、万が一1台のサーバーが故障したとしても、サービスには影響しないように高可用性を保っている。
※クラウド基盤ソフトにバグなどがあれば、最悪全停止などもありえるが・・・
また、VMware やXenServer、Hyper-V などを使って、仮想化環境を構築している人も多いと思うが、これらも複数台の機器を束ねたりし統合管理しているので、クラウドコンピューティング同様に高可用性を保っていることを考えれば、冗長構成といえるだろう。
自分自身、社内インフラの運用管理を行っていて、数多くのサーバーを管理しているが、結局のところ100% 安心という構成は存在しないと思っている。
より100% に近づけるためにさまざまな構成を組んだりするわけだが、そのひとつが冗長構成といえるだろう。
ただ、冗長構成を制御しているソフトウェアの潜在的なバグなどの影響で、ある一定条件だと、マイグレーションが走らないとか、もしも複数台の機器で同時に障害が発生したら・・・など、考えたらきりがないのだが、不安はつきないし、より万全にするとそれだけコストも上積みされてくる。
目まぐるしく変化する時代の中で、さまざまな技術やサービスなどが生まれてきて、可用性を高める手段の選択肢も増えてはきたが、要はサーバーが壊れなければ良いだけなのにと考えてしまうことがあるが、こればっかりはしょうがないか・・・
冗長化は必要なのか?
サーバーの管理をしている方に会うと、サーバーの冗長化、すなわち耐障害性に対してどのように取り組んでいるのか?ついつい聞いてしまう。
サーバーといっても、使用用途により重要度が変わってくるので、障害に対する対策もそれぞれ違ってくる。
中には長時間停止しても良いという条件下で使用している場合は、特に冗長化などをする必要がないものも存在するかもしれない(そもそもサーバーと呼んで良いのか?・・・)
私の会社の社内インフラは、基幹系のシステムは基本ハードウェアの冗長化をとっているが、あまり業務に支障を来さないシステムはハードウェアの冗長化はとっていない。
この、業務に支障を来すか来さないかを判断するのも、また難しいものである。
どうせなら、全て冗長化すれば良いのでは?と考えてしまうが、冗長化するにもそれなりのコストがかかってしまう。
結局は費用対効果がどれだけあるのかを検証し、ケースバイケースで冗長化したりしなかったりとしているのが現状だ。
ただ、冗長化をしていないサーバーでもサーバー丸ごと一式を冗長化ではなく、HDD や電源など比較的故障しやすいといわれる部材を冗長化することで、少しは耐障害性も向上すると考えている。HDD の冗長化?とはRAID構成という意味だけどね。
もちろん電源もHDDもホットスワップ対応のサーバーを選定している。
RAIDカードを搭載すると部材点数が多くなるので、理論上、故障率も上がってしまうが、
非RAID構成の場合だと、HDD 故障で即システム(OS)の入れ替えが発生しかねないが、RAID構成の場合だと片側のHDD が故障したぐらいで、システムが故障することまでは
あまり考えられない。ただしHDDが2本同時に故障してしまうとアウトだけどね。
書き疲れたので、続きは次回にします。