3月22日に発生したANAの国内線システム障害。
これほど大規模なシステム障害は珍しい!
国内線システムの4台のデータベースサーバが停止。
その後1基だけを稼働させれば運用できるが全てのシステムを稼働させると停止することから取り急ぎ搭乗手続きの機能だけを稼働させることでなんとか対応したそうです。
ANAなど航空会社のシステムなんてそうそう壊れるものでもなければシステム障害が起こるものでもなく強固な物であるはず。
何故こんなシステム障害が起きたのかかなり色々とネット上の技術者界隈では予測されていました。
4台ものサーバが停止するレベルの問題となれば・・・
こんなことが起きるのは流石にハードの問題では無いのではないか?
そうなるとやはり人為的なミスでは?
いやいや基盤システムに異常が有ったのでは?
などなど・・・
筆者的にもにわかレベルで考えていたのですが、
大体機械自体に障害・不具合が発生した場合、大体機械の警告ランプが点滅します。
基本的にサーバ系システム系の機械って「冗長化」という考え方が有ります。
それは例えば機器の一部が故障すると普通は完全に停止してしまうわけですが、
サーバは基本的に「止めてはいけない」という概念が有るので、機器を予め2つ3つ余分に稼働させ、1つが壊れれば自動的に別の予備に切り替わることで完全に停止してしまう事を防ぐ。(※システム障害になる前に防ぐ)事が常識です。
壊れた方は警告ランプなどを点滅させ、エンジニアはその警告を見て機械を修理・交換するというものです。
つまりは機械面(ハード面)での不具合があれば当然警告が有るためそれをANA程の企業の技術者が放置するなんて到底考えられませんし、そもそも破損した場合自動切り替えなどの処理は行われるでしょうし、
となるとシステム障害の原因は何らかの作業中のミス?ではないか?と勝手に筆者的にも予想していたわけです。
止まらないネット上の不具合予測。
そして遂にその原因が3月30日に公式発表されました。
システム障害の原因は驚きですが、人為的ではなくハード面でのシスコのスイッチのバグでした。
スイッチとはサーバなどネットワーク機器などを複数接続させるための中継機器みたいなものです。
該当の機器はシスコスイッチ Catalyst 4948Eというモデルとのこと。
そしてシステム障害の原因となった問題点が故障状態にもありながら故障の警告シグナルを発信しなかった状態であったそうです。
通常は故障すれば警告シグナルが発信され先ほどの冗長化によって予備機に切り替わるのですが、今回は警告シグナルを発信する部分に不具合があったことで、故障しているにもかかわらず警告シグナルを発信しなかったため予備機に切り替わらなかったとのこと。
そしてサーバが4台あるのですが、常に4基とも同じ状態にするために同期させるようになっていたそうです。※これもいわゆる冗長化とバックアップという考えによるものです。
がしかし、今回のシスコのCatalyst 4948Eの警告シグナルを発信する部分の不具合により、故障状態にありながら不安定状態で稼働していたので、同期が正常に行われない状況に。
サーバ4基は同期が以上終了した場合に、データの不整合を防ぐために自動停止する機能を備えていたことで4基全てが連動して停止してしまったとのこと。
これが今回のANAのシステム障害の全貌です。
①中継機能の故障
データベースサーバー間の同期処理が正常に完了せず、データの整合性が保たれなくなる為、データベースサーバーを自動的に停止する機能が働きました。 ②「故障シグナル」の発信機能の故障
本来であれば、ネットワーク中継機が故障すると「故障シグナル」を発信し、予備機に自動的に切り替わる設計になっておりますが、今回は故障しているにも関わらず「故障シグナル」を発信せず、予備機に自動的に切り替わりませんでした。(参照:ANAリリース)
冗長化は警告シグナル有りきの考え方の為、そもそものその警告シグナルが無いと冗長化も難しいというわけです。
ちなみにこんなバグは当然滅多に起きるものではなく世界でもこのような症状の不具合は初めてとのこと。
このシスコのスイッチCatalyst 4948Eですが、価格を調べてみました・・・w
大体1台100万円くらいしますw
http://reararea.com/products/detail2931.html
まあでもこういう機器は大体高額ですから金額は業界的には驚く金額ではありません。
ただ、これを既に使用している企業は他にも多く有るはず。
2010年発売されたCatalyst 4948Eは世界で4万3千台
日本では8700台を販売したそうですが今回のバグは初とのこと。
こうなると技術者の方は気の毒です^^;
実際、今回のシステム障害で、ANAのシステム関係者は2日位寝れてないと思われますw
ネット上のIT系の技術者界隈の方々も「気の毒に。現場は修羅場だな・・・」という声が多くありましたw
まあ実際そうでしたでしょうしw
また、この機器に関する今回の不具合は世界中に知れ渡るでしょうし、実際に使用している企業は何らかの対策をこうじなければならないでしょう。
ちなみに今回の件に関しての今後の改善策も発表されました。
①同一事象の検知
同一事象が再発し、ネットワーク中継機が「故障シグナル」を出さない場合でも、データベースサーバーからネットワーク中継機の故障を検知できる改善を実施しました。(2016年3月24日に実施しました) ②メーカーによる改善策
不具合のあった機器は、製造メーカーにおいて解析を実施し、故障個所が判明しております。 現在、製造メーカーにて改善策を検討中です。 ③信頼性向上プロジェクトチームの設置
今回の発生原因に留まらず国内旅客システムを総点検するとともに、お客様対応の改善点を洗い出し、信頼性を向上させるべく外部の知見も活用したプロジェクトチームを設置します。(2016年4月に設予定しております)(情報参照:ANAニュースリリース)
今回のシステム障害での機器面・システム面での再発防止は勿論ですが更に③の信頼性向上プロジェクトチームの設置によりシステムの総点検をするとのことです。
筆者的にはこのANAの対応はいわゆる神対応と感じています。
まあ当然といえば当然の対応と言われるのかもしれませんが、実際今回のシステム障害はANAの技術者の方の責任というよりは購入したシスコのスイッチの不具合ですし・・・人為的なミスというわけでも無く・・・機器事態の不具合を想定してのシステム構成・運用までは中考えられないですし・・・不運と言って良いような事例ではないかと・・・筆者的には思ってしまいます。
だって、100万円で購入したスイッチに対して「このスイッチは警告シグナルを発しないバグが発生するかもしれないからそれを見越して構成しよう・・・」とまでは中々考えられないですよね。。。そこまで考えなければならないのがサーバ管理者なのかもしれませんが・・・そこまで考えなければならないのがサーバ管理者・プロジェクトマネージャーなのかもしれませんが・・・
ただ、今後の対応策等もしっかりと明記されているので、きっとANAはより強固なシステムに今回のシステム障害の1件で生まれ変わるはず!
ということで、皆さん、これだけの対策もしているわけですのでANAを安心して利用されて良いのではないでしょうか?
ANA公式 http://www.ana.co.jp/