衣替えとなった10月1日、また新しい月が始まったと思っていた矢先、
「東京証券取引所がシステム障害のため終日取引を停止した。」
とのニュースが飛び込んで来ました。
まだ午前だったと思うのですが、その時点で「終日取引を停止する」事は「これはただ事ではない」と感じました。
報道によると東証が全銘柄の売買を終日停止したのは、取り引き全面システム化した1999年以降初めてとのことで、事の重大さを感じます。
システムに関わる人間として非常に興味深い内容ではありますが、単なるシステム障害の原因に留まらず、サービス全体を見て、今回の障害から学ぶことは無いか?との視点で探っていきたいと思います。
システム紹介の概要
システム障害の原因等については詳しい情報が先述のWebサイト等に掲載されており、報道等でも伝えられているため、概要について書きたいと思います。
システムが停止した原因は、複数のシステムが利用する情報を格納するNAS(Network Attached Storage)1号機のメモリーが故障し、冗長化された2号機に正常に切り替わることができず、関連するシステムの処理異常が発生したことによるものです。
故障が発生したNASは2台構成で冗長化されており、機器異常が発生したら2号機に自動的に切り替わり(「フェイルオーバー」といいます)、システムが停止しないように設定されていたはずです。
しかし、メモリ故障時の切り替わりの設定はされておらず、結果として2号機に切り替わりませんでした。
NASの2号機への切り替わりは手動で行うことにより復旧はできたようです。
ただし、その時点でシステムを稼働させると、それまでに受信した証券会社からの取引注文の処理について混乱が生じるとの事で、終日取引は停止したままとなりました。
NAS2号機に切り替わらなかった原因
先述のとおり、NASのメモリーが故障した場合に1号機から2号機に切り替わる「フェイルオーバー」する設定が「ON」ではなかったのですが、何故その様なことが発生したのでしょう。
NASのメーカーが作成したのマニュアルには、
ON → 故障時は即切替 (初期値はこちらで、即時フェイル
オーバーする)
OFF → 15秒後に切替え(フェイルオーバー)する
とあり、実際の設定は「OFF」となっていました。
つまり、ONでもOFFでも開始時間に違いはあるものの、フェイルオーバーはすることになっていました。
しかし、今回の故障時にはフェイルオーバーしなかったのです。
メーカーが改めて調査したところ、「OFFの時の実際の動作は切り替えない」、つまり実際の動作の通り、「フェイルオーバーしない」という設定だったのです。
マニュアルと実際の機器の動作が違っていました。
なんでそんなことになるの?と思われる方も多いでしょう。
その謎も東証の資料に記載がありました。
現在稼働しているシステムは3代目(2019年11月稼働)です。
初代システム(2010年1月稼働)の機器は、マニュアルと実際の機器との動きは合っており、マニュアル通り、メモリ故障時には「15秒後に切り替わる」との設定としていたようです。
しかし、2代目(2015年9月稼働)の機器から、「OFF」は「15秒後に切り替わる」、ではなく「切り替えない」と製品仕様が変更となっていました。
今回東証に納入したメーカーによると、
「製品仕様が変更された際に、マニュアルの記載が変更されなかった。変更されなかったことやその状況を製品出荷時等の試験で検出できなかったことは、当社の試験・確認が不十分であった。」
との見解を出しています。
2015年9月稼働の2代目のシステムに移行してから、この問題は内在していたことになります。
サービス復旧はできなかったのか?
今回のシステム障害は、NAS2号機への切り替えを午前9時26分に完了しており、システムを再起動することでシステムが稼働できる状態となっていたようです。
しかし東証はその日の取引自体の停止を決定しています。
その事については東証は、
「システムを再起動すると(証券会社などから送信済みの注文扱いなどを巡り)投資家などに混乱が生じることが想定され、終日売買停止することにした。」
と説明しています。
システムの障害が発生した場合に、どのように復旧するのか、それまでの処理をどのように対応するのかについて、証券会社を含めた関係機関とのルールが取り決めが十分でなかった様です。
絶対に止まらないシステムは作れるのか?
それは無理だと思います。
(→こんなことを言ったら怒られるかもしれませんが…)
東証に於いて、NASの1号機→2号機への切り替わりについて、電源を落とすなど機器異常を発生させて、正常に切り替わることは確認したとの報告があります。
私たちも、機器のLANケーブルを抜いたり、機器の電源を切ることで、疑似的に障害とさせて、機器の切り替わりの確認を行います。
しかし、メモリの異常については実施したことはないですし、実施することは困難でしょう。
その点はメーカーを信じるしかありませんが、メーカーの設定や説明を100%信じる事はではないでしょうし、サーバ機器やネットワーク機器にはファームウェア→つまりプログラムが搭載、稼働しており、バグが無いとは言い切れません。
私たちが扱う機器は、実際度々のバージョンアップで様々な不具合が修正されています。
大規模な証券取引所のシステムはとても重要なシステムでありますが、東証だけでなく世界の証券取引所のシステムで様々な理由により取引が停止しています。
(東証が組織した再発防止策検討協議会第1回の資料にあります)
結局のところ、完璧なシステムは無いとの前提の下で、
・システムが停止した場合はどのようにするのか
・システムを復旧させる場合にはどのような手順で対応するか
等々
関係者と予めのルール、役割分担等について決めておくことが重要であると感じました。
また、障害発生から売買停止、再開などに関する東証による情報発信が不足していた、との声もありました。
的確な時に的確な情報発信の在り方についても十分に検討しておく必要があると感じた事案でした。
今回改めて障害に関する報道発表等を見ることで、様々な「気づき」を得ることができました。
是非皆さんも「他者の失敗」について調べてみることをお勧めします!