JP6003350B2 - 監視装置、情報処理装置、及び監視方法 - Google Patents

監視装置、情報処理装置、及び監視方法 Download PDF

Info

Publication number
JP6003350B2
JP6003350B2 JP2012168094A JP2012168094A JP6003350B2 JP 6003350 B2 JP6003350 B2 JP 6003350B2 JP 2012168094 A JP2012168094 A JP 2012168094A JP 2012168094 A JP2012168094 A JP 2012168094A JP 6003350 B2 JP6003350 B2 JP 6003350B2
Authority
JP
Japan
Prior art keywords
failure
monitoring
occurrence
monitored device
dump
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2012168094A
Other languages
English (en)
Other versions
JP2014026567A (ja
Inventor
新菜 塚本
新菜 塚本
進之介 松田
進之介 松田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2012168094A priority Critical patent/JP6003350B2/ja
Priority to US13/902,847 priority patent/US9092453B2/en
Publication of JP2014026567A publication Critical patent/JP2014026567A/ja
Application granted granted Critical
Publication of JP6003350B2 publication Critical patent/JP6003350B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0778Dumping, i.e. gathering error/state information after a fault for later diagnosis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、監視装置、情報処理装置、及び監視方法に関する。
冗長性を持つシステムにおいて、システムを構成する部品が故障した場合、システムは、故障部品の切り離しを行なうことで障害の封じ込めを行なう。故障部品の切り離しの手法としては、例えば故障部品の電源切断や高速伝送路バスのスイッチ切断が挙げられる。
上記システムのファームウェアは、システム内部異常を検出した場合、正しく故障部品の特定を行なうことが要求される。冗長性を持つシステムでは、片方のモジュールが動作すればシステムは動作継続が可能であるため、このような障害の封じ込めが非常に重要である。
図7は、情報処理装置100の構成例を示す図である。図7に示すように、情報処理装置100は、CPU(Central Processing Unit)200、監視FPGA(Field Programmable Gate Array)300、不揮発性メモリ400、及びデバイス500A〜500Cを有している。
CPU200は、情報処理装置100における種々の制御や演算を行なう装置であり、コア210、RAM(Random Access Memory)220、高速IF(Interface)230、及び低速IF240を有する。
コア210は、CPU200としての各種処理を行なうものである。例えば、コア210は、高速IF230により、高速伝送路700aを介してデバイス500Aの制御を行なうとともに、デバイス500Aを経由して、デバイス500B及び500Cの制御を行なう。また、コア210は、ログ採取用の低速IF240により、低速伝送路700bを介して、各デバイス500A〜500Cと接続されている。
デバイス500A〜500Cは、情報処理装置100を構成する各種装置である。デバイス500Aは例えばスイッチモジュールであり、配下のデバイス500B及び500Cと高速伝送路700aを介して接続されるとともに、二重化した他系モジュールと高速伝送路700aを介して接続される。デバイス500B及び500Cは、二重化された装置であり、例えばディスク装置又はホスト装置等の装置との通信を行なうアダプタである。
CPU200(コア210)は、高速IF230を通じてデバイス500A〜500Cの異常を検出すると、低速IF240を介して、低速伝送路700b経由で各デバイス500A〜500Cからレジスタダンプ等のログ(状態情報)を取得する。また、CPU200は、取得したログをRAM220のログ領域220aに格納する。
そして、CPU200は、取得したレジスタダンプに基づいて障害の発生個所を特定するとともに、例えば障害の発生個所がデバイス500Aであると、障害をシステムから切り離すため、デバイス500Aに対して、二重化した他系モジュールとの接続を切断させる。この場合、当該CPU200を含む情報処理装置100は他系モジュールと切り離され、他系モジュールによりシステムは動作継続する。
なお、監視FPGA300は、情報処理装置100におけるLEDや電源、リセット処理等の監視・制御を行なうハードウェアであり、不揮発性メモリ400は、監視FPGA300による監視・制御に係る情報等を保持するメモリである。
また、関連する技術として、プロセッサが、障害等の発生に応じて、チャネル装置やエラーログ制御回路のメモリ等の内容を主メモリに転送させる技術が知られている(例えば、特許文献1又は2参照)。
さらに、ハードウェア構成のロギング回路や論理回路により、通常時やエラー検出時等のログを内部のバッファ等に蓄積する技術が知られている(例えば、特許文献3又は4参照)。
特開昭57−6951号公報 特開昭58−96326号公報 特開2004−348306号公報 特開平10−207790号公報
図7に示す例では、CPU200は、レジスタダンプの取得においてデバイス500A〜500Cからのリード応答が無いと、例外処理に入りハングアップしてしまうというリスクがある。
図8は、図7に示すデバイス500Cで障害が発生した場合の情報処理装置100の動作例を示すシーケンス図である。図8に示すように、情報処理装置100の電源投入後(ステップT110)、デバイス500Cで故障が発生すると(ステップT120)、デバイス500Cから高速伝送路700a経由でCPU200へエラーが通知される(ステップT130)。エラー通知を受けると、CPU200により低速伝送路700b経由でデバイス500Cのレジスタ(図7において図示省略)からダンプが取得(リード)される(ステップT140)。
ここで、デバイス500Cにおいて発生した障害の影響で、デバイス500Cがリード応答できない場合(ステップT150)、CPU200は、レジスタリードの完了待ち状態でハングアップしてしまう(ステップT160)。この場合、CPU200は、障害発生時のレジスタダンプが採取できず故障個所の判定ができないだけでなく、CPU200による故障部品であるデバイス500Cの切り離しにも失敗するため、エラーの封じ込めに失敗する。
また、CPU200がデバイス500Cの切り離しに失敗すると、デバイス500Cの障害状態が、高速伝送路700aを通じてデバイス500Aに伝播する虞がある(ステップT170)。この場合、さらに、デバイス500Aに伝播した障害状態が、モジュール間のバス(高速伝送路700a)を通じて他方のモジュールにも伝播し、二重化したモジュールの両方が動作停止して、システムが継続不可能(マシンダウン)となる場合があった。
このケースでは、ログ採取中にCPU200が動作不能に陥るため、現象発生時のデバイス500Cからのレジスタダンプの採取も行なうことができない。また、レジスタダンプが採取できないため、故障したモジュールを交換し、例えば工場に引き取った後に原因調査をすることも困難となる。
なお、上述した関連する各技術では、上述した問題については考慮されていない。
1つの側面では、本発明は、被監視装置においてリード応答が無い障害が発生した場合であっても、処理装置の動作を継続したまま、状態情報を確実に取得することを目的とする。
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の1つとして位置付けることができる。
本件の監視装置は、被監視装置を監視する監視装置であって、前記被監視装置と前記被監視装置に対する処理を行なう処理装置との間に介設され、前記被監視装置において発生した障害を検出する検出部と、前記検出部が検出した障害の内容を示す障害情報を生成し、生成した障害情報と前記障害の発生とを前記処理装置へ通知する通知部と、前記障害の発生前に、前記被監視装置から状態情報を取得して記憶部の第1領域へ格納し、前記障害の発生に応じて、前記被監視装置から前記被監視装置の前記障害の発生後の状態情報を取得して前記記憶部の第2領域へ格納する取得部と、を有する。
一実施形態によれば、被監視装置においてリード応答が無い障害が発生した場合であっても、処理装置の動作を継続したまま、状態情報を確実に取得することができる。
一実施形態に係る情報処理装置の構成例を示すブロック図である。 図1に示す障害検出部が生成するエラーコードの例を示す図である。 図1に示す情報処理装置を適用可能なストレージシステムの構成例を示すブロック図である。 図1に示すデバイスから高速伝送路経由でCPUへエラー通知があった場合の情報処理装置の動作例を説明するシーケンス図である。 図1に示すデバイスから専用伝送路経由で監視FPGAへエラー通知があった場合の情報処理装置の動作例を説明するシーケンス図である。 図1に示す監視FPGAによるレジスタダンプの動作例を説明するフローチャートである。 情報処理装置の構成例を示す図である。 図7に示すデバイスで障害が発生した場合の情報処理装置の動作例を示すシーケンス図である。
以下、図面を参照して実施の形態を説明する。
〔1〕一実施形態
〔1−1〕情報処理装置の説明
図1は、一実施形態に係る情報処理装置1の構成例を示すブロック図である。図1に示すように、情報処理装置1は、CPU2、監視FPGA3、不揮発性メモリ4、デバイス5A〜5C、及びバススイッチ6A〜6Cを有している。なお、本実施形態に係る情報処理装置1は、バススイッチ6Aを介して接続された他系モジュールとの間で二重化されており、情報処理装置1及び他系モジュールにより情報処理システム(システム)として動作する。
CPU(処理部,処理装置)2は、デバイス5A〜5Cを含む情報処理装置1における種々の制御や演算等の処理を行なう装置であり、コア21、RAM22、高速IF23、及び低速IF24を有している。
コア21は、CPU2としての各種処理を行なうものであり、図示しないRAMやROM(Read Only Memory)等に格納されたプログラムを実行することにより、種々の機能を実現する。
本実施形態において、デバイス5A〜5Cからレジスタダンプ等のログ(状態情報)を取得する処理は、監視FPGA3により行なわれる。このため、コア21は、ログの採取を行なう配下デバイスの採取アドレスや採取するデータ長を、監視FPGA3の内部のテーブル34aに書き込むことができる。また、コア21は、CPU2において各デバイス5A〜5Cのログを採取したい場合に、監視FPGA3に対して、ログの採取を指示することができる。
RAM(記憶部,メモリ)22は、監視FPGA3により採取された各デバイス5A〜5Cのログ等を格納する記憶装置である。RAM22は、後述する定期ダンプのログを格納する第1領域22a、トリガダンプのログを格納する第2領域22b、バイパスダンプのログを格納する第3領域22c、及び発生した障害の内容を示すエラーコードを格納するコード領域22dをそなえる。これらの領域22a〜22dの詳細については、監視FPGA3の説明において詳述する。なお、RAM22としては、例えばSRAM(Static RAM)等が挙げられる。
高速IF23は、高速伝送路7aを介してデバイス5Aと接続され、デバイス5Aとの通信を制御するとともに、デバイス5Aを経由して、デバイス5B及び5Cとの通信を制御するインタフェースである。なお、高速伝送路7aとしては、例えばPCIeX(Peripheral Component Interconnect eXpress)又はSAS(Serial Attached SCSI(Small Computer System Interface))等が挙げられる。コア21は、デバイス5A〜5Cとの間で、高速IF23を介してユーザデータや制御情報等の伝送を行なう。
低速IF24は、低速伝送路7bを介して監視FPGA3と接続され、監視FPGA3との間で、デバイス5A〜5Cのレジスタダンプ等のログ(状態情報)に関する情報の通信を制御するインタフェースである。なお、低速伝送路7bとしては、例えばI2C(Inter-Integrated Circuit)、SGPIO(Serial General Purpose Input/Output)、又はSPI(Serial Peripheral Interface)等が挙げられる。コア21は、監視FPGA3に対して低速伝送路7bを介してログの採取を指示するとともに、監視FPGA3から低速伝送路7bを介して受信したログをRAM22の所定の領域に格納する。
監視FPGA(監視部,監視装置)3は、デバイス5A〜5Cからログを取得するハードウェアであり、デバイス5A〜5CとCPU2との間に介設される。また、監視FPGA3は、図7に示す監視FPGA300と同様に、情報処理装置1におけるLEDや電源、リセット処理等の監視・制御を行なうことができる。なお、監視FPGA3としては、FPGA、PLD(Programmable Logic Device)、LSI(Large Scale Integration)、マイクロコンピュータ等のIC(集積回路)が挙げられる。
本実施形態に係る監視FPGA3は、複数の配下デバイス5A〜5Cの複数のレジスタ53の内容を読み出し、監視FPGA3、不揮発性メモリ4、及びCPU2内のRAM22に書き込むレジスタダンプの機能を持つ。監視FPGA3によるレジスタダンプの態様としては、例えば、通常の状態(障害が検出されていない状態)で定期的に行なわれる定期ダンプ、障害が検出された後に行なわれるトリガダンプ、及びCPU2からの指示により行なわれるバイパスダンプが挙げられる。監視FPGA3の詳細については後述する。
不揮発性メモリ(記憶部)4は、CPU2がアクセス可能な不揮発性のメモリであり、フラッシュメモリ等の種々のメモリを用いることができる。不揮発性メモリ4は、定期ダンプのログを格納する第1領域41a、トリガダンプのログを格納する第2領域41b、並びに監視FPGA3(及びCPU2)との通信を制御するインタフェースであるIF42を有している。また、不揮発性メモリ4は、監視FPGA3によるLED、電源、及びリセット処理等の監視・制御に係る情報等をさらに保持しても良い。
デバイス5A〜5Cは、情報処理装置1を構成する各種装置である。以下、デバイス5A〜5Cを区別しない場合には、単にデバイス5という。また、図中、デバイス5A〜5CをそれぞれデバイスA〜Cと表記する場合がある。
デバイス5Aは、例えばスイッチモジュールであり、配下のデバイス5B及び5Cと高速伝送路7aを介して接続されるとともに、二重化した他系モジュールと高速伝送路7aを介して接続される。デバイス5B及び5Cは、二重化された装置であって、例えばディスク装置又はホスト装置等の装置との通信を行なうアダプタである。
デバイス5はそれぞれ、エラー通知部51、低速IF52、レジスタ53、及び高速IF54を有している。また、デバイス5Aは、さらに高速IF55a〜55cを有している。
各デバイス5が有するエラー通知部51は、障害の発生を通知するための専用伝送路(信号線)7cを介して監視FPGA3と接続される。各デバイス5は、所定の通知条件に合致する障害が発生した場合、この専用伝送路7cを経由して、エラー通知(FATAL_ERROR信号による通知)を行なう。デバイス5A〜5CによるFATAL_ERROR信号による通知は、例えば正常時には“0”、異常時には“1”を出力する等の簡素且つ高速な手法で行なわれることが好ましい。なお、所定の通知条件としては、デバイス5内の所定の部品で故障が発生したことや、発生した障害が所定の障害の程度以上であること等、既知の種々の通知条件とすることが可能であり、その詳細な説明は省略する。
低速IF52は、低速伝送路7bを介して監視FPGA3と接続され、監視FPGA3からのレジスタダンプのリード要求に応じて、レジスタ53のダンプを送信する(リード応答)。高速IF54は、高速伝送路7aを介して上流(CPU2側)の装置との通信を制御するインタフェースである。
また、デバイス5Aが有する高速IF55a〜55cはそれぞれ、高速伝送路7aを介してバススイッチ6A〜6Cと接続される。高速IF55aは、バススイッチ6aを介して二重化した他系モジュールと接続され、高速IF55bは、バススイッチ6Bを介してデバイス5Bの高速IF54と接続され、高速IF55cは、バススイッチ6Cを介してデバイス5Cの高速IF54と接続される。
各デバイス5が有するレジスタ53は、内部の動作状態又は設定情報等を保持するものであり、監視FPGA3によるレジスタダンプが行なわれる対象のレジスタである。このレジスタ53の内容が、監視FPGA3によりデバイス5の障害発生前後のログ(状態情報)として用いられる。
バススイッチ6A〜6Cはそれぞれ、情報処理装置1と他系モジュールとの間の接続状態、デバイス5Aと5Bとの間の接続状態、及びデバイス5Aと5Cとの間の接続状態を切り替えるスイッチである。バススイッチ6A〜6Cは、それぞれ監視FPGA3と制御線7dを介して接続され、監視FPGA3により接続状態が切り替えられる。
例えば、デバイス5において障害が発生していない場合、バススイッチ6Aは情報処理装置1と他系モジュールとを相互に接続し、二重化状態を維持する。また、この場合、バススイッチ6Bはデバイス5Aと5Bとを相互に接続し、バススイッチ6Cはデバイス5Aと5Cとを相互に接続し、デバイス5Bと5Cとの二重化状態を維持する。
一方、デバイス5B又は5Cにおいて障害が発生すると、監視FPGA3は、障害が発生した方のバススイッチ6B又は6Cを制御してオフ状態(切断状態)とし、障害が発生したデバイス5B又は5Cをシステムから切り離す。また、デバイス5Aにおいて障害が発生すると、監視FPGA3は、バススイッチ6Aを制御してオフ状態(切断状態)とし、障害が発生したデバイス5Aと配下のデバイス5B及び5Cとをシステムから切り離す。なお、バススイッチ6Aをオフ状態とすると、デバイス5だけでなくCPU2を含む情報処理装置1全体が二重化した他系モジュールと切り離される。この場合、他系モジュールによりシステムは動作継続する。
〔1−2〕監視FPGAの説明
監視FPGA3は、障害検出部31、ダンプ取得部32、及び各IF36〜38を有している。
ダンプ取得部(取得部)32は、レジスタダンプ等のログの採取を実行するものであり、第1RAM33、第2RAM34、及びアービタ35を有している。
第2RAM34は、定期ダンプ又はトリガダンプにおいてログを採取する対象(レジスタダンプの対象箇所)を示すテーブル34aを格納する。テーブル34aは、例えば採取アドレスと採取データ長とが対応付けられる。採取アドレス及び採取データ長は、既述のように、CPU2により予め低速伝送路7bを介して指示される。具体的には、CPU2は、情報処理装置1の起動時等の所定のタイミングで、監視FPGA3内の第2RAM34に対して、採取アドレス及び採取データ長を対応付けたテーブル34aを生成又は更新する。以下、テーブル34aには、デバイス5A〜5Cが有する各レジスタ53のアドレスと所定のデータ長とが対応付けられて保持されているものとする。
ダンプ取得部32は、テーブル34aの設定情報に基づいて、デバイス5が有する各レジスタ53から定期的に所定のデータ長のログを取得する(定期ダンプ)。なお、定期ダンプは、所定の周期又は所定のタイミングで実行される。この所定の周期又は所定のタイミングは、例えばCPU2により決定され通知されても良いし、製造・出荷時や起動時等に予め設定されても良い。
また、ダンプ取得部32は、障害の発生等のトリガの検出に応じて、障害の発生後の所定のデータ長のログを取得する(トリガダンプ)。このとき、ダンプ取得部32は、障害の発生以降の定期ダンプの実行を抑止する。なお、トリガの検出については、後述する。
ここで、ダンプ取得部32は、定期ダンプを行なう場合、取得したログを第1RAM33内の第1領域33aに格納する。そして、ダンプ取得部32は、第1領域33aに格納したログを、CPU2のRAM22内の第1領域22a、及び、不揮発性メモリ4内の第1領域41aにそれぞれ転送し、格納させる。
一方、ダンプ取得部32は、トリガダンプを行なう場合、取得したログを第1RAM33内の第2領域33bに格納する。そして、ダンプ取得部32は、第2領域33bに格納したログを、CPU2のRAM22内の第2領域22b、及び、不揮発性メモリ4内の第2領域41bにそれぞれ転送し、格納させる。
なお、ダンプ取得部32は、第1RAM33内の第1領域33a及び第2領域33bを作業領域として用いている。
このように、ダンプ取得部32により、定期ダンプにより障害の発生前に採取したログと、トリガダンプにより障害の発生後に採取したログとが異なる領域に格納される。また、ダンプ取得部32により、障害の発生に応じてトリガダンプが実行される際に、定期ダンプの実行が抑止されるため、障害の発生後に定期ダンプが実行されて、障害の発生前の定期ダンプによるログが障害の発生後のログにより上書きされることを防止できる。
従って、情報処理装置1において、障害の発生前後のログを確実に保持しておくことができ、障害原因の特定等の発生した障害の解析を容易に行なうことができる。
また、ダンプ取得部32は、CPU2からの低速伝送路7bに対するアクセスを、配下の各デバイス5に直接伝えるバイパス機能を持つ。具体的には、ダンプ取得部32は、CPU2からのデバイス5のレジスタダンプ要求(ログの取得要求,以下、ダンプ要求という)を受けると、ダンプ要求により指示されたデバイス5からログを取得する(バイパスダンプ)。このとき、ダンプ取得部32は、取得したログをCPU2のRAM22内の第3領域22cに転送し、格納させる。
このようなバイパスダンプにより、監視FPGA3による定期ダンプ又はトリガダンプ中も、CPU2は、バイパス機能を使って任意の配下デバイス5のステータスリードを行なうことができる。
なお、CPU2からのダンプ要求は、監視FPGA3の配下のデバイスのうちのテーブル34aに設定されていない採取アドレスから任意のデータ長分のログを取得することを示す要求であっても良く、この場合、ダンプ要求には採取アドレス及び任意のデータ長が含まれる。また、ダンプ要求は、テーブル34aに設定された全て又は一部の採取アドレスから採取データ長分のログを取得することを示す要求であっても良く、この場合、ダンプ要求には、テーブル34aの全て又は任意のレコードを特定する情報が含まれても良い。
このように、ダンプ取得部32は、定期ダンプ、トリガダンプ、及びバイパスダンプのいずれのレジスタダンプの場合にも、CPU2によるリード処理を発生させない。つまり、実際には、レジスタダンプは、デバイス5からログをリードする処理であるが、CPU2から見た場合、監視FPGA3に対してログ採取の指示を行ない(バイパスダンプの場合)、内部のRAM22に対する監視FPGA3のライト処理の完了を待つことになる。
すなわち、本実施形態に係るレジスタダンプは、CPU2から見た場合、レジスタダンプの指示、監視FPGA3によるライト処理、及び当該ライト処理の完了待ちの流れで実施される。従って、CPU2は、デバイス5にリード応答無しの障害が発生した場合であっても、リード処理が発生しないため例外処理に入ることを回避でき、RAM22を参照することで安全にレジスタダンプ等のログを取得することができる。
アービタ35は、定期ダンプ又はトリガダンプとダンプ要求に応じたダンプとを所定のポリシーに従って調停するものである。このポリシーは、定期ダンプ又はトリガダンプ、及び、バイパスダンプのうちのいずれかのレジスタダンプを優先して実行するものであっても良い。アービタ35は、このようなポリシーに従って、実行する上記いずれかのレジスタダンプを選択して、レジスタのリード要求を対象のデバイス5へ発行する。
IF36〜38は、それぞれ接続先のIFとの間で、ログ等の情報の通信を制御するインタフェースである。
低速IF36は、CPU2が有する低速IF24と低速伝送路7bを介して接続される。低速IF36は、コア21から低速IF24を介して送信された、バイパスダンプのダンプ要求又はテーブル34aに設定する採取アドレス及び採取データ長等の情報を受信して、ダンプ取得部32に渡す。また、低速IF36は、ダンプ取得部32が採取したログ又は障害検出部31が生成した後述するエラーコードを、低速IF24へ送信する。なお、低速IF24は、低速IF36から受信したログ又はエラーコードを、RAM22に格納する。
低速IF37は、各デバイス5が有する低速IF52と低速伝送路7bを介して接続される。低速IF37は、レジスタダンプに係るリード要求を低速IF52へ送信する一方、低速IF52から送信されたリード要求への応答であるレジスタダンプを受信して、ダンプ取得部32に渡す。
IF38は、不揮発性メモリ4が有するIF42と伝送路を介して接続される。IF38は、ダンプ取得部32が採取したログをIF42へ送信する。
障害検出部31は、ダンプ取得部32にトリガダンプを実行させるためのトリガを検出するとともに、トリガの検出をCPU2に通知するものである。
ここで、トリガとしては、例えば配下のデバイス5において障害が発生したことが挙げられる。また、トリガの検出とは、障害検出部31が、CPU2からデバイス5A〜5Cで発生した障害を通知されたこと、又は、監視FPGA3において、デバイス5A〜5Cで発生した障害を検出したこと、等を示す。以下、障害検出部31がトリガを検出したと判断する場合を、具体例を挙げて説明する。
〔1−2−1〕トリガの検出について
障害検出部31は、以下の(i)〜(iii)の少なくとも1つの事象が発生した場合に、障害を検出(トリガを検出)したと判断し、CPU2及びダンプ取得部32に対して通知を行なう。
(i)CPU2がCPU2内部、高速伝送路7a、又はデバイス5等の異常を検出し、監視FPGA3にエラー通知したこと。
具体的には、CPU2は、CPU2内部でエラーが検出された場合、CPU2において異常が発生したと判断する。また、CPU2は、高速伝送路7aにおいて異常が検出された場合、高速伝送路7a自体に障害が発生したと判断する。さらに、CPU2は、高速伝送路7aを経由してデバイス5からエラー通知を受けたり、デバイス5との間の通信がタイムアウト等した場合、デバイス5において異常が発生したと判断する。これらの場合、CPU2は、例えば低速伝送路7bを経由して監視FPGA3にエラーの発生とその内容とを通知する。障害検出部31は、低速IF36又はダンプ取得部32を介して、CPU2からエラーの発生の通知を受けた場合に、トリガを検出したと判断する。
なお、CPU2は、高速伝送路7aを通じてデバイス5において異常が発生したと判断した場合、ダンプ取得部32によるトリガダンプに先立って、ダンプ取得部32に対して障害の発生個所(デバイス5)に対するバイパスダンプを指示して実行させても良い。この場合、監視FPGA3は、バイパスダンプを通じて、デバイス5において発生した障害を検出することになる。従って、CPU2は、デバイス5の異常を検出し、監視FPGA3にバイパスダンプの実行を指示する場合には、監視FPGA3に対してエラーの通知を行なわなくても良い。
(ii)監視FPGA3(ダンプ取得部32)によるレジスタダンプにおいて、配下デバイス5の異常を検出したこと。
例えば、ダンプ取得部32は、取得したログのステータスから、デバイス5が正常か否かの判断を行なうことができる。従って、ダンプ取得部32が、レジスタダンプにより取得したログから配下のデバイス5のエラーステータス(異常状態)を検出する場合がある。この場合、障害検出部31は、ダンプ取得部32を介してデバイス5のエラーステータスを検出し、トリガを検出したと判断する。
また、ダンプ取得部32が、定期ダンプ等のレジスタダンプのために低速伝送路7bを経由して各デバイス5へリード要求を発行した場合、障害の発生によりデバイス5からリード応答が来ないと、ダンプ取得部32ではタイムアウトが発生する。この場合、障害検出部31は、低速IF37又はダンプ取得部32を介してリード不能に陥ったことを検出し、トリガを検出したと判断する。
(iii)配下デバイス5から、専用伝送路7cを介したエラー通知、或いは、低速伝送路7bを介したエラーメッセージ通信によるエラー通知があったこと。
障害検出部31は、専用伝送路7cを介して、デバイス5かからエラー通知(FATAL_ERROR通知)を受けると、トリガを検出したと判断する。
また、各デバイス5は、障害が発生した場合に、低速伝送路7bを介してエラーメッセージを送信することができる(エラーメッセージ通信)。そこで、障害検出部31は、デバイス5からエラーメッセージ通信によるエラー通知があった場合に、トリガを検出したと判断しても良い。
障害検出部31は、上述のようにトリガを検出すると、ダンプ取得部32へ障害の発生を通知して、トリガダンプを実行させる。
また、障害検出部31は、上述のようにトリガを検出すると、上記(i)〜(iii)に示すうちの検出された事象に基づいて、障害の内容をコード(異常情報)化して自身のコード領域31aに生成する。そして、障害検出部31は、生成したエラーコードを低速伝送路7bを介してCPU2のRAM22内のコード領域22dに転送し、格納させる。また、障害検出部31は、障害の発生を割り込みによってCPU2へ通知する。以下、障害検出部31が生成するエラーコードについて説明する。
〔1−2−2〕エラーコードについて
図2は、図1に示す障害検出部31が生成するエラーコードの例を示す図である。
図2に示すように、障害検出部31は、障害の検出経路、障害の発生個所、及びエラー種別を含むエラーコードを作成する。
例えば、エラーコードには、図2の“大項目”に示すように、障害の検出経路として、CPU2からの通知(上記(i)に相当)の場合には“0x0”、監視FPGA3による検出(上記(ii)に相当)の場合には“0x1”、配下デバイス5からの通知(上記(iii)に相当)の場合には“0x2”が含まれる。
また、エラーコードには、図2の“中項目”に示すように、障害の発生個所として、CPU内部の場合には“000”、配下デバイス5の場合には“0yy”又は“1yy”、伝送路(高速伝送路7a)の場合には“1zz”等が含まれる。なお、エラーコードに含まれる“yy”及び“zz”は、それぞれデバイス5及び伝送路を特定するID等の識別子である。
さらに、エラーコードには、図2の“コード例”に示すように、エラー種別として、タイムアウトである場合には“0001”、その他各種エラー種別である“xxxx”が含まれる。なお、“xxxx”は、監視FPGA3が検出可能な障害の種別、及びCPU2やデバイス5が監視FPGA3に通知可能な障害の種別ごとに、予め定められている。
このように、障害検出部31は、トリガを検出すると、検出された事象に基づいて、エラーコードを生成する。一例として、障害検出部31は、配下デバイスからエラーを通知された場合には、“0x2_1yy_xxxx”のエラーコードをコード領域31aに生成する。そして、障害検出部31は、生成したエラーコードをCPU2のコード領域22dに転送し、格納させるとともに、CPU2へ障害の発生を割り込み通知する。
以上のように、障害検出部31から割り込み通知を受けたCPU2(コア21)は、コード領域22dに格納された異常状態を示すエラーコード(障害の内容)を参照して、発生した障害の内容を知ることができる。これにより、CPU2は、例えば障害の発生によりリード応答が返せないデバイス5に対するリード要求等の発行を抑止できる。
以上のことから、本実施形態に係る障害検出部31は、デバイス5A〜5Cにおいて発生した障害を検出する検出部としての機能を有する。また、障害検出部31は、検出部が検出した障害の内容を示すエラーコードを生成し、生成したエラーコードと障害の発生とをCPU2へ通知する通知部としての機能を有する。
なお、障害検出部31は、生成したエラーコードと障害の発生とをCPU2へ通知すると、障害の発生個所(デバイス5)をリセットするとともに、上述のように、制御線7dを介してバススイッチ6A〜6Cを制御することにより、障害が発生したデバイス5をシステムから切り離す。なお、CPU2により高速伝送路7aを通じてデバイス5の異常が検出された場合には、CPU2が障害検出部31に対して障害の発生個所のリセット及びシステムからの切り離しを指示しても良い。
以上のように、本実施形態に係る情報処理装置1によれば、デバイス5においてリード応答が無い障害が発生した場合であっても、CPU2の動作を継続したまま、監視FPGA3はログを確実に取得することができるとともに、デバイス5において発生した障害が他系のモジュールへ伝播することを確実に抑止することができる。
〔1−3〕ログ及びエラーコードの格納先について
なお、上述のように、ダンプ取得部32は、レジスタダンプにより取得したログを、監視FPGA3の第1RAM33、CPU2のRAM22、及び不揮発性メモリ4に格納する。また、障害検出部31は、トリガの検出に応じて生成したエラーコードを、監視FPGA3のダンプ取得部32及びCPU2のRAM22に格納する。ここで、ダンプ取得部32によるログの格納先及び障害検出部31によるエラーコードの格納先は、以下の理由により、CPU2のRAM22及び不揮発性メモリ4の少なくとも一方のみとしても良い。
不揮発性メモリ4は、情報処理装置1がシステムダウンとなった場合でも、格納する情報を保持し続けることができる。つまり、ダンプ取得部32は、第1領域41a及び第2領域41bにレジスタダンプのログを格納することで、障害の発生による情報処理装置1の電源切断を挟んだとしても、ログを残すことができる。
従って、CPU2のRAM22及び監視FPGA3の第1RAM33内にレジスタダンプのログを格納しない態様とした場合であっても、少なくともCPU2からアクセス可能な不揮発性メモリ4にログが格納されていれば良い。例えば不揮発性メモリ4にのみログが格納される場合、CPU2は、不揮発性メモリ4にアクセスをすれば障害の発生前後のログを採取することができる。また、電源切断によるログの消失のリスクを低下させることができる。
また、障害検出部31は、トリガ検出により生成したエラーコードを、CPU2のコード領域22dとともに/又は代えて、不揮発性メモリ4のコード領域41c(図1中破線で示す)に格納しても良い。この場合、障害検出部31は、不揮発性メモリ4のコード領域41cにエラーコードを格納することで、障害の発生による情報処理装置1の電源切断を挟んだとしても、CPU2は不揮発性メモリ4からエラーコードを取得することで、電源切断前に発生した障害の内容を容易に知ることができる。
なお、エラーコードを不揮発性メモリ4のコード領域41cにのみ格納する場合であっても、障害検出部31は、障害の発生の通知をCPU2に対して行なう。また、少なくともログ又はエラーコードの格納先として不揮発性メモリ4が用いられる場合、CPU2は、不揮発性メモリ4のIF42と通信するためのIF25(図1中破線で示す)をさらに有する。また、障害検出部31は、生成したエラーコードを不揮発性メモリ4のコード領域41cへ格納するために、図1中破線で示すようにIF38と接続される。
ここまで、レジスタダンプのログ及びエラーコードを不揮発性メモリ4に格納することの利点について説明したが、CPU2に対してログ及びエラーコードを格納することによる利点もある。例えば、CPU2は、不揮発性メモリ4にアクセスするよりも、ログやエラーコードの解析を高速に実施することができ、障害が発生したデバイス5A〜5Cに対してアクセス(リード等)の要求をしてしまうリスクを低下させることができる。
以上のように、本実施形態に係る監視FPGA3は、レジスタダンプ等のログ(状態情報)と発生した障害の内容を示すエラーコードとを含む監視結果を、CPU2のRAM22及び不揮発性メモリ4の少なくとも一方である記憶部に格納する。
〔1−4〕情報処理システムの構成例
上述した情報処理装置1は、例えば図3に示すストレージシステム10に適用することができる。図3は、図1に示す情報処理装置1を適用可能なストレージシステム10の構成例を示すブロック図である。
図3に示すように、ストレージシステム(情報処理システム)10は、コントローラエンクロージャ(Controller Enclosure;以下、CEという)10A、ホスト装置8−1及び8−2を有している。ホスト装置8−1及び8−2は、CE10Aに対して各種要求を行なうホストコンピュータである。CE10Aは、ホスト装置8−1及び8−2からの各種要求に係る制御を行なうものである。CE10Aは、コントローラモジュール(Controller Module;以下、CMという)1′−1及び1′−2、パネル4A、PSU(Power Supply Unit)15、及びバックプレーン(Back Plane;以下、BPという)16を有している。
CM1′−1及び1′−2(以下、これらを区別しない場合には単にCM1′という)はそれぞれ、本実施形態に係る情報処理装置1の一例である。CM1′−1及び1′−2は、二重化されている。パネル4Aは、CE10Aにおける各種の設定情報等を管理するものであり、CM1′で共用される。なお、パネル4Aは、本実施形態に係る不揮発性メモリ4の一例である不揮発性メモリを有する。PSU15は、外部からの交流電圧を直流電圧に変換し、CE10A内の各装置へ供給するコンポーネントである。BP16は、複数のディスク装置16aを有する回路基板である。なお、ディスク装置16aとしては、HDD(Hard Disk Drive)等の磁気ディスク装置やSSD(Solid State Drive)等の半導体ドライブ装置等の各種デバイスが挙げられる。
CM1′は、ホスト装置8−1及び8−2等からの要求に応じて、ディスク装置16aに対するデータアクセス要求等の処理を行なうものである。CM1′は、CPU2、監視FPGA3、FC(Fibre Channel)コントローラ5D、エクスパンダ5E、バススイッチ6A、キャッシュメモリ11、専用LSI12、フラッシュメモリ13、及びSCU(System Capacity Unit)14を有している。
CPU2及び監視FPGA3は、図1に示す本実施形態に係るCPU2及び監視FPGA3の一例である。なお、CPU2は、CM1′における各種処理を行なうものであり、例えばディスク装置16aに対するデータアクセス要求等に係る処理を行なう。また、CM1′−1内の監視FPGA3とCM1′−2内の監視FPGA3とは、互いに通信可能に接続されており、CM1′の二重化状態に関する制御を行なう。
FCコントローラ5Dは、ファイバケーブルを介してホスト装置8−1及び8−2と接続され、ホスト装置8−1及び8−2との間の通信を制御するアダプタである。エクスパンダ5Eは、例えばSASケーブル等の通信線を介してBP16と接続され、CPU2からの指示によりディスク装置16aに対する各種アクセスを制御するアダプタである。FCコントローラ5D及びエクスパンダ5Eは、本実施形態に係るデバイス5の一例である。
バススイッチ6Aは、CM1′−1とCM1′−2との間の接続状態を切り替えるスイッチである。バススイッチ6Aは、図1に示すバススイッチ6Aの一例である。なお、監視FPGA3は、自身のCM1′内のFCコントローラ5Dにおける障害を検出すると、バススイッチ6Aをオフ状態に切り替え、自身のCM1′をストレージシステム10から切り離す。
キャッシュメモリ11は、ディスク装置16aに対するアクセスに係るデータ等をキャッシュするメモリであり、CPU2によるディスク装置16aへのアクセスにおいて用いられる。専用LSI12は、CM1′のシステム制御を行なう処理装置である。フラッシュメモリ13は、専用LSI12による制御に用いられる制御情報を保持するNAND型のフラッシュメモリである。SCU14は、停電等によりCM1′への電力供給が断たれた際に一時的な電力供給源として用いられるものであり、例えば電気二重層コンデンサ等が挙げられる。
なお、CPU2及びFCコントローラ5D間、CPU2及びエクスパンダ5E間、2つのCM1′(バススイッチ6A)間等は、高速伝送路7aにより接続され、CPU2及び監視FPGA3間、2つの監視FPGA3間等は、低速伝送路7bにより接続される。その他の装置間における図3中の接続バスについては、説明の簡略化のため省略する。なお、図3においては、図の簡略化のため、一部の装置間の結線を省略している。
なお、図3において、エクスパンダ5Eを1つのみ記載しているが、図1に示すデバイス5B及び5Cのように、各CM1′がバススイッチ6B及び6C、並びに二重化した2つのエクスパンダ5Eをそなえ、監視FPGA3により二重化状態に関する制御が行なえるように構成しても良い。
以上のように、図3に示すストレージシステム10のCM1′に対して、図1に示す本実施形態に係る情報処理装置1を適用することで、例えばFCコントローラ5Dにおいてリード応答が無い障害が発生した場合であっても、上述の如く監視FPGA3によるログ採取や障害個所の切り離しが行なわれる。従って、CPU2の動作を継続したまま、監視FPGA3はログを確実に取得することができるとともに、一方のCM1′のFCコントローラ5Dにおいて発生した障害が他方のCM1′へ伝播することを確実に抑止することができる。
〔1−5〕情報処理装置の動作例
次に、上述の如く構成された図1に示す情報処理装置1の動作例を、図4〜図6を参照して説明する。図4は、図1に示すデバイス5Cから高速伝送路7a経由でCPU2へエラー通知があった場合の情報処理装置1の動作例を説明するシーケンス図であり、図5は、デバイス5Cから専用伝送路7c経由で監視FPGA3へエラー通知があった場合の情報処理装置1の動作例を説明するシーケンス図である。図6は、監視FPGA3によるレジスタダンプの動作例を説明するフローチャートである。
〔1−5−1〕デバイス5Cから高速伝送路7a経由でCPU2へエラー通知があった場合
はじめに、図4及び図6を参照して、デバイス5Cから高速伝送路7a経由でCPU2へエラー通知があった場合の情報処理装置1の動作例を説明する。
図4に示すように、情報処理装置1の電源投入後(ステップT1)、CPU2により、ダンプ取得部32の第2RAM34に対して、ダンプ個所を示すテーブル34aが設定される(ステップT2)。
そして、監視FPGA3により、一定時間待機後(図6のステップS1)、エラーが検出されたか(上記(i)〜(iii)の事象が発生したか)否かが判定される(図6のステップS2)。エラーが検出されていない場合(図6のステップS2のNoルート)、監視FPGA3により、定期的に配下デバイス5のレジスタダンプ(定期ダンプ)が行なわれる(図6のステップS3)。
具体的には、ダンプ取得部32により、テーブル34aに基づきダンプ対象のデバイス5A〜5Cに対して、リード要求が発行され、各デバイス5からリード応答としてレジスタダンプ(ログ)が返される(ステップT3)。このとき、ダンプ取得部32は、第1RAM33内の第1領域33aに取得したログを格納する。次いで、ダンプ取得部32により、取得したログが、不揮発性メモリ4の第1領域41a(ステップT4)及びCPU2のRAM22内の第1領域22aへ転送され、格納される(ステップT5)。
監視FPGA3は、上記ステップT3〜T5(図6のステップS1、S2のNoルート、及びS3)の処理を、図6のステップS2においてエラーが検出されるまで繰り返す(ステップT6〜T8)。
ここで、デバイス5Cで故障が発生し(ステップT9)、デバイス5Cにより、高速伝送路7a経由でCPU2へエラーが通知された場合を考える(ステップT10)。この場合、例えばCPU2により、監視FPGA3に対してデバイス5Cからのバイパスリード(バイパスダンプ)が指示される(ステップT11)。なお、この指示は、実際にはデバイス5Cからログをリードする処理であるが、CPU2から見た場合、監視FPGA3により、採取したログをCPU2の第3領域22cへ書き込む処理となる。
次いで、ダンプ取得部32により、デバイス5Cに対してリード要求が行なわれるが、デバイス5Cがリード応答不可の状態であるため(ステップT12)、一定時間経過後に、ダンプ取得部32においてリードタイムアウトが発生する(ステップT13)。このとき、障害検出部31により、デバイス5Cにおける障害の発生が検出され(上記(ii)によるトリガの検出,図6のステップS2のYesルート)、“0x1_1yy_xxxx”のエラーコードが生成される(ステップT14、図2参照)。
そして、障害検出部31により、生成したエラーコードがCPU2のRAM22内のコード領域22d(及び/又は不揮発性メモリ4のコード領域41c)へ格納される(ステップT15、図6のステップS4)。また、障害検出部31により、エラーコードの格納と併せて、CPU2へ割り込みによる障害の発生の通知が行なわれる(ステップT16、図6のステップS5)。なお、障害検出部31は、CPU2への割り込み通知とともに、ダンプ取得部32に対して、障害の発生を通知する。
エラーコードの格納及び割り込み通知が行なわれると、CPU2により、RAM22内に格納されたログ及びエラーコードに基づき故障個所が判定され(ステップT17)、エラーの封じ込めが行なわれる。具体的には、CPU2により、監視FPGA3に対して、故障個所であるデバイス5Cのリセットの指示(ステップT18)及びデバイス5Cの上流(CPU2側)のバススイッチ6Cのオフ制御の指示が行なわれる(ステップT20)。監視FPGA3では、この指示に応じて、デバイス5Cのリセット(ステップT19)及びバススイッチ6Cのオフ制御が行なわれ(ステップT21)、障害個所がシステムから切り離される。
また、ダンプ取得部32により、ステップT16において障害検出部31から通知された障害の発生に応じて、トリガダンプが実行される(図6のステップS6)。具体的には、ダンプ取得部32により、テーブル34aに基づき、ダンプ対象のデバイス5A〜5Cに対してリード要求が発行され、各デバイス5からリード応答としてレジスタダンプ(ログ)が返される(ステップT22)。このとき、ダンプ取得部32は、第1RAM33内の第2領域33bに取得したログを格納する。次いで、ダンプ取得部32により、取得したログが、不揮発性メモリ4の第2領域41b(ステップT23)及びCPU2のRAM22内の第2領域22bへ転送され、格納される(ステップT24)。
以上の処理により、デバイス5Cから高速伝送路7a経由でCPU2へエラー通知があった場合の情報処理装置1の動作が完了する。
〔1−5−2〕デバイス5Cから専用伝送路7c経由で監視FPGA3へエラー通知があった場合
次に、図5及び図6を参照して、デバイス5Cから専用伝送路7c経由で監視FPGA3へエラー通知があった場合の情報処理装置1の動作例を説明する。
なお、図5のステップT1〜T9の処理は、図4のステップT1〜T9の処理と共通しているため、重複した説明を省略する。
ステップT9において、デバイス5Cで故障が発生し、デバイス5Cにより、専用伝送路7c経由で監視FPGA3(障害検出部31)へFATAL_ERROR信号による通知がされた場合を考える(ステップT25)。このとき、障害検出部31により、デバイス5Cにおける障害の発生が検出され(上記(iii)によるトリガの検出,図6のステップS2のYesルート)、“0x2_1yy_xxxx”のエラーコードが生成される(ステップT26、図2参照)。
そして、障害検出部31により、生成したエラーコードがCPU2のRAM22内のコード領域22d(及び/又は不揮発性メモリ4のコード領域41c)へ格納される(ステップT27、図6のステップS4)。また、障害検出部31により、エラーコードの格納と併せて、CPU2へ割り込みによる障害の発生の通知が行なわれる(ステップT28、図6のステップS5)。なお、障害検出部31は、CPU2への割り込み通知とともに、ダンプ取得部32に対して、障害の発生を通知する。
また、障害検出部31により、障害の発生に応じたエラーの封じ込め(バス閉塞)が実施される。具体的には、監視FPGA3により、デバイス5Cのリセット(ステップT29)及びバススイッチ6Cのオフ制御が行なわれ(ステップT30)、障害個所がシステムから切り離される。
また、ダンプ取得部32により、ステップT28において障害検出部31から通知された障害の発生に応じて、トリガダンプが実行される(図6のステップS6)。具体的には、ダンプ取得部32により、テーブル34aに基づき、ダンプ対象のデバイス5A〜5Cに対してリード要求が発行され、各デバイス5からリード応答としてレジスタダンプ(ログ)が返される(ステップT31)。このとき、ダンプ取得部32は、第1RAM33内の第2領域33bに取得したログを格納する。次いで、ダンプ取得部32により、取得したログが、不揮発性メモリ4の第2領域41b(ステップT32)及びCPU2のRAM22内の第2領域22bへ転送され、格納される(ステップT33)。
以上の処理により、デバイス5Cから専用伝送路7c経由で監視FPGA3へエラー通知があった場合の情報処理装置1の動作が完了する。
上述のように、本実施形態に係る監視FPGA3によれば、デバイス5で障害が発生した際に、ログの採取結果がCPU2が有するRAM22及び不揮発性メモリ4の少なくとも一方に書き込まれる。これにより、デバイス5においてリード応答が無い故障が発生した場合であっても、CPU2がデバイス5からログを採取せずに済むため、CPU2以外のデバイス5の要因により、CPU2が例外処理に入りハングアップしてしまうことを防止できる。また、CPU2がデバイス5のログを参照したい場合には、配下デバイス5をリードせずに、自身のRAM22又は不揮発性メモリ4を参照すれば良い。
また、監視FPGA3により、発生した障害の内容が現象別にコード化されてCPU2に通知される。これにより、CPU2は、例えば障害が発生したデバイス5がリード応答可能か否かを判断することができ、リード応答不可である場合に当該デバイス5へのアクセスを抑止できるため、ログの採取以外の目的によるデバイス5へのアクセスで、CPU2がハングアップしてしまうことを防止できる。
さらに、監視FPGA3による定期ダンプにより、定期的に配下デバイス5のログが採取され、CPU2が有するRAM22及び不揮発性メモリ4の少なくとも一方に書き込まれる。さらに、監視FPGA3によるトリガダンプにより、トリガの検出を契機に、定期ダンプによるログの格納領域とは別の領域にログが格納される。これにより、CPU2は、デバイス5における障害発生直前及び障害発生後の両方のログを参照することができ、ログの解析に効果的である。
また、レジスタダンプやトリガの検出は、ハードウェアである監視FPGA3により実行されるため、CPU2において、ソフトウェアによりレジスタダンプやトリガの検出を行なう場合と比べて、非常に高速に処理を行なうことができる。
なお、リード応答が無い場合等におけるCPU2のハングアップの発生は、CPU2が汎用CPUである場合により顕著である。従って、本実施形態に係る情報処理装置1は、図3に示すストレージシステム10のように、CPU2として汎用CPUが採用されることが多いシステムに用いて好適である。
〔2〕その他
以上、本発明の好ましい実施形態について詳述したが、本発明は、係る特定の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
例えば、上述した一実施形態では、不揮発性メモリ4がフラッシュメモリ等のメモリであるものとして説明したが、これに限定されるものではない。例えば不揮発性メモリ4は、HDDやSSD等のディスク装置であっても良く、その他のデバイスであっても良い。また、バッテリ等の補助電源から給電可能であれば、不揮発性メモリ4に代えて揮発性メモリが用いられても良い。
また、上述した一実施形態では、CPU2の配下のデバイス5が3つである場合を例に挙げて説明したが、これに限定されるものではなく、デバイス5の数は3未満或いは4以上であっても良い。また、情報処理装置1やデバイス5の冗長性の有無は、一実施形態に係る情報処理装置1の適用に影響を与えるものではない。
さらに、上述した一実施形態では、情報処理装置1がバススイッチ6A〜6Cをそなえるものとして説明したが、これに限定されるものではない。例えば、デバイス5A〜5Cがスイッチとしての機能を持つ場合には、バススイッチ6A〜6Cを省略して、監視FPGA3が制御線の代わりに低速伝送路7bを介してスイッチの機能の制御を行なっても良い。
また、図4に示すシーケンス図において、CPU2は、ステップT10で高速伝送路7a経由でデバイス5Cからのエラー通知を受けた場合、ステップT11のバイパスリードの指示を行なわずに、デバイス5Cでエラーが発生したことの通知を監視FPGA3にしても良い。この場合、ステップT12及びT13は行なわれず、監視FPGA3は、上記(i)によるトリガの検出に基づき、“0x0_0yy_xxxx”のエラーコードを生成して、図5のステップT27〜T33の処理を実行することになる。
〔3〕付記
以上の実施形態に関し、更に以下の付記を開示する。
(付記1)
被監視装置を監視する監視装置であって、
前記被監視装置と前記被監視装置に対する処理を行なう処理装置との間に介設され、
前記被監視装置において発生した障害を検出する検出部と、
前記検出部が検出した障害の内容を示す障害情報を生成し、生成した障害情報と前記障害の発生とを前記処理装置へ通知する通知部と、
前記障害の発生に応じて、前記被監視装置から前記被監視装置の前記障害の発生後の状態情報を取得して記憶部へ格納する取得部と、
を有することを特徴とする、監視装置。
(付記2)
前記取得部は、前記被監視装置から定期的に状態情報を取得して前記記憶部の第1領域へ格納し、前記障害の発生に応じて、前記定期的な状態情報の取得を抑止するとともに、前記障害の発生後の状態情報を取得して前記記憶部の第2領域へ格納することを特徴とする、付記1記載の監視装置。
(付記3)
前記取得部は、前記取得した定期的な状態情報を、前記処理装置がアクセス可能な不揮発性メモリである前記記憶部の第1領域へ格納するとともに、前記取得した障害の発生後の状態情報を、前記不揮発性メモリの第2領域へ格納することを特徴とする、付記2記載の監視装置。
(付記4)
前記取得部は、前記取得した定期的な状態情報を、前記処理装置が有するメモリである前記記憶部の第1領域へ格納するとともに、前記取得した障害の発生後の状態情報を、前記メモリの第2領域へ格納することを特徴とする、付記2又は付記3記載の監視装置。
(付記5)
前記取得部は、前記処理装置からの前記被監視装置の状態情報の取得要求を受けると、前記取得要求により指示された前記被監視装置から状態情報を取得して、前記メモリの第3領域へ格納することを特徴とする、付記4記載の監視装置。
(付記6)
前記検出部は、前記通知部が前記生成した障害情報と前記障害の発生とを前記処理装置へ通知すると、前記障害が発生した被監視装置をシステムから切り離すことを特徴とする、付記1〜5のいずれか1項記載の監視装置。
(付記7)
前記検出部は、前記被監視装置と障害の発生を通知するための信号線で接続され、前記被監視装置から前記信号線を介した通知を受けると、前記障害を検出することを特徴とする、付記1〜6のいずれか1項記載の監視装置。
(付記8)
前記検出部は、前記処理装置から障害の発生の通知を受けた場合、前記取得部による前記定期的な状態情報の取得において障害が発生した場合、及び、前記被監視装置から前記信号線を介した通知を受けた場合、の少なくとも1つの場合に、前記障害を検出することを特徴とする、付記7記載の監視装置。
(付記9)
前記通知部は、生成した障害情報を前記記憶部の所定の領域に格納するとともに、前記処理装置に対して前記障害の発生を割り込みで通知することを特徴とする、付記1〜8のいずれか1項記載の監視装置。
(付記10)
被監視装置と、
前記被監視装置に対する処理を行なう処理装置と、
前記被監視装置を監視する監視装置と、
前記監視装置による監視結果を格納する記憶部と、を有し、
前記監視装置は、
前記被監視装置と前記処理装置との間に介設され、
前記被監視装置において発生した障害を検出する検出部と、
前記検出部が検出した障害の内容を示す障害情報を生成し、生成した障害情報と前記障害の発生とを前記処理装置へ通知する通知部と、
前記障害の発生に応じて、前記被監視装置から前記被監視装置の前記障害の発生後の状態情報を取得して前記記憶部へ格納する取得部と、
を有することを特徴とする、情報処理装置。
(付記11)
被監視装置と前記被監視装置に対する処理を行なう処理装置との間に介設され、前記被監視装置を監視する監視装置における監視方法であって、
前記被監視装置において発生した障害を検出し、
前記検出した障害の内容を示す障害情報を生成し、
生成した障害情報と前記障害の発生とを前記処理装置へ通知し、
前記障害の発生に応じて、前記被監視装置から前記被監視装置の前記障害の発生後の状態情報を取得して記憶部へ格納する、
ことを特徴とする、監視方法。
(付記12)
前記格納する処理において、
前記被監視装置から定期的に状態情報を取得して前記記憶部の第1領域へ格納し、
前記障害の発生に応じて、前記定期的な状態情報の取得を抑止するとともに、前記障害の発生後の状態情報を取得して前記記憶部の第2領域へ格納することを特徴とする、付記11記載の監視方法。
(付記13)
前記格納する処理において、
前記取得した定期的な状態情報を、前記処理装置がアクセス可能な不揮発性メモリである前記記憶部の第1領域へ格納するとともに、
前記取得した障害の発生後の状態情報を、前記不揮発性メモリの第2領域へ格納することを特徴とする、付記12記載の監視方法。
(付記14)
前記格納する処理において、
前記取得した定期的な状態情報を、前記処理装置が有するメモリである前記記憶部の第1領域へ格納するとともに、
前記取得した障害の発生後の状態情報を、前記メモリの第2領域へ格納することを特徴とする、付記12又は付記13記載の監視方法。
(付記15)
前記処理装置からの前記被監視装置の状態情報の取得要求を受けると、前記取得要求により指示された前記被監視装置から状態情報を取得して、前記メモリの第3領域へ格納することを特徴とする、付記14記載の監視方法。
(付記16)
前記検出する処理において、
前記通知する処理において前記生成した障害情報と前記障害の発生とを前記処理装置へ通知すると、前記障害が発生した被監視装置をシステムから切り離すことを特徴とする、付記11〜15のいずれか1項記載の監視方法。
(付記17)
前記検出する処理において、
前記被監視装置から障害の発生を通知するための信号線を介した通知を受けると、前記障害を検出することを特徴とする、付記11〜16のいずれか1項記載の監視方法。
(付記18)
前記検出する処理において、
前記処理装置から障害の発生の通知を受けた場合、前記格納する処理による前記定期的な状態情報の取得において障害が発生した場合、及び、前記被監視装置から前記信号線を介した通知を受けた場合、の少なくとも1つの場合に、前記障害を検出することを特徴とする、付記17記載の監視方法。
(付記19)
前記通知する処理において、
生成した障害情報を前記記憶部の所定の領域に格納するとともに、
前記処理装置に対して前記障害の発生を割り込みで通知することを特徴とする、付記11〜18のいずれか1項記載の監視方法。
(付記20)
被監視装置を監視する集積回路であって、
前記被監視装置と前記被監視装置に対する処理を行なう処理装置との間に介設され、
前記被監視装置において発生した障害を検出し、
前記検出した障害の内容を示す障害情報を生成し、
生成した障害情報と前記障害の発生とを前記処理装置へ通知し、
前記障害の発生に応じて、前記被監視装置から前記被監視装置の前記障害の発生後の状態情報を取得して記憶部へ格納する、
ことを特徴とする、集積回路。
1 情報処理装置
1′−1,1′−2 CM(情報処理装置)
10 ストレージシステム(情報処理システム)
10A CE
11 キャッシュメモリ
12 専用LSI
13 フラッシュメモリ
14 SCU
15 PSU
16 バックプレーン
16a ディスク装置
100 情報処理装置
2 CPU(処理部,処理装置)
21,210 コア
22 RAM(記憶部,メモリ)
22a,33a,41a 第1領域
22b,33b,41b 第2領域
22c 第3領域
22d,31a,41c コード領域
23,54,55a〜55c,230 高速IF
24,36,37,52,240 低速IF
25,38,42 IF
200 CPU
220 RAM
220a ログ領域
3 監視FPGA(監視部,監視装置)
31 障害検出部(検出部,通知部)
32 ダンプ取得部(取得部)
33 第1RAM
34 第2RAM
34a テーブル
35 アービタ
300 監視FPGA
4 不揮発性メモリ(記憶部)
4A パネル
400 不揮発性メモリ
5,5A〜5C デバイス(非監視部,非監視装置)
5D FCコントローラ
5E エクスパンダ
51 エラー通知部
53 レジスタ(状態情報)
500A〜500C デバイス
6A〜6C バススイッチ
7a,700a 高速伝送路
7b,700b 低速伝送路
7c 専用伝送路(伝送路)
7d 制御線
8−1,8−2 ホスト装置

Claims (10)

  1. 被監視装置を監視する監視装置であって、
    前記被監視装置と前記被監視装置に対する処理を行なう処理装置との間に介設され、
    前記被監視装置において発生した障害を検出する検出部と、
    前記検出部が検出した障害の内容を示す障害情報を生成し、生成した障害情報と前記障害の発生とを前記処理装置へ通知する通知部と、
    前記障害の発生前に、前記被監視装置から状態情報を取得して記憶部の第1領域へ格納し、前記障害の発生に応じて、前記被監視装置から前記被監視装置の前記障害の発生後の状態情報を取得して前記記憶部の第2領域へ格納する取得部と、
    を有することを特徴とする、監視装置。
  2. 前記取得部は、前記被監視装置から定期的に状態情報を取得して前記記憶部の前記第1領域へ格納し、前記障害の発生に応じて、前記定期的な状態情報の取得を抑止するとともに、前記障害の発生後の状態情報を取得して前記記憶部の前記第2領域へ格納することを特徴とする、請求項1記載の監視装置。
  3. 前記取得部は、前記取得した定期的な状態情報を、前記処理装置がアクセス可能な不揮発性メモリである前記記憶部の第1領域へ格納するとともに、前記取得した障害の発生後の状態情報を、前記不揮発性メモリの第2領域へ格納することを特徴とする、請求項2記載の監視装置。
  4. 前記取得部は、前記取得した定期的な状態情報を、前記処理装置が有するメモリである前記記憶部の第1領域へ格納するとともに、前記取得した障害の発生後の状態情報を、前記メモリの第2領域へ格納することを特徴とする、請求項2又は請求項3記載の監視装置。
  5. 前記取得部は、前記処理装置からの前記被監視装置の状態情報の取得要求を受けると、前記取得要求により指示された前記被監視装置から状態情報を取得して、前記メモリの第3領域へ格納することを特徴とする、請求項4記載の監視装置。
  6. 前記検出部は、前記通知部が前記生成した障害情報と前記障害の発生とを前記処理装置へ通知すると、前記障害が発生した被監視装置をシステムから切り離すことを特徴とする、請求項1〜5のいずれか1項記載の監視装置。
  7. 前記検出部は、前記被監視装置と障害の発生を通知するための信号線で接続され、前記被監視装置から前記信号線を介した通知を受けると、前記障害を検出することを特徴とする、請求項1〜6のいずれか1項記載の監視装置。
  8. 前記通知部は、生成した障害情報を前記記憶部の所定の領域に格納するとともに、前記処理装置に対して前記障害の発生を割り込みで通知することを特徴とする、請求項1〜7のいずれか1項記載の監視装置。
  9. 被監視装置と、
    前記被監視装置に対する処理を行なう処理装置と、
    前記被監視装置を監視する監視装置と、
    前記監視装置による監視結果を格納する記憶部と、を有し、
    前記監視装置は、
    前記被監視装置と前記処理装置との間に介設され、
    前記被監視装置において発生した障害を検出する検出部と、
    前記検出部が検出した障害の内容を示す障害情報を生成し、生成した障害情報と前記障害の発生とを前記処理装置へ通知する通知部と、
    前記障害の発生前に、前記被監視装置から状態情報を取得して前記記憶部の第1領域へ格納し、前記障害の発生に応じて、前記被監視装置から前記被監視装置の前記障害の発生後の状態情報を取得して前記記憶部の第2領域へ格納する取得部と、
    を有することを特徴とする、情報処理装置。
  10. 被監視装置と前記被監視装置に対する処理を行なう処理装置との間に介設され、前記被監視装置を監視する監視装置における監視方法であって、
    前記被監視装置において発生した障害を検出し、
    前記検出した障害の内容を示す障害情報を生成し、
    生成した障害情報と前記障害の発生とを前記処理装置へ通知し、
    前記障害の発生前に、前記被監視装置から状態情報を取得して記憶部の第1領域へ格納し、
    前記障害の発生に応じて、前記被監視装置から前記被監視装置の前記障害の発生後の状態情報を取得して前記記憶部の第2領域へ格納する、
    ことを特徴とする、監視方法。
JP2012168094A 2012-07-30 2012-07-30 監視装置、情報処理装置、及び監視方法 Expired - Fee Related JP6003350B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012168094A JP6003350B2 (ja) 2012-07-30 2012-07-30 監視装置、情報処理装置、及び監視方法
US13/902,847 US9092453B2 (en) 2012-07-30 2013-05-26 Monitoring device, information processing apparatus, and monitoring method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012168094A JP6003350B2 (ja) 2012-07-30 2012-07-30 監視装置、情報処理装置、及び監視方法

Publications (2)

Publication Number Publication Date
JP2014026567A JP2014026567A (ja) 2014-02-06
JP6003350B2 true JP6003350B2 (ja) 2016-10-05

Family

ID=49996152

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012168094A Expired - Fee Related JP6003350B2 (ja) 2012-07-30 2012-07-30 監視装置、情報処理装置、及び監視方法

Country Status (2)

Country Link
US (1) US9092453B2 (ja)
JP (1) JP6003350B2 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013201831A1 (de) * 2013-02-05 2014-08-07 Siemens Aktiengesellschaft Verfahren und Vorrichtung zum Analysieren von Ereignissen in einem System
CN104166613A (zh) * 2013-05-20 2014-11-26 鸿富锦精密工业(深圳)有限公司 硬盘工作状态监控系统及方法
JP6307847B2 (ja) * 2013-11-19 2018-04-11 富士通株式会社 情報処理装置,制御装置及び制御プログラム
US10102052B2 (en) * 2014-01-29 2018-10-16 Hewlett Packard Enterprise Development Lp Dumping resources
FR3021430B1 (fr) * 2014-05-20 2016-05-13 Bull Sas Procede d'obtention d'informations stockees dans des registres de module(s) de traitement d'un calculateur juste apres la survenue d'une erreur fatale
US9760382B2 (en) * 2014-06-24 2017-09-12 Los Alamos National Security, Llc Modular space vehicle boards, control software, reprogramming, and failure recovery
JP6455302B2 (ja) * 2015-04-30 2019-01-23 富士通株式会社 バス通信システム
JP2018522357A (ja) * 2015-07-29 2018-08-09 メイコム コネクティビティ ソリューションズ,エルエルシーMacom Connectivity Solutions,Llc データリクエストに関連するクロックカウンタに基づくタイムアウト信号の生成
US10419278B2 (en) * 2015-10-02 2019-09-17 Ricoh Company, Ltd. Device management system, information processing apparatus, and information processing method
CN105261808B (zh) * 2015-10-21 2017-07-11 大连理工大学 一种低品位热能发电方法及装置
TWI587130B (zh) * 2016-11-24 2017-06-11 神雲科技股份有限公司 硬碟燈號控制系統
CN108319540B (zh) * 2017-01-18 2020-08-11 佛山市顺德区顺达电脑厂有限公司 硬盘灯号控制系统
IT201800003234A1 (it) * 2018-03-02 2019-09-02 Stmicroelectronics Application Gmbh Sistema di elaborazione, relativo circuito integrato e procedimento
CN111143112B (zh) * 2018-11-02 2023-08-25 伊姆西Ip控股有限责任公司 用于恢复元数据的方法、设备和计算机可读存储介质
US11487601B2 (en) * 2020-03-26 2022-11-01 Arista Networks, Inc. Persistent crash logging
US11204821B1 (en) * 2020-05-07 2021-12-21 Xilinx, Inc. Error re-logging in electronic systems
US20220058042A1 (en) * 2020-08-24 2022-02-24 Juniper Networks, Inc. Intent-based telemetry collection service

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS576951A (en) 1980-06-13 1982-01-13 Fujitsu Ltd Error logging system
JPS5896326A (ja) 1981-12-03 1983-06-08 Hitachi Ltd 入出力制御方法
JPS59127131A (ja) * 1983-01-10 1984-07-21 Hitachi Ltd バス監視方式
JPH02212946A (ja) * 1989-02-13 1990-08-24 Nec Corp 情報処理装置の障害通知方式
JPH10207790A (ja) 1997-01-20 1998-08-07 Fuji Xerox Co Ltd 入出力制御装置
JP2002182992A (ja) * 2000-12-14 2002-06-28 Nec Corp Scsi装置におけるダンプデータ採取方式および方法
JP4246544B2 (ja) 2003-05-21 2009-04-02 富士通株式会社 ディスク装置及びディスク装置のロギング方法
JP2006178720A (ja) * 2004-12-22 2006-07-06 Hitachi Ltd ストレージシステム
JP2010140361A (ja) * 2008-12-12 2010-06-24 Fujitsu Microelectronics Ltd コンピュータシステム及び異常検出回路
JP5503177B2 (ja) * 2009-04-01 2014-05-28 株式会社日立システムズ 障害情報収集装置

Also Published As

Publication number Publication date
US20140032965A1 (en) 2014-01-30
JP2014026567A (ja) 2014-02-06
US9092453B2 (en) 2015-07-28

Similar Documents

Publication Publication Date Title
JP6003350B2 (ja) 監視装置、情報処理装置、及び監視方法
US7571356B2 (en) Storage control device, and error information management method for storage control device
US8667337B2 (en) Storage apparatus and method of controlling the same
US11157373B2 (en) Prioritized transfer of failure event log data
JP5561622B2 (ja) 多重化システム、データ通信カード、状態異常検出方法、及びプログラム
JP2008262538A (ja) 入出力(i/o)エラーをハンドリングするための方法及びシステム
US20170139605A1 (en) Control device and control method
US9575855B2 (en) Storage apparatus and failure location identifying method
TW201828071A (zh) 開關裝置及偵測積體電路匯流排之方法
US20070016901A1 (en) Storage system and automatic renewal method of firmware
US10157005B2 (en) Utilization of non-volatile random access memory for information storage in response to error conditions
JP2015114873A (ja) 情報処理装置および監視方法
US20230251931A1 (en) System and device for data recovery for ephemeral storage
US20140156934A1 (en) Storage apparatus and module-to-module data transfer method
US9568986B2 (en) System-wide power conservation using memory cache
JP5440073B2 (ja) 情報処理装置,情報処理装置の制御方法および制御プログラム
JP2009069963A (ja) マルチプロセッサシステム
JP6356822B2 (ja) 計算機システム及びメモリダンプ方法
TWI756007B (zh) 用以進行全快閃記憶體陣列伺服器的高可用性管理的方法與設備
US11971789B2 (en) Systems, methods, and apparatus for crash recovery in storage devices
JP6256087B2 (ja) ダンプシステムおよびダンプ処理方法
JP5440673B1 (ja) プログラマブルロジックデバイス、情報処理装置、被疑箇所指摘方法およびプログラム
US20160259695A1 (en) Storage and control method of the same
JPWO2014112039A1 (ja) 情報処理装置、情報処理装置制御方法及び情報処理装置制御プログラム
JP2014182676A (ja) ログ採取装置、演算装置、およびログ採取方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150406

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160323

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160809

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160822

R150 Certificate of patent or registration of utility model

Ref document number: 6003350

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees