低価格と導入のしやすさを武器にPCサーバーは,出荷台数を伸ばしてきた。サーバー・メーカーは小~大規模まであらゆるクラスの製品で,信頼性を高める努力をしている。しかし,その信頼性が意外なところから崩れている例が次々と報告されている。

 日経Windowsプロ2002年12月号の特集「PCサーバー信頼性の死角」のきっかけは,「ユーザーから,ディスクをRAID[用語解説] 構成にしたのに故障したというクレームをよく受けるようになった」というPCサーバー・メーカーの担当者によるコメントだった。

 その他にも,システムを障害に強くする技術が,効果を発揮しない例が目立っているという。無停電電源装置(UPS[用語解説] )をつけていたのにいざというときに使えなかった,クラスタ[用語解説] が誤動作した,バックアップからのリカバリができなかったなど。

 このようにサーバーを故障から救うための耐障害技術が,きちんと機能しない例が増えていることが取材から明らかになった。

重要なのは,耐障害性機能は問題の“先送り”にすぎないこと

 理由の1つは,サーバーの管理者が耐障害性技術を正しく理解していないことにある。これは,経験豊富な専任の管理者が控える基幹系システムでは,あまり問題にならないかもしれない。しかし,システムの重要性は高まっているが,管理に人やお金をかけられない,という部門レベルのサーバーや中小企業のサーバーでは十分にあり得ることである。

 RAIDなどの耐障害技術そのものは,低コストで導入できるようになってきた。しかし,これらを導入しただけでは障害の発生を完全に防ぐことはできない。多くの耐障害技術は同じ部品を複数個用意し,1つが故障したときに別の部品を使い,その機能が損なわれるのを防ぐ。一時的に問題を回避して,システムへの悪影響を“先送り”にするだけである。放置しておけば,いずれ代替部品も故障して,システムが停止する。

 RAIDは,複数のディスクを組み合わせて性能や耐障害性を高める技術で,いくつかの実装レベルがある。最もよく使われている「RAID 5」は3台以上のドライブを組み合わせて構成する。ドライブの1台が故障したときは残りのディスクのデータとパリティから,オリジナルのデータを復旧する。しかし,2つ目のドライブの故障には対応できない。電源ユニットや冷却ファンの2重化も同様である。

 UPSは,商用電源が止まったときに,電源を内蔵の蓄電池に切り替えて一定時間の電力を供給する。停電が短時間で回復すれば,再び商用電源に戻す。停電が一定時間以上続いたときは,OSのシャットダウン処理を行い,システムやデータが壊れるのを保護する。しかし,蓄電池は化学反応で動作するため寿命がある。このため,シャットダウン処理が完了する前に電源を供給できなくなるケースがあり得る。

 耐障害技術自体も,場合により障害を招くこともある。例えばクラスタリングは,システム全体を2重化する信頼性を高める技術としては,最も高機能な部類に入るものだが,それでも,まれに誤作動することがあるという。「スプリット・ブレイン・シンドローム」と呼ばれる現象だ。これは,正常に動作していることを示す「ハートビート」という信号の出力間隔が,システムの負荷が高くなることで長くなり,待機系が,本番系が正常に動いているにもかからわずダウンしたと判断してしまうトラブルである。

 マシンがいざ障害に見舞われたときは,バックアップの出番だ。サーバーの信頼性不足を補うこの最終手段にも,意外な問題が待ち構えている。システム・インテグレータの指示通り毎週きちんとバックアップ・テープを交換していても,バックアップ作業の正常完了を確認している人は少ないという。その結果,いざリカバリをしようと思っときに,バックアップがきちんとできていないことが発覚する。用心のための対策が使えないと分かるのが,障害発生時というのでは意味がない。

ハードだけでは信頼性を確保できない

 こうした耐障害技術の実力と限界を理解すれば,前述したトラブルを防ぐために本当に重要な対策が見えてくる。それは,障害でサーバーが停止する前に出す“SOS”信号を,管理者である人間が確実にキャッチすることだ。

 冗長構成のシステムがいきなりシステム停止に至ることはそれこそまれである。停止の前に信頼性の一段低い,シンプルな構成になっている。この状態になったとき,OSやBIOSなどがメッセージを出力している。これを早めに知ることが大切だ。

 システム監視ツールはSOSをキャッチする重要なツールの1つである。大手メーカー製のサーバーには,無料の監視ツールが付属しており,マシンからのSOSを聞く「耳」として利用できる。しかし残念ながら,多くのシステムではこれが使われていないようだ。

 調査時期やメーカーによって多少違いはあるが,メーカーはサーバー付属の監視ツールをインストールしているユーザーは半数程度と見ている。この中には,インテグレータがインストールしただけの数も含まれるので,活用されている数はもっと低い。マシンが出すSOSを早めに察知するために,こうしたツールを有効活用したい。もちろん,サード・パーティ製監視ツールの利用も有効な手段だ。

 要は,管理者である人間が確実にキャッチする仕組みを障害時のシステム回復作業と連携させることだ。監視ツールなどが出す警告メッセージを確実に受け取り,すばやく回復作業に移れる体制を作る必要がある。

 サーバーの信頼性を支えるのは,(1)耐障害機能を備えたPCサーバー,(2)監視ソフト,(3)システム管理者,それぞれを輪のようにつなぐ「管理サイクル」である。中でも部門サーバーや中小規模の業務システムで強化すべきなのは,サーバーからの“SOS”信号を管理者に通知する仕組み作りだ。

 部門サーバーや中小規模システムではトレーニングを受けた管理者が足りない,管理者がシステム管理のために割く時間や予算が少ないなどの事情はある。だが,それでも実現すべき最低限のレベルがある。せっかくの投資を無駄にしないためにも,サーバーの監視をおろそかにしてはいけない。

(茂木 龍太=日経Windowsプロ)