(57)【要約】【課題】メモリダンプ採取時に磁気ディスクインタフェースに障害が発生した場合の回避技術の提供。【解決手段】ノード１０ａにおいてＯＳパニック等の障害が発生した場合、マイクロプロセッサ１２ａは、ノード１０ａの制御メモリ１３ａ中のダンプ対象となる情報内容を採取し、磁気ディスク２０ａへ退避する処理を実行する。このとき、磁気ディスク２０ａへの退避処理を実行して、ディスクアクセスの異常を検出した場合には、ネットワークインタフェース１１ａへアクセスする。そして、ＬＡＮ３０を経由してノード１０ｂとのデータ通信を実行し、ダンプ対象となる情報内容の送信要求をノード１０ｂに対して行う。ノード１０ｂは、ノード１０ａから受け取った情報内容の一部を自身の制御メモリ１３ｂへ一旦格納し、格納した情報をディスクインタフェース１４ｂへ渡して、磁気ディスク２０ａへの書き込みを行う。【選択図】図１
2007334668.tif 000002
【特許請求の範囲】
【請求項１】
複数のノード間を通信経路によって相互に接続したクラスタシステムにおいて、第１のノードが障害発生時に前記第１のノードのメモリ内容を第２のノードと共有の記憶装置へ退避するメモリダンプ方法であって、
前記第１のノードにおける前記記憶装置へのアクセスパスがアクセス可能であるか否かを判断するステップと、
該アクセスパスがアクセス不可能な場合には、前記通信経路を使用して前記第１のノードから前記第２のノードへ前記メモリ内容を送信するステップと、
前記第２のノードにおける前記記憶装置へのアクセスパスを使用して前記記憶装置へ前記メモリ内容を書き込むステップと、
を含むことを特徴とするメモリダンプ方法。
【請求項２】
前記記憶装置は、多重化された記憶装置で構成され、該多重化された記憶装置の全てについてアクセスパスがアクセス可能であるか否かを判断することを特徴とする請求項１記載のメモリダンプ方法。
【請求項３】
複数のノード間を通信経路によって相互に接続したクラスタシステムにおいて、
第１および第２のノードと、
前記第１および第２のノードと接続されて共有される記憶装置と、
を備え、
前記第１のノードは、障害発生時に前記第１のノードのメモリ内容を前記記憶装置へ退避するに際して、前記記憶装置へのアクセスパスがアクセス可能であるか否かを判断し、該アクセスパスがアクセス不可能な場合には、前記通信経路を使用して前記第１のノードから前記第２のノードへ前記メモリ内容を送信し、
前記第２のノードは、前記第２のノードにおける前記記憶装置へのアクセスパスを使用して前記記憶装置へ前記メモリ内容を書き込むことを特徴とするクラスタシステム。
【請求項４】
前記記憶装置は、多重化された記憶装置で構成され、前記第１のノードは、該多重化された記憶装置の全てについてアクセスパスがアクセス可能であるか否かを判断することを特徴とする請求項３記載のクラスタシステム。
【請求項５】
複数のノード間を通信経路によって相互に接続したクラスタシステムを構成するノードにおいて、
障害発生時におけるダンプの対象とされる情報を保持するメモリと、
他のノードと接続されて共有とされる記憶装置への記憶装置インタフェース部と、
前記他のノードと前記通信経路を介して接続するための通信インタフェース部と、
制御部と、
を備え、
前記制御部は、障害発生時にメモリが保持する情報を前記記憶装置へ退避するに際して、前記記憶装置インタフェース部がアクセス可能であるか否かを判断し、前記記憶装置インタフェース部へのアクセスが不可能な場合には、前記通信インタフェース部を使用して前記他のノードへ前記情報を送信し、通常動作時に前記他のノードから前記記憶装置への書き込み要求が到来した場合には、前記記憶装置インタフェース部を使用して前記記憶装置へ書き込み要求に伴う情報を書き込むように制御することを特徴とするクラスタシステムを構成するノード。
【請求項６】
前記記憶装置は、多重化された記憶装置で構成され、前記記憶装置インタフェース部は、該多重化された記憶装置に対応した複数のインタフェース部を有し、前記制御部は、該多重化された記憶装置の全てにアクセス可能であるか否かを判断することを特徴とする請求項５記載のクラスタシステムを構成するノード。
【請求項７】
複数のノード間を通信経路によって相互に接続したクラスタシステムを構成するノードであって、障害発生時におけるダンプの対象とされる情報を保持するメモリと、他のノードと接続されて共有とされる記憶装置への記憶装置インタフェース部と、前記他のノードと前記通信経路を介して接続するための通信インタフェース部と、を備えるノードを構成するコンピュータに、
障害発生時にメモリが保持する情報を前記記憶装置へ退避するに際して、前記記憶装置インタフェース部がアクセス可能であるか否かを判断する処理と、
前記記憶装置インタフェース部へのアクセスが不可能な場合には、前記通信インタフェース部を使用して前記他のノードへ前記情報を送信する処理と、
通常動作時に前記他のノードから前記記憶装置への書き込み要求が到来した場合には、前記記憶装置インタフェース部を使用して前記記憶装置へ書き込み要求に伴う情報を書き込む処理と、
を実行させるプログラム。
【請求項８】
前記記憶装置は、多重化された記憶装置で構成され、前記記憶装置インタフェース部は、該多重化された記憶装置に対応した複数のインタフェース部を有し、前記記憶装置インタフェース部がアクセス可能であるか否かを判断する処理において、該多重化された記憶装置の全てにアクセス可能であるか否かを判断することを特徴とする請求項７記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリダンプ方法、クラスタシステム、それを構成するノードおよびプログラムに関し、特に複数のノードを有するクラスタシステムに設けられた共有の記憶装置に各ノードのメモリダンプデータを格納する技術に関する。
【背景技術】
【０００２】
従来、サーバ装置等にあっては、ソフト的あるいはハード的な問題によってＯＳパニック等の障害が発生した場合に、メモリの内容をディスクへ退避（メモリダンプ）し、後からディスクへ退避したメモリ情報を解析し、障害の発生原因を調査することがある。
【０００３】
このようなメモリダンプを行うシステムとして、例えば特許文献１には、メモリダンプをクラスタ内の全ノードから参照できるディスクに採取し、クラスタ管理ノードを含めた他ノードからもそれを参照することを可能とするメモリダンプ採取方式が開示されている。このメモリダンプ採取方式は、複数のノードを有するクラスタシステムにおいて、複数のノードにネットワークを介して接続されるクラスタ管理ノードと、クラスタ管理ノードを含む各ノードに専用バスを介して接続される共有ディスクと、クラスタ管理ノードに指示されて、障害発生時の各ノードのメモリダンプを共有ディスクに格納し、共有ディスクに格納されたメモリダンプを各ノードから参照する手段を具備する。
【０００４】
また、関連する技術として、特許文献２には、分散処理システムにおけるメモリダンプ方式において、ホストコンピュータに連なる各端末処理装置内で発生した異常障害を通信回線を介してホストコンピュータ側の外部記憶装置にダンプするメモリダンプ方式が記載されている。
【０００５】
【特許文献１】特開２００３−３００１１号公報
【特許文献２】特開昭６０−２１８１４１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、特許文献１において、採取するダンプ情報の、他ノードへの送信、他ノードとの共有技術が開示されている。しかしながら、ダンプ採取時に、ディスクアクセスに障害が発生した場合の回避策は開示されていない。すなわち、ＯＳパニックがディスク制御部の故障等によって発生した場合にあっては、メモリ内容をディスクへ退避する処理でディスクへのアクセスができず、メモリ内容の退避処理が失敗するため、障害調査が困難となってしまう虞がある。
【０００７】
したがって、本発明の目的は、クラスタシステムにおいて、ダンプ採取時にディスクアクセスに障害が発生した場合の回避技術を提供することにある。
【課題を解決するための手段】
【０００８】
本発明の１つのアスペクトに係るメモリダンプ方法は、複数のノード間を通信経路によって相互に接続したクラスタシステムにおいて、第１のノードが障害発生時に第１のノードのメモリ内容を第２のノードと共有の記憶装置へ退避するメモリダンプ方法であって、第１のノードにおける記憶装置へのアクセスパスがアクセス可能であるか否かを判断するステップと、アクセスパスがアクセス不可能な場合には、通信経路を使用して第１のノードから第２のノードへメモリ内容を送信するステップと、第２のノードにおける記憶装置へのアクセスパスを使用して記憶装置へメモリ内容を書き込むステップと、を含む。
【０００９】
本発明の第１の展開形態のメモリダンプ方法において、記憶装置は、多重化された記憶装置で構成され、多重化された記憶装置の全てについてアクセスパスがアクセス可能であるか否かを判断するようにしてもよい。
【００１０】
本発明の１つのアスペクトに係るクラスタシステムは、複数のノード間を通信経路によって相互に接続したクラスタシステムにおいて、第１および第２のノードと、第１および第２のノードと接続されて共有される記憶装置と、を備え、第１のノードは、障害発生時に第１のノードのメモリ内容を記憶装置へ退避するに際して、記憶装置へのアクセスパスがアクセス可能であるか否かを判断し、アクセスパスがアクセス不可能な場合には、通信経路を使用して第１のノードから第２のノードへメモリ内容を送信し、第２のノードは、第２のノードにおける記憶装置へのアクセスパスを使用して記憶装置へメモリ内容を書き込む。
【００１１】
本発明の１つのアスペクトに係るクラスタシステムを構成するノードは、複数のノード間を通信経路によって相互に接続したクラスタシステムを構成する。このノードは、障害発生時におけるダンプの対象とされる情報を保持するメモリと、他のノードと接続されて共有とされる記憶装置への記憶装置インタフェース部と、他のノードと通信経路を介して接続するための通信インタフェース部と、制御部と、を備え、制御部は、障害発生時にメモリが保持する情報を記憶装置へ退避するに際して、記憶装置インタフェース部がアクセス可能であるか否かを判断し、記憶装置インタフェース部へのアクセスが不可能な場合には、通信インタフェース部を使用して他のノードへ情報を送信し、通常動作時に他のノードから記憶装置への書き込み要求が到来した場合には、記憶装置インタフェース部を使用して記憶装置へ書き込み要求に伴う情報を書き込むように制御する。
【００１２】
本発明の１つのアスペクトに係るプログラムは、複数のノード間を通信経路によって相互に接続したクラスタシステムを構成するノードであって、障害発生時におけるダンプの対象とされる情報を保持するメモリと、他のノードと接続されて共有とされる記憶装置への記憶装置インタフェース部と、他のノードと通信経路を介して接続するための通信インタフェース部と、を備えるノードを構成するコンピュータに、障害発生時にメモリが保持する情報を記憶装置へ退避するに際して、記憶装置インタフェース部がアクセス可能であるか否かを判断する処理と、記憶装置インタフェース部へのアクセスが不可能な場合には、通信インタフェース部を使用して他のノードへ情報を送信する処理と、通常動作時に他のノードから記憶装置への書き込み要求が到来した場合には、記憶装置インタフェース部を使用して記憶装置へ書き込み要求に伴う情報を書き込む処理と、を実行させる。
【発明の効果】
【００１３】
本発明によれば、ＯＳパニック時のメモリ内容の記憶装置への退避処理において、記憶装置へのアクセス経路が障害となった場合であっても、ノード間のデータ転送経路を使って、他方のノードへ送信し、他方のノードにおける記憶装置のアクセス経路を使用することで、ＯＳパニック時のメモリ内容を記憶装置へ退避させることができる。
【発明を実施するための最良の形態】
【００１４】
本発明の実施形態に係るクラスタシステムは、複数のノード間を通信経路（図１の３０）によって相互に接続したクラスタシステムにおいて、第１および第２のノード（図１の１０ａ、１０ｂ）と、第１および第２のノードと接続されて共有される記憶装置（図１の２０ａ、２０ｂの磁気ディスク）と、を備える。第１のノード（図１の１０ａ）は、ＯＳパニック等の障害発生時に制御メモリ（図１の１３ａ）内のメモリ内容を記憶装置（図１の２０ａ、２０ｂ）へ退避するに際して、記憶装置へのアクセスパスがアクセス可能であるか否か、すなわちディスクインタフェース（図１の１４ａ、１５ａ）を介してアクセス可能であるか否かを判断する。そして、記憶装置へのアクセスパスがアクセス不可能な場合には、通信経路（図１の３０）を使用して第１のノードから第２のノードへメモリ内容を送信する。さらに、第２のノード（図１の１０ｂ）は、第２のノードにおける記憶装置へのアクセスパスを使用して、すなわちディスクインタフェース（図１の１４ｂ、１５ｂ）を介して記憶装置へメモリ内容を書き込む。
【００１５】
以上のような高可用性を実現するクラスタサーバ等のクラスタシステムにおいて、片方のノードでＯＳパニックが発生し、障害となったノードでディスクアクセスが困難な場合には、他方の正常に動作するノードにおけるディスクアクセスパスを使用して、メモリ内容を磁気ディスクへ退避する。すなわち、単体のサーバをＬＡＮやＲＤＭＡ（Remote Direct Memory Access）等の高速なデータ通信経路によって相互に接続し、クラスタソフトウェアによってクラスタ管理を行い、可用性を高めたクラスタサーバ等のクラスタシステムにおいて、ＯＳパニック等の障害発生時にメモリ内容をディスクへ退避する。この退避処理において、ディスクへのアクセスパスがアクセス可能かを判断し、ディスクへアクセスができない場合には、ノード間の通信経路を使用して、他ノードと通信を行い、メモリ内容を相手ノードへ送信し、相手ノードのディスクアクセスパスを使用してディスクへ退避を行う。
【００１６】
このようなクラスタシステムによれば、ＯＳパニックがディスク制御部の故障等によって発生した場合等、記憶装置へのアクセスパスが障害となった場合にあっても、メモリ内容をディスクへ退避する処理が可能である。以下、実施例に即し図面を参照して説明する。
【実施例１】
【００１７】
図１は、本発明の実施例に係るクラスタシステムの構成を示すブロック図である。図１に示すクラスタシステムは、単体サーバ間をＬＡＮ３０によって接続して、相互に他方のノードとデータ通信を可能とした２ノードクラスタの構成例である。それぞれのサーバをノード１０ａ、ノード１０ｂとする。各ノード１０ａ、１０ｂは、他方のノードとＬＡＮ３０を経由して通信するネットワークインタフェース１１ａ（１１ｂ）、磁気ディスク２０ａとデータのやり取りを行うディスクインタフェース１４ａ（１４ｂ）、磁気ディスク２０ｂとデータのやり取りを行うディスクインタフェース１５ａ（１５ｂ）、ノードを制御するプログラムを実行するマイクロプロセッサ１２ａ（１２ｂ）、制御用の情報を保持する制御メモリ１３ａ（１３ｂ）をバスで共通に接続する。ノード１０ａ（１０ｂ）は、ディスクインタフェース１４ａ（１４ｂ）を介して共通の磁気ディスク２０ａと接続し、またディスクインタフェース１５ａ（１５ｂ）を介して他の共通の磁気ディスク２０ｂと接続する。このような接続構成によって、各ノード１０ａ、１０ｂから共通の磁気ディスク２０ａ、２０ｂへアクセスが可能である。なお、磁気ディスク２０ａ、２０ｂは、可用性を高めるために多重化構成としたもので、ここでは、二重化構成の例を示している。冗長な構成を必要としない場合にあっては、一系統であってもよい。
【００１８】
このような構成のクラスタシステムにおいて、ノード１０ａにおいてＯＳパニック等の障害が発生したとする。この場合の処理について説明する。図２は、本発明の実施例に係るクラスタシステムにおける動作を示すフローチャートである。ノード１０ａのマイクロプロセッサ１２ａは、ノード１０ａの制御メモリ１３ａ中のダンプ対象となる情報内容を採取し（ステップＳ１１）、磁気ディスク２０ａへ退避する処理を実行する。このとき、磁気ディスクへの退避処理を実行して、ディスクアクセスの異常を検出した場合（ステップＳ１２）には、ネットワークインタフェース１１ａへアクセスする。そして、ＬＡＮ３０を経由してノード１０ｂとのデータ通信を実行し、ダンプ対象となる情報内容の送信要求をノード１０ｂに対して行う（ステップＳ１３）。ノード１０ｂは、ノード１０ａから受け取った情報内容の一部を自身の制御メモリ１３ｂへ一旦格納し（ステップＳ１４）、格納した情報をディスクインタフェース１４ｂへ渡して、磁気ディスク２０ａへの書き込みを行う（ステップＳ１５）。ノード１０ａとノード１０ｂは、情報内容の最終データまでこれらの処理を繰り返し、制御メモリ１３ａ中のダンプ対象となる情報内容の全てを磁気ディスク２０ａへ書き込む。
【００１９】
なお、以上の説明では、ノード１０ａにおいてダンプ対象となる情報内容を磁気ディスク２０ａへ退避する際に、磁気ディスク２０ａへのアクセスが不可能であった場合の処理について説明した。磁気ディスクが、磁気ディスク２０ａ、２０ｂで二重化されている場合には、磁気ディスク２０ａへのアクセスを試し、アクセスが不可能であった場合、さらに磁気ディスク２０ｂへのアクセスを試し、それでもアクセスが不可能であった場合に、ＬＡＮ３０を経由してノード１０ｂにおける磁気ディスク２０ａあるいは磁気ディスク２０ｂへのディスクインタフェース１４ｂあるいは１５ｂを使用してダンプ対象となる情報内容を書き込むようにしてもよい。
【図面の簡単な説明】
【００２０】
【図１】本発明の実施例に係るクラスタシステムの構成を示すブロック図である。
【図２】本発明の実施例に係るクラスタシステムにおける動作を示すフローチャートである。
【符号の説明】
【００２１】
１０ａ、１０ｂ  ノード
１１ａ、１１ｂ  ネットワークインタフェース
１２ａ、１２ｂ  マイクロプロセッサ
１３ａ、１３ｂ  制御メモリ
１４ａ、１４ｂ、１５ａ、１５ｂ  ディスクインタフェース
２０ａ、２０ｂ  磁気ディスク
３０  ＬＡＮ
【図１】
2007334668.tif 000003
【図２】
2007334668.tif 000004