説明

メモリダンプ方法、クラスタシステム、それを構成するノードおよびプログラム

【課題】メモリダンプ採取時に磁気ディスクインタフェースに障害が発生した場合の回避技術の提供。
【解決手段】ノード10aにおいてOSパニック等の障害が発生した場合、マイクロプロセッサ12aは、ノード10aの制御メモリ13a中のダンプ対象となる情報内容を採取し、磁気ディスク20aへ退避する処理を実行する。このとき、磁気ディスク20aへの退避処理を実行して、ディスクアクセスの異常を検出した場合には、ネットワークインタフェース11aへアクセスする。そして、LAN30を経由してノード10bとのデータ通信を実行し、ダンプ対象となる情報内容の送信要求をノード10bに対して行う。ノード10bは、ノード10aから受け取った情報内容の一部を自身の制御メモリ13bへ一旦格納し、格納した情報をディスクインタフェース14bへ渡して、磁気ディスク20aへの書き込みを行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、メモリダンプ方法、クラスタシステム、それを構成するノードおよびプログラムに関し、特に複数のノードを有するクラスタシステムに設けられた共有の記憶装置に各ノードのメモリダンプデータを格納する技術に関する。
【背景技術】
【0002】
従来、サーバ装置等にあっては、ソフト的あるいはハード的な問題によってOSパニック等の障害が発生した場合に、メモリの内容をディスクへ退避(メモリダンプ)し、後からディスクへ退避したメモリ情報を解析し、障害の発生原因を調査することがある。
【0003】
このようなメモリダンプを行うシステムとして、例えば特許文献1には、メモリダンプをクラスタ内の全ノードから参照できるディスクに採取し、クラスタ管理ノードを含めた他ノードからもそれを参照することを可能とするメモリダンプ採取方式が開示されている。このメモリダンプ採取方式は、複数のノードを有するクラスタシステムにおいて、複数のノードにネットワークを介して接続されるクラスタ管理ノードと、クラスタ管理ノードを含む各ノードに専用バスを介して接続される共有ディスクと、クラスタ管理ノードに指示されて、障害発生時の各ノードのメモリダンプを共有ディスクに格納し、共有ディスクに格納されたメモリダンプを各ノードから参照する手段を具備する。
【0004】
また、関連する技術として、特許文献2には、分散処理システムにおけるメモリダンプ方式において、ホストコンピュータに連なる各端末処理装置内で発生した異常障害を通信回線を介してホストコンピュータ側の外部記憶装置にダンプするメモリダンプ方式が記載されている。
【0005】
【特許文献1】特開2003−30011号公報
【特許文献2】特開昭60−218141号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
ところで、特許文献1において、採取するダンプ情報の、他ノードへの送信、他ノードとの共有技術が開示されている。しかしながら、ダンプ採取時に、ディスクアクセスに障害が発生した場合の回避策は開示されていない。すなわち、OSパニックがディスク制御部の故障等によって発生した場合にあっては、メモリ内容をディスクへ退避する処理でディスクへのアクセスができず、メモリ内容の退避処理が失敗するため、障害調査が困難となってしまう虞がある。
【0007】
したがって、本発明の目的は、クラスタシステムにおいて、ダンプ採取時にディスクアクセスに障害が発生した場合の回避技術を提供することにある。
【課題を解決するための手段】
【0008】
本発明の1つのアスペクトに係るメモリダンプ方法は、複数のノード間を通信経路によって相互に接続したクラスタシステムにおいて、第1のノードが障害発生時に第1のノードのメモリ内容を第2のノードと共有の記憶装置へ退避するメモリダンプ方法であって、第1のノードにおける記憶装置へのアクセスパスがアクセス可能であるか否かを判断するステップと、アクセスパスがアクセス不可能な場合には、通信経路を使用して第1のノードから第2のノードへメモリ内容を送信するステップと、第2のノードにおける記憶装置へのアクセスパスを使用して記憶装置へメモリ内容を書き込むステップと、を含む。
【0009】
本発明の第1の展開形態のメモリダンプ方法において、記憶装置は、多重化された記憶装置で構成され、多重化された記憶装置の全てについてアクセスパスがアクセス可能であるか否かを判断するようにしてもよい。
【0010】
本発明の1つのアスペクトに係るクラスタシステムは、複数のノード間を通信経路によって相互に接続したクラスタシステムにおいて、第1および第2のノードと、第1および第2のノードと接続されて共有される記憶装置と、を備え、第1のノードは、障害発生時に第1のノードのメモリ内容を記憶装置へ退避するに際して、記憶装置へのアクセスパスがアクセス可能であるか否かを判断し、アクセスパスがアクセス不可能な場合には、通信経路を使用して第1のノードから第2のノードへメモリ内容を送信し、第2のノードは、第2のノードにおける記憶装置へのアクセスパスを使用して記憶装置へメモリ内容を書き込む。
【0011】
本発明の1つのアスペクトに係るクラスタシステムを構成するノードは、複数のノード間を通信経路によって相互に接続したクラスタシステムを構成する。このノードは、障害発生時におけるダンプの対象とされる情報を保持するメモリと、他のノードと接続されて共有とされる記憶装置への記憶装置インタフェース部と、他のノードと通信経路を介して接続するための通信インタフェース部と、制御部と、を備え、制御部は、障害発生時にメモリが保持する情報を記憶装置へ退避するに際して、記憶装置インタフェース部がアクセス可能であるか否かを判断し、記憶装置インタフェース部へのアクセスが不可能な場合には、通信インタフェース部を使用して他のノードへ情報を送信し、通常動作時に他のノードから記憶装置への書き込み要求が到来した場合には、記憶装置インタフェース部を使用して記憶装置へ書き込み要求に伴う情報を書き込むように制御する。
【0012】
本発明の1つのアスペクトに係るプログラムは、複数のノード間を通信経路によって相互に接続したクラスタシステムを構成するノードであって、障害発生時におけるダンプの対象とされる情報を保持するメモリと、他のノードと接続されて共有とされる記憶装置への記憶装置インタフェース部と、他のノードと通信経路を介して接続するための通信インタフェース部と、を備えるノードを構成するコンピュータに、障害発生時にメモリが保持する情報を記憶装置へ退避するに際して、記憶装置インタフェース部がアクセス可能であるか否かを判断する処理と、記憶装置インタフェース部へのアクセスが不可能な場合には、通信インタフェース部を使用して他のノードへ情報を送信する処理と、通常動作時に他のノードから記憶装置への書き込み要求が到来した場合には、記憶装置インタフェース部を使用して記憶装置へ書き込み要求に伴う情報を書き込む処理と、を実行させる。
【発明の効果】
【0013】
本発明によれば、OSパニック時のメモリ内容の記憶装置への退避処理において、記憶装置へのアクセス経路が障害となった場合であっても、ノード間のデータ転送経路を使って、他方のノードへ送信し、他方のノードにおける記憶装置のアクセス経路を使用することで、OSパニック時のメモリ内容を記憶装置へ退避させることができる。
【発明を実施するための最良の形態】
【0014】
本発明の実施形態に係るクラスタシステムは、複数のノード間を通信経路(図1の30)によって相互に接続したクラスタシステムにおいて、第1および第2のノード(図1の10a、10b)と、第1および第2のノードと接続されて共有される記憶装置(図1の20a、20bの磁気ディスク)と、を備える。第1のノード(図1の10a)は、OSパニック等の障害発生時に制御メモリ(図1の13a)内のメモリ内容を記憶装置(図1の20a、20b)へ退避するに際して、記憶装置へのアクセスパスがアクセス可能であるか否か、すなわちディスクインタフェース(図1の14a、15a)を介してアクセス可能であるか否かを判断する。そして、記憶装置へのアクセスパスがアクセス不可能な場合には、通信経路(図1の30)を使用して第1のノードから第2のノードへメモリ内容を送信する。さらに、第2のノード(図1の10b)は、第2のノードにおける記憶装置へのアクセスパスを使用して、すなわちディスクインタフェース(図1の14b、15b)を介して記憶装置へメモリ内容を書き込む。
【0015】
以上のような高可用性を実現するクラスタサーバ等のクラスタシステムにおいて、片方のノードでOSパニックが発生し、障害となったノードでディスクアクセスが困難な場合には、他方の正常に動作するノードにおけるディスクアクセスパスを使用して、メモリ内容を磁気ディスクへ退避する。すなわち、単体のサーバをLANやRDMA(Remote Direct Memory Access)等の高速なデータ通信経路によって相互に接続し、クラスタソフトウェアによってクラスタ管理を行い、可用性を高めたクラスタサーバ等のクラスタシステムにおいて、OSパニック等の障害発生時にメモリ内容をディスクへ退避する。この退避処理において、ディスクへのアクセスパスがアクセス可能かを判断し、ディスクへアクセスができない場合には、ノード間の通信経路を使用して、他ノードと通信を行い、メモリ内容を相手ノードへ送信し、相手ノードのディスクアクセスパスを使用してディスクへ退避を行う。
【0016】
このようなクラスタシステムによれば、OSパニックがディスク制御部の故障等によって発生した場合等、記憶装置へのアクセスパスが障害となった場合にあっても、メモリ内容をディスクへ退避する処理が可能である。以下、実施例に即し図面を参照して説明する。
【実施例1】
【0017】
図1は、本発明の実施例に係るクラスタシステムの構成を示すブロック図である。図1に示すクラスタシステムは、単体サーバ間をLAN30によって接続して、相互に他方のノードとデータ通信を可能とした2ノードクラスタの構成例である。それぞれのサーバをノード10a、ノード10bとする。各ノード10a、10bは、他方のノードとLAN30を経由して通信するネットワークインタフェース11a(11b)、磁気ディスク20aとデータのやり取りを行うディスクインタフェース14a(14b)、磁気ディスク20bとデータのやり取りを行うディスクインタフェース15a(15b)、ノードを制御するプログラムを実行するマイクロプロセッサ12a(12b)、制御用の情報を保持する制御メモリ13a(13b)をバスで共通に接続する。ノード10a(10b)は、ディスクインタフェース14a(14b)を介して共通の磁気ディスク20aと接続し、またディスクインタフェース15a(15b)を介して他の共通の磁気ディスク20bと接続する。このような接続構成によって、各ノード10a、10bから共通の磁気ディスク20a、20bへアクセスが可能である。なお、磁気ディスク20a、20bは、可用性を高めるために多重化構成としたもので、ここでは、二重化構成の例を示している。冗長な構成を必要としない場合にあっては、一系統であってもよい。
【0018】
このような構成のクラスタシステムにおいて、ノード10aにおいてOSパニック等の障害が発生したとする。この場合の処理について説明する。図2は、本発明の実施例に係るクラスタシステムにおける動作を示すフローチャートである。ノード10aのマイクロプロセッサ12aは、ノード10aの制御メモリ13a中のダンプ対象となる情報内容を採取し(ステップS11)、磁気ディスク20aへ退避する処理を実行する。このとき、磁気ディスクへの退避処理を実行して、ディスクアクセスの異常を検出した場合(ステップS12)には、ネットワークインタフェース11aへアクセスする。そして、LAN30を経由してノード10bとのデータ通信を実行し、ダンプ対象となる情報内容の送信要求をノード10bに対して行う(ステップS13)。ノード10bは、ノード10aから受け取った情報内容の一部を自身の制御メモリ13bへ一旦格納し(ステップS14)、格納した情報をディスクインタフェース14bへ渡して、磁気ディスク20aへの書き込みを行う(ステップS15)。ノード10aとノード10bは、情報内容の最終データまでこれらの処理を繰り返し、制御メモリ13a中のダンプ対象となる情報内容の全てを磁気ディスク20aへ書き込む。
【0019】
なお、以上の説明では、ノード10aにおいてダンプ対象となる情報内容を磁気ディスク20aへ退避する際に、磁気ディスク20aへのアクセスが不可能であった場合の処理について説明した。磁気ディスクが、磁気ディスク20a、20bで二重化されている場合には、磁気ディスク20aへのアクセスを試し、アクセスが不可能であった場合、さらに磁気ディスク20bへのアクセスを試し、それでもアクセスが不可能であった場合に、LAN30を経由してノード10bにおける磁気ディスク20aあるいは磁気ディスク20bへのディスクインタフェース14bあるいは15bを使用してダンプ対象となる情報内容を書き込むようにしてもよい。
【図面の簡単な説明】
【0020】
【図1】本発明の実施例に係るクラスタシステムの構成を示すブロック図である。
【図2】本発明の実施例に係るクラスタシステムにおける動作を示すフローチャートである。
【符号の説明】
【0021】
10a、10b ノード
11a、11b ネットワークインタフェース
12a、12b マイクロプロセッサ
13a、13b 制御メモリ
14a、14b、15a、15b ディスクインタフェース
20a、20b 磁気ディスク
30 LAN

