(57)【要約】【課題】トラブル調査用のデータのコピー時間を短縮する。【解決手段】情報処理装置１０は、オペレーティングシステムの動作に関するトラブルが発生した場合、不揮発性メモリ１２に、トラブル発生標識１２ａと、発生日時情報１２ｂとを格納する。次に情報処理装置１０は、トラブルが発生したときに揮発性メモリ１１に格納されている複数の種類のデータを、不揮発性メモリ１２にコピーする。次に情報処理装置１０は、オペレーティングシステムを再起動させる。オペレーティングシステムの再起動後、情報処理装置１０は、不揮発性メモリ１２内のトラブル発生標識１２ａに基づいて、再起動前のトラブルの発生を認識する。そして情報処理装置１０は、発生日時情報１２ｂと、トラブルの発生時に不揮発性メモリ１２にコピーされた複数の種類のデータのうちの予め決められた特定種類のデータとを、外部記憶媒体１に格納する。【選択図】図１
2019215602.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
オペレーティングシステムの動作に関するトラブルが発生した場合、不揮発性メモリに、前記トラブルの発生を示すトラブル発生標識と、前記トラブルの発生日時を示す発生日時情報とを格納し、
前記トラブルが発生したときに揮発性メモリに格納されている複数の種類のデータを、前記不揮発性メモリにコピーし、
前記オペレーティングシステムを再起動させ、
前記オペレーティングシステムの再起動後、前記不揮発性メモリ内の前記トラブル発生標識に基づいて、再起動前の前記トラブルの発生を認識し、
前記発生日時情報と、前記トラブルの発生時に前記不揮発性メモリにコピーされた前記複数の種類のデータのうちの予め決められた特定種類のデータとを、外部記憶媒体に格納する、
処理を実行させるメモリデータ採取プログラム。
【請求項２】
前記コンピュータに、さらに、
前記オペレーティングシステムの再起動後に、コピー対象のデータの種類を指定したコピー指示が入力されると、前記発生日時情報と、前記トラブルの発生時に前記不揮発性メモリにコピーされた前記複数の種類のデータのうちの指定された種類のデータとを、前記外部記憶媒体に格納する、
処理を実行させる請求項１記載のメモリデータ採取プログラム。
【請求項３】
前記コンピュータに、さらに、
前記トラブルの発生前に、前記トラブル発生標識と前記発生日時情報との前記不揮発性メモリへの格納処理、および前記揮発性メモリ内に格納されている複数の種類のデータの前記不揮発性メモリへのコピー処理の手順が記述されたコピープログラムを、前記揮発性メモリ内に格納し、
前記揮発性メモリ内の前記コピープログラムの格納領域を、書き込み禁止に設定する、
処理を実行させ、
前記トラブルが発生した場合、前記コピープログラムを実行することで、前記トラブル発生標識と前記発生日時情報との前記不揮発性メモリへの格納、および前記揮発性メモリ内に格納されている複数の種類のデータの前記不揮発性メモリへのコピーを実現する、
処理を実行させる請求項１または２に記載のメモリデータ採取プログラム。
【請求項４】
前記揮発性メモリにページ単位でデータが格納されており、
前記オペレーティングシステムが前記揮発性メモリ内の複数のページそれぞれのデータの種類を示す種類情報を、前記不揮発性メモリにコピーされたデータから取得し、前記種類情報に基づいて、前記不揮発性メモリにコピーされた前記複数のページのうちの前記特定種類のデータを含むページを判断する、
請求項１ないし３のいずれかに記載のメモリデータ採取プログラム。
【請求項５】
前記コンピュータに、さらに、
前記揮発性メモリから前記不揮発性メモリにコピーされた前記複数のページのうち、前記特定種類のデータを含むページを示す格納ページ情報を、前記外部記憶媒体に格納する、
処理を実行させる請求項４記載のメモリデータ採取プログラム。
【請求項６】
コンピュータが、
オペレーティングシステムの動作に関するトラブルが発生した場合、不揮発性メモリに、前記トラブルの発生を示すトラブル発生標識と、前記トラブルの発生日時を示す発生日時情報とを格納し、
前記トラブルが発生したときに揮発性メモリに格納されている複数の種類のデータを、前記不揮発性メモリにコピーし、
前記オペレーティングシステムを再起動させ、
前記オペレーティングシステムの再起動後、前記不揮発性メモリ内の前記トラブル発生標識に基づいて、再起動前の前記トラブルの発生を認識し、
前記発生日時情報と、前記トラブルの発生時に前記不揮発性メモリにコピーされた前記複数の種類のデータのうちの予め決められた特定種類のデータとを、外部記憶媒体に格納する、
メモリデータ採取方法。
【請求項７】
複数の種類のデータを記憶する揮発性メモリと、
不揮発性メモリと、
オペレーティングシステムの動作に関するトラブルが発生した場合、前記不揮発性メモリに、前記トラブルの発生を示すトラブル発生標識と、前記トラブルの発生日時を示す発生日時情報とを格納し、前記トラブルが発生したときに前記揮発性メモリに格納されている前記複数の種類のデータを、前記不揮発性メモリにコピーし、前記オペレーティングシステムを再起動させ、前記オペレーティングシステムの再起動後、前記不揮発性メモリ内の前記トラブル発生標識に基づいて、再起動前の前記トラブルの発生を認識し、前記発生日時情報と、前記トラブルの発生時に前記不揮発性メモリにコピーされた前記複数の種類のデータのうちの予め決められた特定種類のデータとを、外部記憶媒体に格納する処理部と、
を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリデータ採取プログラム、メモリデータ採取方法、および情報処理装置に関する。
【背景技術】
【０００２】
コンピュータは、オペレーティングシステム（ＯＳ）によって制御されている。ＯＳの実行に致命的なトラブルが発生すると、コンピュータは、正常に動作することができない。このようなトラブルが発生した場合、トラブルの原因を調査するため、コンピュータは、システムメモリダンプ（以下、単にメモリダンプと呼ぶ）を行う。メモリダンプは、コンピュータのメインメモリに格納されている全データを、ストレージ装置に書き出す処理である。コンピュータの保守担当者は、メモリダンプによって書き出されたデータを解析することで、トラブルの発生原因を調査する。
【０００３】
メモリダンプに関する技術としては、例えばメモリダンププログラム実行領域及びメモリダンプ対象領域をメモリ領域に有したＭＲＡＭ（Magnetoresistive Random Access Memory）を備える計算機システムが考えられている。また、障害発生の外部通知並びにメモリダンプの確実性を高めたコンピュータシステムも考えられている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−２５７９８７号公報
【特許文献２】特開２００６−０４０００１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
コンピュータのメモリの大容量化が進み、メモリダンプによって書き出されるデータ量が増大している。メモリダンプにより書き出したデータによりトラブルの原因を調査する場合、保守担当者は、そのデータを、調査資料として外部記憶媒体にコピーし、正常に動作している他のコンピュータを用いて、トラブル発生時のメモリ内のデータを解析することになる。しかし、メモリダンプにより書き出したデータのサイズが巨大になると、すべてのデータをコピーするのに時間がかかる。その結果、トラブルの調査の開始が遅れ、原因の特定までに時間がかかってしまう。
【０００６】
１つの側面では、本件は、トラブル調査用のデータのコピー時間を短縮することを目的とする。
【課題を解決するための手段】
【０００７】
１つの案では、コンピュータに以下の処理を実行させるメモリデータ採取プログラムが提供される。
コンピュータは、オペレーティングシステムの動作に関するトラブルが発生した場合、不揮発性メモリに、トラブルの発生を示すトラブル発生標識と、トラブルの発生日時を示す発生日時情報とを格納する。次にコンピュータは、トラブルが発生したときに揮発性メモリに格納されている複数の種類のデータを、不揮発性メモリにコピーする。次にコンピュータは、オペレーティングシステムを再起動させる。次にコンピュータは、オペレーティングシステムの再起動後、不揮発性メモリ内のトラブル発生標識に基づいて、再起動前のトラブルの発生を認識する。そしてコンピュータは、発生日時情報と、トラブルの発生時に不揮発性メモリにコピーされた複数の種類のデータのうちの予め決められた特定種類のデータとを、外部記憶媒体に格納する。
【発明の効果】
【０００８】
１態様によれば、トラブル調査用のデータのコピー時間を短縮することができる。
【図面の簡単な説明】
【０００９】
【図１】第１の実施の形態に係るメモリデータ採取方法の一例を示す図である。
【図２】ダンプデータを用いたトラブル原因調査の一例を示す図である。
【図３】サーバのハードウェアの一構成例を示す図である。
【図４】メモリダンプ機能の構成を示すブロック図である。
【図５】サーバ起動時の処理の一例を示す図である。
【図６】メインメモリ情報の管理例を示す図である。
【図７】優先度の定義例を示す図である。
【図８】トラブルの初期対応処理の一例を示す図である。
【図９】不揮発性メモリにコピーされたメインメモリ情報の一例を示す図である。
【図１０】管理用配列のデータ構造の一例を示す図である。
【図１１】ページ種類情報データフォーマットの一例を示す図である。
【図１２】サーバの再起動処理の一例を示す図である。
【図１３】再起動直後のダンプファイルの生成例を示す図である。
【図１４】コピー指示に応じたダンプファイルの生成例を示す図である。
【図１５】ダンプファイルのファイル構造の一例を示す図である。
【図１６】ページデータ内のデータの一例を示す図である。
【図１７】ダンプファイル内のデータの一例を示す図である。
【図１８】サーバ起動時のダンプ環境構築処理の手順の一例を示すフローチャートである。
【図１９】監視処理の手順の一例を示すフローチャートである。
【図２０】メインメモリ情報の不揮発性メモリへのコピー処理の手順の一例を示すフローチャートである。
【図２１】外部記憶媒体へのデータのコピー処理の手順の一例を示すフローチャートである。
【図２２】ダンプファイル生成処理の手順の一例を示すフローチャートである。
【図２３】繰り返しトラブルが発生した場合の不揮発性メモリ内の情報の一例を示す図である。
【発明を実施するための形態】
【００１０】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第１の実施の形態〕
まず第１の実施の形態について説明する。
【００１１】
図１は、第１の実施の形態に係るメモリデータ採取方法の一例を示す図である。情報処理装置１０は、メインメモリとして使用する揮発性メモリ１１、揮発性メモリ１１内のデータの退避先として使用する不揮発性メモリ１２、および処理部１３を有する。処理部１３は、例えば情報処理装置１０が有するプロセッサ、または演算回路である。情報処理装置１０は、例えば処理部１３にメモリデータ採取プログラムを実行させることで、トラブルの調査に利用するデータを短時間で採取するためのメモリデータ採取方法を実現する。
【００１２】
処理部１３は、オペレーティングシステム（ＯＳ）の動作に関するトラブルが発生した場合、不揮発性メモリ１２に、トラブルの発生を示すトラブル発生標識１２ａと、トラブルの発生日時を示す発生日時情報１２ｂとを格納する。次に処理部１３は、トラブルが発生したときに揮発性メモリ１１に格納されている複数の種類のデータを、不揮発性メモリ１２にコピーする。
【００１３】
揮発性メモリ１１に格納されているデータの種類は、例えばページ単位で定義されている。例えば、ＯＳの主要機能を実現するためのプログラムおよびデータが格納されたページの種類は、カーネルページ１２ｃである。またアプリケーションソフトウェア（ＳＷ）のプログラムやデータが格納されたページの種類は、ユーザページ１２ｄである。また使用されたデータの再利用のために保存しておくページの種類は、ページキャッシュ１２ｅである。
【００１４】
ＯＳは、揮発性メモリ１１内の複数のページそれぞれのデータの種類を示す種類情報を有する。種類情報は、揮発性メモリ１１内に格納されている。そのためＯＳにトラブルが発生したとき、揮発性メモリ１１から不揮発性メモリ１２にコピーされるデータには、種類情報が含まれる。処理部１３は、種類情報を不揮発性メモリ１２にコピーされたデータから取得し、取得した種類情報に基づいて、不揮発性メモリ１２にコピーされた複数のページのデータの種類を判断することができる。
【００１５】
処理部１３は、揮発性メモリ１１内のデータのコピーが完了すると、オペレーティングシステムを再起動させる。この再起動により、情報処理装置１０は、揮発性メモリ１１の内容を初期化し、ＯＳのプログラムを揮発性メモリ１１にロードする。
【００１６】
処理部１３は、オペレーティングシステムの再起動後、不揮発性メモリ１２内のトラブル発生標識１２ａに基づいて、再起動前のトラブルの発生を認識する。そして処理部１３は、発生日時情報１２ｂと、トラブルの発生時に不揮発性メモリ１２にコピーされた複数の種類のデータのうちの予め決められた特定種類のデータとを、外部記憶媒体１に格納する。例えば処理部１３は、発生日時情報１２ｂとカーネルページ１２ｃ内のデータとを含むダンプファイル２を生成し、生成したダンプファイル２を外部記憶媒体１に格納する。外部記憶媒体１は、例えば可搬型のメモリ装置、または外部のストレージ装置である。
【００１７】
このようにＯＳの動作に関するトラブルが発生すると、メインメモリとして使用されている揮発性メモリ１１内のデータが、一旦、不揮発性メモリ１２に退避される。不揮発性メモリ１２として、高速に書き込み可能な半導体メモリを用いれば、ＯＳなどのメインメモリに保持されたプログラムやデータを、短い時間で不揮発性メモリ１２にコピーできる。不揮発性メモリ１２へのデータのコピー完了後は、ＯＳの再起動により、情報処理装置１０の運用を再開できる。すなわちトラブルによる運用停止時間が短縮される。
【００１８】
しかも、不揮発性メモリ１２にトラブル発生標識１２ａが格納されているため、ＯＳの再起動後に、処理部１３は、そのトラブル発生標識１２ａにより、ＯＳのトラブルが原因でＯＳが再起動されたことを認識できる。そして処理部１３が、カーネルページのような、トラブルの調査に有用なページのデータに限定して、外部記憶媒体１にデータを格納することにより、調査に有用なデータの外部記憶媒体１への書き込みを、短時間で行うことができる。その結果、外部記憶媒体１に格納されたデータを用いたトラブルの調査を、早期に開始することができる。
【００１９】
なお、起動時に自動で格納したダンプファイル２内のデータだけでは、トラブルの調査資料として不十分な場合がある。この場合、トラブルを調査する担当者は、他のデータのコピー指示４を、情報処理装置１０に入力する。コピー指示４では、コピー対象のデータの種類が指定される。
【００２０】
処理部１３は、ＯＳの再起動後に、コピー対象のデータの種類を指定したコピー指示が入力されると、発生日時情報と、トラブルの発生時に不揮発性メモリにコピーされた複数の種類のデータのうちの指定された種類のデータとを、外部記憶媒体１に格納する。例えばコピー指示４においてユーザページが指定された場合、処理部１３は、発生日時情報１２ｂとユーザページ１２ｄ内のデータとを含むダンプファイル３を生成し、生成したダンプファイル３を外部記憶媒体１に格納する。
【００２１】
このように、データの種類を指定してダンプファイル３を作成できることで、最初に調査したダンプファイル２内のデータでは十分な調査ができない場合、調査に用いるデータを適宜外部記憶媒体１に補充することができる。そして、段階的にデータを外部記憶媒体１にコピーすることで、外部記憶媒体１にコピーするデータ量を最小限に抑えることができ、コピーに要する時間を削減できる。
【００２２】
なお揮発性メモリ１１内のデータの不揮発性メモリ１２へのコピーは、ＯＳの動作にトラブルが発生した場合に実行される。ＯＳの動作にトラブルが発生すると、揮発性メモリ１１内のデータが、誤って他のデータで上書きされる可能性がある。そこで、処理部１３は、コピー処理に用いるコピープログラムの記憶領域を書き込み禁止にすることで、コピープログラムが他のデータで上書きされることを抑止してもよい。
【００２３】
例えば処理部１３は、トラブルの発生前に、コピープログラムを揮発性メモリ１１内に格納する。このコピープログラムには、トラブル発生標識と発生日時情報との不揮発性メモリ１２への格納処理、および揮発性メモリ１１内に格納されている複数の種類のデータの不揮発性メモリ１２へのコピー処理の手順が記述されている。次に処理部１３は、不揮発性メモリ１２内のコピープログラムの格納領域を、書き込み禁止に設定する。そして処理部１３は、コピープログラムを実行することで、トラブル発生標識と発生日時情報との不揮発性メモリ１２への格納、および揮発性メモリ１１内に格納されている複数の種類のデータの不揮発性メモリ１２へのコピーを実現する。
【００２４】
このように、コピープログラムの格納領域を書き込み禁止にすることで、ＯＳにトラブルが発生しても、コピープログラムを保護することができる。その結果、ＯＳの動作にトラブルが発生した場合の揮発性メモリ１１内のデータの不揮発性メモリ１２へのコピーを、確実に実行することができる。
【００２５】
外部記憶媒体１に格納するダンプファイル２，３に含まれるデータは、不揮発性メモリ１２内で連続の領域に格納されているとは限らない。例えば揮発性メモリ１１内では、格納されているデータがページ単位で管理される。各ページには、そのページに格納されたデータの種類が設定される。この場合、不揮発性メモリ１２にコピーされたデータも、ページ単位で管理できる。そこで処理部１３は、特定種類のデータを外部記憶媒体１に格納する際、揮発性メモリ１１から不揮発性メモリ１２にデータがコピーされた複数のページのうち、特定種類のデータが含まれるページを示す格納ページ情報を、外部記憶媒体１に格納する。処理部１３は、例えば格納ページ情報をダンプファイル２に含める。なお、処理部１３は、コピー指示４に応じて作成したダンプファイル３にも、そのダンプファイル３にデータが含まれているページを示す格納ページ情報を含めることができる。これにより、ダンプファイル２，３を参照することで、そのダンプファイル２，３内の各ページのデータが、揮発性メモリ１１におけるどのページのデータに該当するのかが分かる。
【００２６】
〔第２の実施の形態〕
次に、第２の実施の形態について説明する。
図２は、ダンプデータを用いたトラブル原因調査の一例を示す図である。例えば顧客企業３０は、サーバ１００の保守を、保守サービス会社４０に委託しているものとする。この場合、サーバ１００に重大な障害が発生すると、サーバ１００においてメモリダンプが実行される。重大な障害とは、ハードウェアまたはソフトウェアが正常に機能せず、ＯＳが正常にサーバ１００を管理できなくなるような障害である。
【００２７】
メモリダンプでは、サーバ１００は、メインメモリ内のデータを、不揮発性の記憶媒体に書き出す。例えばサーバ１００は、メモリダンプにより、メインメモリ内のデータを、ストレージ装置よりも高速にアクセス可能な不揮発性メモリに書き出す。メモリダンプによるデータの書き込み先を不揮発性メモリとすることで、データの書き込み時間を短縮することができる。データを不揮発性メモリに書き出すことで、トラブルによるサーバ１００の運用停止時間を短時間に抑えることができる。
【００２８】
サーバ１００は、メインメモリ内の全データを不揮発性の記憶媒体に書き出した後、ＯＳを再起動する。ＯＳ以外のソフトウェアのトラブルであれば、再起動後にサーバ１００が正常に動作するが、障害発生時と同じ状況になれば、トラブルが再発する可能性がある。そこでサーバ１００は、メモリダンプにより書き出したデータの一部を、外部記憶媒体にコピーする。例えばサーバ１００は、可搬型のメモリ装置２５にデータをコピーする。またサーバ１００が保守サービス会社４０の調査用のコンピュータ４２とネットワーク２０で接続されており、セキュリティの高い通信が可能な場合もある。この場合、サーバ１００は、ネットワーク２０を介してコンピュータ４２が有するストレージ装置にデータをコピーすることもできる。
【００２９】
メモリ装置２５にデータをコピーした場合、顧客企業３０のユーザ３１が、メモリ装置２５を保守サービス会社４０の保守担当者４１に渡す。保守担当者４１は、渡されたメモリ装置２５をコンピュータ４２に接続し、メモリ装置２５に記録されたデータに基づいて、トラブルの原因を調査する。
【００３０】
図３は、サーバのハードウェアの一構成例を示す図である。サーバ１００は、プロセッサ１０１によって装置全体が制御されている。プロセッサ１０１には、バス１１０を介してメインメモリ１０２と複数の周辺機器が接続されている。プロセッサ１０１は、マルチプロセッサであってもよい。プロセッサ１０１は、例えばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、またはＤＳＰ（Digital Signal Processor）である。プロセッサ１０１がプログラムを実行することで実現する機能の少なくとも一部を、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）などの電子回路で実現してもよい。
【００３１】
メインメモリ１０２は、プロセッサから高速にアクセス可能な記憶装置である。メインメモリ１０２には、例えばプロセッサ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メインメモリ１０２には、プロセッサ１０１による処理に利用する各種データが格納される。メインメモリ１０２としては、例えばＲＡＭ（Random Access Memory）などの揮発性の半導体記憶装置が使用される。
【００３２】
バス１１０に接続されている周辺機器は、ストレージ装置１０３、グラフィック処理装置１０４、入力インタフェース１０５、光学ドライブ装置１０６、機器接続インタフェース１０７、ネットワークインタフェース１０８、および不揮発性メモリ１０９である。
【００３３】
ストレージ装置１０３は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置１０３は、コンピュータの補助記憶装置として使用される。ストレージ装置１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置１０３としては、例えばＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）を使用することができる。
【００３４】
グラフィック処理装置１０４には、モニタ２１が接続されている。グラフィック処理装置１０４は、プロセッサ１０１からの命令に従って、画像をモニタ２１の画面に表示させる。モニタ２１としては、有機ＥＬ（Electro Luminescence）を用いた表示装置や液晶表示装置などがある。
【００３５】
入力インタフェース１０５には、キーボード２２とマウス２３とが接続されている。入力インタフェース１０５は、キーボード２２やマウス２３から送られてくる信号をプロセッサ１０１に送信する。なお、マウス２３は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００３６】
光学ドライブ装置１０６は、レーザ光などを利用して、光ディスク２４に記録されたデータの読み取りを行う。光ディスク２４は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク２４には、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【００３７】
機器接続インタフェース１０７は、サーバ１００に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース１０７には、メモリ装置２５やメモリリーダライタ２６を接続することができる。メモリ装置２５は、機器接続インタフェース１０７との通信機能を搭載した記録媒体である。メモリリーダライタ２６は、メモリカード２７へのデータの書き込み、またはメモリカード２７からのデータの読み出しを行う装置である。メモリカード２７は、カード型の記録媒体である。
【００３８】
ネットワークインタフェース１０８は、ネットワーク２０に接続されている。ネットワークインタフェース１０８は、ネットワーク２０を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【００３９】
不揮発性メモリ１０９は、高速にデータの書き込みが可能でありながら、電源が遮断されてもデータを保持することが可能な記憶装置である。不揮発性メモリ１０９は、ストレージ装置１０３よりも高速にデータの書き込みが可能であることが好ましい。不揮発性メモリ１０９としては、例えば３ＤＸｐｏｉｎｔを用いることができる。
【００４０】
また、サーバ１００は、ハードウェアの動作環境を管理するために、プロセッサ１０１に接続されたサーバ制御装置１１１を有している。サーバ制御装置１１１は、例えば電源ユニット１１２に接続されており、電源ユニット１１２のオン・オフを制御する。例えばサーバ制御装置１１１は、プロセッサ１０１から再起動の指示を受け取ると、電源ユニット１１２のスイッチをオフにし、その後、電源ユニット１１２のスイッチをオンにする。
【００４１】
サーバ１００は、以上のようなハードウェア構成によって、第２の実施の形態の処理機能を実現することができる。なお、第１の実施の形態に示した情報処理装置１０も、図３に示したサーバ１００と同様のハードウェアにより実現することができる。
【００４２】
サーバ１００は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第２の実施の形態の処理機能を実現する。サーバ１００に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、サーバ１００に実行させるプログラムをストレージ装置１０３に格納しておくことができる。プロセッサ１０１は、ストレージ装置１０３内のプログラムの少なくとも一部をメインメモリ１０２にロードし、プログラムを実行する。またサーバ１００に実行させるプログラムを、光ディスク２４、メモリ装置２５、メモリカード２７などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ１０１からの制御により、ストレージ装置１０３にインストールされた後、実行可能となる。またプロセッサ１０１が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【００４３】
図４は、メモリダンプ機能の構成を示すブロック図である。サーバ１００のプロセッサ１０１は、ＯＳ１２０によって実現する機能として、ダンプ環境構築部１２１と監視部１２２とを有する。ダンプ環境構築部１２１は、ＯＳ１２０の起動時に、ＯＳ１２０にトラブルが発生した時にメモリダンプを行うための環境を整える。
【００４４】
監視部１２２は、ＯＳ１２０の動作を監視し、致命的なトラブルが発生したことを検出する。ＯＳの致命的なトラブルとしては、ＯＳパニックまたはハングアップがある。監視部１２２は、ＯＳに致命的なトラブルが発生したら、プロセッサ１０１のレジスタ内のデータをメインメモリ１０２に格納する。そして監視部１２２は、コピー部１３０にトラブル発生を通知する。また監視部１２２は、コピー部１３０からメインメモリ１０２上の情報のコピー完了通知を受けると、サーバ制御装置１１１にハードウェア（ＨＷ）のリセットを指示する。
【００４５】
またプロセッサ１０１は、コピー部１３０を有する。コピー部１３０は、ＯＳ１２０に致命的なトラブルが発生したときに、メインメモリ１０２内のデータを不揮発性メモリ１０９に書き出す。そしてコピー部１３０は、不揮発性メモリ１０９に書き出したデータのうち、トラブルの調査に有用な一部のデータを、外部記憶媒体５０にコピーする。例えばコピー部１３０は、トラブル発生の通知を受け取ると、現在の日時をトラブル発生日時とし、不揮発性メモリ１０９上の所定の領域に、トラブル発生標識とトラブル発生日時を格納する。その後、コピー部１３０は、メインメモリ１０２内のすべての情報を、不揮発性メモリ１０９にコピーする。コピー部１３０は、コピー完了後、監視部１２２にコピー完了を通知する。以下、メインメモリ１０２から不揮発性メモリ１０９にコピーされたデータを、メインメモリ情報と呼ぶ。
【００４６】
コピー部１３０は、サーバ１００の再起動後、不揮発性メモリ１０９から、予め指定された優先度のメインメモリ情報を含むダンプファイルを、外部記憶媒体５０に書き込む。また、コピー部１３０は、優先度を指定したメインメモリ情報のコピー要求を受け取ると、メインメモリ情報内の指定された優先度のデータのダンプファイルを、外部記憶媒体５０に書き込む。
【００４７】
さらにコピー部１３０は、ユーザ３１からの入力に応じて、不揮発性メモリ１０９内のメインメモリ情報とトラブル発生標識とを削除する。
外部記憶媒体５０は、例えば光ディスク２４、メモリ装置２５、メモリカード２７、またはネットワーク２０を介して接続された外部システム内のストレージ装置である。
【００４８】
なお、図４に示したプロセッサ１０１内の各要素の機能は、例えば、その要素に対応するプログラムモジュールをプロセッサ１０１に実行させることで実現することができる。
サーバ１００は、図４に示した機能により、優先度に応じたメインメモリ情報の外部記憶媒体５０へのコピーを行うことができる。以下、サーバ１００の起動からメインメモリ情報のコピーまでの処理について具体的に説明する。
【００４９】
図５は、サーバ起動時の処理の一例を示す図である。システムディスクとして用いられているストレージ装置１０３には、ＯＳプログラム６１とコピープログラム６２とが格納されている。ＯＳプログラム６１は、ダンプ環境構築プログラム６１ａと監視プログラム６１ｂとを含んでいる。
【００５０】
サーバ１００に電源が投入されると、プロセッサ１０１は、ストレージ装置１０３内の所定の領域に格納されたブートローダと呼ばれるプログラムに従ってブートシーケンスを実行する。ブートシーケンスにおいて、プロセッサ１０１は、ストレージ装置１０３内のＯＳプログラム６１をメインメモリ１０２にロードする。これにより、メインメモリ１０２内にＯＳプログラム６３が格納される。メインメモリ１０２に格納されたＯＳプログラム６３には、ダンプ環境構築プログラム６３ａと監視プログラム６３ｂとが含まれる。ＯＳプログラム６３をロード後、プロセッサ１０１は、ダンプ環境構築プログラム６３ａを実行する。ダンプ環境構築プログラム６３ａを実行することで、サーバ１００内にダンプ環境構築部１２１が起動される。
【００５１】
ダンプ環境構築部１２１は、まず、ストレージ装置１０３内のコピープログラム６２をメインメモリ１０２にロードする。これにより、メインメモリ１０２内にコピープログラム６４が格納される。次にダンプ環境構築部１２１は、コピープログラム６４を格納したメインメモリ１０２内の記憶領域を、書き込み禁止に設定する。そしてダンプ環境構築部１２１は、監視部１２２とコピー部１３０とを起動する。例えばダンプ環境構築部１２１は、監視プログラム６３ｂの実行要求とコピープログラム６４の実行要求とを出力する。するとプロセッサ１０１が、監視プログラム６３ｂの実行要求とコピープログラム６４との実行を開始し、監視部１２２とコピー部１３０とが起動される。
【００５２】
起動されたコピー部１３０は、不揮発性メモリ１０９内のデータを参照し、トラブル発生標識の有無を確認する。図５の例では、トラブル発生標識は存在しない。トラブル発生標識が存在しない場合、コピー部１３０は、起動時の処理を終了する。
【００５３】
なお、サーバ１００のＯＳ１２０は、メインメモリ１０２に格納されたメインメモリ情報を、例えばページ単位で管理する。
図６は、メインメモリ情報の管理例を示す図である。図６の例では、メインメモリ１０２内において、メインメモリ情報７２が、４Ｋバイトサイズのページに区切って管理されている。各ページには、下位アドレスから順に０、１、２、・・・と通し番号が付与されている。この通し番号は、ページフレーム番号（ＰＦＮ：Page Frame Number）、またはページ番号と呼ばれる。図６の例では、ＰＦＮ「０」のページからＰＦＮ「Ｎ−１」のページまでのＮ個のページ（Ｎは１以上の整数）が、メインメモリ情報７２に含まれている。
【００５４】
ＯＳ１２０は、各ページを管理用配列７３によって管理する。各ページのＰＦＮと同じインデックス番号を有する配列内の要素に、そのページに管理情報が設定される。例えばＰＦＮがｎ（ｎは０以上の整数）のページの管理情報は、配列のｎ番目の要素に設定される。なお、管理用配列７３を示すデータも、メインメモリ情報７２に含まれる。
【００５５】
管理用配列７３には、例えば各ページの種類が設定される。ページの種類には、カーネルページ、ユーザページ、ページキャッシュなどがある。カーネルページは、ＯＳ１２０の中核部分となるカーネルにおいて使用するデータが格納されたページである。ユーザページは、アプリケーションソフトウェアの実行のために使用されるデータが格納されたページである。ページキャッシュは、一度メインメモリ１０２に読み込んだデータを、そのデータの使用後も再利用のために保持しているページである。ページキャッシュには、プライベートのページと非プライベートのページとがある。プライベートのページは、特定のプロセス専用のデータが格納されたページである。非プライベートのページは、複数のプロセスで共有されるデータが格納されたページである。なお、管理用配列７３は、第１の実施の形態で説明した種類情報の一例である。
【００５６】
コピー部１３０では、ページの種類ごとに、ダンプファイルへのコピーの優先度を管理している。
図７は、優先度の定義例を示す図である。コピー部１３０は、例えば図７に示すような優先度管理テーブル１３１を有する。優先度管理テーブル１３１には、ページ種類ごとの優先度が設定されている。図７の例では、カーネルページの優先度は、「デフォルト」である。優先度「デフォルト」は最も高い優先度を示している。優先度「デフォルト」のページのデータは、トラブル発生後の再起動時に、ユーザ３１からの指示を待たずにダンプファイルに書き出される。その他の優先度は、値が小さい程、優先度が高いことを示す。ユーザページの優先度は「１」、ページキャッシュ（プライベート）の優先度は「２」、ページキャッシュ（非プライベート）の優先度は「３」、その他のページの優先度は「４」である。
【００５７】
コピー部１３０は、このような優先度に従って、メインメモリ情報７２のうち、トラブルの調査に有用なデータのみを含むダンプファイルを生成することができる。なお、ダンプファイルの作成は、トラブル発生後のサーバ１００の再起動直後に自動で行われると共に、再起動後のユーザ３１からの指示に応じても行われる。
【００５８】
以下、ＯＳ１２０に致命的なトラブルがあった場合の処理について説明する。
監視部１２２は、起動された後、ＯＳ１２０の動作を監視する。ＯＳ１２０に致命的なトラブルが発生すると、そのトラブルの発生を監視部１２２が検知する。すると、サーバ１００において、トラブルに対する初期対応処理が行われる。
【００５９】
図８は、トラブルの初期対応処理の一例を示す図である。監視部１２２は、ＯＳ１２０の動作を監視することで致命的なトラブルを検知すると、トラブル発生通知をコピー部１３０に送信する。コピー部１３０は、トラブルの発生を示すトラブル情報７１を作成する。トラブル情報７１には、現在時刻がトラブル発生日時として含まれる。またトラブル情報７１には、トラブル発生を示すトラブル発生標識が含まれる。コピー部１３０は、トラブル情報７１を、不揮発性メモリ１０９に格納する。
【００６０】
次にコピー部１３０は、メインメモリ１０２内のすべてのデータを、メインメモリ情報７２として不揮発性メモリ１０９にコピーする。コピー部１３０は、メインメモリ情報７２のコピーが完了すると、監視部１２２にコピー完了を通知する。
【００６１】
コピー完了の通知を受信した監視部１２２は、サーバ制御装置１１１にＨＷリセットを指示する。するとサーバ制御装置１１１がＨＷをリセットする。すなわちサーバ制御装置１１１は、サーバ１００の電源を一時的に遮断し、その後、電源を再投入する。ＨＷリセットにより、サーバ１００のＯＳが再起動する。
【００６２】
サーバ１００のＨＷリセットが行われると、サーバ１００の電源が一時的にオフになるため、メインメモリ１０２内のデータは消去される。ただし、トラブル発生時にメインメモリ１０２に格納されていたメインメモリ情報７２は、不揮発性メモリ１０９にコピーされており、サーバ１００の電源がオフになっても、そのまま保持される。
【００６３】
図９は、不揮発性メモリにコピーされたメインメモリ情報の一例を示す図である。図６に示したようにメインメモリ１０２内では、メインメモリ情報７２がページ単位で管理されている。メインメモリ情報７２は、ページの順番を崩さずに、不揮発性メモリ１０９にコピーされている。図９の例では、メインメモリ情報７２が、不揮発性メモリ１０９のアドレス「α」を先頭番地とする領域に格納されている。
【００６４】
なお、各ページを管理するための管理用配列７３の情報は、メインメモリ情報７２に含まれている。従ってコピー部１３０は、不揮発性メモリ１０９にコピーされたメインメモリ情報７２から管理用配列７３の情報を抽出することで、各ページの種類を識別することができる。
【００６５】
図１０は、管理用配列のデータ構造の一例を示す図である。管理用配列７３内の各要素内のメンバ「ｄａｔａ３」の「０」〜「３」ビット目の４ビットにページ種類情報が格納されている。
【００６６】
図１１は、ページ種類情報データフォーマットの一例を示す図である。ページ種類情報データフォーマット７４には、ページ種類情報の各ビットの値に対応するページ種類が示されている。例えばページ種類情報の０ビット目だけが「１」で他のビットが「０」の場合、そのページ種類情報に対応するページはカーネルページである。ページ種類情報の１ビット目だけが「１」で他のビットが「０」の場合、そのページ種類情報に対応するページはユーザページである。ページ種類情報の２ビット目だけが「１」で他のビットが「０」の場合、そのページ種類情報に対応するページはページキャッシュ（プライベート）のページである。ページ種類情報の３ビット目だけが「１」で他のビットが「０」の場合、そのページ種類情報に対応するページはページキャッシュ（非プライベート）のページである。ページ種類情報のすべてのビットが「０」の場合、そのページ種類情報に対応するページは、その他のページである。
【００６７】
このようなページ種類情報データフォーマット７４の内容が、コピー部１３０に設定されている。コピー部１３０は、トラブル発生後にサーバ１００が再起動されると、各ページのページ情報をページ種類情報データフォーマット７４と照合し、各ページの種類を判別する。そしてコピー部１３０は、トラブルの調査に有用なページをメインメモリ情報７２から抽出し、抽出したページ内のデータを含むダンプファイルを、外部記憶媒体５０に書き込む。
【００６８】
図１２は、サーバの再起動処理の一例を示す図である。サーバ制御装置１１１が電源ユニット１１２のオフおよびオンを行うことで、サーバ１００のＨＷリセットが行われる。ＨＷリセットにより、メインメモリ１０２に保持されていたデータはすべて消失する。
【００６９】
そしてプロセッサ１０１は、ＯＳの再起動を開始する。ＯＳの再起動では、図５に示したサーバ起動時の処理と同様に、ＯＳプログラム６１のロードが行われ、ダンプ環境構築部１２１が起動される。ダンプ環境構築部１２１は、コピープログラム６２をメインメモリ１０２にロードする。次にダンプ環境構築部１２１は、コピープログラム６４を格納したメインメモリ１０２内の領域を書き込み禁止に設定する。そしてダンプ環境構築部１２１は、コピー部１３０と監視部１２２とを同時に起動する。
【００７０】
ＯＳの再起動が完了すると、監視部１２２は、ＯＳの動作を監視する。一方、コピー部１３０は、不揮発性メモリ１０９内のデータを参照し、トラブル発生標識の有無を確認する。図１２の例では、不揮発性メモリ１０９内にトラブル発生標識が格納されており、コピー部１３０は、トラブル発生標識が存在すると判断する。トラブル発生標識が存在する場合、コピー部１３０は、メインメモリ情報７２から優先度「デフォルト」のページをコピー対象として抽出する。そしてコピー部１３０は、抽出したページを含むダンプファイルを、外部記憶媒体５０に格納する。
【００７１】
図１３は、再起動直後のダンプファイルの生成例を示す図である。コピー部１３０は、トラブル発生後にサーバ１００が再起動されると、優先度管理テーブル１３１（図７参照）に基づいて、優先度「デフォルト」のページは、カーネルページであると認識する。ページ種類情報データフォーマット７４（図１１参照）によれば、カーネルページのページ種類情報のビット配列は「０，０，０，１」である。コピー部１３０は、不揮発性メモリ１０９内のメインメモリ情報７２から、管理用配列７３を検索し、管理用配列７３内の各要素に示されるページ種類情報を参照する。そしてコピー部１３０は、ページ種類情報の値が「０，０，０，１」である要素に対応するページを、カーネルページであると判断する。
【００７２】
コピー部１３０は、不揮発性メモリ１０９から、メインメモリ情報７２内のカーネルページを抽出し、抽出したカーネルページを含むダンプファイル５１を生成する。そしてコピー部１３０は、生成したダンプファイル５１を外部記憶媒体５０に格納する。
【００７３】
その後、ユーザ３１から、メインメモリ情報７２内のデータのコピー指示がサーバ１００に入力されると、コピー部１３０は、コピー指示で指定されたページを含むダンプファイルを生成し、そのダンプファイルを外部記憶媒体５０に格納する。
【００７４】
図１４は、コピー指示に応じたダンプファイルの生成例を示す図である。コピー部１３０は、ユーザ３１から入力されたコピー指示を取得する。コピー指示には、コピー対象のページの優先度が設定されている。図１４の例では、優先度「１」と優先度「２」のページがコピー対象として指定されている。コピー部１３０は、優先度管理テーブル１３１（図７参照）に基づいて、優先度「１」のページは、ユーザページであり、優先度「２」のページは、ページキャッシュ（プライベート）であると認識する。ページ種類情報データフォーマット７４（図１１参照）によれば、ユーザページのページ種類情報のビット配列は「０，０，１，０」であり、ページキャッシュ（プライベート）のページのページ種類情報のビット配列は「０，１，０，０」である。コピー部１３０は、不揮発性メモリ１０９内のメインメモリ情報７２から、管理用配列７３を検索し、管理用配列７３内の各要素に示されるページ種類情報を参照する。そしてコピー部１３０は、ページ種類情報の値が「０，０，１，０」である要素に対応するページを、ユーザページであると判断する。またコピー部１３０は、ページ種類情報の値が「０，１，０，０」である要素に対応するページを、ページキャッシュ（プライベート）のページであると判断する。
【００７５】
コピー部１３０は、不揮発性メモリ１０９から、メインメモリ情報７２内のユーザページを抽出し、抽出したユーザページを含むダンプファイル５２を生成する。そしてコピー部１３０は、生成したダンプファイル５２を外部記憶媒体５０に格納する。またコピー部１３０は、不揮発性メモリ１０９から、メインメモリ情報７２内のページキャッシュ（プライベート）のページを抽出し、抽出したページを含むダンプファイル５３を生成する。そしてコピー部１３０は、生成したダンプファイル５３を外部記憶媒体５０に格納する。
【００７６】
次に、ダンプファイル５１〜５３のファイル構造について説明する。
図１５は、ダンプファイルのファイル構造の一例を示す図である。ダンプファイル５１にはヘッダ５１ａ、対応テーブル５１ｂ、ページデータ５１ｃの３つのデータが格納されている。
【００７７】
ヘッダ５１ａには、例えば障害発生日時とダンプファイルに含まれるページの優先度とが含まれる。障害発生日時は、コピー部１３０が不揮発性メモリ１０９上に書き込んだトラブル発生日時である。サーバ１００の再起動直後に、ユーザからのコピー指示を待たずに作成されたダンプファイル５１に含まれるページの優先度は「デフォルト」である。
【００７８】
対応テーブル５１ｂには、メインメモリ情報７２内のページのうち、どのページがダンプファイル５１に含まれるのかを示すビットマップテーブルである。すなわち一部のページを抽出してページデータ５１ｃを作成すると、ページデータ５１ｃに格納されているそれぞれのページがメインメモリ１０２上にあったときに、どのＰＦＮに対応していたのかが、ページの格納順だけでは判別できない。ページデータ５１ｃに格納されているページがメインメモリ１０２上にあった際、どのＰＦＮに関連付けられていたかを対応付けるのが対応テーブル５１ｂである。なお、対応テーブル５１ｂは、第１の実施の形態で説明した格納ページ情報の一例である。
【００７９】
ここでメインメモリ１０２上にＮ個（Ｎは１以上の整数）のページがあったとする。この場合、メインメモリ上には０〜（Ｎ−１）までのＰＦＮが割り当てられたページが存在することになる。対応テーブル５１ｂには、Ｎビットのビット列が含まれる。本ビット列の各ビットは、メインメモリ１０２上のページに対応する。すなわちビット列の１ビット目のビットはＰＦＮ＝０のページに対応し、２ビット目のビットはＰＦＮ＝１のページに対応する。
【００８０】
また、ビット列の各ビットは、該当するページがページデータ５１ｃに含まれるか否かを示している。ここでビットの値が「１」であれば、そのビットに対応するページはページデータ５１ｃに含まれる。またビットの値が「０」であれば、そのビットに対応するページはページデータ５１ｃに含まれない。
【００８１】
図１６は、ページデータ内のデータの一例を示す図である。不揮発性メモリ１０９に格納されたメインメモリ情報７２には、メインメモリ１０２内のすべてのページが含まれている。ページデータ５１ｃには、ＰＦＮの小さい順に、コピー対象の優先度のページが格納されている。すなわちコピー対象の優先度のページ（図１６中の網掛けの矩形）は、メインメモリ情報７２内の一部のページであり、コピーされるページのＰＦＮ（各ページの円内の数字）は連続とはならない。図１６の例では、ページデータ５１ｃに含まれるページのＰＦＮは「０」、「２」、「３」、・・・である。ページデータ５１ｃにどのＰＦＮのページが格納されたのかは、対応テーブル５１ｂを参照することで認識できる。
【００８２】
図１７は、ダンプファイル内のデータの一例を示す図である。図１７の例ではＰＦＮ＝０，２，３，・・・のページがページデータ５１ｃに格納されている。そのため、対応テーブル５１ｂ内のビット列は、「１０１１・・・」となっている。ページデータ５１ｃの先頭オフセットは、「ヘッダのサイズ＋（Ｎを８の倍数に切り上げた値÷８）」になる。
【００８３】
このようなダンプファイル５１を受け取った保守担当者４１は、コンピュータ４２を用いて、ダンプファイル５１の内容を確認する。その結果、保守担当者４１は、ヘッダ５１ａに基づいて、トラブルの発生日時を認識できる。また保守担当者４１は、ページデータ５１ｃに基づいて、トラブル発生時のカーネルページの内容を確認することができる。さらに保守担当者４１は、対応テーブル５１ｂに基づいて、ページデータ５１ｃ内の各ページのＰＦＮを認識できる。例えばページデータ５１ｃ内の３番目のページは、対応テーブル５１ｂ内のビット列のうちの「１」が設定された３番目のビット（図１７のビット列の左から４番目のビット）に対応するＰＦＮ＝３のページである。
【００８４】
次に、サーバ１００におけるメモリダンプの処理手順について、フローチャートを参照して説明する。
図１８は、サーバ起動時のダンプ環境構築処理の手順の一例を示すフローチャートである。以下、図１８に示す処理をステップ番号に沿って説明する。
【００８５】
［ステップＳ１０１］ユーザ３１によるサーバ１００の電源オン操作、またはサーバ制御装置１１１の制御によるサーバ１００の電源オンにより、ＯＳ１２０が起動を開始する。ＯＳ１２０の起動により、ダンプ環境構築部１２１も起動する。
【００８６】
［ステップＳ１０２］ダンプ環境構築部１２１は、システムディスクとして使用しているストレージ装置１０３内のコピープログラム６２を、メインメモリ１０２にロードする。
【００８７】
［ステップＳ１０３］ダンプ環境構築部１２１は、メインメモリ１０２内のコピープログラム６４を格納した領域を書き込み禁止に設定する。その後、ダンプ環境構築部１２１は、ステップＳ１０４，Ｓ１０５を並列に実行する。
【００８８】
［ステップＳ１０４］ダンプ環境構築部１２１は、監視プログラム６３ｂの実行命令を出力することにより、監視部１２２を起動する。
［ステップＳ１０５］ダンプ環境構築部１２１は、コピープログラム６４の実行命令を出力することにより、コピー部１３０を起動する。
【００８９】
なお、ダンプ環境構築部１２１は、監視部１２２を起動後、ステップＳ１０４，Ｓ１０５の並列実行処理を繰り返す。なおステップＳ１０４の２回目以降の処理では、既に監視部１２２が起動されていれば処理をスキップし、何らかの理由で監視部１２２が停止していた場合、監視部１２２が再起動される。またステップＳ１０５の２回目以降の処理では、既にコピー部１３０が起動されていれば処理をスキップし、コピー部１３０が停止していた場合、コピー部１３０が再起動される。
【００９０】
以後、起動された監視部１２２は、ＯＳ１２０の動作の監視処理を実行する。
図１９は、監視処理の手順の一例を示すフローチャートである。以下、図１９に示す処理をステップ番号に沿って説明する。
【００９１】
［ステップＳ１１１］監視部１２２は、ＯＳ１２０を監視し、致命的なトラブルが発生したか否かを判断する。監視部１２２は、致命的なトラブルが発生した場合、処理をステップＳ１１２に進める。また監視部１２２は、致命的なトラブルが発生していなければ、ステップＳ１１１を繰り返し、監視を継続する。
【００９２】
［ステップＳ１１２］監視部１２２は、コピー部１３０へ、トラブル発生通知を送信する。
［ステップＳ１１３］監視部１２２は、コピー部１３０からコピー完了通知を受信したか否かを判断する。監視部１２２は、コピー完了通知を受信した場合、処理をステップＳ１１４に進める。また監視部１２２は、コピー完了通知を受信していなければ、ステップＳ１１３を繰り返し、コピー完了通知を待つ。
【００９３】
［ステップＳ１１４］監視部１２２は、ＨＷリセット指示を、サーバ制御装置１１１に送信する。これにより、サーバ制御装置１１１が、サーバ１００のリセットを行う。するとサーバ１００は、再起動を開始する。
【００９４】
次に、監視部１２２と同時に起動されるコピー部１３０が行う処理について説明する。コピー部１３０は、メインメモリ情報７２の不揮発性メモリ１０９へのコピー処理と、不揮発性メモリ１０９内のデータの外部記憶媒体へのデータのコピー処理とを並列に実行する。
【００９５】
図２０は、メインメモリ情報の不揮発性メモリへのコピー処理の手順の一例を示すフローチャートである。以下、図２０に示す処理をステップ番号に沿って説明する。
［ステップＳ１２１］コピー部１３０は、監視部１２２からのトラブル発生通知を受信したか否かを判断する。コピー部１３０は、トラブル発生通知を受信した場合、処理をステップＳ１３０に進める。またコピー部１３０は、トラブル発生通知を受信していなければ、ステップＳ１２１の処理を繰り返す。
【００９６】
［ステップＳ１２２］コピー部１３０は、トラブル発生標識とトラブル発生日時を含むトラブル情報７１を、不揮発性メモリ１０９に格納する。
［ステップＳ１２３］コピー部１３０は、メインメモリ１０２内のメインメモリ情報７２を、不揮発性メモリ１０９にコピーする。
【００９７】
［ステップＳ１２４］コピー部１３０は、コピー完了通知を監視部１２２に送信する。
このようにして、メインメモリ情報７２が不揮発性メモリ１０９へコピーされる。
図２１は、外部記憶媒体へのデータのコピー処理の手順の一例を示すフローチャートである。以下、図２１に示す処理をステップ番号に沿って説明する。
【００９８】
［ステップＳ１３１］コピー部１３０は、起動されると、まず不揮発性メモリ１０９にトラブル発生標識が格納されているか否かを判断する。コピー部１３０は、トラブル発生標識が格納されている場合、処理をステップＳ１３２に進める。またコピー部１３０は、トラブル発生標識が格納されていない場合、ステップＳ１３１の処理を繰り返す。
【００９９】
［ステップＳ１３２］コピー部１３０は、優先度が「デフォルト」のページをコピー対象ページに指定する。
［ステップＳ１３３］コピー部１３０は、コピー対象のページを含むダンプファイルの生成処理を実行する。ダンプファイル生成処理の手順の詳細は後述する（図２２参照）。
【０１００】
［ステップＳ１３４］コピー部１３０は、優先度を指定したコピー指示の入力が行われたか否かを判断する。コピー部１３０は、コピー指示の入力があった場合、処理をステップＳ１３５に進める。またコピー部１３０は、コピー指示の入力がなければ、処理をステップＳ１３７に進める。
【０１０１】
［ステップＳ１３５］コピー部１３０は、コピー指示で指定された優先度のページを、コピー対象ページとして指定する。
［ステップＳ１３６］コピー部１３０は、コピー対象のページを含むダンプファイルの生成処理を実行する。
【０１０２】
［ステップＳ１３７］コピー部１３０は、不揮発性メモリ１０９からのメインメモリ情報７２の削除指示が入力されたか否かを判断する。コピー部１３０は、削除指示が入力された場合、処理をステップＳ１３８に進める。またコピー部１３０は、削除指示が入力されていなければ、処理をステップＳ１３４に進める。
【０１０３】
［ステップＳ１３８］コピー部１３０は、不揮発性メモリ１０９から、トラブル情報７１（トラブル発生標識とトラブル発生日時を含む）とメインメモリ情報７２とを削除する。
【０１０４】
このようにして、不揮発性メモリ１０９にトラブル発生標識がある場合、まず優先度「デフォルト」に設定されたカーネルページを含むダンプファイルが書き出される。サーバ１００の保守担当者は、トラブル原因を明確するために、カーネルページ以外のページデータを確認することが有用と判断した場合には、コピー対象とするページの優先度を指定して、サーバ１００にコピー指示を入力する。すると、コピー部１３０により、指定された優先度のページを含むダンプファイルが作成され、そのダンプファイルが外部記憶媒体５０に格納される。また、保守担当者は、これ以上のメインメモリ情報７２は不要と判断した場合、サーバ１００に、メインメモリ情報７２とトラブル情報７１（トラブル発生標識とトラブル発生日時を含む）を不揮発性メモリから削除するように指示する。するとコピー部１３０により不揮発性メモリ１０９からメインメモリ情報７２とトラブル情報７１が削除される。
【０１０５】
次に、ダンプファイル生成処理の手順について詳細に説明する。
図２２は、ダンプファイル生成処理の手順の一例を示すフローチャートである。以下、図２２に示す処理をステップ番号に沿って説明する。
【０１０６】
［ステップＳ１４１］コピー部１３０は、トラブル発生日時と優先度とをヘッダに書き込む。
［ステップＳ１４２］コピー部１３０は、ページデータ５１ｃの先頭のオフセットβを計算する。例えばコピー部１３０は、メインメモリ１０２内のページ数「Ｎ」を８の倍数に切り上げ、８で除算する。除算結果が、対応テーブルのサイズ（バイト単位）となる。そしてコピー部１３０は、ヘッダサイズに対応テーブルのサイズを加算した値を、ページデータ５１ｃの先頭のオフセットβとする。
【０１０７】
［ステップＳ１４３］コピー部１３０は、Ｎビットのビット列であるｔｅｍｐとページカウンタｎとコピーページ数ｍとを初期化する。例えばコピー部１３０は、ｔｅｍｐのすべてのビットの値を「０」に設定し、ページカウンタｎの値を「０」に設定し、コピーページ数ｍの値を「０」に設定する。
【０１０８】
［ステップＳ１４４］コピー部１３０は、ＰＦＮ＝ｎのページのページ種類情報を取得する。例えばコピー部１３０は、不揮発性メモリ１０９からＯＳ１２０の管理用配列７３の情報を取得する。次にコピー部１３０は、管理用配列７３のｎ番目の要素の「ｄａｔａ３」内のページ種類情報（先頭から４ビット）を取得する。
【０１０９】
［ステップＳ１４５］コピー部１３０は、取得したページ種類情報における、指定された優先度に対応するビットの値が「１」か否かを判断する。例えば指定された優先度がデフォルトであれば、コピー部１３０は、ページ種類情報の０ビット目の値が「１」か否かを判断する。また指定された優先度が「１」であれば、コピー部１３０は、ページ種類情報の１ビット目の値が「１」か否かを判断する。コピー部１３０は、該当ビットの値が「１」であれば、処理をステップＳ１４６に進める。またコピー部１３０は、該当ビットの値が「０」であれば、処理をステップＳ１４９に進める。
【０１１０】
［ステップＳ１４６］コピー部１３０は、ｔｅｍｐにおけるビット列の左からｎビット目のビット値を「１」に設定する。なお、ｔｅｍｐの左端のビットは０ビット目とする。
［ステップＳ１４７］コピー部１３０は、ＰＦＮ＝ｎのページのデータ（４Ｋバイト）を、ダンプファイルの「β＋４Ｋ×ｍ」（Ｋは、１０２４）のオフセットの位置に格納する。
【０１１１】
［ステップＳ１４８］コピー部１３０は、コピーページ数ｍの値に１を加算する。
［ステップＳ１４９］コピー部１３０は、次のページがあるか否かを判断する。例えばコピー部１３０は、ページカウンタｎ＋１がＮ未満であれば、次のページがあると判断する。またコピー部１３０は、ページカウンタｎ＋１がＮ以上であれば、次のページはないと判断する。コピー部１３０は、次にページがある場合、処理をステップＳ１５０に進める。またコピー部１３０は、次のページがなければ、処理をステップＳ１５１に進める。
【０１１２】
［ステップＳ１５０］コピー部１３０は、ページカウンタｎの値に１を加算し、処理をステップＳ１４４に進める。
［ステップＳ１５１］コピー部１３０は、ｔｅｍｐをダンプファイルの対応テーブル５１ｂの位置に書き込む。そしてコピー部１３０は、ダンプファイルを外部記憶媒体５０に格納する。
【０１１３】
このようにして、デフォルトの優先度のページまたは指定された優先度のページを含むダンプファイルが、外部記憶媒体５０に格納される。これにより、保守担当者は、デフォルトのページ内のデータだけでは、トラブルの原因が判断出来ない場合、調査対象のデータを追加で取得し、より詳細な調査を行うことができる。すなわち、最初のコピー対象のデータをカーネルページのデータに限定しても、情報不足でトラブルの調査ができなくなることを抑止できる。
【０１１４】
また、第２の実施の形態では、コピー部１３０は、コピー処理と外部記憶媒体へのデータのコピー処理とを並列で実行することができる。これにより、発生したトラブルの原因究明中に新たなトラブルが発生した場合でも、メインメモリ情報７２のコピーを適切に行うことができる。なお、トラブルが繰り返し発生した場合、不揮発性メモリ１０９には、トラブルが発生するごとに、メインメモリ情報７２が追加される。
【０１１５】
図２３は、繰り返しトラブルが発生した場合の不揮発性メモリ内の情報の一例を示す図である。最初のトラブルの調査が完了する前に、トラブルが繰り返し発生した場合、不揮発性メモリ１０９には、トラブル発生ごとの複数のメインメモリ情報７２ａ，７２ｂ，７２ｃ，・・・が格納される。これにより、複数世代のメインメモリ情報７２ａ，７２ｂ，７２ｃ，・・・を不揮発性メモリ１０９に保持することができ、繰り返し発止したトラブルの調査を確実に行うことができる。
【０１１６】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【符号の説明】
【０１１７】
１  外部記憶媒体
２，３  ダンプファイル
４  コピー指示
１０  情報処理装置
１１  揮発性メモリ
１２  不揮発性メモリ
１２ａ  トラブル発生標識
１２ｂ  発生日時情報
１２ｃ  カーネルページ
１２ｄ  ユーザページ
１２ｅ  ページキャッシュ
１３  処理部
【図１】
2019215602.tif 000003
【図２】
2019215602.tif 000004
【図３】
2019215602.tif 000005
【図４】
2019215602.tif 000006
【図５】
2019215602.tif 000007
【図６】
2019215602.tif 000008
【図７】
2019215602.tif 000009
【図８】
2019215602.tif 000010
【図９】
2019215602.tif 000011
【図１０】
2019215602.tif 000012
【図１１】
2019215602.tif 000013
【図１２】
2019215602.tif 000014
【図１３】
2019215602.tif 000015
【図１４】
2019215602.tif 000016
【図１５】
2019215602.tif 000017
【図１６】
2019215602.tif 000018
【図１７】
2019215602.tif 000019
【図１８】
2019215602.tif 000020
【図１９】
2019215602.tif 000021
【図２０】
2019215602.tif 000022
【図２１】
2019215602.tif 000023
【図２２】
2019215602.tif 000024
【図２３】
2019215602.tif 000025