2016年春にJALとANAで立て続けにシステムトラブルが発生しました。迷惑を被った利用者が文句を言いたくなるのは仕方ないのですが、どうしても防げないことだってありますよね・・・
今回のお話しと関係するのはANAの方です。ANAで起きたのは、「データベースが停止してしまい搭乗手続きが行いない」という事象です。故障していた装置はCISCO社製のL3SW「Catalyst4948E」だったそうです。このL3SWは、冗長構成を組んでおり、一台が故障しても自動的に別の装置が処理を引き継ぐことで、業務には影響を与えないはずでした。
CISCO社はネットワーク機器の最大手で、大きなシステムの重要な箇所はCISCO社の製が使われることが多いです。特にL3SWは故障が少なく、機能も豊富なCISCO社製のCatalystシリーズが圧倒的にシェアを占めています。Catalystを使わないケースは、「高いので他のメーカーで我慢する」といった場合ですね。
それだけ優秀でよく使われている機種であっても運が悪ければ故障します。故障した場合に大丈夫なように冗長構成を組むのですが、ネットワーク機器では冗長構成が想定通りに機能しないことがままあります。それは、機器が中途半端に壊れてしまったときです。
大体の冗長構成の仕組みは、待機系(普段は動作していない予備の機器)が現用系(普段から動作している機器)に定期的に生存確認のパケットを送って、現用系から返事があれば何もしないし返事がなければ、自分が現用系に成り代わって動作するという流れになっています。ところが、現用系が中途半端に壊れて、本来の役割(ルーティングやフォワーディング)をできなくなっているのに、生存確認パケットには返事をしてしまうということがあります。こうなると、待機系は現用系に成り代わろうとしないので、正常な通信が行われなくなり、システムが停止します。銀行でもこういった中途半端な故障で業務が止まってしまったところを目撃したことがあります。こういった重要なネットワークでは、監視サーバというものが設置してあって、運用担当者がどこの機器が壊れたかすぐに確認できるようになっているものなのですが、中途半端に壊れている機器は、監視サーバからの生存確認パケットにも返事をしてしまうので、故障している機器がなかなか分かりません。こういった事情で復旧にも時間が掛かってしまいます。
ネットワークのどこかで不具合が起こっているけど、どこで何が起こっているか分からない場合、最短時間で復旧させるには、現用系機器の電源を片っ端からOFFにするという手段があります。どこが悪いか分からないのに電源をOFFするのは勇気がいるのですが、どうせシステムが止まってしまっているのであれば、それ以上悪い状況になることはないので、思い切ってOFFしてしまう方が良いケースが多いですね。運用部門の責任者の知識と経験が試されることになります。