(57)【要約】【課題】異常発生時に保全したメモリ情報の解析を、外部装置に出力しないで、容易に行うことができる情報処理装置を提供する。【解決手段】情報処理装置は、記憶装置の記憶領域を識別する識別情報と、記憶領域の種別を示す種別情報とを含む記憶領域管理情報に応じて記憶領域を分割する分割部と、分割された記憶領域を示す分割領域から第１分割領域を選択して待機させる設定部と、分割領域のうち第１分割領域以外の第２分割領域を用いて情報処理が行われている場合、情報処理中の異常を検出する検出部と、異常が検出された場合、第２分割領域を待機させると共に、待機させた第１分割領域を復帰させる制御部と、再起動後、復帰させた第１分割領域を用いて情報処理が行われている場合、待機させた第２分割領域を物理アドレス空間に追加し、第２分割領域に格納されている情報の解析を行う解析部とを備えることにより、上記課題の解決を図る。【選択図】図１
2014127193.tif 000002
【特許請求の範囲】
【請求項１】
情報を記憶する記憶領域を含む記憶部と、
前記記憶部の記憶領域を識別する識別情報と、該記憶領域の種別を示す種別情報とを含む記憶領域管理情報に応じて、前記記憶領域を分割する分割部と、
分割された前記記憶領域を示す分割領域から第１分割領域を選択して待機させる設定部と、
前記分割領域のうち前記第１分割領域以外の第２分割領域を用いて、情報処理が行われている場合、該情報処理中の異常を検出する検出部と、
前記異常が検出された場合、前記第２分割領域を待機させると共に、待機させた前記第１分割領域を復帰させる制御部と、
再起動が行われた後、復帰させた前記第１分割領域を用いて前記情報処理が行われている場合、待機させた前記第２分割領域を物理アドレス空間に追加し、該第２分割領域に格納されている情報の解析処理を実行する解析部と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記情報処理装置は、さらに、
前記分割領域が３以上ある場合、待機させた前記分割領域以外の前記分割領域を用いて、メモリミラーリングを行うミラーリング制御部
を備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記制御部は、前記異常が検出された場合、複数の第２分割領域のうちいずれかを待機させ、待機させた前記第１分割領域を復帰させ、
前記ミラーリング制御部は、待機していない前記第２分割領域と、復帰した前記第１分割領域とを用いて、前記メモリミラーリングを行う
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記ミラーリング制御部は、前記検出された異常がメモリエラーの場合、前記ミラーリングを解除し、
前記制御部は、複数の第２分割領域のうち前記メモリエラーが発生していない第２分割領域を待機させ、待機させた前記第１分割領域を復帰させる
ことを特徴とする請求項２に記載の情報処理装置。
【請求項５】
前記設定部は、前記第１分割領域を前記物理アドレス空間から切り離し、
前記制御部は、前記異常が検出された場合、前記第２分割領域を前記物理アドレス空間から切り離すと共に、待機させた前記第１分割領域を前記物理アドレス空間に復帰させる
ことを特徴とする請求項１〜４のうちいずれか１項に記載の情報処理装置。
【請求項６】
情報処理装置は、
記憶装置の記憶領域を識別する識別情報と、該記憶領域の種別を示す種別情報とを含む記憶領域管理情報に応じて、前記記憶領域を分割し、
分割された前記記憶領域を示す分割領域から第１分割領域を選択して待機させ、
前記分割領域のうち前記第１分割領域以外の第２分割領域を用いて、情報処理が行われている場合、該情報処理中の異常を検出し、
前記異常が検出された場合、前記第２分割領域を待機させると共に、待機させた前記第１分割領域を復帰させ、
再起動が行われた後、復帰させた前記第１分割領域を用いて前記情報処理が行われている場合、待機させた前記第２分割領域を物理アドレス空間に追加し、該第２分割領域に格納されている情報の解析を行う
ことを特徴とする記憶情報解析方法。
【請求項７】
前記情報処理装置は、さらに、
前記分割領域が３以上ある場合、待機させた前記分割領域以外の前記分割領域を用いて、メモリミラーリングを行う
ことを特徴とする請求項６に記載の記憶情報解析方法。
【請求項８】
前記情報処理装置は、
前記異常が検出された場合、複数の第２分割領域のうちいずれかを待機させ、待機させた前記第１分割領域を復帰させ、
待機していない前記第２分割領域と、復帰した前記第１分割領域とを用いて、前記メモリミラーリングを行う
ことを特徴とする請求項７に記載の記憶情報解析方法。
【請求項９】
前記情報処理装置は、
前記検出された異常がメモリエラーの場合、前記ミラーリングを解除し、
複数の第２分割領域のうち前記メモリエラーが発生していない第２分割領域を待機させ、待機させた前記第１分割領域を復帰させる
ことを特徴とする請求項７に記載の記憶情報解析方法。
【請求項１０】
前記情報処理装置は、
前記第１分割領域を前記物理アドレス空間から切り離し、
前記異常が検出された場合、前記第２分割領域を前記物理アドレス空間から切り離すと共に、待機させた前記第１分割領域を前記物理アドレス空間に復帰させる
ことを特徴とする請求項６〜９のうちいずれか１項に記載の記憶情報解析方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶情報の解析技術に関する。
【背景技術】
【０００２】
システム異常が発生した場合、その調査を行ったり、またはメモリの内容をファイルに出力（メモリダンプの採取）したりする。そのため、システムの運用再開への復帰が遅れる。システム異常発生時のクラッシュ調査や復旧作業などの保守運用のためには、メモリダンプを採取し、その原因究明を行う。しかしながら、原因が分からなければ最適な復旧作業も行えない。また、メモリダンプの採取には時間がかかり、システムの運用再開の遅れの原因となる。
【０００３】
サーバシステムにおいて異常が発生した場合、原因究明のためにメモリダンプを採取して調査する。メモリダンプの調査の手順の一例は、次の通りである。（１）ダンプコマンドを動作させるために、メモリ内にワーク領域を確保する。（２）メモリ内の情報を読み出して他のデバイスに書き込む処理を繰り返し、メモリに保持されているデータを採取する。そのデータ採取後にシステムの再立ち上げを行い、システムを復旧させる。（３）採取したメモリダンプを別のシステムに展開する。（４）別のシステムに展開したメモリダンプに対してcrashなどの保守コマンドを実行し、原因究明を行う。
【０００４】
また、システム障害時のメモリダンプの採取方法の例として、例えば、以下の技術がある。
【０００５】
第１の技術として、ダンプ終了後、システムの再起動なしにメモリを再度二重化する技術がある。まず、書込み制御部は、ダンプフラグを参照しダンプの必要があることを確認し、初期化制御部に対してマスターメモリのみ初期化するよう制御する。ダンプフラグが「１」の間は、書込み制御部、読出し制御部はマスターメモリのみにアクセスするよう制御する。マスターメモリの初期化が終了したら、初期化完了のステータスを返信し、ＯＳを起動する。スレーブメモリに対して、メモリダンプの書込み処理を行う。ダンプ書込み制御部によりスレーブメモリのデータを読出し、ディスクへ書き込む処理を行う。書込みが終了したら、ダンプステータス制御部は、書込み制御部によりスレーブメモリの初期化を行う。また、初期化の終了によりミラー化制御部によりマスターメモリとスレーブメモリをミラー化構成にする。
【０００６】
第２の技術として、計算機システムの再立ち上げを待機させることなく異常終了時の記憶情報の採取を行う技術がある。まず、計算機システムが異常終了したときに、二重化された主記憶装置の相互間を切り離してそれぞれ個別の主記憶装置として機能させる。次に、切り離した一方の主記憶装置のみを用いて計算機システムの再立ち上げを行う。さらに、他方の主記憶装置に異常終了時の記憶情報を保持する。計算機システムが再起動されると、プロセッサは複数のプロセス処理を行うのと並行して他方の主記憶装置に保存されているすべてのデータを入出力プロセッサを介して磁気テープ装等に退避する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００７−８７２６３号公報
【特許文献２】特開平７−２３４８０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
情報処理装置に搭載するメモリが大規模化の傾向にあり、メモリダンプの採取に時間がかかるようになりつつある。そのため情報処理装置の再立ち上げまでにかかる時間が長期化している。また、採取したダンプデータを別の情報処理装置に入力して調査が開始される場合が多いため、調査着手までには更に時間を要している。また、ダンプコマンドを動作させるために、メモリ内にワーク領域を確保するが、その結果、ダンプ対象のメモリ内データの一部を破壊してしまう。
【０００９】
また、第１の技術の場合、２多重のミラーメモリ構成が採用されており、メモリダンプ採取後にシステムのミラーリングを回復させている。しかしながら、そのミラーリングの回復前にメモリエラーが発生すると、メモリダンプの採取をすることができないおそれがある。
【００１０】
また、第２の技術の場合、計算機システムが再起動されると、異常終了時の記憶情報を保持する主記憶装置に保存されているすべてのデータを磁気テープ装等に退避するため、そのデータの解析までに時間を要する。
【００１１】
そこで、本発明の一側面として、異常発生時に保全したメモリ情報の解析を、容易に行うことができる情報処理装置を提供する。
【課題を解決するための手段】
【００１２】
本実施形態に係る情報処理装置は、記憶部、分割部、設定部、検出部、制御部、解析部を含む。記憶部は、情報を記憶する記憶領域を含む。分割部は、前記記憶部の記憶領域を識別する識別情報と、該記憶領域の種別を示す種別情報とを含む記憶領域管理情報に応じて、前記記憶領域を分割する。設定部は、分割された記憶領域を示す分割領域から第１分割領域を選択して待機させる。検出部は、分割領域のうち第１分割領域以外の第２分割領域を用いて、情報処理が行われている場合、情報処理中の異常を検出する。制御部は、異常が検出された場合、第２分割領域を待機させると共に、待機させた第１分割領域を復帰させる。解析部は、再起動が行われた後、復帰させた第１分割領域を用いて情報処理が行われている場合、待機させた第２分割領域を物理アドレス空間に追加し、第２分割領域に格納されている情報の解析を行う。
【発明の効果】
【００１３】
本発明の一側面によれば、異常発生時に保全したメモリ情報の解析を、容易に行うことができる。
【図面の簡単な説明】
【００１４】
【図１】本実施形態における情報処理装置の一例を示す。
【図２】本実施形態における情報処理装置のハードウェアブロック図を示す。
【図３】本実施形態における多重化メモリミラーリングシステムの一例を示す。
【図４】本実施形態（実施例１）における（Ａ）入れ替え前のミラーメモリと待機メモリの状態と、（Ｂ）そのときの管理テーブルの状態を説明するための図である。
【図５】本実施形態（実施例１）における（Ａ）パニック・ウォッチドッグタイマ（ＷＤＴ）異常が発生した場合のミラーメモリと待機メモリの状態、（Ｂ）そのときの管理テーブルの状態を説明するための図である。
【図６】本実施形態（実施例１）における（Ａ）パニック・ウォッチドッグタイマ（WDT）異常が発生した場合において既にメモリエラーが発生していた場合のミラーメモリと待機メモリの状態、（Ｂ）そのときの管理テーブルの状態を説明するための図である。
【図７】本実施形態（実施例１）における発生した事象に対するメモリ領域の状態の遷移を説明するための図である。
【図８】本実施形態（実施例１）におけるブート時のメモリミラーリングの設定及び待機メモリの設定処理のフローを示す。
【図９】本実施形態（実施例１）におけるパニック・WDT異常発生時の待機メモリの切り替え処理のフローを示す。
【図１０】本実施形態（実施例１）におけるシステムハングアップ時の待機メモリの切り替え処理のフローを示す。
【図１１】本実施形態（実施例１）におけるメモリエラー発生時のエラーメモリの切り離し処理のフローを示す。
【図１２】本実施形態（実施例１）における保守・復旧の処理のフローを示す。
【図１３】本実施形態（実施例１）における物理アドレス空間からのメモリ領域の切り離し処理について説明するための図である。
【図１４】本実施形態（実施例１）における仮想アドレス空間への待機メモリのマッピングについて説明するための図である。
【図１５】本実施形態（実施例２）における（Ａ）２面のメモリミラーリングシステムの正常運用時のメモリの状態、及び（Ｂ）そのときの管理テーブルの状態を説明するための図である。
【図１６】本実施形態（実施例２）における（Ａ）２面のミラーリングシステムのパニック、WDT、またはリセット発生時のメモリの状態、及び（Ｂ）そのときの管理テーブルの状態を説明するための図である。
【図１７】本実施形態（実施例２）における（Ａ）２面のミラーリングシステムの障害調査時のメモリの状態、及び（Ｂ）そのときの管理テーブルの状態を説明するための図である。
【発明を実施するための形態】
【００１５】
図１は、本実施形態における情報処理装置の一例を示す。情報処理装置１は、記憶部２、分割部３、設定部４、検出部５、制御部６、解析部７を含む。
【００１６】
記憶部２は、情報を記憶する記憶領域を含む。記憶部２の一例として、メモリ１９が挙げられる。
【００１７】
分割部３は、記憶領域管理情報に応じて、記憶領域を分割する。記憶領域管理情報は、記憶部の記憶領域を識別する識別情報と、記憶領域の種別を示す種別情報とを含む。記憶領域管理情報の一例として、管理テーブル１４が挙げられる。分割部３の一例として、ファームウェア１３が挙げられる。
【００１８】
設定部４は、分割された記憶領域を示す分割領域から第１分割領域を選択して待機させる。設定部４の一例として、ファームウェア１３が挙げられる。
【００１９】
検出部５は、分割領域のうち第１分割領域以外の第２分割領域を用いて、情報処理が行われている場合、情報処理中の異常を検出する。検出部５の一例として、ＯＳ３１、メモリエラー検出部１７が挙げられる。
【００２０】
制御部６は、異常が検出された場合、第２分割領域を待機させると共に、待機させた第１分割領域を復帰させる。制御部６の一例として、ファームウェア１３が挙げられる。
【００２１】
解析部７は、再起動が行われた後、復帰させた第１分割領域を用いて情報処理が行われている場合、待機させた第２分割領域を物理アドレス空間に追加し、第２分割領域に格納されている情報の解析処理を実行する。解析部７の一例として、ＯＳ３１及びクラッシュ調査プログラムを実行するＣＰＵ１２が挙げられる。
【００２２】
このように構成することにより、異常発生時に保全したメモリ情報の解析を、外部装置に出力しないで、容易に行うことができる。
【００２３】
情報処理装置１は、さらに、ミラーリング制御部８を含む。ミラーリング制御部８は、分割領域が３以上ある場合、待機させた分割領域以外の分割領域を用いて、メモリミラーリングを行う。ミラーリング制御部８の一例として、ファームウェア１３が挙げられる。
【００２４】
このように構成することにより、待機させた分割領域以外の分割領域を用いて、メモリミラーリングを行うことができる。
【００２５】
制御部６は、異常が検出された場合、複数の第２分割領域のうちいずれかを待機させ、待機させた第１分割領域を復帰させる。このとき、ミラーリング制御部８は、ミラーリング制御部は、待機していない第２分割領域と、復帰した第１分割領域とを用いて、メモリミラーリングを行う。
【００２６】
このように構成することにより、情報処理装置の異常発生時の保守中であっても、メモリミラーリング状態を保持すると共に、メモリダンプ情報を保持しつつ、情報処理装置の安定運用を継続することができる。
【００２７】
ミラーリング制御部８は、検出された異常がメモリエラーの場合、ミラーリングを解除する。制御部７は、複数の第２分割領域のうちメモリエラーが発生していない第２分割領域を待機させ、待機させた第１分割領域を復帰させる。
【００２８】
このように構成することにより、メモリミラーリングは解除されるが、情報処理装置の安定運用を継続することができる。
【００２９】
設定部４は、第１分割領域を物理アドレス空間から切り離す。このとき、制御部７は、異常が検出された場合、第２分割領域を物理アドレス空間から切り離すと共に、待機させた第１分割領域を前記物理アドレス空間に復帰させる。
【００３０】
このように構成することにより、待機メモリを形成し、ミラーメモリと待機メモリとの切り替えを行うことができる。
【００３１】
図２は、本実施形態における情報処理装置のハードウェアブロック図を示す。情報処理装置１は、中央演算処理装置（ＣＰＵ）１２、メモリデバイス１９、大容量記憶装置２０、入出力装置２１、ネットワーク装置２２、バス２３を含む。バス２３は、ＣＰＵ１２、メモリデバイス１９、大容量記憶装置２０、入出力装置２１、ネットワーク装置２２と接続を接続する。
【００３２】
メモリデバイス（以下、「メモリ」と称する）１９は、情報の読み込み及び書き込みが可能なランダムアクセスメモリ（ＲＡＭ）である。
【００３３】
大容量記憶装置２０は、ハードディスクドライブ（ＨＤＤ）、フラッシュメモリドライブ（Solid State Drive (ＳＳＤ)）等の大容量のデータを格納する記憶装置である。
【００３４】
入出力装置２１は、データ、命令の入出力を行う装置である。入出力装置２１は、キーボード、マウス、電子カメラ、ウェブカメラ、マイク、スキャナ、センサ、タブレット、タッチパネル等の入力装置または、ディスプレイ、プリンタ、スピーカ等の出力装置である。ネットワーク装置２１は、インターネット、ローカルエリアネットワーク（ＬＡＮ）等のネットワークへ接続して通信を行う装置である。
【００３５】
ＣＰＵ１２は、ファームフェア１３、プロセッサ制御部１５、メモリ制御部１６、メモリエラー検出部１７、プロセッサ１８を含む。
【００３６】
ファームフェア１３は、Basic Input/Output System（ＢＩＯＳ）等のハードウェアを制御するプログラム、管理テーブル１４を管理するプログラム、及びＣＰＵ内の各制御部に指示を与えるプログラムを含む。ファームウェア１３は、ＣＰＵ１２内の記憶領域に記憶されている。管理テーブル１４は、ＣＰＵ１２内の記憶領域に記憶されている。管理テーブル１４は、分割されたメモリ１９の各メモリ領域を主メモリとして使用するか、待機メモリとして使用するか、及びいずれのメモリ領域がメモリミラーリングを形成するのかを管理するために用いられる。ここで、メモリミラーリングとは、メモリを多重化し、多重化したメモリの両方にデータを書き込むことをいう。また、「待機」、「待機する」、「待機させる」という用語の代わりに、「退避」、「退避する」、「退避させる」という用語等を用いてもよい。
【００３７】
プロセッサ１８は、レジスタ、システムコンテキスト等のデバイス情報を含む。プロセッサ制御部１５は、プロセッサ１８を制御する。プロセッサ１８は、プロセッサ制御部１５からの命令に基づいて処理を実行する。メモリ制御部１６は、ファームウェア１３からの指示に基づいて、メモリ１９上のメモリ領域を物理アドレス空間から切り離したり、物理アドレス空間に復帰させたりする。ここで、物理アドレス空間とは、コンピュータにおいて、物理的に実装されている主記憶上の番地であり、アドレスバスの指定によってアクセスできるアドレスの範囲を示す。メモリエラー検出部１７は、メモリ１９で生じたメモリエラーを検出する。
【００３８】
図３は、本実施形態における多重化メモリミラーリングシステムの一例を示す。まず、ファームウェア１３（ＢＩＯＳ）は、管理テーブル１４を読み出して、メモリ制御部１６を制御して、メモリ１９において、連続したメモリ領域をｎ分割する。分割されたメモリ領域はそれぞれ、メモリ１、メモリ２、・・・、メモリｎと称する。メモリ１、メモリ２、・・・、メモリｎはそれぞれ、ファームウェア１３によってメモリミラーリングの対象とされる。また、分割されたメモリのうち、メモリミラーリングを形成しているメモリをミラーメモリと称する。また、ファームウェア１３は、分割されたメモリのうち、少なくとも１つのメモリを、オペレーティングシステム（ＯＳ）３１及びその他のプログラムによって書き込みを行うことができない待機メモリとして設定する。
【００３９】
実施例１では、メモリミラーリング環境下でのミラーメモリと待機メモリとの切り替えについて説明する。実施例１では、一例として、２つのミラーメモリと１つの待機メモリを含むミラーリングシステムについて説明するが、３以上のミラーメモリと２以上の待機メモリを含むミラーリングシステムでもよい。
【００４０】
以下では、本実施形態の詳細について説明する。
【００４１】
（実施例１）
多重化メモリミラーリングシステムを採用している情報処理装置においては、異常発生時の保守中であっても、メモリミラーリング状態を保持し安定運用を継続させたほうがよい。そこで、実施例１では、多重化されたメモリーミラーシステムにおいて、異常発生後にメモリミラーを有効にしながら、かつ異常時のメモリ情報を残す。これにより、情報処理装置の異常発生時に障害調査やダンプ採取と併行して業務を再開できるようにする。
【００４２】
図４は、本実施形態（実施例１）における（Ａ）入れ替え前のミラーメモリと待機メモリの状態、（Ｂ）そのときの管理テーブルの状態を説明するための図である。ＢＩＯＳは、予め設定された情報に基づいて、メモリ１９の連続したメモリ領域を３分割する。分割されたメモリ領域はそれぞれ、メモリ１、メモリ２、メモリ３と称する。
【００４３】
３つのメモリ１〜３のうちの２つのメモリは、システム運用に使用する主メモリとなり、さらに、メモリミラーリングを形成するためのミラーメモリとなり得る。
【００４４】
３つのメモリ１〜３のうちの残り１つのメモリは、切り替えの予備とする待機メモリとなり得る。待機メモリは、ファームウェア１３により物理アドレス空間から切り離される。どのメモリを主メモリとし、どのメモリを待機メモリとするかは、ファームウェア１３上の管理テーブル１４で管理される。
【００４５】
図４（Ｂ）に示すように、管理テーブル１４は、「領域識別情報」、「状態」、「ミラーリングフラグ」を含む。「領域識別情報」には、分割された各メモリ領域を識別する情報が格納される。「状態」には、そのメモリ領域が主メモリの状態か、待機メモリの状態か、またはエラー状態かを示す情報が格納される。「ミラーリングフラグ」には、メモリミラーリングを形成するメモリ領域を判別するフラグ情報が格納される。たとえば、メモリミラーリングを形成するメモリ領域の場合には、フラグ「１」が格納され、メモリミラーリングを形成しないメモリ領域の場合には、フラグ「０」が格納される。
【００４６】
なお、以下では、「状態」＝「主メモリ」、「ミラーリングフラグ」＝「１」の場合のメモリ領域を、ミラーメモリと称する。
【００４７】
図４（Ｂ）に示すように、管理テーブル１４には、予めデフォルト値として、メモリ１、メモリ２を主メモリとし、メモリ３を待機メモリとする情報が設定されている。また、メモリ１，２は、メモリミラーリングを形成するミラーメモリＡ，Ｂとなる。
【００４８】
ハードウェアのリセットが行われると、ファームウェア１３は、分割されたメモリ１〜３から、管理テーブル１４の設定内容に合わせて主メモリ（ミラーメモリＡ、ミラーメモリＢ）と待機メモリとを決定する。それから、ファームウェア１３は、メモリ制御部１６を制御して、待機メモリを物理アドレス空間から切り離す。
【００４９】
プロセッサ制御部１５は、主メモリにＯＳ３１をローディングして、ＯＳ３１をブートする。ハードウェアのリセットが行われた場合、待機メモリ部分に対応するハードウェア以外のハードウェアが初期化される。このとき、待機メモリに格納されたメモリ内容はクリアされず、保持される。
【００５０】
このように、分割されたメモリのうち、２つのメモリは、メモリミラーリングされて、主メモリとして利用される。残り１つのメモリは、待機メモリとして物理アドレス空間から切り離される。
【００５１】
図５は、本実施形態（実施例１）における（Ａ）パニック・ウォッチドッグタイマ（ＷＤＴ）異常が発生した場合のミラーメモリと待機メモリの状態、（Ｂ）そのときの管理テーブルの状態を説明するための図である。ＯＳ３１は、システムパニックまたはＷＤＴ異常等のエラーを検出した場合、そのエラーに対処する処理（例えば、ハードウェアのリセット）を行う。
【００５２】
このとき、ファームウェア１３は、情報処理装置１のリセット時にミラーメモリの１つと待機メモリを主メモリ、もう１つのミラーメモリを新たに待機メモリとして管理テーブル１４に設定する。ファームウェア１３は、メモリ制御部１６を介して、新たな待機メモリを物理アドレス空間から切り離す。図４（Ｂ）と比較して、図５（Ｂ）では、メモリ１，３がミラーメモリＡ、Ｂと設定され、メモリ２が待機メモリとして設定されている。
【００５３】
プロセッサ制御部１５は新たに主メモリとされた２つのメモリを初期化し、ＯＳ３１をローディングしてブートを行う。このとき、待機メモリ部分に対応するハードウェア以外のハードウェアが初期化される。したがって、待機メモリ（メモリ２）内の情報は保持される。
【００５４】
情報処理装置１が再起動すると、ＯＳ３１及びその他のプログラムは新たに設定された主メモリ上で実行される。システムパニックまたはＷＤＴ異常の発生原因を調査する場合、ＯＳ３１は、ＯＳ３１のインターフェースを用いて、任意のプロセスの仮想アドレス空間に待機メモリをマップする。ここで、仮想アドレス空間とは、プログラムで仮想的に使用する範囲をいう。ＯＳ３１は、主メモリ上でクラッシュ調査プログラムを実行し、仮想アドレス空間にマップした待機メモリに保持されているメモリ情報の調査を実施する。
【００５５】
調査後、ＯＳ３１は、ＯＳのインターフェース（Ｉ／Ｆ）を用いて、仮想空間アドレスへの待機メモリのマッピングを解除して、待機メモリを仮想アドレス空間から切り離す。これによりメモリダンプを採取する媒体やメモリダンプを展開する別システムを用意することなく、情報処理装置に生じた異常の原因調査が可能となる。また、メモリダンプの採取を行う場合、情報処理装置に対するメモリダンプの負荷を保守者が判断し、所定のタイミングで待機メモリの情報を媒体に採取することができる。メモリダンプも主メモリ上で動作するため、リザーブエリア確保のためにメモリの一部を書き換えること無く、待機メモリからメモリダンプの採取が可能になる。
【００５６】
メモリエラー検出部１７によりメモリエラーの発生が検出された場合、ファームウェア１３は、メモリ制御部１６を制御して、ミラーリングを解除し、メモリエラーが発生したミラー側のメモリを外す。例えば、ミラーメモリＡでエラーが発生した場合は、ミラーメモリＡが外され、ミラーメモリＢを用いて処理が続行される。また、ミラーメモリ２でエラーが発生した場合は、ミラーメモリＢが外され、ミラーメモリＡを用いて処理が続行される。
【００５７】
図６は、本実施形態（実施例１）における（Ａ）パニック・ウォッチドッグタイマ（WDT）異常が発生した場合において既にメモリエラーが発生していた場合のミラーメモリと待機メモリの状態、（Ｂ）そのときの管理テーブルの状態を説明するための図である。
【００５８】
パニック・WDT異常が発生した時に既にメモリエラーが発生していた場合、ファームウェア１３は、メモリエラーが発生していなかったミラーメモリを待機メモリに入れ替え、待機メモリを主メモリに入れ替えて、ＯＳ３１を再起動させる。この場合、メモリ１，３のミラーリングは行われず、メモリエラーが発生したミラー側のメモリは、主メモリから外される。
【００５９】
システムハングアップが発生した場合も、ハードウェアのリセット・スイッチの押下によってリセットされた時点で、ファームウェア１３は、管理テーブル１４を用いて、ミラーメモリの一方と待機メモリとの入れ替えを行う。そして、上述したパニック・WDT異常発生時と同様に、メモリの入れ替えが行われた情報処理装置１が再起動する。主メモリの一方が故障している場合も同様に、ファームウェア１３は、管理テーブル１４を用いて、故障しているメモリの一方と待機メモリとの入れ替えを行う。そして、上述したパニック・WDT異常発生時と同様に、メモリの入れ替えが行われた情報処理装置１が再起動する。
【００６０】
図７は、本実施形態（実施例１）における発生した事象に対するメモリ領域の状態の遷移を説明するための図である。図７では、パニック等の異常またはリセットが２回発生した後にメモリエラーが発生し、その後再度パニック等の異常かリセットが発生した場合の、管理テーブルの遷移について説明している。最初は、管理テーブル１４は、符号１４−１で示す状態であるとする。
【００６１】
パニック、ＷＤＴ、またはリセットが発生した場合（Ｓ１）、ファームウェア１３は、メモリ２をミラーメモリＢから待機メモリに変更し、メモリ３を待機メモリからミラーメモリＢに変更する（１４−２）。ファームウェア１３は、メモリ１と、メモリ３とをミラーリングし、ＯＳ３１をブートする。待機メモリ部分に対応するハードウェア以外のハードウェアが初期化される。待機メモリに変更されたメモリ２には、変更前に書き込まれたメモリ情報が保持されている。
【００６２】
再び、パニック、ＷＤＴ、またはリセットが発生した場合（Ｓ２）、ファームウェア１３は、メモリ２を待機メモリからミラーメモリＢに変更し、メモリ３をミラーメモリＢから待機メモリに変更する（１４−３）。ファームウェア１３は、メモリ１と、メモリ２とをミラーリングし、ＯＳ３１をブートする。待機メモリ部分に対応するハードウェア以外のハードウェアが初期化される。待機メモリに変更されたメモリ３には、変更前に書き込まれたメモリ情報が保持されている。
【００６３】
メモリ２にメモリエラーが発生した場合（Ｓ３）、ファームウェア１３は、メモリ１，２のミラーリングを解除して、メモリ２を物理アドレス空間から切り離す（１４−４）。
【００６４】
再び、パニック、ＷＤＴ、またはリセットが発生した場合（Ｓ４）、ファームウェア１３は、メモリ１を主メモリから待機メモリに変更し、メモリ３を待機メモリから主メモリに変更する。ファームウェア１３は、メモリ３を用いて、ＯＳ３１をブートする。待機メモリ部分に対応するハードウェア以外のハードウェアが初期化される。待機メモリに変更されたメモリ１には、変更前に書き込まれたメモリ情報が保持されている。
【００６５】
図８は、本実施形態（実施例１）におけるブート時のメモリミラーリングの設定及び待機メモリの設定処理のフローを示す。ＢＩＯＳは、予め設定された管理テーブル１４のエントリ数に基づいて、メモリ１９において連続したメモリ領域をｎ分割する（Ｓ１１）。ここで、ｎは、３以上の整数である。分割した各メモリ領域は、後述するように、メモリミラーリングの対象とされる。
【００６６】
ハードウェアのリセットにより、ファームウェア１３は、分割したメモリ領域のうちのｍ個のメモリ領域をミラーリングして、主メモリを形成する（Ｓ１２）。ここで、ｍは、２以上の整数である。例えば、ファームウェア１３は、分割したメモリ領域のうちの２つの領域をミラーリングして、主メモリ（例えば、ミラーメモリＡ，Ｂ）を形成する。
【００６７】
ファームウェア１３は、分割したメモリ領域のうち、主メモリを形成しない少なくとも１つのメモリ領域を待機メモリとして管理テーブル１４に設定し、メモリ制御部１６を介して物理アドレス空間上から切り離す（Ｓ１３）。
【００６８】
ファームウェア１３は、主メモリ（例えば、ミラーメモリＡ，Ｂ）と待機メモリにはどのメモリ領域を用いるかを、管理テーブル１４に初期設定された内容に基づいて決定する。
【００６９】
それから、プロセッサ制御部１５は、ＯＳ３１をローディングしてブートを開始する（Ｓ１５）。このとき、主メモリ（ミラーメモリＡ，Ｂ）の内容がリセットされ、ＯＳ３１がローディングされてブートされる。待機メモリ部分に対応するハードウェア以外のハードウェアが初期化される。待機メモリは、ハードウェアのリセットが行われても、記憶した内容を保持する。
【００７０】
図９は、本実施形態（実施例１）におけるパニック・WDT異常発生時の待機メモリの切り替え処理のフローを示す。パニック・WDT異常が発生した場合、ＯＳ３１は、パニックに対する処理を行う（Ｓ２１）。その後、プロセッサ制御部１５は、ファームウェア１３に対して、リセット処理の通知を行う（Ｓ２２）。
【００７１】
このとき、メモリエラー検出部１７がメモリエラーを検出した場合（Ｓ２３で「Ｙｅｓ」）、ファームウェア１３は次の処理を行う。ファームウェア１３は、メモリ制御部１６を制御して、待機メモリを物理アドレス空間へ復帰させる。ファームウェア１３は、メモリ制御部１６を介して、ミラーリングを解除して、メモリエラーが検出されていないミラーメモリを待機メモリとして管理テーブル１４に設定する。また、ファームウェア１３は、物理アドレス空間へ復帰させた待機メモリを主メモリとして管理テーブル１４に設定する（Ｓ２４）。
【００７２】
メモリエラー検出部１７がメモリエラーを検出しなかった場合（Ｓ２３で「Ｎｏ」）、主メモリを形成する２つのミラーメモリは正常であるから、ファームウェア１３は、次の処理を行う。すなわち、ファームウェア１３は、メモリ制御部１６を制御して、待機メモリを物理アドレス空間へ復帰させる。それから、ファームウェア１３は、ミラーメモリの１つと、その物理アドレス空間へ復帰させた待機メモリとをミラーリングして主メモリとして管理テーブル１４に設定する。また、ファームウェア１３は、残りのミラーメモリを待機メモリとして管理テーブル１４に設定する（Ｓ２５）。
【００７３】
ファームウェア１３は、メモリ制御部１６を制御して、新たに設定した待機メモリを物理アドレス空間から切り離す（Ｓ２６）。
【００７４】
プロセッサ制御部１５は、主メモリの内容をリセットし、ＯＳ３１をローディングしてブートする（Ｓ２７）。待機メモリ部分に対応するハードウェア以外のハードウェアが初期化される。待機メモリは、ハードウェアのリセットが行われても記憶した内容を保持する。
【００７５】
図１０は、本実施形態（実施例１）におけるシステムハングアップ時の待機メモリの切り替え処理のフローを示す。本フローでは、異常が生じて、情報処理装置が外部からの指令を受け付けなくなった場合、すなわちシステムハングアップが生じた場合の待機メモリの切り替え処理について説明する。システムハングアップが生じて、ハードウェアのリセット・スイッチが押下された場合、次に示すリブート処理が開始される（Ｓ３１）。
【００７６】
メモリエラー検出部１７がメモリエラーを検出していた場合（Ｓ３２で「Ｙｅｓ」）、ファームウェア１３は、メモリ制御部１６を制御して、待機メモリを物理アドレス空間へ復帰させる。ファームウェア１３は、メモリ制御部１６を介して、ミラーリングを解除して、メモリエラーが検出されていないミラーメモリを待機メモリとして管理テーブル１４に設定する。また、ファームウェア１３は、メモリエラーが検出されたミラーメモリをエラーメモリとして管理テーブル１４に設定し、メモリ制御部１６を介して、物理アドレス空間から切り離す。また、ファームウェア１３は、物理アドレス空間へ復帰させた待機メモリを主メモリとして管理テーブル１４に設定する（Ｓ３３）。
【００７７】
メモリエラー検出部１７がメモリエラーを検出していなかった場合（Ｓ３２で「Ｎｏ」）、主メモリを形成する２つのミラーメモリは正常であるから、ファームウェア１３は、次の処理を行う。すなわち、ファームウェア１３は、メモリ制御部１６を制御して、待機メモリを物理アドレス空間へ復帰させる。それから、ファームウェア１３は、ミラーメモリの１つと、その物理アドレス空間へ復帰させた待機メモリとをミラーリングして主メモリとして管理テーブル１４に設定する。また、ファームウェア１３は、残りのミラーメモリを待機メモリとして管理テーブル１４に設定する（Ｓ３４）。
【００７８】
ファームウェア１３は、メモリ制御部１６を制御して、新たに設定した待機メモリを物理アドレス空間から切り離す（Ｓ３５）。
【００７９】
プロセッサ制御部１５は、主メモリの内容を初期化し、ＯＳ３１をローディングしてブートする（Ｓ３６）。待機メモリ部分に対応するハードウェア以外のハードウェアが初期化される。待機メモリは、ハードウェアのリセットが行われても記憶した内容を保持する。
【００８０】
図１１は、本実施形態（実施例１）におけるメモリエラー発生時のエラーメモリの切り離し処理のフローを示す。メモリエラー検出部１７によりメモリエラーの発生が検知された場合、ファームウェア１３は、メモリ制御部１６を介して、主メモリのミラーリングを解除する（Ｓ４１）。
【００８１】
ファームウェア１３は、メモリ制御部１６を介して、エラーの発生したメモリを主メモリから切り離す（Ｓ４２）。ファームウェア１３は、切り離したメモリをエラーメモリとして管理テーブル１４に登録する（Ｓ４３）。
【００８２】
その後、切り離したメモリ領域に対応するハードウェアの交換が行われる。それに加えて、エラーメモリの登録がファームの管理テーブル１４から削除される。これにより、情報処理装置は復旧する。
【００８３】
図１２は、本実施形態（実施例１）における保守・復旧の処理のフローである。異常後のブート処理で情報処理装置１が再起動する。その後、情報処理装置の運用が再開される（Ｓ５１）。
【００８４】
次に、待機メモリを用いることにより、保守・復旧処理が行われる（Ｓ５２）。保守・復旧作業は、情報処理装置の通常運用には影響しないで実行することが可能となっている。ここでは、まず、ＯＳ３１は、ファームウェアのインターフェース（Ｉ／Ｆ）を通して、待機メモリを、当該ＯＳ３１が動作している物理アドレス空間と同一の物理アドレス空間の空き物理アドレス空間にマッピングする。マップされた待機メモリは、ＯＳ３１のＩ／Ｆにより任意のプロセスの仮想アドレス空間にマッピングされる。これにより、ＯＳ３１は、その待機メモリの内容を読み込みことができる。
【００８５】
ユーザの指示によりＯＳ３１上でクラッシュ調査プログラムが起動すると、クラッシュ調査プログラムは、マップされた待機メモリの内容を直接デバッグする（Ｓ５３）。なお、ＯＳ３１は、所定のシステムの負荷が低い場合に待機メモリの内容をダンプファイルとして保存してもよい。
【００８６】
ＯＳ３１は、ＯＳ３１のＩ／Ｆにより、待機メモリのマッピングを解除して、その待機メモリを仮想アドレス空間から外す（Ｓ５４）。ＯＳ３１は、ファームウェア１３のＩ／Ｆを通して待機メモリを空き物理アドレス空間から外す（Ｓ５５）。その後、情報処理装置１は、主メモリによって通常業務を継続する（Ｓ５６）。
【００８７】
図１３は、本実施形態（実施例１）における物理アドレス空間からのメモリ領域の切り離し処理について説明するための図である。メモリ１９には、分割された各メモリ領域に対応するChip Select（ＣＳ）端子が存在する。ＣＳ端子は、各メモリ領域を形成するランダムアクセスメモリ（ＲＡＭ）素子を使用するか、使用しないかを選択するために用いられる。
【００８８】
ＣＳ端子は、分割されたメモリ領域単位の範囲で設定されている。メモリ制御部１６は、ファームウェア１３からの指示に基づいて各ＣＳ端子をＯＮ／ＯＦＦする。これにより、分割されたメモリ領域単位で、物理アドレス空間からのメモリ領域の切り離しや物理アドレス空間へのメモリ領域の復帰を制御することができる。例えば、ＣＳ端子がＯＮになると、そのＣＳ端子に対応するメモリ領域は、物理アドレス空間に配置される。ＣＳ端子がＯＦＦになると、そのＣＳ端子に対応するメモリ領域は、物理アドレス空間から切り離される。また、ＣＳ端子がＯＦＦになると、メモリ制御部１６は、メモリ１９の初期化時にそのＣＳ端子に対応するメモリ領域を初期化しない。
【００８９】
図１４は、本実施形態（実施例１）における仮想アドレス空間への待機メモリのマッピングについて説明するための図である。図１４の例では、メモリ１とメモリ２がミラーリングされてＯＳ３１を動作させている場合に、待機メモリであるメモリ３が、ＯＳ３１の仮想アドレス変換機能によって仮想アドレス空間の空き領域にマッピングされている。
【００９０】
メモリ３に対応するＣＳ端子をＯＮすると、物理アドレス空間から切り離されていた待機メモリであるメモリ３が物理アドレス空間に復帰する。これにより、ＯＳ３１上からメモリ３へアクセス可能となる。また、メモリ３を仮想アドレス空間にマッピングすることによって、ダンプ採取を行わなくても障害調査を行うことが可能となる。
【００９１】
または、アドレスデコーダを用いて、主メモリとなるアドレス領域と待機メモリ領域とを調整してもよい。例えば、アドレスデコーダを用いて、アドレスデコードされないメモリ領域に対して、待機メモリとして物理アドレスを割り当てる（または割り当てない）ようにしてもよい。
【００９２】
実施例１によれば、異常発生後にメモリミラーを有効にして情報処理装置を再稼働させ、かつ併行して異常時のメモリイメージを調査しまたはダンプ採取を行うことが可能となる。また、複数に分割したメモリ領域から選択されたミラーメモリを切り替えることにより、メモリ情報の保持とシステム再稼動を同時に実現し、迅速な運用再開が可能になる。
【００９３】
また、メモリ情報を保持した待機メモリを仮想アドレス空間にマップすることで稼働中のシステムからクラッシュ調査を実行可能とし、迅速な原因調査が可能になる。また、システムメモリ上でダンプを実行することで、ダンプ対象のメモリ情報の書き換えが無くなる。
【００９４】
また、任意のタイミングでダンプ採取可能とすることで、ダンプ採取による負荷が情報処理装置の運用に影響しないように調整することができる。また、他の情報処理装置を用意することなく、クラッシュ調査が可能となり、設備と保守時間を短縮できる。
【００９５】
また、異常発生後の再稼働の際に主メモリと待機メモリをファームウェアで入れ替えるため、使用者は保守状態を意識することなく情報処理装置を運用することが可能になる。また、複数に分割したメモリ構成にすることで調査作業中に主メモリの片方のミラーメモリに異常が発生した場合、もう片方のミラーメモリで再稼働させることができる。
【００９６】
（実施例２）
実施例２では、２面のメモリによるメモリミラーリングにおいて異常が発生した場合に、ミラーメモリの一方を待機メモリに切り替えることについて説明する。
【００９７】
図１５は、本実施形態（実施例２）における（Ａ）２面のメモリミラーリングシステムの正常運用時のメモリの状態、及び（Ｂ）そのときの管理テーブルの状態を説明するための図である。
【００９８】
図１５（Ａ）、（Ｂ）に示すように、情報処理装置１の正常運用中では、待機メモリは存在せず、２つのミラーメモリを主メモリとし、２つのミラーメモリを用いて、メモリミラーリングを行った状態で、情報処理装置の稼動が続行される。
【００９９】
図１６は、本実施形態（実施例２）における（Ａ）２面のミラーリングシステムのパニック、WDT、またはリセット発生時のメモリの状態、及び（Ｂ）そのときの管理テーブルの状態を説明するための図である。
【０１００】
ＯＳ３１が正常終了をファームウェア３１に通知せずに、システムがパニック、ＷＤＴ、あるいはリセットされたとする。この場合、ファームウェア１３は、メモリ制御部１６を制御して、メモリミラーリングを解除し、１つのミラーメモリが待機メモリの状態に移行し、物理アドレス空間から切り離される。待機メモリ部分に対応するハードウェア以外のハードウェアが初期化される。待機メモリの内容については、異常発生時の内容が維持される。
【０１０１】
図１７は、本実施形態（実施例２）における（Ａ）２面のミラーリングシステムの障害調査時のメモリの状態、及び（Ｂ）そのときの管理テーブルの状態を説明するための図である。
【０１０２】
情報処理装置１の運用中において、ＯＳ３１は、ファームウェア１３に対して、物理アドレス空間への待機メモリの組み込みを指示する。物理アドレス空間へ組み込まれた待機メモリは、図１２で説明したように、ＯＳ３１によって仮想アドレス空間にマッピングされる。これにより、ＯＳ３１は、待機メモリの内容を読み出すことができるので、その待機メモリの内容を使って異常発生時の障害調査を行うことができる。調査完了後には、ユーザの指示により、ファームウェア３１は、メモリ２についての待機メモリの設定を解除し、メモリ２を再度ミラーメモリとしてミラーリングに用いる。
【０１０３】
実施例２によれば、異常発生後にメモリのミラーリングを解除して、一方のミラーメモリを待機メモリとすることにより、異常発生時のメモリの内容の保持とシステム再稼動を実現し、迅速な運用再開が可能になる。また、待機メモリの内容を用いて、異常時のメモリイメージを調査しまたはダンプ採取を行うことが可能となる。
【０１０４】
また、メモリ情報を保持した待機メモリを仮想アドレス空間にマップすることで稼働中のシステムからクラッシュ調査を実行可能とし、迅速な原因調査が可能になる。また、待機メモリ上でダンプを実行することで、ダンプ対象のメモリの書き換えが無くなる。また、任意のタイミングでダンプ採取可能とすることで、ダンプ採取によるシステム負荷がシステム運用に影響しないように調整可能になる。また、他の情報処理装置を用意することなくクラッシュ調査が可能となり、設備と保守時間を短縮できる。
【０１０５】
なお、本実施形態は、以上に述べた実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
【符号の説明】
【０１０６】
１      情報処理装置
２      記憶部
３      分割部
４      設定部
５      制御部
７      解析部
８      ミラーリング制御部
１２    ＣＰＵ
１３    ファームウェア
１４    管理テーブル
１５    プロセッサ制御部
１６    メモリ制御部
１７    メモリエラー検出部
１８    プロセッサ
１９    メモリ
２０    大容量記憶装置
２１    入出力装置
２２    ネットワーク装置
２３    バス
【図１】
2014127193.tif 000003
【図２】
2014127193.tif 000004
【図３】
2014127193.tif 000005
【図４】
2014127193.tif 000006
【図５】
2014127193.tif 000007
【図６】
2014127193.tif 000008
【図７】
2014127193.tif 000009
【図８】
2014127193.tif 000010
【図９】
2014127193.tif 000011
【図１０】
2014127193.tif 000012
【図１１】
2014127193.tif 000013
【図１２】
2014127193.tif 000014
【図１３】
2014127193.tif 000015
【図１４】
2014127193.tif 000016
【図１５】
2014127193.tif 000017
【図１６】
2014127193.tif 000018
【図１７】
2014127193.tif 000019