(57)【特許請求の範囲】
【請求項１】
複数のシステムボードを備えるサーバにおいて、
前記サーバを停止させる停止処理部と、
カーネルが使用するメモリを備えるシステムボードを識別する情報を格納するシステムボード情報格納部と、
サーバ停止前に前記カーネルが使用していたメモリを備えるシステムボードのみを切り離すシステムボード切り離し処理部と、
前記カーネルが使用していたメモリを備えるシステムボードの切り離し後に、前記複数のシステムボードのうち、前記切り離したシステムボード以外のシステムボードを用いて前記サーバを再起動させる再起動処理部と、
を備え、
前記カーネルは、前記複数のシステムボードのうちの一部のシステムボードのメモリのみを使用することを特徴とするサーバ。
【請求項２】
前記カーネルが使用していたメモリを備えるシステムボードをシステムボード情報格納部に通知するシステムボード通知部をさらに備えることを特徴とする請求項１記載のサーバ。
【請求項３】
サーバの再起動後に、前記切り離したシステムボードを組み込むシステムボード組み込み処理部をさらに備えることを特徴とする請求項１または２記載のサーバ。
【請求項４】
前記システムボード組み込み処理部が組み込んだシステムボードのメモリのうち、サーバの停止前にカーネルが使用していた領域のデータを読み出して、該領域のデータをダンプファイルとして作成するメモリダンプ取得処理部をさらに備えることを特徴とする請求項３記載のサーバ。
【請求項５】
サーバの再起動時に、前記複数のシステムボードのうち、前記カーネルが使用していたメモリを備えるシステムボード以外のシステムボードのメモリを初期化するメモリ初期化処理部をさらに備えることを特徴とする請求項１乃至４のいずれか１項に記載のサーバ。
【請求項６】
複数のシステムボードを備えるサーバにおけるメモリダンプ取得方法において、
異常検出時に前記サーバを停止させるステップと、
サーバの停止前にカーネルが使用していたメモリを備えるシステムボードのみを切り離すステップと、
前記複数のシステムボードのうち、前記切り離したシステムボード以外のシステムボードを用いて前記サーバを再起動させるステップと、
サーバの再起動後に前記切り離したシステムボードを組み込むステップと、
前記組み込んだシステムボードのメモリのうち、再起動前にカーネルが使用していた領域のデータを読み出して、該領域のデータをダンプファイルとして作成するステップと、
を備え、
前記カーネルは、前記複数のシステムボードのうちの一部のシステムボードのメモリのみを使用することを特徴とするメモリダンプ取得方法。
【請求項７】
それぞれがメモリを搭載する複数のシステムボードを備えるサーバにおいて、
前記サーバを停止させる停止処理部と、
サーバ停止前にカーネルが使用していたメモリを備えるシステムボードのみを切り離すシステムボード切り離し処理部と、
前記サーバの停止前にカーネルが使用していたメモリを備えるシステムボードを除くシステムボードを用いて、前記サーバを再起動させる再起動処理部と、
前記サーバが再起動した後、前記サーバの停止前にカーネルが使用していたメモリを備えるシステムボードを前記サーバに組み込むシステムボード組み込み処理部と、
前記システムボード組み込み処理部により組み込まれたシステムボードに搭載されたメモリの領域のうち、サーバの停止前にカーネルが使用していた領域のデータを読み出し、該領域のデータをダンプファイルとして作成するメモリダンプ取得処理部と、
を備え、
前記カーネルは、前記複数のシステムボードのうちの一部のシステムボードのメモリのみを使用することを特徴とするサーバ。
【請求項８】
前記カーネルは、前記複数のシステムボードのうち、前記複数のシステムボードに割り当てられている番号の小さい順または大きい順に割り当てられることを特徴とする請求項１乃至５のいずれか１項に記載のサーバ。
【請求項９】
前記カーネルは、前記複数のシステムボードのうち、前記複数のシステムボードに割り当てられている番号の小さい順または大きい順に割り当てられることを特徴とする請求項６記載のメモリダンプ取得方法。
【請求項１０】
前記カーネルは、前記複数のシステムボードのうち、前記複数のシステムボードに割り当てられている番号の小さい順または大きい順に割り当てられることを特徴とする請求項７記載のサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリダンプ機能を有するサーバおよびメモリダンプ取得方法に関する。
【背景技術】
【０００２】
近年、UNIX（登録商標）サーバ、IAサーバが基幹システムに導入されるようになり、UNIX（登録商標）サーバ、IAサーバの高可用性が重要視されている。一般的に、システムに致命的なエラーが発生した場合はシステムを緊急停止（パニック）させて、その原因を調査するためにメモリダンプをディスクに保存している。【０００３】
システムを停止している間は、システムを使用できないので、速やかにシステムを再起動することが重要な要件となる。
しかし、近年では、実装メモリの容量がTB（テラバイト）オーダのサーバが登場し、このようなシステムでは、メモリダンプを採取するのに非常に時間がかかり、速やかにシステムを再起動することができなくなっている。【０００４】
また、メモリダンプをディスク上に保存せず、パニック時のメモリ内容を別のメモリ上に保存する方法や障害発生時のメモリ内容をダンプ格納領域に保存する際、メモリの一部を保存し、再起動後に保存していないメモリ内容をダンプファイルに変換する方法が知られている。【０００５】
しかしながら、従来の方法では、異常発生時のメモリダンプを別のメモリやディスクに保存しているため、保存するメモリダンプのサイズが大きい場合は、メモリのコピーに時間がかかり、速やかにシステムを再起動することができないという問題があった。
【特許文献１】特開平１１−２１２８３６号公報
【特許文献２】特開２００１−２２９０５３号公報
【発明の開示】
【０００６】
本発明の課題は、速やかにシステムを再起動することである。
実施の形態のサーバは、複数のシステムボードを備えるサーバにおいて、前記サーバを停止させる停止処理部と、カーネルが使用するメモリを備えるシステムボードを識別する情報を格納するシステムボード情報格納部と、サーバ停止前に前記カーネルが使用していたメモリを備えるシステムボードを切り離すシステムボード切り離し処理部と、前記カーネルが使用していたメモリを備えるシステムボードの切り離し後に、前記複数のシステムボードのうち、前記切り離したシステムボード以外のシステムボードを用いて前記サーバを再起動させる再起動処理部と、が提供される。
【０００７】
開示の装置によれば、ダンプすべきメモリデータを別のメモリ等にコピーすることなく、速やかにサーバの再起動を行うことが可能となる。
【図面の簡単な説明】
【０００８】
【図１】実施の形態に係る各システムボードのメモリの状況を示す図である。
【図２Ａ】実施の形態に係る各システムボードのメモリの緊急停止前の通常業務運用中の使用状況を示す図である。
【図２Ｂ】実施の形態に係る各システムボードのメモリの再起動した直後の使用状況を示す図である。
【図２Ｃ】実施の形態に係る切り離されたシステムボードが再び組み込まれた後の各システムボードのメモリの使用状況を示す図である。
【図３】実施の形態に係るサーバの構成図である。
【図４】実施の形態に係るメモリダンプ取得装置の動作のフローチャートである。
【発明を実施するための最良の形態】
【０００９】
以下、図面を参照しながら本発明の実施の形態を説明する。
先ず、本実施の形態のメモリダンプ取得方法を実行したときの、各システムボードのメモリの状況を説明する。【００１０】
図１は、実施の形態に係る各システムボードのメモリの状況を示す図である。
図１の上部はサーバの再起動前の各システムボードのメモリの使用状況を示し、下部は再起動後の各システムボードのメモリの使用状況を示す。【００１１】
本実施の形態においては、サーバ（システム）は３つのシステムボード１１−ｉ（ｉ＝１〜３）を備えているものとする。
再起動前は、システムボード１１−１のメモリ１２−１をカーネルが使用しており、システムボード１１−２のメモリ１２−２およびシステムボード１１−３のメモリ１２−３は、ユーザプログラムが使用している。【００１２】
再起動後、システムボード１１−１のメモリ１２−１内のカーネルが使用していた領域は、再起動直前の状態が保持されている。また、システムボード１１−２のメモリ１２−２は、再起動後のカーネルおよびユーザプログラムが使用している。システムボード１１−３のメモリ１２−３はユーザプログラムが使用している。 再起動前にカーネルが使用していたメモリ１２−１の状態は、再起動後も保持されている。これは、再起動後にメモリ１２−１の内容に基づきダンプファイルを作成するためである。【００１３】
図２Ａは、実施の形態に係るシステムの緊急停止する前の、通常業務運用中の各システムボード上のメモリの使用状況を示す図である。
システムの緊急停止前（再起動前）は、システムボード１１−１のメモリ１２−１をカーネルが使用しており、システムボード１１−２およびシステムボード１１−３のメモリ１２−２、１２−３は、ユーザプログラムが使用している。【００１４】
図２Ｂは、実施の形態に係るシステムが再起動した直後の各システムボードのメモリの使用状況を示す図である。
システムの再起動後、システムボード１１−１のメモリ１２−１の内、カーネルが使用していた領域は、再起動前にカーネルが使用していた状態が維持されている。また、メモリ１２−１には再起動前のメモリのマッピング情報が緊急停止する前に書き込まれている。【００１５】
システムは、再起動時にシステムボード１１−１を使用しないようにするため、Dynamic Reconfiguration機能を使い、再起動する時に予めパーティションから切り離す。それにより、図２Ｂに示すようにシステムボード１１−１は、パーティションから切り離されている。【００１６】
パーティションは、オペレーションシステムに割り当てられたシステムボードの集合である。オペレーティングシステムはパーティションに組み込まれた（割り当てられた）システムボードを使用して動作する。【００１７】
また、システムボード１１−２のメモリ１２−２は、再起動後のカーネルが使用している。システムボード１１−３のメモリ１２−３はユーザプログラムが使用している
図２Ｃは、実施の形態に係る切り離されたシステムボードが再びパーティションに組み込まれた後の各システムボードのメモリの使用状況を示す図である。【００１８】
サーバは、システムの再起動後に切り離していたシステムボード１１−１を自律的にパーティションに組み込む。これにより、サーバは、システムボード１１−１のメモリ１２−１を認識し、ダンプファイルを作成可能となる。尚、ダンプファイルは、例えばサーバが有するディスクに作成される。【００１９】
実施の形態のシステムは、オペレーティングシステムが何らかの異常を検出してシステムを緊急停止する場合、カーネルが使用しているメモリ領域が存在するシステムボードを切り離し、残ったシステムボードのみでオペレーティングシステムを再起動する。緊急停止する前にカーネルが使用していたメモリ領域は、切り離したシステムボード上に、そのままの状態で残しておく。これにより、カーネルが使用していたメモリのダンプをディスク等に書き出すことなく、速やかにシステムを再起動して業務を再開することが出来る。【００２０】
図３は、実施の形態に係るサーバおよびＯＳのブロック図である。
サーバ１０は、システムボード１１−ｉ（ｉ＝１〜３）、ディスク１３−ｉ、ＲＯＭ（Read Only Memory）１４を備える。【００２１】
システムボード１１−ｉは、Central Processing Unit（ＣＰＵ）１５−ｉ−ｋ（ｋ＝１、２）およびメモリ１２−ｉを備える。
ＣＰＵ１５−ｉ−ｋは、各種処理を実行する。【００２２】
メモリ１２−ｉは、各種プログラムをディスク１３−ｉから読み出し、格納する。
ＲＯＭ１４は、ファームウェア１５を格納している。
ファームウェア１５は、メモリ初期化処理部１６、システム再起動処理部１７、システムボード情報格納処理部１８、システムボード切り離し処理部１９、システムボード組み込み処理部２０を備える。【００２３】
メモリ初期化処理部１６は、メモリ１２−iを初期化する。
システム再起動処理部１７は、サーバ１０を再起動する。
システムボード情報格納処理部１８は、サーバ１０で使用されているシステムボード１１−iの情報や、カーネルが使用しているメモリ１２−ｉを有するシステムボード１１−ｉの番号等の情報を格納する。【００２４】
システムボード切り離し処理部１９は、システムボード１１−ｉをパーティションから切り離す。
システムボード組み込み処理部２０は、システムボード１１−ｉをパーティションに組み込む。【００２５】
サーバ１０には、ＯＳ（Operating System）２１がインストールされている。  
図３の下部は、ＯＳ２１の機能ブロックである。
オペレーティングシステム２１は、割り込み処理部２２、ファイル管理部２３、メモリ管理部２４、プロセス管理部２５、マッピング情報抽出・格納処理部２６、動的メモリ追加処理部２７、システムボード番号通知部２８、システムボード組み込み処理部２９、およびパニック処理部３０を備える。【００２６】
割り込み処理部２２は、割り込み処理を行う。
ファイル管理部２３は、ディスク上に格納されたデータであるファイルを管理する。
メモリ管理部２４は、ＯＳが使用するメモリ１２−ｉを割り当てる。【００２７】
プロセス管理部２５は、ＯＳ２１が実行するプログラムのプロセスを管理する。
マッピング情報抽出・格納処理部２６は、各メモリ１２−ｉのダンプを取得および解析するために必要な情報を、カーネルが使用しているメモリ１２−ｉの固定アドレスに書き込む。【００２８】
マッピング情報抽出・格納処理部２６がメモリに書き込む情報としては、カーネルのテキスト域、データ域、ヒープ域、スタック域等、各セグメントのマッピング情報(論理アドレス、物理アドレス、サイズ等)やアドレス変換テーブル、ページテーブル等、各種制御テーブルのマッピング情報がある。【００２９】
動的メモリ追加処理部２７は、メモリ管理部２４に使用可能なメモリの空き領域を通知する。
システムボード番号通知部２８は、カーネルが使用しているメモリを備えるシステムボードの番号および、該システムボード上のメモリの書き換え禁止の指示をファームウェア１５に通知する。【００３０】
システムボード組み込み処理部２９は、パーティションから切り離したシステムボードの番号をシステムボード情報格納処理部１８から取得し、ファームウェア１５のシステムボード組込み処理部２０に、切り離したシステムボードをパーティションに組み込むように指示する。【００３１】
パニック処理部３０は、システム再起動処理部３１およびメモリダンプ取得処理部３２を備える。
システム再起動処理部３１は、ＯＳを再起動させる。【００３２】
メモリダンプ取得処理部３２は、カーネルが使用していたメモリ領域のデータを読み出して、ダンプファイルを作成する。
図４は、実施の形態に係るサーバの動作のフローチャートである。【００３３】
ステップＳ４０１において、ＯＳ２１のメモリ管理部２４が、システムボード番号の一番小さいシステムボードのメモリからＯＳのカーネルが使用するメモリを割り当てる。これにより、カーネルが使用しているメモリが存在するシステムボードの枚数が少なくなるようにする。これは、後述するように、カーネルが使用しているメモリが存在するシステムボードは再起動時には切り離すので、切り離すシステムボードの枚数を少なくするためである。【００３４】
本実施の形態においては、システムボード１１−１、１１−２、１１−３の順番にシステムボード番号が割り当てられているものとする。そして、ステップＳ４０１では、カーネルはシステムボード１１−１のメモリ１２−１に割り当てられる、すなわち、後述する再起動の前においては、ＯＳ２１はシステムボード１１−１で動作するものとする（図１、図２Ａ参照）。【００３５】
ステップＳ４０２において、ＯＳ２１が異常を検出してシステムを緊急停止する前に、ＯＳ２１のマッピング情報抽出・格納処理部２６が、カーネルが使用しているメモリのダンプを採取／解析するために必要となるマッピング情報を、システムボード番号の一番小さいシステムボードのメモリの固定アドレスに書き込む。【００３６】
ステップＳ４０３において、ＯＳ２１のパニック処理部３０が、システム（サーバ）を緊急停止(パニック)する。
ステップＳ４０４において、ＯＳ２１のシステムボード番号通知部２８が、システムが緊急停止する際にカーネルが使用しているメモリが存在するシステムボードのシステムボード番号と、該システムボードのメモリを書き換えないようにする指示とを、ファームウェア１５に通知する。尚、カーネルが使用しているメモリが存在するシステムボードが複数存在する場合は、全てのシステムボードの番号をファームウェアに通知する。【００３７】
ステップＳ４０５において、ファームウェア１５のメモリ初期化処理部１６が、ＯＳ２１から通知を受けたシステムボード、すなわち、カーネルが使用しているメモリを有するシステムボード以外のメモリを初期化する。また、通知を受けた、カーネルが使用しているメモリを有するシステムボードのメモリの内容は初期化せず、そのままの状態で残しておく。【００３８】
ステップＳ４０６において、ファームウェア１５のシステムボード切離し処理部１９が、ＯＳ２１から通知を受けたシステムボードをパーティションから切り離し、切り離したシステムボードの番号をシステムボード情報格納処理部１８に通知する。システムボード情報格納処理部１８は、システムボード切離し処理部１９から通知されたシステムボードの番号を格納する。ファームウェアのシステム再起動処理部１７は、残ったシステムボードのみでシステムを再起動して業務を再開させる。【００３９】
本実施の形態では、カーネルが割り当てられているシステムボード１１−１をパーティションから切り離す。そして、残ったシステムボード１１−２、１１−３を用いてシステムを再起動する。このとき、再起動後のＯＳ２１のカーネルは、システムボード１１−２のメモリ１２−２に割り当てられる。【００４０】
すなわち、再起動後のＯＳ２１はシステムボード１１−２で動作するものとする（図１、図２Ｂ、図２Ｃ参照）。
このように、カーネルが使用していたメモリのダンプをディスク等に書き出すことなく、速やかにシステムを再起動して業務を再開させている。【００４１】
ステップＳ４０７において、業務が再開した後、ＯＳ２１のシステムボード組込み処理部２９が、パーティションから切り離したシステムボード番号をファームウェア１５のシステムボード情報格納処理部１８から取得し、ファームウェアのシステムボード組込み処理部２０に切り離したシステムボードをパーティションに組み込むように指示する。【００４２】
システムを再起動して業務を再開した後、Dynamic Reconfiguration機能を使用して切り離したシステムボードを組み込んでいる。再起動時に、カーネルが動作していたシステムボードを切り離しているため、緊急停止する前にカーネルが使用していたメモリの状態が維持されている。メモリ内容の書き換え禁止を指示した上で、システムボードをパーティションに組み入れるので、メモリを読み出してダンプファイルを生成することが可能となっている。【００４３】
ステップＳ４０８において、ＯＳ２１のメモリダンプ取得処理部３２が、組み込んだシステムボード上のメモリから、システムが再起動する前にカーネルが使用していたメモリ領域に保持されている情報を読み出して、ダンプファイルとして生成する。【００４４】
ステップＳ４０９において、ダンプファイルを生成した後、ＯＳ２１の動的メモリ追加処理部２７が、組み込んだシステムボード上のメモリ領域を使用可能な空きメモリとするようＯＳ２１のメモリ管理部２４へ通知する。【００４５】
尚、本実施の形態においては、システムボード番号の一番小さいシステムボードのメモリからカーネルを割り当てたが、システムボード番号の一番大きいシステムボードのメモリからカーネルを割り当てるようにしても良い。【００４６】
実施の形態のメモリダンプ取得機能を有するサーバによれば、メモリダンプの容量が大きい場合でも、別のメモリ等にコピーを行っていないので、速やかにシステムを再起動できる。これにより、業務停止時間を短縮することができる。    
【図１】
0005403054.tif 000002
【図２Ａ】
0005403054.tif 000003
【図２Ｂ】
0005403054.tif 000004
【図２Ｃ】
0005403054.tif 000005
【図３】
0005403054.tif 000006
【図４】
0005403054.tif 000007