No178 東証はダメダメなのか?
2020年10月1日に東京証券取引所(東証)など4つの取引所でシス
テム障害が発生し、終日取引停止となりました。
今回は、この事故について解説を行います。
※この記事は10/4(日)時点の情報をベースに書いています。
ご覧になった時点では間違っている可能性があります。ご注意
ください。
1. 何が起きたのか?
10/1 7:4にアローヘッドというシステム(2019年11月稼動)の共有
ディスクの1号機でメモリ故障が発生しました。
東証のような大規模システムではこういった故障は想定範囲で、
1号機と2号機の2台を同時に稼動させていました。
本当なら1号機でエラーが起きると1号機は一時的に休みに入り、
2号機だけで処理を続けるはずなのですが、何らかの原因(10/4
時点では原因不明)で切換え(フェイルオーバ)がうまく行われ
ませんでした。
この共有ディスクという機器は、アローヘッドシステム内で共有
している情報を保持しています。
アローヘッドというシステム中でみんなが参照したい情報保管を
一手に引き受けている機器なわけです。
取引開始までに各サーバは自身の処理に必要なデータを取りにいく
わけですが、誤動作したままの1号機経由で情報を取ろうとすると
「そんな情報はないよ」とか「それは○○だよ」などとウソを教え
ることになります。教えてもらったサーバはそれがウソでも信じる
しかありません。
こうしてアローヘッドシステムの中にはウソが広がってしまった
のです。
さて、アローヘッドシステムは350台という多数のサーバの集合体
です。そのうち、何台のサーバがウソを信じているのかを調べる
だけでも大変です。ましてやウソを信じているサーバ全てを正常
な状態に戻すことなどできるはずがないのです。
ここに至って、東証は10/1中の復旧を断念し、終日取引停止とする
ことを決定するに至りました。
以上が、本事故の経緯です。
2. 翌日なら復旧できる?
上記の通り、何が正しい状態かすらわからない状態に陥っている
にも関わらず、翌日(10/2)にはキチンと取引が再開されました。
上記の混沌とした状態からどうやって復旧したのでしょうか?
東証はシステムリセットを行ったようです。
システムリセットというのは、全サーバの電源を落として電源投入
からやりなおすことです。
各サーバは電源を入れた直後は空っぽの状態ですので、ウソの情報
は全て消えています。
この状態で改めて共有ディスクから必要な情報を集め直せば全てが
正しい状態になるはずだという理屈です。
全サーバがスタンバイ状態になるまでには1時間以上かかるようです
が、手作業で個々のサーバを正常な状態に戻すことを考えれば、
はるかに短かい時間で復旧が行えます。
だからこそ、翌日には普段通りの処理が行えたのでしょう。
3. 午後から復旧できなかった理由
逆に「1時間やそこらで再起動できるのなら、午後から取引が再開
できたんじゃないの?」という疑問が出てきます。
ですが、この方法は取れない事情があったようです。
東証に売買を依頼する各証券会社は早朝から次々と注文を東証に
送っています。でも株式市場が開くのは9時ですから、それまでは
東証がその注文を保留し、9時になってから注文を順に処理して、
その結果を証券会社に戻します。
証券会社側はそれによって注文成立を把握するわけです。
ところが、上記のように東証側がシステムリセットをすると、証券
会社側から来ている注文を全て忘れてしまいますから、その結果を
通知できなくなります。
証券会社側としては、送付した注文の返事がないことになります
ので、非常に具合が悪いわけです。
そのため、午後(後場)からの市場再開はあきらめたということの
ようです。
結局、東証側はシステムリセットを行い、各証券会社側は全注文を
「不成立」とすることでシステムの不整合を防いだようです。
4. メモリ故障なんて安物使ってんじゃないの?
これはいくらなんでも言いがかりでしょう。
メモリ故障は普通にありえます。
確かにメモリは比較的故障しにくい部品ではありますが、それでも
機械ですから故障する時はします。
実際、筆者も業務でメモリ故障に出くわしたことがあります。
筆者の場合は開発中の機器での不良でしたが。
メモリ故障ではごくたまに間違った値を返すという故障になる
ケースが多い印象です。今回の事故はおそらくこのパターンです。
東証のシステムは機器の故障を想定して、1号機と2号機の2台で
並行稼動させ、実際に故障をキチンと検出できていますから、適切
な設計と言えます。
5. でも、東証はダメダメでしょ?
東証は過去にも数度のトラブルを起こしています。
やっぱり東証はダメダメなんでしょうか?
今回の対応と説明を聞く限り、東証は非常に優れた対応を行ったと
筆者は思います。
まず、取引停止に至る決断の早さは特筆すべきです。
当日の流れは次のようになります。
07:04 共有ディスクのエラー検出
08:01 情報配信サーバの動作がおかしいことをサイトで告知
08:36 9時からの取引停止を決定
08:56 東証サーバの外部接続を切断
エラー検出の1時間後には公式サイトで告知し、その30分後には
取引停止の決定を行われています。
これは東証という重責を担う組識の対応として素晴らしいです。
あらかじめ規定がなければ、このような短時間でこれほど重い判断を
行うことは不可能です。
つまり、多くのケースを想定したBCP(業務継続プラン)を極めて
真面目に実直に取り組んでいることを示しています。
また、説明のための記者会見の場でも好印象な点がありました。
・できるだけ記者にわかりやすいような説明をしようとしていた
・納入業者である富士通には一切責任をなすりつけなかった
これだけの対応ができる組織が国内でどれだけあるでしょうか。
事故を起こすのはほめられたものではありませんが、その後の対応
は非常に優れていると筆者は感じました。
今回は東証の事故について解説しました。
次回もお楽しみに。
このNoteは私が主宰するメルマガ「がんばりすぎないセキュリティ」からの転載です。
誰もが気になるセキュリティに関連するトピックを毎週月曜日の早朝に配信しています。
無料ですので、是非ご登録ください。
https://www.mag2.com/m/0001678731.html
この記事が気に入ったらサポートをしてみませんか?