(57)【要約】【課題】起動を必要とする状況において、大型メモリを二次記憶装置にコピーすることに伴うダウンタイムを減少させる技術を提案すること。【解決手段】コンピュータのメインメモリ内のデータイメージを二次記憶装置に書き込むための方法とシステムにより、必要な再起動を実行する際の遅れが最小限に短縮される。再起動前に、物理メモリの一部が確保されたメモリスペースまたは二次記憶装置のいずれかにコピーされるか、あるいはメモリの一部が確保されたメモリスペースにコピーされ、別の部分が二次記憶装置にコピーされる。再起動後、メモリの利用は当初、再起動以前に占有されていたメモリの部分に限定される。残りの物理メモリは、記憶装置に追加的に書き込まれ、オペレーティングシステムにより利用可能なメモリとして動的に追加される。再起動がクラッシュその他の問題によるものである場合、メモリのスキャニングにより、その問題が既知の事柄であると判断されれば、全面的メモリダンプの作成がキャンセルされる。【選択図】図４
2006072997.tif 000002
【特許請求の範囲】
【請求項１】
物理メモリの第一のサブセットをコピーするステップと、
コンピュータを再起動するステップと、
前記コンピュータ上で動作するオペレーティングシステムを前記物理メモリの第一のサブセットに限定するステップと、
前記物理メモリのうち、前記第一のサブセット以外のひとつまたは複数のユニットに関して、ユニット毎に、前記ユニット内のデータを前記記憶装置に書き込み、前記ユニットを前記オペレーティングシステムが使用するように動的に追加するステップと、
を備えたことを特徴とするコンピュータにおいて物理メモリに含まれるデータを記憶装置に書き込む方法。
【請求項２】
請求項１に記載の方法であって、
前記物理メモリの前記第一のサブセットをコピーするステップは、さらに、クラッシュイベントが発生した後に前記物理メモリの前記第一のサブセットをコピーするステップを含むことを特徴とする方法。
【請求項３】
請求項１に記載の方法であって、
前記物理メモリの前記第一のサブセットをコピーするステップは、さらに、前記物理メモリの前記第一のサブセットを確保されたメモリスペースにコピーするステップを含むことを特徴とする方法。
【請求項４】
請求項３に記載の方法であって、
前記コンピュータの再起動後、前記確保されたメモリスペース内のデータを前記記憶装置に書き込むステップをさらに備えたことを特徴とする方法。
【請求項５】
請求項４に記載の方法であって、
前記確保されたメモリスペース内の前記データを前記記憶装置に書き込むステップは、前記確保されたメモリスペース内の前記データをメモリダンプファイルに書き込むステップをさらに含むことを特徴とする方法。
【請求項６】
請求項３に記載の方法であって、
前記物理メモリの前記第一のサブセットを前記確保されたメモリスペースにコピーするステップは、前記物理メモリの前記第一のサブセットを、前記物理メモリの半分を上限とする確保されたメモリスペースに書き込むステップをさらに含むことを特徴とする方法。
【請求項７】
請求項３に記載の方法であって、
前記物理メモリの前記第一のサブセットを前記確保されたメモリスペースにコピーするステップは、前記物理メモリの前記第一のサブセットを、物理的な確保されたスペースにマッピングされる仮想の確保されたスペースにコピーするステップをさらに含むことを特徴とする方法。
【請求項８】
請求項３に記載の方法であって、
前記物理メモリの前記第一のサブセットを前記確保されたメモリスペースにコピーするステップは、ＮＵＭＡシステムのパーティションに関係する物理メモリの第一のサブセットを前記パーティションに関係する確保されたメモリスペースにコピーするステップをさらに含むことを特徴とする方法。
【請求項９】
請求項１に記載の方法であって、
前記物理メモリの前記第一のサブセットをコピーするステップは、前記物理メモリの前記第一のサブセットを前記記憶装置に書き込むステップをさらに含むことを特徴とする方法。
【請求項１０】
請求項９に記載の方法であって、
前記物理メモリの前記第一のサブセットを前記記憶装置に書き込むステップは、前記第一のサブセットをメモリダンプファイルに書き込むステップをさらに含むことを特徴とする方法。
【請求項１１】
請求項１に記載の方法であって、
前記物理メモリの前記第一のサブセットをコピーするステップは、前記物理メモリの第二のサブセットを確保されたメモリスペースにコピーし、前記物理メモリの第三のサブセットを前記記憶装置に書き込むステップをさらに含むことを特徴とする方法。
【請求項１２】
請求項１１に記載の方法であって、
前記物理メモリの前記第三のサブセットを前記記憶装置に書き込むステップは、前記物理メモリの前記第三のサブセットをメモリダンプファイルに書き込むステップをさらに含むことを特徴とする方法。
【請求項１３】
請求項１１に記載の方法であって、
前記コンピュータの再起動後、前記確保されたメモリスペース内のデータを前記記憶装置に書き込むステップをさらに備えたことを特徴とする方法。
【請求項１４】
請求項１３に記載の方法であって、
前記確保されたメモリスペース内のデータを前記記憶装置に書き込むステップは、前記確保されたメモリスペース内のデータをメモリダンプファイルに書き込むステップをさらに含むことを特徴とする方法。
【請求項１５】
請求項１に記載の方法であって、
前記コンピュータの再起動後に、前記オペレーティングシステムによって認識されない前記物理メモリの第二のサブセットにアクセスするプライベートページディレクトリエントリ（ＰＤＥ）を確立するステップをさらに備えたことを特徴とする方法。
【請求項１６】
請求項１に記載の方法であって、
前記コンピュータを再起動するステップは、前記物理メモリに含まれる前記データを上書きしないＢＩＯＳを実行するステップをさらに含むことを特徴とする方法。
【請求項１７】
コンピュータのメモリの第一のサブセットをコピーするステップと、
前記コンピュータを再起動するステップと、
前記コンピュータ上で動作するオペレーティングシステムを、前記メモリの第一のサブセットに限定するステップと、
前記メモリのひとつまたは複数のユニットに関して、ユニット毎に、
前記ユニットをスキャニングして、前記問題の原因を割り出すステップと
前記問題が既知の事柄であれば、記憶装置へのメモリダンプの作成をキャンセルし、既知の事柄でなければ、前記ユニットに関する前記メモリダンプを生成するステップと、
を備えたことを特徴とするコンピュータの再起動を必要とする問題を調査する方法。
【請求項１８】
請求項１７に記載の方法であって、
前記ユニットに関する前記メモリダンプを生成するステップは、前記ユニット内のデータを前記記憶装置に書き込み、前記オペレーティングシステムが使用するために前記ユニットを動的に追加するステップをさらに含むことを特徴とする方法。
【請求項１９】
請求項１７に記載の方法であって、
前記メモリダンプの作成をキャンセルするステップは、追加の物理メモリを前記オペレーティングシステムにより使用可能とするステップをさらに含むことを特徴とする方法。
【請求項２０】
請求項１７に記載の方法であって、
前記メモリの前記第一のサブセットをコピーするステップは、前記メモリの前記サブセットを確保されたメモリスペースにコピーするステップをさらに含むことを特徴とする方法。
【請求項２１】
請求項２０に記載の方法であって、
前記コンピュータの再起動後、前記確保されたメモリスペース内のデータを前記記憶装置に書き込むステップをさらに含むことを特徴とする方法。
【請求項２２】
請求項１７に記載の方法であって、
前記メモリの前記第一のサブセットをコピーするステップは、前記メモリの前記第一のサブセットを前記記憶装置に書き込むステップをさらに含むことを特徴とする方法。
【請求項２３】
請求項１７に記載の方法であって、
前記メモリの前記第一のサブセットをコピーするステップは、前記メモリの第二のサブセットを確保されたメモリスペースにコピーするステップと、前記メモリの第三のサブセットを前記記憶装置に書き込むステップとをさらに含むことを特徴とする方法。
【請求項２４】
データを含む物理メインメモリと、
前記物理メインメモリの第一のサブセットと、
オペレーティングシステムであって、
前記物理メインメモリの前記第一のサブセットをコピーする動作と、
再起動させる動作と、
前記再起動後のメモリの使用を、前記物理メインメモリの前記第一のサブセットに限定する動作と、
前記物理メインメモリのうち、前記第一のサブセット以外の１つまたは複数のユニットに関して、ユニット毎に、前記ユニット内のデータを前記記憶装置に書き込み、前記オペレーティングシステムにより利用するために前記ユニットを動的に追加する動作と、
を含む動作を実施するよう構成されたオペレーティングシステムと、
を備えたことを特徴とするデータを記憶装置に書き込むシステム。
【請求項２５】
請求項２４のシステムであって、
インメモリデータベースをさらに備えたことを特徴とするシステム。
【請求項２６】
前記物理メインメモリに含まれるデータが上書きされないようにするＢＩＯＳをさらに備えたことを特徴とするシステム。
【請求項２７】
物理メモリに含まれるデータを記憶装置に書き込むためのコンピュータ実行可能命令を記憶させたコンピュータ読取可能媒体であって、
前記命令は、
前記物理メモリの第一のサブセットをコピーするステップと、
前記コンピュータを再起動するステップと、
前記コンピュータ上で動作するオペレーティングシステムを、前記物理メモリの前記第一のサブセットに限定するステップと、
前記物理メモリのうち、前記第一のサブセット以外の１つまたは複数のユニットに関して、ユニット毎に、前記ユニット内のデータを前記記憶装置に書き込み、前記オペレーティングシステムが使用するために前記ユニットを動的に追加するステップ、
を備えたことを特徴とするコンピュータ読取可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にコンピュータシステムに関し、より詳しくは、必要な再起動の実行における遅延を最小限にしながら、メインメモリのデータイメージを二次記憶装置に書き込むための方法とシステムに関する。
【背景技術】
【０００２】
オペレーティングシステムは一般に、システムクラッシュや、ユーザプロセスおよびサービスを停止させるような深刻な故障が発生した時に、メモリダンプを実行するよう構成されている。メモリダンプは、メインメモリの内容を二次記憶装置に、たとえば、ハードディスクまたはその他の二次記憶媒体に記憶されるファイルの形態等でコピーすることからなる。システムクラッシュの場合、一般的に、メモリダンプに続いてシステムが再起動する。全面的（フル: full）メモリダンプは、クラッシュに関する問題の解析と是正および信頼できるシステムの開発のために欠くことのできないリソースである。
【０００３】
メインメモリからハードディスクにデータを書き込むのは、比較的低速な作業である。全面的メモリダンプの場合、システムはメモリの全内容をスキャニングし、その内容を二次記憶装置に書き込む。このように、全面的メモリダンプ生成に伴う主な欠点は、システムを他の目的に有効に使用できなくなる「ダウンタイム」の長さである。このダウンタイムは、内蔵メモリの大きさと、システムの再起動が必要な場合は、起動記憶装置の速度の関数である。たとえば、１６ギガバイトのメモリをディスクに書き込むには、完了までに１時間以上かかる。６４ギガバイトのメモリを備えるコンピュータシステムの場合、全面的メモリダンプを生成するには６時間かかるかもしれない。
【０００４】
本明細書の添付図面のうち図１は、先行技術に従って、システムクラッシュの後に全面的メモリダンプが行われるプロセスの簡略化した一例を示す。この図は、後述する本発明の詳細な説明を明確に理解するのに役立つ。図１では、時間経過に伴うイベントが示されており、時間は左から右に向かって経過する。当初、システムは、メモリ１０１の全容量、ここではｎギガバイト、で動作する。システムクラッシュイベント１０３が発生する。メモリ１０１のｎギガバイトの全面的メモリダンプが実行され（矢印１０５で示す）、その後、コンピュータシステムは再起動１０７する。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来のコンピュータに備えられる物理メモリの量は、着実に増加を続けている。この増加は、ランダムアクセスメモリ（ＲＡＭ）技術の安定した容量増大、６４ビットプロセッサ技術の利用可能性、そして一般的なコンピュータプログラムによるメモリ利用の増大による。その結果、全面的メモリダンプの実行に伴う平均ダウンタイムも増加している。現在、エンタープライズサーバマシンは、３２ないし６４ギガバイトの内蔵ＲＡＭを使用するように装備されている。２００７年までに、ローエンドおよびミドルレンジのサーバが最高１２８ギガバイトのＲＡＭを使用できるようになると見込まれている。この場合、クラッシュ後に全面的メモリダンプを実行し、その後システムを再起動することは普通、非現実的である。
【０００６】
全面的メモリダンプの実行に代わるものもある。たとえば、オペレーティングシステムのカーネルスペースあるいは特定のプロセスに割り当てられたスペース等、メインメモリの一部のメモリダンプを実行することができる。しかしながら、普通は、クラッシュがカーネルモードのプロセスによるものか、特定のユーザプロセスによるものかを事前に知ることはできない。さらに、システムの「フリーズ」を伴う場合、プロセスごとに異なるメモリダンプを生成することはできない。
【課題を解決するための手段】
【０００７】
本発明は、コンピュータのメインメモリのデータイメージを、必要な再起動の実行の遅れを最小限にするような方法で、二次記憶装置に書き込むための方法とシステムを提供することに関する。再起動の前に、物理メモリの一部分がコピーされる。コンピュータが再起動されると、オペレーティングシステムは当初、メモリのうち起動以前にコピーされた部分しか利用できない。残りの物理メモリは、記憶装置に付加的に書き込まれ、オペレーティングシステムが使用するためのメモリとして動的に追加される。
【０００８】
本発明の一態様によれば、確保されたメモリスペースが保持される。再起動以前に物理メモリの一部をコピーすることは、確保されたスペースにその部分をコピーすることからなる。再起動後、確保されたメモリスペースが記憶装置に書き込まれる。
【０００９】
本発明の別の態様によれば、確保されたメモリスペースは使用されず、再起動以前に物理メモリの一部をコピーすることは、その部分を二次記憶装置に書き込むことからなる。
【００１０】
本発明のさらに別の態様によれば、再起動以前にコピーされた物理メモリは、メモリの中の確保されたメモリスペースにコピーされる部分と、二次記憶装置に書き込まれる別の部分を含む。
【００１１】
本発明はまた、システムクラッシュイベント等、再起動が必要となる問題を調査するための方法に関する。再起動後、メモリイメージがスキャニングされ、メモリダンプが付加的に生成される。しかしながら、スキャニング中、問題が既知の事柄である、あるいはその他、全面的メモリコピーの作成が不要と判断された場合、メモリダンプの実行をキャンセルすることができる。
【発明を実施するための最良の形態】
【００１２】
本発明は、再起動を必要とする状況において、大型メモリを二次記憶装置にコピーすることに伴うダウンタイムを減少させる技術を提案する。本発明によれば、メモリダンプの作成は、システム再起動が行われるまで遅延され、その結果、システムはクラッシュ等のイベント後、比較的迅速に再起動することが可能である。当初のメモリ領域がコピーされ、限定されたメモリスペースを、オペレーティングシステムが再起動後に使用できるようにする。再起動後、オペレーティングシステムはまず、この限定された容量の物理メモリで動作する。オペレーティングシステムの制御範囲外にあるメモリスペースがスキャニングされ、メモリダンプファイルまたはその他に書き込まれる。個々の独立した区域をスキャニングし、書き込んだ後に、オペレーティングシステムはこれに対応する量の物理メモリをシステムに付加する。再起動がシステムクラッシュまたはその他の問題による場合、メモリイメージがスキャニングされるので、起動後直ちにその問題の原因を調査することができる。問題が既知の事柄に起因する場合、あるいはその他、容易に解決できる場合、全面的メモリダンプの作成をキャンセルすることができる。
【００１３】
図２、図３、図４を見ると、本発明の実施形態が示されている。図１において、これらの図面は時間経過に伴うイベントを示しており、時間は左から右に経過する。この説明と付属の図面において、物理メモリの全範囲の開始または終了時等、物理メモリの特定の領域にあるメモリ部分の説明と図は、純粋に説明を単純にするためのものである。
（実施形態１）
【００１４】
図２に示すように、本発明のひとつの実施形態において、コンピュータシステムは、ｎメガバイト２０１の物理メモリを備えるように描かれているが、クラッシュイベント発生前は、メモリの（ｎ−ｍ）メガバイト分２０３で動作している。メモリのｍメガバイト領域は、「確保された」スペース２０５である。ひとつの実施形態において、確保された領域２０５の大きさは、内蔵メモリサイズの総計の半分を上限として構成することができる。
【００１５】
クラッシュイベント２０７が発生すると、メモリ部分２０３の最初のｍメガバイト分２０９は確保された領域２０５にコピーされる（矢印２１１で示す）。このコピーには、メインメモリから、およびメインメモリへのデータの伝送がかかわるため、比較的迅速に完了する。再起動２１３が行われるが、システムはｍメガバイト分のメモリ２０９を使用するよう構成されている。システムは、物理メモリのうちオペレーティングシステムによって認識されない範囲にアクセスするために、特定のアーキテクチャ等で、プライベートページディレクトリエントリ（ＰＤＥ）またはその他を設定するメカニズムを利用する。プライベートＰＤＥを使用する実施形態において、少なくとも４メガバイトのページングサイズが使用される。
【００１６】
再起動２１３の後、クラッシュ発生前のメモリイメージはシステムメモリの中に残る。後述のように、いくつかの実施形態において、これには、ＢＩＯＳを変更する必要がある。システムは、確保された領域２０５の中のメモリデータをメモリダンプファイル２１５に書き込む。書き込みは、矢印２２５で示される。システムは、ｍＭＢ２１７から（ｎ−ｍ）ＭＢ２１９の範囲にあるメモリデータを付加的にスキャニングし、メモリダンプファイル２１５に書き込む。メモリのスキャニング、書き込み、追加を、点線の矢印２２３によって示す。メモリ２２１のユニット（たとえば、ある範囲内の２５６ＭＢまたは５１２ＭＢずつ）がスキャニングされ、メモリダンプファイル２１５に書き込まれると、オペレーティングシステムは利用可能となったこの物理メモリをシステムに動的に追加する。
【００１７】
物理アドレス拡張（ＰＡＥ）またはこれと同様のメモリアドレス指定メカニズムのアーキテクチャで実現される特定の実施形態は、仮想確保スペースを使用し、仮想確保スペースを物理的な確保スペース２０５にマッピングする。分割されたＮＵＭＡマルチプロセッサシステムで実現される実施形態では、システムの物理的メモリレイアウトに従って、各ノードについて確保された領域２０５を有する。関連するトポロジー情報が、ファームウェアによって構成されるＳｔａｔｉｃ  Ｒｅｓｏｕｒｃｅ  Ａｆｆｉｎｉｔｙ  Ｔａｂｌｅ（ＳＲＡＴ）等により、起動時に決定される。
（実施形態２）
【００１８】
図３に示されるように、本発明の別の実施形態では、確保されたメモリ領域は使用されない。当初、システムはｎメガバイトの物理メモリ全体３０１で動作する。クラッシュイベント３０３の発生後、メモリ３０１の当初のｍメガバイト分３０５がメモリダンプファイル３０９にコピーされる（矢印３０７によって示される）。次に再起動３１１が行われるが、システムはメモリのｍメガバイト分３０５まで使用するよう構成されている。再起動３１１の後、クラッシュ前のメモリイメージは、再起動３１１の前にダンプファイル３０９への書き込み３０７が行われるｍメガバイト分３０５に格納されたデータとは別に、システムメモリの中に残る。システムは、ｍＭＢ３１３からｎＭＢ３１５までの範囲にあるメモリデータをスキャニングしてメモリダンプファイル３０９に付加的に書き込む。前述の実施形態と同様に、メモリのユニット３１７がスキャニングされ、メモリダンプファイル３０９に書き込まれると、オペレーティングシステムは、利用可能となったこの物理メモリをシステムに動的に追加する。メモリのスキャニング、書き込み、追加は、点線の矢印３１９によって示される。
【００１９】
他はすべて同じであるが、図３に示される実施形態は、図２について説明した前の実施形態よりメモリダンププロセスの完了に時間がかかる。図３の実施形態では、部分的なメモリスペースがクラッシュ発生後にディスクに書き込まれる。しかしながら、この方法は、再起動以前にメモリスペース全体がディスクに書き込まれる図１の先行技術による方法より、ずっと短い時間ですむ。さらに、図３に示される実施形態は、確保された領域が使用されないため、一般により高速な図２の実施形態より、メモリを経済的に利用する。
（実施形態３）
【００２０】
図４に、図２、図３に示される実施形態の機能を備える、本発明の第三の実施形態を示す。図４のシステムは、ｎメガバイト４０１のメモリを備えているが、当初はメモリの（ｎ−ｍ１）メガバイト分４０３で動作し、ｍ１メガバイトの確保されたメモリ領域４０５を有する。クラッシュイベント４０７が発生した後、メモリ３０２の最初のｍ１メガバイト分４０９は確保された領域４０５にコピーされ（矢印４１３で示される）、メモリ４０３のうちのさらなるｍ２メガバイト領域４１１がメモリダンプファイル４１７に書き込まれる（矢印４１５により示される）。次に、再起動４１９が行われるが、システムはメモリの（ｍ１＋ｍ２）メガバイト分４０９，４１１まで使用できるよう構成されている。再起動４１９の後、確保された領域４０５内のデータがメモリダンプファイル４１７に書き込まれる。書き込みは矢印４２９によって示される。システムは、（ｍ１＋ｍ２）ＭＢ４２１から（ｎ−ｍ１）ＭＢ４２３の範囲内のメモリデータをスキャニングし、メモリダンプファイル４１７に付加的に書き込む。メモリのスキャニング、書き込み、追加は、点線の矢印４２７によって示される。メモリのユニット４２５がスキャニングされ、メモリダンプファイル４１７に書き込まれると、オペレーティングシステムは、利用可能となったこの物理メモリをシステムに動的に追加する。
【００２１】
図５、図６、図７のフロー図は、コンピュータを使って実行されるプロセスとして、前述の実施形態をより明確に示す。図５は、図２に示す実施形態に関連する方法を示す。ステップ５０１において、コンピュータは、ｍメガバイトのメモリ領域が確保された状態で起動する。クラッシュ（ステップ５０３）の発生に続き、ステップ５０５において、ｍメガバイトのメモリ（この例では、メモリの最初のｍメガバイト）が、確保された領域にコピーされる。ステップ５０７において、コンピュータは、最大ｍメガバイトのメモリを使って再起動される。ステップ５０９において、確保された領域に含まれるデータがメモリダンプファイルに書き込まれる。ステップ５１１で、オペレーティングシステムは、残っている物理メモリの中のデータイメージをスキャニングし、ダンプファイルに書き込む（確保された領域または確保された領域にコピーされたｍメガバイト領域は含まない）。付加的に、システムは物理メモリを追加する（たとえば、スキャニングされ、書き込まれたメモリの２５６または５１２メガバイトごと）。
【００２２】
図６は、図３の実施形態に関連する方法であり、確保された領域が使用されない。システムがその利用可能なｎメガバイトの物理メモリを使用して起動した後、ステップ６０１においてクラッシュが発生する。ステップ６０３で、メモリの最初のｍメガバイトがメモリダンプファイルに書き込まれる。ステップ６０５で、システムは、最大ｍメガバイトのメモリを使って再起動する。ステップ６０７で、オペレーティングシステムは、残りの物理メモリの中のデータイメージをスキャニングし、ダンプファイルに書き込む。付加的に、システムは物理メモリを追加する。
【００２３】
図７は、図４に示す実施形態に関連する複合型の方法を示す。ステップ７０１で、コンピュータはｍ１メガバイトの確保された領域を保った状態で起動する。クラッシュが発生した後（ステップ７０３）、ステップ７０５において、メモリの最初のｍ１メガバイトが確保された領域にコピーされる。ステップ７０７で、メモリの中の別のｍ２メガバイトがメモリダンプファイルに書き込まれる。ステップ７０９で、コンピュータは、最大（ｍ１＋ｍ２）メガバイトのメモリを使って再起動する。ステップ７１１において、確保された領域の中に含まれるｍ１メガバイトのデータがダンプファイルに書き込まれる。ステップ７１３で、システムは残りの物理メモリ内のデータイメージをスキャニングし、これをダンプファイルに書き込む（システムが起動に使用する（ｍ１＋ｍ２）メガバイト領域とｍ１メガバイトの確保されたメモリ領域を除く）。付加的に、システムは物理メモリを追加する。
【００２４】
図８のフロー図が示すように、本発明の実施形態は、システムクラッシュ等、再起動が必要となる問題を調査するための方法を提供する。本発明によれば、ある状況において、再起動後の全面的な診断的メモリダンプを避けることができる。図８のステップ８０１において、クラッシュイベントが発生する。ステップ８０３で、上述のように、メモリのｍメガバイトは、確保されたメモリスペースまたはメモリダンプファイルにコピーされ、あるいはｍ１メガバイトのサブセットは、確保されたメモリスペースに、ｍ２メガバイトのサブセットがダンプファイルにそれぞれ書き込まれる。ステップ８０５において、システムは、オペレーティングシステムがメモリを最大ｍメガバイトまで使用した状態で再起動する。確保されたメモリ領域が使用されると、確保されたスペースはダンプファイルに書き込まれる（ステップ８０７）。ステップ８０９において、メモリイメージのスキャニングが始まる。スキャニング中、再起動が必要となる問題が既知の事柄である、あるいは容易に解決できる事柄であると判断された場合（決定ブロック８１１）、全面的メモリダンプの作成は（たとえば、システム管理者によって）キャンセルされる（ステップ８１５）。これ以外の場合、全面的メモリダンプが前述のように生成される（ステップ８１３）。このように、この技術を使うことにより、問題の調査は、全面的メモリダンプが生成されるまで待つのではなく、再起動後直ちに開始される。問題が既知の事柄である場合、再起動以降、システムが限定的メモリで動作し、低速のパフォーマンスを見せる時間が短縮される。
【００２５】
上記の説明から、クラッシュまたはこれに類するイベントが発生した場合や、大きな物理メモリを有するシステムの全面的メモリダンプを行うことが望ましい場合、より高速な再起動を可能とする新規かつ有用な発明が提案されることがわかる。再起動の後、システムは、少ないメモリ容量で動作し、メモリダンプを生成しているため、比較的低速で動作する。しかしながら、本発明により、システム管理者は、先行技術では不可能であった、ダウンタイムと起動後の当初のシステム性能のバランスを望ましいものに設定することができる。たとえば、システムが、内蔵メモリの半分を使用するよう構成されていると、クラッシュと再起動の後、システムは想定されたメモリサイズで動作しながら、直ちにメモリダンプを生成する。確保された領域が使用される場合、再起動後に必要なサービスを実行できるよう、確保された領域のサイズを設定することが可能である。
【００２６】
本発明の実施形態は、一般に内蔵ＲＯＭまたはフラッシュメモリに埋め込まれた基本入力／出力システム（ＢＩＯＳ）ファームウェア等が起動時に実行されるコンピュータシステムにおいて実現することができる。従来のシステムでは、ＢＩＯＳは、その第一段階として、オペレーティングシステムをロードする前にコンピュータハードウェアをテストし、初期化するパワーオン・セルフテスト（ＰＯＳＴ）を含む。ＰＯＳＴは一般に、システムＲＡＭの読み書きテストを含む。したがって、コンピュータのウォームリブートまたはリセットの場合、物理メモリ内の内容は上書きされる。そこで、本発明の実施形態は、クラッシュその他、メモリダンプが望まれるイベントが発生した後の再起動中にメモリテストが行われず、メモリの内容が起動中も保存され、再起動後にメモリダンプの作成が行われるようにＢＩＯＳが構成されている実施形態を含む。本発明の他の態様は、従来のＢＩＯＳ定義を変更することによって実現できる。
【００２７】
本発明は、たとえば、サーバ、ワークステーションまたはパーソナルコンピュータ等、各種の汎用もしくは特定用途コンピュータシステムによって実装され、あるいはこれを含むことができ、あるいはその中に含めることができ、これにはユニプロセッサとマルチプロセッサマシンの両方が含まれる。マルチプロセッサシステムの場合、前述のように、ＵＭＡだけでなくＮＵＭＡアーキテクチャも適している。このようなコンピューティングシステムとそのさまざまな構成に関する詳細は、当業者にとって基本である。本発明は特に、システムに内蔵か、外付け（たとえば、高速ファイバチャネルによって接続された外付け記憶装置等）かを問わず、ひとつまたは複数の二次記憶装置とともに、比較的大容量のメインメモリを備えるコンピュータシステムに適している。
【００２８】
以上、本発明を、クラッシュイベントが発生し、診断のために全面的メモリダンプが望まれる設定において実行されるものとして説明した。しかしながら、本発明は、大量のメモリを二次記憶装置に書き込むことが望まれる場合や、再起動は必要であるが、メモリの書込みが完了するまで再起動を待つことが望まれない、他の状況にも広く応用できる。たとえば、データベース管理システムの性能を高めるために、ハードディスクからメインメモリにデータベースをマッピングすることができる。しかしながら、システムを高速で再起動しなければならない場合、データベースメモリイメージはディスクに保存しなければならない。本発明は、再起動を延期することなく、データをディスクに書き込むことを可能にする方法とメカニズムを提供する。
【００２９】
本明細書では、発明者が本発明の実行にとって最良と考えるモードを含め、本発明の好ましい実施形態を説明した。本発明の原理を適用することのできる多くの実施形態の可能性を鑑み、本明細書で説明した実施形態は例にすぎず、本発明の範囲を限定するものと理解すべきではない。当業者であれば、上記の実施形態を、本発明の精神から逸脱することなく、その配置および詳細において変更できることがわかるであろう。したがって、ここで説明した発明は、添付の請求範囲およびこれと同等物の中に含まれるそのようなすべての実施形態も予期している。
【図面の簡単な説明】
【００３０】
【図１】先行技術に従って、システムクラッシュ後に全面的メモリダンプを生成し、その後再起動される様子を示す図である。
【図２】本発明の一実施形態による、確保されたメモリ領域を使って再起動後にメモリダンプが実行される、システムクラッシュ後のメモリダンプの生成を示す図である。
【図３】本発明の一実施形態による、部分的メモリダンプが再起動以前に実行され、確保されたメモリ領域が使用されない、システムクラッシュ後のメモリダンプの生成を示す図である。
【図４】本発明の一実施形態による、図２と図３に示す実施形態の特徴が組み合わされたシステムクラッシュ後のメモリダンプの生成を示す図である。
【図５】本発明の一実施形態による、図２に示す実施形態に対応するプロセスのステップを説明するフロー図である。
【図６】本発明の一実施形態による、図３に示す実施形態に対応するプロセスのステップを説明するフロー図である。
【図７】本発明の一実施形態による、図４に示す実施形態に対応するプロセスのステップを説明するフロー図である。
【図８】本発明の一実施形態による、再起動を必要とする問題を調査する方法のステップを説明するフロー図である。
【図１】
2006072997.tif 000003
【図２】
2006072997.tif 000004
【図３】
2006072997.tif 000005
【図４】
2006072997.tif 000006
【図５】
2006072997.tif 000007
【図６】
2006072997.tif 000008
【図７】
2006072997.tif 000009
【図８】
2006072997.tif 000010
【外国語明細書】
2006072997000001.pdf