(57)【要約】  信号変動判定部（１４２）は、ハードディスクドライブ（１５）の出力データを基に出力異常を検出する。ＨＤコントローラ（１３）は、信号変動判定部（１４２）により出力異常が検出された場合、ハードディスクドライブ（１５）に対してリセット信号を送信して前記ハードディスクドライブ（１５）を再起動させるリセット処理を行う。復旧可否判定部（１４４）は、ＨＤコントローラ（１３）によるリセット処理の回数が閾値を超えた場合、ハードディスクドライブ（１５）の電源のオンオフを行う。ＣＰＵは、復旧可否判定部（１４４）による電源のオンオフによりハードディスクドライブ（１５）が起動した場合、前記ハードディスクドライブ（１５）に障害記録を格納する障害記録採取処理を行う。
2014112039.tif 000002
【特許請求の範囲】
【請求項１】
ハードディスクドライブの出力データを基に出力異常を検出する出力異常検出部と、
前記出力異常検出部により出力異常が検出された場合、前記ハードディスクドライブに対してリセット信号を送信して前記ハードディスクドライブを再起動させるリセット処理を行うリセット部と、
前記リセット部による前記リセット処理の回数が閾値を超えた場合、前記ハードディスクドライブの電源のオンオフを行うＨＤＤ電源制御部と、
前記ＨＤＤ電源制御部による電源のオンオフにより前記ハードディスクドライブが起動した場合、前記ハードディスクドライブに障害記録を格納する障害記録採取処理を行う障害記録採取部と
を備えたことを特徴とする情報処理装置。
【請求項２】
前記出力異常検出部は、所定時間にハードディスクドライブからの出力データに変化が無ければ出力異常と判定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記ＨＤＤ電源制御部は、前記ハードディスクドライブによる起動割り込みが発生した場合に、前記ハードディスクドライブが起動したと判定し、
前記障害記録採取部は、前記ＨＤＤ電源制御部により前記ハードディスクドライブが起動したと判定された場合に、前記障害記録採取処理を行うことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記ＨＤＤ電源制御部による電源のオンオフの回数が所定回数を超えた場合、情報処理装置の電源を落とす電源制御部をさらに備えたことを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記出力異常検出部は、前記障害記録採取部による前記障害記録採取処理の間も、前記ハードディスクドライブの出力異常の検出を行い、
前記リセット部は、前記障害記録採取部による前記障害記録採取処理の間に、前記出力異常検出部により出力異常が検出された場合、前記リセット処理を行い、
前記ＨＤＤ電源制御部は、前記障害記録採取部による前記障害記録採取処理の間に、前記リセット部による前記リセット処理の回数が閾値を超えた場合、前記ハードディスクドライブの電源のオンオフを行い、
前記障害記録採取部は、前記障害記録採取処理の間に、前記ＨＤＤ電源制御部による電源のオンオフが行われた場合、前記ハードディスクドライブが起動すれば再度障害記録採取処理を行う
ことを特徴とする請求項１に記載の情報処理装置。
【請求項６】
ハードディスクドライブの出力データを基に出力異常を検出し、
前記出力異常を検出した場合、前記ハードディスクドライブに対してリセット信号を送信して前記ハードディスクドライブを再起動させるリセット処理を繰り返し、
前記リセット処理の回数が閾値を超えた場合、前記ハードディスクドライブの電源のオンオフを行い、
前記電源のオンオフにより前記ハードディスクドライブが起動した場合、前記ハードディスクドライブに障害記録を格納する障害記録採取処理を行う
ことを特徴とする情報処理装置制御方法。
【請求項７】
ハードディスクドライブの出力データを基に出力異常を検出し、
前記出力異常を検出した場合、前記ハードディスクドライブに対してリセット信号を送信して前記ハードディスクドライブを再起動させるリセット処理を行うとともに、
前記リセット処理の回数が閾値を超えた場合、前記ハードディスクドライブの電源のオンオフを行い、
前記電源のオンオフにより前記ハードディスクドライブが正常に起動した場合、前記ハードディスクに障害記録を格納する
処理をコンピュータに実行させることを特徴とする情報処理装置制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理装置制御方法及び情報処理装置制御プログラムに関する。
【背景技術】
【０００２】
サーバなどの情報処理装置において、ハードディスクドライブ（ＨＤＤ：Hard  Disk  Drive）の信号端子は、インタフェース信号バスを通じてハードディスクコントローラと接続されている。また、ハードディスクドライブの電源端子は、ＨＤＤ給電線を通じて、電源回路と接続されており、動作のための電力を得ている。そして、ＯＳ（Operation  System）やその他のソフトウェアは、ハードディスクドライブから読み出され、メモリ上に展開され、ＣＰＵ（Central  Processing  Unit）により実行される。【０００３】
そして、ＯＳやその他のソフトウェアに影響を与える障害が発生し、ＯＳがハングアップすると、以下のような処理が発生する。まず、マイクロコントローラであるＢＭＣ（Baseboard  Management  Controller）により、ハングアップが検出され、ＯＳに対して強制ダンプの命令が発動される。ここで、ＢＭＣは、サーバ内蔵のＣＰＵやメモリから独立して、それらの監視及びコントロール等を行う管理用のコントローラである。次に、ＯＳのクラッシュダンプ機能により、メモリ上のデータが一旦ハードディスクドライブのスワップ領域に退避させられる。次に、ＯＳのクラッシュダンプ機能により、サーバのリセット処理が動作する。さらに、ＯＳの再起動後、ＯＳのクラッシュダンプ機能により、ＯＳの再起動時にスワップ領域に退避していたデータが、ハードディスクドライブ上のクラッシュダンプ格納ディレクトリにセーブされる。このようにＯＳのクラッシュダンプ機能によりデータを採取することにより、情報処理装置は、障害記録を残すことができる。そして、情報処理装置の管理者は、障害記録を解析することで、障害の原因究明などを行うことができる。【０００４】
なお、ハードディスク制御装置のウォッチドッグタイマの状態を監視し、ウォッチドッグタイマの動作を複数回検出した場合、信号によるリセット及び電源のＯＮ及びＯＦＦにより、ハードディスク制御装置の復旧を図る従来技術がある（例えば、特許文献１参照）。また、ハードディスクドライブからの応答が無い場合又はエラー応答の場合、ハードディスクドライブを再起動する従来技術がある（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−９１９２号公報
【特許文献２】特開２０１１−７６６６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、ハードディスクドライブが動作を停止し、さらにハードディスクドライブのファームウェアのバグなどの要因によりリセット信号などを用いても復旧しないことを要因としてハングアップが発生することが考えられる。このような場合、ＯＳのクラッシュダンプ機能が動作しようとしても、ハードディスクドライブが動作しないため、上述したようなデータ採取などの動作を行うことができない。【０００７】
システムによっては、ネットワーク上の他のサーバからｐｉｎｇなどを用いた応答の有無の確認によるサーバの動作正常性のチェックを行っている場合がある。しかし、ハードディスクの動作停止などの障害の場合、応答ができてしまうことが多く、障害の検出が困難である。そのため、ハングアップ前に、ハードディスクの動作停止の障害を検出することは困難である。【０００８】
また、ハードディスクドライブが動作停止した場合、それ以外の部分は正常稼動であれば、ハードディスクドライブに対する電源再投入で復旧する可能性がある場合が多い。しかし、ハードディスクドライブに対する電源再投入を適切に行う手立てが無い場合、ハードディスクドライブの復旧を適切に行うことが困難である。【０００９】
以上のようなことから、ハードディスクドライブの動作停止に起因してサーバに障害が発生したことをシステム上検出することは困難であり、ハードディスクドライブの動作異常時による障害記録の未採取の発生を低減することは困難である。【００１０】
また、ウォッチドッグタイマの動作を基にハードディスク制御装置の復旧を図る従来技術では、ハードディスクドライブがアイドル状態なのか異常が発生しているのかの切り分けが困難であり、ハードディスクドライブの動作異常を適切に検出することが困難である。また、ハードディスクドライブからの応答の状態を基に復旧を行う従来技術においても、ハードディスクドライブがアイドル状態なのか異常が発生しているのかの切り分けが困難であり、ハードディスクドライブの動作異常を適切に検出することが困難である。そのため、これらの従来技術を用いても、ハードディスクドライブの動作異常時による障害記録の未採取の発生を低減することは困難である。【００１１】
開示の技術は、上記に鑑みてなされたものであって、ハードディスクドライブの動作異常による障害記録の未採取の発生を低減する、情報処理装置、情報処理装置制御方法及び情報処理装置制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本願の開示する情報処理装置、情報処理装置制御方法及び情報処理装置制御プログラムは、一つの態様において、出力異常検出部は、ハードディスクドライブの出力データを基に出力異常を検出する。リセット部は、前記出力異常検出部により出力異常が検出された場合、前記ハードディスクドライブに対してリセット信号を送信して前記ハードディスクドライブを再起動させるリセット処理を行う。ＨＤＤ電源制御部は、前記リセット部による前記リセット処理の回数が閾値を超えた場合、前記ハードディスクドライブの電源のオンオフを行う。障害記録採取部は、前記ＨＤＤ電源制御部による電源のオンオフにより前記ハードディスクドライブが起動した場合、障害記録の採取を行う。
【発明の効果】
【００１３】
本願の開示する情報処理装置、情報処理装置制御方法及び情報処理装置制御プログラムの一つの態様によれば、ハードディスクドライブの動作異常による障害記録の未採取の発生を低減することができるという効果を奏する。
【図面の簡単な説明】
【００１４】
【図１】図１は、実施例１に係るサーバのブロック図である。
【図２】図２は、信号監視部の詳細を表すブロック図である。
【図３】図３は、実施例１に係る情報処理装置におけるハードディスクドライブの障害検出処理のフローチャートである。
【図４】図４は、実施例２に係る情報処理装置におけるダンプ処理のフローチャートである。
【図５】図５は、各実施例に係るサーバのハードウェア構成の一例の図である。
【発明を実施するための形態】
【００１５】
以下に、本願の開示する情報処理装置、情報処理装置制御方法及び情報処理装置制御プログラムの実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する情報処理装置、情報処理装置制御方法及び情報処理装置制御プログラムが限定されるものではない。
【実施例１】
【００１６】
図１は、実施例１に係るサーバのブロック図である。図１に示すように、本実施例に係るサーバ１は、ＣＰＵ１１、メモリ１２、ＨＤコントローラ１３、信号監視部１４、ハードディスクドライブ１５、カウンタリセットタイマ１６、電源スイッチ１７、ＢＭＣ１８、サーバ電源１９及びＨＤＤ電源２０を有している。【００１７】
ここで、本実施例に係るサーバ１は、ＲＡＩＤなどが構成されていないＤＡＳ（Direct  Attached  Storage）の情報処理装置である。例えば、サーバ１は、ハードディスクドライブが１台しか搭載されていない通信用の情報処理装置などである。【００１８】
ＨＤＤ電源２０は、ハードディスクドライブ１５に供給する電力の供給源である。図１では、一点鎖線によりＨＤＤ電源２０からハードディスクドライブ１５への電力の供給経路を表している。【００１９】
電源スイッチ１７は、ＦＥＴ（Field  effect  transistor）スイッチなどである。電源スイッチ１７がオンの場合、ＨＤＤ電源２０からの電力がハードディスクドライブ１５へ供給される。また、電源スイッチ１７がオフの場合、ＨＤＤ電源２０からの電力のハードディスクドライブ１５への供給が停止される。【００２０】
サーバ電源１９は、サーバ１に搭載されたＣＰＵ１１やメモリ１２といった各部への電力の供給源である。サーバ電源１９は、例えば、図１における点線で囲われた内部に存在する各部へ電力を供給する。【００２１】
ＣＰＵ１１は、ＨＤコントローラ１３に対してハードディスクドライブ１５へのデータの書き込み及びデータの読み出しを指示する。このように、実際には、ＣＰＵ１１はＨＤコントローラ１３を介してハードディスクドライブ１５に対するデータの読み書きを行うが、以下の説明では、便宜上ＣＰＵ１１がハードディスクドライブ１５に対してデータの読み書きを行うように説明する場合がある。ＣＰＵ１１は、例えば、ＨＤコントローラ１３を介してハードディスクドライブ１５に格納されたＯＳやその他のプログラムなどを読み出しメモリ１２などに展開する。そして、ＣＰＵ１１は、メモリ１２等を使用して演算処理などの各種処理を行う。【００２２】
また、ハードディスクドライブ１５の応答異常時に、ハードディスクドライブ１５に対してリセット信号の送信をＨＤコントローラ１３へ指示する。ここで、ハードディスクドライブ１５の応答異常には、例えば、ハードディスクドライブ１５からの応答が無い状態などが含まれる。【００２３】
また、ＯＳがハングアップすると、ＣＰＵ１１は、ＢＭＣ１８から強制的にメモリ１２内のデータの保存を実行する強制ダンプの割り込みを受ける。強制ダンプの割り込みを受けると、ＣＰＵ１１は、ＯＳのクラッシュダンプ機能を実行し、メモリ１２上のデータをメモリ１２から読み出す。そして、ＣＰＵ１１は、ＯＳのクラッシュダンプ機能により、読み出したデータをハードディスクドライブ１５のスワップ領域に格納する。【００２４】
次に、ＯＳのクラッシュダンプ機能により、サーバ１の再起動が行われる。その後、ＣＰＵ１１は、ＯＳのクラッシュダンプ機能により、ハードディスクドライブ１５のスワップ領域に退避させておいたデータをハードディスクドライブ１５のクラッシュダンプ格納ディレクトリに格納する。【００２５】
メモリ１２には、ＣＰＵ１１によりＯＳやその他のプログラムなどが展開される。また、ＯＳのクラッシュダンプ機能が実行された場合、メモリ１２上のデータが読み出されハードディスクドライブ１５に格納される。【００２６】
ＣＰＵ１１及びメモリ１２が、「障害記録採取部」の一例にあたる。【００２７】
ＨＤコントローラ１３は、ＣＰＵ１１からの指示を受け、ハードディスクドライブ１５へのデータの書き込み及びハードディスクドライブ１５からのデータの読み出しを行う。ＨＤコントローラ１３は、ハードディスクドライブ１５から読み出したデータをＣＰＵ１１へ出力する。具体的には、ＨＤコントローラ１３は、例えば、ハードディスクドライブ１５との間でＨＤＤインタフェース信号を送受信することによりデータの読み書きを行う。【００２８】
また、ＨＤコントローラ１３は、ハードディスクドライブ１５の応答異常時にＣＰＵ１１からの指示を受けて、リセット信号を信号監視部１４へ送信する。ＨＤコントローラ１３は、応答異常が復旧するまでリセット信号の送信を行う。【００２９】
信号監視部１４は、ＨＤコントローラ１３とハードディスクドライブ１５との間に設けられる。図２は、信号監視部の詳細を表すブロック図である。図２に示すように、信号監視部１４は、データ変動計測タイマ１４１、信号変動判定部１４２、リセットカウンタ１４３及び復旧可否判定部１４４を有している。【００３０】
データ変動計測タイマ１４１は、予め決められた所定時間であるｎ秒毎に、信号変動判定部１４２に対して割り込みを行う。ここで、所定時間であるｎ秒は、サーバ１の運用状態、すなわち、どのようなプログラムを使用しているかなどに応じて設定することが好ましい。本実施例では、例えば、１回のデータの読み出しは１分以内で終わることが多いので、所定時間であるｎ秒を１分と設定する。【００３１】
信号変動判定部１４２は、データの書き込みの場合、ＨＤコントローラ１３から書き込みデータを受信する。そして、信号変動判定部１４２は、受信した書き込みデータをハードディスクドライブ１５へ格納する。【００３２】
データの読み出しの場合、信号変動判定部１４２は、ハードディスクドライブ１５から読み出すデータをＨＤインタフェース信号で受信する。そして、信号変動判定部１４２は、受信したＨＤインタフェース信号をＨＤコントローラ１３へ出力する。また、信号変動判定部１４２は、ｎ秒毎に割り込みをデータ変動計測タイマ１４１から受ける。そして、信号変動判定部１４２は、データ変動計測タイマ１４１からの割り込みを契機に、予め決められた所定時間に受信したＨＤインタフェース信号に変動があるか否かを判定する。ここで、ＨＤインタフェース信号の変動が無いとは、同じ信号が連続していることを指す。そして、連続する信号としては、例えば、アイドルを表す信号、０などのＬｏｗを表す信号又は１などのＨｉｇｈを表す信号などである。【００３３】
ＨＤインタフェース信号に変動が無いと判定した場合、信号変動判定部１４２は、ＯＳの指示によりＣＰＵ１１から出力されるリセット信号のカウントをリセットカウンタ１４３に指示する。【００３４】
信号変動判定部１４２は、リセットカウンタ１４３を監視し、リセットカウンタ１４３のカウンタ値が初期値にリセットされた場合、ｎ秒毎のＨＤＤインタフェース信号の変動の有無の判定を再度繰り返す。【００３５】
また、信号変動判定部１４２は、後述する復旧可否判定部１４４によりハードディスクドライブ１５の電源のオンオフが行われ、ハードディスクドライブ１５が起動すると、ハードディスクドライブ１５から起動割り込みを受信する。その場合、信号変動判定部１４２は、ハードディスクドライブ１５の起動割り込みをＨＤコントローラ１３及びリセットカウンタ１４３へ出力する。この信号変動判定部１４２が、「出力異常検出部」の一例にあたる。【００３６】
リセットカウンタ１４３は、初期値及び閾値が予め与えられている。本実施例では、リセットカウンタ１４３の初期値は０である。また、リセットカウンタ１４３の閾値及びカウンタのリセット間隔は、プログラムによりハードディスクドライブ１５の応答が要求する頻度に応じて設定されることが好ましい。例えば、ハードディスクドライブ１５の応答が要求する頻度が高いプログラムであれば、５分間で１００〜２００回の応答要求が発生する場合が考えられる。そのような場合、後述するカウンタリセットタイマ１６からのカウンタリセットの指示の間隔が５分であれば、例えば、閾値を１００回とするなどが好ましい。ここでは、カウンタリセットタイマ１６からのカウンタリセットの指示の間隔をｍ秒とし、閾値をＭ回とする。【００３７】
リセットカウンタ１４３は、ＯＳの指示によりＣＰＵ１１から出力されたリセット信号をＨＤコントローラ１３から受信する。そして、リセットカウンタ１４３は、受信したリセット信号をハードディスクドライブ１５へ出力する。【００３８】
リセットカウンタ１４３は、ＨＤＤインタフェースデータの変動がない場合、ＯＳの指示によりＣＰＵ１１から出力されるリセット信号のカウントの指示を信号変動判定部１４２から受ける。その後、リセットカウンタ１４３は、ＨＤコントローラ１３からリセット信号を受信する毎にカウンタを１ずつインクリメントしていき、リセット信号の受信した数をカウントする。【００３９】
さらに、リセットカウンタ１４３は、カウンタリセットタイマ１６に対してカウントの開始を通知する。その後、リセットカウンタ１４３は、ｍ秒毎にカウンタリセットタイマ１６からカウンタリセットの指示を受信する。カウンタリセットの指示を受信すると、リセットカウンタ１４３は、自己のカウンタを初期値に戻しカウンタをリセットする。【００４０】
これに対して、カウンタリセットタイマ１６からリセット信号を受信する前にカウンタが閾値Ｍを超えた場合、リセットカウンタ１４３は、ハードディスクドライブ１５が無応答となっていると判定する。ここで、無応答とは、例えば、障害の発生により、ハードディスクドライブ１５が、応答を返せない状態である。すなわち、本実施例に係るサーバ１は、ＨＤインタフェース信号の変化が所定期間無く、且つ、リセット信号が所定値以上の場合に、ハードディスクドライブ１５が無応答であると判定する。これにより、本実施例に係るサーバ１は、単にハードディスクドライブ１５がアイドル状態（ハードディスクドライブ１５にアクセスが無い状態）である場合と無応答である場合とを切り分けることができる。【００４１】
そして、リセットカウンタ１４３は、ＯＳの指示によりＣＰＵ１１から出力されるリセット信号のカウントを停止する。そして、リセットカウンタ１４３は、ハードディスクドライブ１５の復旧が可能か否かの判定を行う復旧可否判定処理の実施を復旧可否判定部１４４に指示する。【００４２】
リセットカウンタ１４３は、信号変動判定部１４２からハードディスクドライブ１５の起動割り込みを受信した場合、受信したハードディスクドライブ１５の起動割り込みを復旧可否判定部１４４へ出力する。【００４３】
復旧可否判定部１４４は、復旧可否判定を行った回数をカウントする復旧可否判定の実施回数のカウンタを有している。また、復旧可否判定部１４４は、ハードディスクドライブ１５が復旧不可か否かを判定するための復旧可否判定の実施回数の閾値を記憶している。ここで、復旧可否判定の実施回数の閾値は、ハードディスクドライブ１５の状態に応じて設定することが好ましい。通常は５〜１０回程度電源のオフオンを行って復旧しなければハードディスクドライブ１５は復旧の見込みは無いと考えられる。そこで、例えば、復旧可否判定部１４４は、復旧可否判定の実施回数の閾値を１０回と記憶するなどしてもよい。以下では、復旧可否判定の実施回数の閾値をＮ回として説明する。【００４４】
復旧可否判定部１４４は、リセットカウンタ１４３のカウンタが閾値を越えた場合、復旧可能判定処理の実施の指示をリセットカウンタ１４３から受ける。そして、復旧可否判定部１４４は、電源スイッチ１７に対してスイッチ制御信号を発行する。例えば、復旧可否判定部１４４は、スイッチ制御信号として電源をオフしその後オンすることを指示するパルス信号を電源スイッチ１７へ送信し、電源スイッチ１７のオフオンを行う。復旧可否判定部１４４は、電源スイッチ１７をオフオンさせることで、ハードディスクドライブ１５への電源の供給を一旦停止した後、再度電源の供給を行う。これにより、復旧可否判定部１４４は、ハードディスクドライブ１５を再起動させる。復旧可否判定部１４４は、電源スイッチ１７のオフオンを行った後、予め決められた所定時間待機し、ハードディスクドライブ１５が再起動するのを待つ。ここで、復旧可否判定部１４４が待機する時間は、ハードディスクドライブ１５のタイプなどに応じて設定されることが好ましい。ハードディスクドライブ１５の起動は一般的に３０秒以内で完了するので、一般的なハードディスクドライブを用いた場合、復旧可否判定部１４４の待機時間は、例えば、３０秒などに設定できる。以下では、復旧可否判定部１４４の待機時間をｔ秒とする。【００４５】
復旧可否判定部１４４は、待機しているｔ秒間にハードディスクドライブ１５の起動割り込みをリセットカウンタ１４３から受信したか否かにより、その間にハードディスクドライブ１５の割り込みが発生したか否かを判定する。【００４６】
電源スイッチ１７をオフオンしてからｔ秒間にハードディスクドライブ１５の起動割り込みを受信した場合、復旧可否判定部１４４はハードディスクドライブ１５が復旧可能か否かの判定を終了して、復旧可否判定を解除する。そして、復旧可否判定部１４４は、強制ダンプの処理の発動を指示する判定信号をＢＭＣ１８へ送信する。【００４７】
これに対して、電源スイッチ１７をオフオンしてからｔ秒間にハードディスクドライブ１５の起動割り込みが無かった場合、復旧可否判定部１４４は、復旧可否判定の実施回数のカウンタを１つインクリメントする。そして、復旧可否判定部１４４は、カウンタの数を用いて復旧可否判定の実施回数が予め決められた閾値であるＮ回以上か否かを判定する。【００４８】
復旧可否判定の実施回数が閾値Ｎ未満であれば、復旧可否判定部１４４は、電源スイッチ１７のオフオンを行い、復旧可否判定を繰り返す。【００４９】
これに対して、復旧可否判定の実施回数が閾値Ｎ以上であれば、復旧可否判定部１４４は、ハードディスクドライブ１５の復旧が不可と判定する。そして、復旧可否判定部１４４は、サーバ電源のオフをＢＭＣ１８に指示する。この復旧可否判定部１４４が、「ＨＤＤ電源制御部」の一例にあたる。【００５０】
ハードディスクドライブ１５は、例えば、磁気ディスクドライブである。ハードディスクドライブ１５は、信号変動判定部１４２を介してＨＤコントローラ１３から送られたデータを受信し、指定されたアドレスに格納する。また、ハードディスクドライブ１５は、ＨＤコントローラ１３から要求されたデータを、信号変動判定部１４２を介してＨＤコントローラ１３へ送信する。具体的には、ハードディスクドライブ１５は、ＨＤインタフェース信号を用いて応答を送信する。【００５１】
カウンタリセットタイマ１６は、予め決められた所定時間であるｍ秒毎に、信号変動判定部１４２に対して割り込みを行う。ここで、所定時間であるｍ秒は、ハードディスクドライブ１５の復旧までの許容時間などの運用状態に応じて設定することが好ましい。例えば、ハードディスクドライブ１５が５分以内程度であればプログラムがデータの読み書きを行わない間隔として考えられるので、所定時間であるｍ秒を５分以内と設定するなどできる。【００５２】
カウンタリセットタイマ１６は、信号監視部１４のリセットカウンタ１４３からカウントの開始の通知を受ける。カウントの開始の通知を受けると、カウンタリセットタイマ１６は、タイマで時間の計測を開始する。そして、タイマが所定時間であるｍ秒になると、カウンタリセットをリセットカウンタ１４３に指示する。そして、カウンタリセットタイマ１６は、タイマをリセットし、ｍ秒の計測を繰り返す。【００５３】
ＢＭＣ１８は、プロセッサやレジスタなどを有している。ＢＭＣ１８は、ＣＰＵ１１やメモリ１２などの動作の監視、温度センサなどの各種センサの状態の監視及びサーバ１の電源制御などの各種のサーバ管理を行う。【００５４】
また、ＢＭＣ１８は、管理者による入力装置などからの指示を受けて、信号監視部１４に対して制御信号を送信することで、復旧可否判定部１４４が記憶している復旧可否判定の実行回数の閾値Ｎ及びリセットカウンタ１４３が記憶している閾値Ｍを変更できる。また、ＢＭＣ１８は、管理者による入力装置などからの指示を受けて、信号監視部１４に対してタイマ制御信号を送信することで、データ変動計測タイマ１４１が記憶している待機時間ｎ秒を変更できる。さらに、ＢＭＣ１８は、管理者による入力装置などからの指示を受けて、カウンタリセットタイマ１６に対してタイマ制御信号を送信することで、カウンタリセットタイマ１６が記憶しているカウンタリセット信号を送信する間隔ｍ秒を変更できる。【００５５】
ＢＭＣ１８は、ハードディスクドライブ１５が復旧不可能と判定された場合、判定信号を復旧可否判定部１４４から受信する。そして、ＢＭＣ１８は、強制ダンプ処理の実行をＣＰＵ１１に指示する。【００５６】
また、ＯＳがハングアップした場合も、ＢＭＣ１８は、強制ダンプ処理の実行をＣＰＵ１１に指示する。【００５７】
また、復旧可否判定部１４４からサーバの電源オフの指示を受けると、ＢＭＣ１８は、電源をオフするようにサーバ電源１９を制御する。【００５８】
次に、図３を参照して、本実施例に係る情報処理装置におけるハードディスクドライブ１５の障害検出処理について説明する。図３は、実施例１に係る情報処理装置におけるハードディスクドライブの障害検出処理のフローチャートである。ここでは、信号監視部１４の動作とＯＳを実行するＣＰＵ１１の動作とを並行して説明するが、以下でＯＳが実行しているように説明する処理は、実際にはＯＳを実行しているＣＰＵ１１が動作の主体である。【００５９】
信号監視部１４は、ハードディスクドライブ１５から出力されるＨＤＤインタフェース信号の監視を開始する（ステップＳ１０１）。具体的には、信号監視部１４は、サーバ１が起動してハードディスクドライブ１５に電源が入ると監視を開始する。この時、ＯＳは、通常処理を行っている（ステップＳ２０１）。【００６０】
信号変動判定部１４２は、ハードディスクドライブ１５から出力されるＨＤＤインタフェース信号が所定期間の間に変動しているか否かを判定する（ステップＳ１０２）。ＨＤＤインタフェース信号が所定期間の間に変動している場合（ステップＳ１０２：肯定）、信号変動判定部１４２は、ｎ秒待機し（ステップＳ１０３）、その後、ステップＳ１０２を繰り返す。【００６１】
これに対して、ＨＤＤインタフェース信号が所定期間の間に変動していない場合（ステップＳ１０２：否定）、信号変動判定部１４２は、リセット信号のカウントの開始をリセットカウンタ１４３に指示する。リセットカウンタ１４３は、信号変動判定部１４２からの指示を受けて、ＯＳからのリセット信号の数のカウントを開始する（ステップＳ１０４）。この時、リセットカウンタ１４３は、カウンタリセットタイマ１６にカウント開始を通知する。【００６２】
リセットカウンタ１４３は、カウント開始の通知を受けて、時間がｍ秒経過するのを計測する。そして、ｍ秒経過すると、リセットカウンタ１４３にカウンタリセットを指示する。このｍ秒の間、リセットカウンタ１４３は、待機している（ステップＳ１０５）。この間、ＯＳは、ハードディスクドライブ１５における応答異常に基づいて、リセット信号の発行を行っている（ステップＳ２０２）。具体的には、ＯＳは、ＨＤコントローラ１３にリセット信号の発行を指示する。そして、ＯＳからの指示を受けたＨＤコントローラ１３は、リセットカウンタ１４３を経由させてハードディスクドライブ１５へリセット信号を送信する。【００６３】
リセットカウンタ１４３は、ｍ秒の間にリセット信号の発行回数（ここでは、「ｃ」とする。）がカウンタの閾値であるＭを超えているか否か、すなわちｃ＞Ｍか否かを判定する（ステップＳ１０６）。閾値Ｍを超えていない場合（ステップＳ１０６：否定）、リセットカウンタ１４３は、カウンタをリセットした後、ステップＳ１０２へ戻る。【００６４】
これに対して、閾値Ｍを超えている場合（ステップＳ１０６：肯定）、リセットカウンタ１４３は、リセット信号のカウントを停止する（ステップＳ１０７）。そして、リセットカウンタ１４３は、復旧可否判定の実行を復旧可否判定部１４４に指示する。【００６５】
復旧可否判定部１４４は、リセットカウンタ１４３からの指示を受けて、復旧可否判定を開始する（ステップＳ１０８）。この時、復旧可否判定部１４４は、復旧可否判定の実施回数のカウンタ（ここでは、カウンタ値を「ｉ」とする。）を初期値にする（ここでは、ｉ＝０）。【００６６】
復旧可否判定部１４４は、復旧可否判定の実施回数が閾値Ｎ未満（ｉ＜Ｎ）か否かを判定する（ステップＳ１０９）。【００６７】
復旧可否判定の実施回数が閾値Ｎ未満の場合（ステップＳ１０９：肯定）、復旧可否判定部１４４は、オフオンするためのパルス信号であるスイッチ制御信号を電源スイッチ１７へ送信する（ステップＳ１１０）。【００６８】
電源スイッチ１７がオフオンされることで、ハードディスクドライブ１５は、再起動する（ステップＳ１１１）。【００６９】
復旧可否判定部１４４は、復旧可否判定の実施回数を１つインクリメントする（ｉ＝ｉ＋１）（ステップＳ１１２）。【００７０】
復旧可否判定部１４４は、ハードディスクドライブ１５の起動割り込みが発生したか否かを判定する（ステップＳ１１３）。起動割り込みが発生していない場合（ステップＳ１１３：否定）、復旧可否判定部１４４は、ステップＳ１０９に戻る。【００７１】
これに対して、起動割り込みが発生している場合（ステップＳ１１３：肯定）、復旧可否判定部１４４は、復旧可否判定を解除する（ステップＳ１１４）。【００７２】
そして、復旧可否判定部１４４は、ハードディスクドライブ１５が起動したことを通知する判定信号をＢＭＣ１８へ送信する（ステップＳ１１５）。ＢＭＣ１８は、強制ダンプの処理の発動をＣＰＵ１１に指示する。強制ダンプの処理の発動をＣＰＵ１１が受けると、ＯＳは、強制ダンプの処理を開始する（ステップＳ２０３）。【００７３】
復旧可否判定の実施回数が閾値Ｎ以上の場合（ステップＳ１０９：否定）、復旧可否判定部１４４は、ハードディスクドライブ１５の復旧が不可能と判定し、サーバ１の電源をオフするようＢＭＣ１８を介してＣＰＵ１１に指示する。ＣＰＵ１１は、復旧可否判定部１４４からの指示を受けて、サーバ１の電源をオフする（ステップＳ１１６）。【００７４】
以上に説明したように、本実施例に係る情報処理装置は、ハードディスクドライブの出力データに変化が無く、且つ、リセット信号が発行された回数が所定数を超えた場合に、ハードディスクドライブが無応答であると判定する。さらに、本実施例に係る情報処理装置は、ハードディスクドライブが無応答の場合、ハードディスクドライブの電源をオンオフし、再起動できた場合には、強制ダンプの処理を実行する。これにより、ハードディスクドライブの障害をＯＳがハングアップ状態になる前に事前に検出することができる。そして、ハードディスクドライブの無応答に起因するＯＳのハングアップを回避でき、障害履歴の採取漏れを軽減できる。そのため、本実施例に係る情報処理装置は、障害履歴を用いた障害の原因究明に寄与することができる。
【実施例２】
【００７５】
次に、実施例２について説明する。本実施例に係る情報処理装置は、実施例１で説明した処理に加えて、強制ダンプの処理中にもハードディスクドライブの無応答の検出及び再起動を行う。そこで、以下では、強制ダンプの処理中の動作について主に説明する。本実施例に係る情報処理装置のブロック図も、図１及び図２で表される。以下の説明では、実施例１の情報処理装置と同様の機能を有する各部については説明を省略する。【００７６】
信号監視部１４の信号変動判定部１４２は、強制ダンプの処理においてハードディスクドライブ１５のスワップ領域にメモリ１２上のデータが書き込まれている間、ハードディスクドライブ１５からの書き込み応答を監視する。そして、信号変動判定部１４２は、所定期間内に書き込み応答としてのＨＤインタフェース信号が変動するか否かを判定する。ＨＤインタフェース信号が変動しない場合、信号変動判定部１４２は、リセットカウンタ１４３にリセット信号のカウントの開始を指示する。【００７７】
リセットカウンタ１４３は、信号変動判定部１４２からの指示を受けて、ＨＤコントローラ１３から送られてくるリセット信号のカウントを開始する。加えて、リセットカウンタ１４３は、カウンタリセットタイマ１６にリセット信号のカウント開始を通知する。そして、リセットカウンタ１４３は、カウンタリセットタイマ１６により計測されるｍ秒の間に、リセット信号が発行された回数が閾値Ｍを超えたか否かを判定する。ｍ秒の間にリセット信号が発行された回数が閾値Ｍを超えた場合、リセットカウンタ１４３は、強制ダンプの処理を停止する指示を復旧可否判定部１４４を経由してＢＭＣ１８へ送信する。さらに、リセットカウンタ１４３は、復旧可否の判定の実行を復旧可否判定部１４４に通知する。【００７８】
復旧可否判定部１４４は、電源スイッチ１７にスイッチ制御信号を送信し、ハードディスクドライブ１５への電源のオフオンを行う。そして、復旧可否判定部１４４は、ハードディスクドライブ１５からの軌道割り込み発生の有無により、ハードディスクドライブ１５が再起動するか否かを判定する。ハードディスクドライブ１５のオフオンを閾値であるＮ回繰り返しても再起動できない場合、復旧可否判定部１４４は、ハードディスクドライブ１５の復旧が不可能と判定し、ＢＭＣ１８へサーバの電源オフを指示する。これに対して、ハードディスクドライブ１５の再起動ができた場合、復旧可否判定部１４４は、強制ダンプの処理の発動を指示する判定信号をＢＭＣ１８へ送信する。【００７９】
ＢＭＣ１８は、強制ダンプの処理の実施中に、強制ダンプの処理を停止する指示をリセットカウンタ１４３から受信すると、強制ダンプの処理を中止するようＣＰＵ１１に支持する。そして、ＢＭＣ１８は、強制ダンプの割り込みを解除する。【００８０】
また、ＢＭＣ１８は、強制ダンプの割り込み解除後、強制ダンプの処理の発動の指示を復旧可否判定部１４４から受けた場合、ＯＳに対して強制ダンプ割り込みを再度行い、ＣＰＵ１１に強制ダンプの処理を再度実施させる。【００８１】
次に、図４を参照して、本実施例に係る情報処理装置におけるダンプ処理の流れについて説明する。図４は、実施例２に係る情報処理装置におけるダンプ処理のフローチャートである。【００８２】
ＯＳは、ＢＭＣ１８からの強制ダンプの割り込みを受け（ステップＳ３０１）、強制ダンプの処理を開始する。【００８３】
ＣＰＵ１１は、ＯＳのクラッシュダンプ機能を動作させ、メモリ１２上のデータがハードディスクドライブ１５のスワップ領域に書き込む（ステップＳ３０２）。【００８４】
信号変動判定部１４２は、ハードディスクドライブ１５からの書き込み応答であるＨＤＤインタフェース信号が所定期間の間に変動しているか否かを判定する（ステップＳ３０３）。ＨＤＤインタフェース信号が所定期間の間に変動している場合（ステップＳ３０３：肯定）、ＣＵＰ１１は、メモリ１２上のデータ全てのハードディスクドライブ１５のスワップ領域に書き込みが完了したか否かを判定する（ステップＳ３０４）。書込みが完了していない場合（ステップＳ３０４：否定）、ＣＰＵ１１は、ステップＳ３０２に戻る。【００８５】
これに対して、書込みが完了している場合（ステップＳ３０４：肯定）、ＣＰＵ１１は、サーバ１のリセット処理を実施する（ステップＳ３０５）。【００８６】
そして、サーバ１が再起動した後、ＣＰＵ１１は、スワップ領域のデータをハードディスクドライブ１５のクラッシュダンプ格納ディレクトリに格納する（ステップＳ３０６）。その後、ＣＰＵ１１は、サーバ１をシャットダウンして処理を終了する。【００８７】
これに対して、ＨＤＤインタフェース信号が所定期間の間に変動していない場合（ステップＳ３０３：否定）、信号変動判定部１４２は、リセット信号のカウントの開始をリセットカウンタ１４３に指示する。リセットカウンタ１４３は、信号変動判定部１４２からの指示を受けて、ＯＳからのリセット信号の数のカウントを開始する（ステップＳ３０７）。この時、リセットカウンタ１４３は、カウンタリセットタイマ１６にカウント開始を通知する。【００８８】
リセットカウンタ１４３は、カウント開始の通知を受けて、時間がｍ秒経過するのを計測する。そして、ｍ秒経過すると、リセットカウンタ１４３にカウンタリセットを指示する。このｍ秒の間、リセットカウンタ１４３は、待機している（ステップＳ３０８）。【００８９】
リセットカウンタ１４３は、ｍ秒の間にリセット信号の発行回数ｃがカウンタの閾値であるＭを超えているか否か、すなわちｃ＞Ｍか否かを判定する（ステップＳ３０９）。閾値Ｍを超えていない場合（ステップＳ３０９：否定）、リセットカウンタ１４３は、カウンタをリセットした後、ステップＳ３０２へ戻る。【００９０】
これに対して、閾値Ｍを超えている場合（ステップＳ３０９：肯定）、リセットカウンタ１４３は、リセット信号のカウントを停止する（ステップＳ３１０）。そして、リセットカウンタ１４３は、クラッシュダンプ処理の停止をＢＭＣ１８に通知する。また、リセットカウンタ１４３は、ハードディスクドライブ１５の復旧可否判定の実行を復旧可否判定部１４４に指示する。【００９１】
ＢＭＣ１８は、クラッシュダンプ処理の停止の指示をリセットカウンタ１４３から受けて、ＣＰＵ１１のクラッシュダンプ処理を停止させる（ステップＳ３１１）。【００９２】
さらに、ＢＭＣ１８は、ＯＳに対する強制ダンプの割り込みを解除する（ステップＳ３１２）。【００９３】
復旧可否判定部１４４は、リセットカウンタ１４３からの指示を受けて、復旧可否判定を開始する（ステップＳ３１３）。この時、復旧可否判定部１４４は、復旧可否判定の実施回数のカウンタを初期値にする（ｉ＝０）。【００９４】
復旧可否判定部１４４は、復旧可否判定の実施回数が閾値Ｎ未満（ｉ＜Ｎ）か否かを判定する（ステップＳ３１４）。【００９５】
復旧可否判定の実施回数が閾値Ｎ未満の場合（ステップＳ３１４：肯定）、復旧可否判定部１４４は、オフオンするためのパルス信号であるスイッチ制御信号を電源スイッチ１７へ送信する（ステップＳ３１５）。【００９６】
電源スイッチ１７がオフオンされることで、ハードディスクドライブ１５は、再起動する（ステップＳ３１６）。【００９７】
復旧可否判定部１４４は、復旧可否判定の実施回数を１つインクリメントする（ｉ＝ｉ＋１）（ステップＳ３１７）。【００９８】
復旧可否判定部１４４は、ハードディスクドライブ１５の起動割り込みが発生したか否かを判定する（ステップＳ３１８）。起動割り込みが発生していない場合（ステップＳ３１８：否定）、復旧可否判定部１４４は、ステップＳ３１４に戻る。【００９９】
これに対して、起動割り込みが発生している場合（ステップＳ３１８：肯定）、復旧可否判定部１４４は、復旧可否判定を解除する（ステップＳ３１９）。【０１００】
そして、復旧可否判定部１４４は、ハードディスクドライブ１５が起動したことを通知する判定信号をＢＭＣ１８へ送信する（ステップＳ３２０）。その後、ＢＭＣ１８は、ステップＳ３０１へ戻る。【０１０１】
一方、復旧可否判定の実施回数が閾値Ｎ以上の場合（ステップＳ３１４：否定）、復旧可否判定部１４４は、ハードディスクドライブ１５の復旧が不可能と判定し、サーバ１の電源をオフするようＢＭＣ１８を介してＣＰＵ１１に指示する。ＣＰＵ１１は、復旧可否判定部１４４からの指示を受けて、サーバ１の電源をオフし（ステップＳ３２１）、処理を終了する。【０１０２】
以上に説明したように、本実施例に係る情報処理装置は、ＯＳのクラッシュダンプ機能によるダンプ処理の間にもハードディスクドライブの無応答の検出及び再起動を行う。これにより、ＯＳによりダンプ処理が行われている間にハードディスクドライブの無応答が発生しても復旧を行うことができ、ハードディスクドライブに障害履歴を格納することができる。すなわち、本実施例に係る情報処理装置は、ＯＳがハングアップする前の事前のハードディスク障害の検出及びダンプ処理時のハードディスク障害の回避ができ、より確実に障害履歴の取得漏れを回避することができる。【０１０３】
（ハードウェア構成）
図５は、各実施例に係るサーバのハードウェア構成の一例の図である。図５に示すように、サーバ１は、例えば、図１に例示したＣＰＵ１１、メモリ１２及びＢＭＣ１８などを搭載するボード８００と、ＨＤコントローラ１３、信号監視部１４及びハードディスクドライブ１５などを搭載するボード９００を有する。【０１０４】
ボード８００とボード９００とはコネクタ８１０で接続されており、ボード８００に搭載されているＣＰＵ１１などとボード９００に搭載されているＨＤコントローラ１３などとは通信可能である。【０１０５】
さらに、ボード８００には、ＤＣ／ＤＣ変換器８０１、ＵＤＢＩＦ８０２及びシリアルＩＦ８０３などが搭載されている。【０１０６】
ＤＣ／ＤＣ変換器８０１は、外部電源から供給される電力の電圧をＣＰＵ１１やメモリ１２が使用できる電圧まで下げて各部に電力を供給する。ここで、図５では、説明の都合上、ＤＣ／ＤＣ変換器８０１から各部への電力供給線を記載していないが、実際には、ＤＣ／ＤＣ変換器８０１からボード８００上の各部に電力供給線が接続されている。【０１０７】
ＢＭＣ１８は、例えば、ＤＣ／ＤＣ変換器８０１からの電力の供給を停止させることで、サーバ１の電源をオフにする。【０１０８】
ボード９００には、タイマ９０１、電源回路９０２、ＦＥＴスイッチ９０３などがさらに搭載されている。タイマ９０１は、図１に例示したカウンタリセットタイマ１６などの機能を実現する。電源回路９０２は、図１に例示したＨＤＤ電源２０などの機能を実現する。ＦＥＴスイッチ９０３は、図１に例示した電源スイッチ１７などの機能を実現する。【０１０９】
搭載された信号監視部１４によって、ハードディスクドライブ１５の無応答の判定及び復旧可否判定を実施する機能が実現される。
【符号の説明】
【０１１０】
１  サーバ
１１  ＣＰＵ
１２  メモリ
１３  ＨＤコントローラ
１４  信号監視部
１５  ハードディスクドライブ
１６  カウンタリセットタイマ
１７  電源スイッチ
１８  ＢＭＣ
１９  サーバ電源
２０  ＨＤＤ電源
１４１  データ変動計測タイマ
１４２  信号変動判定部
１４３  リセットカウンタ
１４４  復旧可否判定部
【図１】
2014112039.tif 000003
【図２】
2014112039.tif 000004
【図３】
2014112039.tif 000005
【図４】
2014112039.tif 000006
【図５】
2014112039.tif 000007
【国際調査報告】
2014112039.tif 000008
2014112039.tif 000009
2014112039.tif 000010
2014112039.tif 000011