orangeitems’s diary

クラウドで働くインフラエンジニアの日々の感想です(ほぼ毎日更新)。

東証システム障害「設定値に不備」を考える

f:id:orangeitems:20201006101626p:plain

引用:arrowhead の障害に関する原因と対策について | 日本取引所グループ

 

 

2020年10月1日に発生した東証システム障害について、東証から続報が発表されています。

 

www.itmedia.co.jp

東京証券取引所は10月5日、1日に発生した株式売買システム「arrowhead」の障害の原因を発表した。共有ディスク装置1号機に搭載されたメモリが故障した場合、バックアップ(2号機)へと自動的に切り替わるはずだったが、設定値に不備があり、機能しなかったという。

 東証は「障害を引き起こした直接的な原因を特定できたため、システム面での対応を実施した」としている。

 

この「設定値に不備」という言葉が気になり、深掘りしてみました。

今回のストレージサーバーは富士通のETERNUSだということは各種情報からアクセスできます。

 

www.itmedia.co.jp

arrowheadは、富士通のIAサーバ「PRIMEQUEST」やRed Hat Enterprise Linux、データ管理ソフトウェアの「Primesoft Server」、SAN対応ディスクアレイ「ETERNUS」、ネットワークサーバ「IPCOM」、セキュアスイッチ「SR-S」、IPアクセスルータ「Si-R」など組み合わせて構築している。オンメモリデータべースの利用などによる高速処理、サーバの三重化およびネットワークの二重化による信頼性、ピーク値の約4倍というキャパシティなどによって、3つの非機能要件を満たした。

 

そして、ETERNUSのマニュアルは一般公開されています。

 

www.fujitsu.com

 

さて、今回の「設定値」ですが、どうも、下記のマニュアル部分は関連しそうだという推測です。なお、裏取りしているわけではないので、参考レベルでお読みください。

 

FUJITSU Storage ETERNUS AX/HX Series MetroCluster®管理およびディザスタ リカバリ ガイド

ETERNUS AX/HXシリーズでは、volume modifyコマンドの-nvfailパラメータによって、システム起動時またはスイッチオーバー処理後のNVRAM(不揮発性RAM)の不整合を検出できます。また、警告を表示して、ボリュームが⼿動でリカバリできるようになるまでデータのアクセスと変更ができないようにシステムを保護します。

ETERNUS AX/HXシリーズが何らかの問題を検出すると、データベース インスタンスまたはファイルシステム インスタンスは応答を停⽌するか、シャットダウンされます。ETERNUS AX/HXシリーズはコンソールにエラー メッセージを送信して、データベースまたはファイルシステムの状態をチェックするようユーザに警告します。NVFAILを有効にすると、データベースの有効性を侵害する可能性のある、クラスタ化されたノード間でのNVRAMの不整合をデータベース管理者に警告できます。

フェイルオーバーまたはブート リカバリのあとは、NVFAIL状態が解消されるまでNFSクライアントはどのノードからもデータにアクセスできません。CIFSクライアントには影響はありません。

 

ちなみに、NVFAILと言うキーワードを追っていくと、NetAppのData ONTAPに行きつきます。

 

library.netapp.com

 

文言が同じなので、中身はData ONTAPなのかなという、これも推測。

 

ただ、よく読むと、このNVFAILパラメータは、あくまでも起動時か、フェイルオーバーが起こった時の挙動を制御しているんですね。NVRAMが正常かどうかを検知するかどうかはボリューム起動時に確認される。

もしNVFAILパラメータがオンだったと仮定します。

システムクラッシュが発生し、フェイルオーバーは行われ、ちゃんと2号機に引継ぎはされていたのだけれども、NVFAIL状態になっていて、手動で解消しなかったからアクセス不能だった、と言うことはあり得ると思います。

 

 

ちなみに「オフ」だったと仮定すると、起動時にNVRAMの確認すらしないように読めます。デフォルト値はこちらのようです。

 

私は、NVFAILを「オン」に設定し、かつ、

dr-force-nvfailボリューム オプションが設定されている。

force-nvfail-allスイッチオーバー コマンド オプションが設定されている。

あたりが設定されていたため、引継ぎ後にアクセスできなくなったのではないか?という仮説を持っています。

※まあでも、これをオンにしていた場合、切り替え試験時に手動でリカバリーしたことになるけど・・。

 

ここをオフにすることで「自動的に切り替えする」ことができるようになったのではないか・・と。

もしくは、NVFAIL=オフ、にし、そもそも引継ぎ時のNVRAMチェックをオフにしたか(これはないか、もし不整合があった場合データが壊れる)。

また、今回は、待機系に引継いだ後のコントローラのNVRAMも破損していた・・なんてことは起こりえないかな・・と。

 

ということで、東証は「自動切換えできなかった」と報告しているので、引継ぎしなかったように思えますが、実は引継ぎは終わっていたが、ボリュームがNVFAIL状態で活性化しなかった、という可能性を、個人的には考えています。

全部、推測です。