【特許請求の範囲】
【請求項1】
複数のノード間を通信経路によって相互に接続したクラスタシステムにおいて、第1のノードが障害発生時に前記第1のノードのメモリ内容を第2のノードと共有の記憶装置へ退避するメモリダンプ方法であって、
前記第1のノードにおける前記記憶装置へのアクセスパスがアクセス可能であるか否かを判断するステップと、
該アクセスパスがアクセス不可能な場合には、前記通信経路を使用して前記第1のノードから前記第2のノードへ前記メモリ内容を送信するステップと、
前記第2のノードにおける前記記憶装置へのアクセスパスを使用して前記記憶装置へ前記メモリ内容を書き込むステップと、
を含むことを特徴とするメモリダンプ方法。
【請求項2】
前記記憶装置は、多重化された記憶装置で構成され、該多重化された記憶装置の全てについてアクセスパスがアクセス可能であるか否かを判断することを特徴とする請求項1記載のメモリダンプ方法。
【請求項3】
複数のノード間を通信経路によって相互に接続したクラスタシステムにおいて、
第1および第2のノードと、
前記第1および第2のノードと接続されて共有される記憶装置と、
を備え、
前記第1のノードは、障害発生時に前記第1のノードのメモリ内容を前記記憶装置へ退避するに際して、前記記憶装置へのアクセスパスがアクセス可能であるか否かを判断し、該アクセスパスがアクセス不可能な場合には、前記通信経路を使用して前記第1のノードから前記第2のノードへ前記メモリ内容を送信し、
前記第2のノードは、前記第2のノードにおける前記記憶装置へのアクセスパスを使用して前記記憶装置へ前記メモリ内容を書き込むことを特徴とするクラスタシステム。
【請求項4】
前記記憶装置は、多重化された記憶装置で構成され、前記第1のノードは、該多重化された記憶装置の全てについてアクセスパスがアクセス可能であるか否かを判断することを特徴とする請求項3記載のクラスタシステム。
【請求項5】
複数のノード間を通信経路によって相互に接続したクラスタシステムを構成するノードにおいて、
障害発生時におけるダンプの対象とされる情報を保持するメモリと、
他のノードと接続されて共有とされる記憶装置への記憶装置インタフェース部と、
前記他のノードと前記通信経路を介して接続するための通信インタフェース部と、
制御部と、
を備え、
前記制御部は、障害発生時にメモリが保持する情報を前記記憶装置へ退避するに際して、前記記憶装置インタフェース部がアクセス可能であるか否かを判断し、前記記憶装置インタフェース部へのアクセスが不可能な場合には、前記通信インタフェース部を使用して前記他のノードへ前記情報を送信し、通常動作時に前記他のノードから前記記憶装置への書き込み要求が到来した場合には、前記記憶装置インタフェース部を使用して前記記憶装置へ書き込み要求に伴う情報を書き込むように制御することを特徴とするクラスタシステムを構成するノード。
【請求項6】
前記記憶装置は、多重化された記憶装置で構成され、前記記憶装置インタフェース部は、該多重化された記憶装置に対応した複数のインタフェース部を有し、前記制御部は、該多重化された記憶装置の全てにアクセス可能であるか否かを判断することを特徴とする請求項5記載のクラスタシステムを構成するノード。
【請求項7】
複数のノード間を通信経路によって相互に接続したクラスタシステムを構成するノードであって、障害発生時におけるダンプの対象とされる情報を保持するメモリと、他のノードと接続されて共有とされる記憶装置への記憶装置インタフェース部と、前記他のノードと前記通信経路を介して接続するための通信インタフェース部と、を備えるノードを構成するコンピュータに、
障害発生時にメモリが保持する情報を前記記憶装置へ退避するに際して、前記記憶装置インタフェース部がアクセス可能であるか否かを判断する処理と、
前記記憶装置インタフェース部へのアクセスが不可能な場合には、前記通信インタフェース部を使用して前記他のノードへ前記情報を送信する処理と、
通常動作時に前記他のノードから前記記憶装置への書き込み要求が到来した場合には、前記記憶装置インタフェース部を使用して前記記憶装置へ書き込み要求に伴う情報を書き込む処理と、
を実行させるプログラム。
【請求項8】
前記記憶装置は、多重化された記憶装置で構成され、前記記憶装置インタフェース部は、該多重化された記憶装置に対応した複数のインタフェース部を有し、前記記憶装置インタフェース部がアクセス可能であるか否かを判断する処理において、該多重化された記憶装置の全てにアクセス可能であるか否かを判断することを特徴とする請求項7記載のプログラム。

【図1】
image rotate

【図2】
image rotate