(57)【要約】【課題】  現用系サーバのＣＰＵ停止時においても、現用系サーバのメモリの内容を待機系サーバへコピーすることにより簡便に二重化されたＶｏＩＰサーバの現用系と待機系の系切り換えの可能なサーバ装置、サーバシステム、及びサーバシステムでの系切り換え方法を提供する。【解決手段】  イーサネット１０２により二重化されたＶＯＩＰサーバにおいて、サーバ装置１０４にＣＰＵ障害を検出し、メモリ内容をコピーする機能を備えたプログラマブルなデバイスである系切り換え制御手段１１４を設け、この系切り換え制御手段が現用系サーバに搭載されているＣＰＵに障害が生じた場合に、現用系サーバのメモリの内容を待機系サーバのメモリへコピーする。【選択図】      図２
2006309292.tif 000002
【特許請求の範囲】
【請求項１】
通信バスで相互に接続された２台のサーバ装置のうち、一の前記サーバ装置が現用系として動作し、他の前記サーバ装置が待機系として動作する二重化されたＶｏＩＰ（Voice over IP）サーバとして構成されるサーバシステムに備わる前記サーバ装置において、
データやプログラムの送受信の際に前記データや前記プログラムを格納する記憶手段と、
前記記憶手段に格納された前記プログラムを実行するＣＰＵ（central processing unit）と、
前記一のサーバ装置に備わる前記ＣＰＵに障害が発生した際に前記他のサーバ装置への系の切り換えを制御する系切り換え制御手段と、
前記記憶手段を使用しながら前記通信バスでの通信の実行を制御する通信実行制御手段と、を備え、
前記記憶手段は、
一の記憶手段を他の記憶手段と識別する手段となる記述子と、
前記データやプログラムの送受信の際に、データ処理のために一時的に利用されるメモリ領域として機能する一時的記憶手段と、を備え、
前記系切り換え制御手段は、
前記ＣＰＵで生じた障害を検出する障害検出機能部と、
前記記憶手段に直接アクセスして、前記記憶手段を制御する記憶手段制御機能部と、
前記記述子を前記記憶手段に生成する識別手段生成機能部と、を備える
ことを特徴とする、サーバ装置。
【請求項２】
前記通信バスはイーサネット（登録商標）であり、前記系切り換え制御手段、前記通信実行制御手段、前記ＣＰＵ、及び前記記憶手段はＰＣＩ（Peripheral Component Interconnect）バスを介して接続されていることを特徴とする、請求項１に記載のサーバシステム。
【請求項３】
前記系切り換え制御手段は、プログラマブルなデバイスであることを特徴とする、請求項１又は２に記載のサーバ装置。
【請求項４】
前記系切り換え制御手段には、前記ＣＰＵに障害が発生した際に、前記ＣＰＵの修復を実行するためのリセット信号を送信する手段が更に設けられていることを特徴とする、請求項１〜３の何れか１項に記載のサーバ装置。
【請求項５】
通信バスで相互に接続された２台のサーバ装置のうち、一の前記サーバ装置が現用系として動作し、他の前記サーバ装置が待機系として動作する二重化されたＶｏＩＰサーバとして構成されるサーバシステムにおいて、
前記サーバ装置は、
データやプログラムの送受信の際に前記データや前記プログラムを格納する記憶手段と、
前記記憶手段に格納された前記プログラムを実行するＣＰＵと、
前記一のサーバ装置に備わる前記ＣＰＵに障害が発生した際に前記他のサーバ装置への系の切り換えを制御する系切り換え制御手段と、
前記記憶手段を使用しながら前記通信バスでの通信の実行を制御する通信実行制御手段と、を備え、
前記記憶手段は、
一の記憶手段を他の記憶手段と識別する手段となる記述子と、
前記データやプログラムの送受信の際に、データ処理のために一時的に利用されるメモリ領域として機能する一時的記憶手段と、を備え、
前記系切り換え制御手段は、
前記ＣＰＵで生じた障害を検出する障害検出機能部と、
前記記憶手段に直接アクセスして、前記記憶手段を制御する記憶手段制御機能部と、
前記記述子を前記記憶手段に生成する識別手段生成機能部と、を備える
ことを特徴とする、サーバシステム。
【請求項６】
前記通信バスはイーサネット（登録商標）であり、前記系切り換え制御手段、前記通信実行制御手段、前記ＣＰＵ、及び前記記憶手段はＰＣＩバスを介して接続されていることを特徴とする、請求項５に記載のサーバシステム。
【請求項７】
前記系切り換え制御手段は、プログラマブルなデバイスであることを特徴とする、請求項５又は６に記載のサーバシステム。
【請求項８】
前記系切り換え制御手段には、前記ＣＰＵに障害が発生した際に、前記ＣＰＵの修復を実行するためのリセット信号を送信する手段が更に設けられていることを特徴とする、請求項５〜７の何れか１項に記載のサーバシステム。
【請求項９】
通信バスで相互に接続された２台のサーバ装置のうち、一の前記サーバ装置が現用系として動作し、他の前記サーバ装置が待機系として動作する二重化されたＶｏＩＰサーバとして構成されるサーバシステムでの系切り換え方法において、
前記現用系のサーバ装置に備わるＣＰＵに発生した障害を検出する障害検出工程と、
前記障害検出工程後に前記現用系のサーバ装置に備わる記憶手段に格納されているデータのうち、前記待機系のサーバ装置に必要なデータを前記現用系のサーバ装置に備わる記憶手段にコピーを実行するデータ書き込み工程と、
前記書き込み工程後に前記記憶手段に他の記憶手段と識別するための記述子を生成する
記述子生成工程と、
前記記述子の内容を前記現用系のサーバ装置に備わる前記通信バスでの通信実行を制御する通信実行制御手段で確認の後に、前記通信バスを介して前記待機系のサーバ装置に前記データを送信するデータ送信工程と、
前記現用系のサーバ装置から送信された前記データを前記待機系のサーバ装置に備わる記憶手段に格納するデータ格納工程と、
を含むことを特徴とする、サーバシステムでの系切り換え方法。
【請求項１０】
前記障害検出工程直後から前記記述子生成工程の間に、前記ＣＰＵの修復を実行するためのリセット信号を送信する工程を含むことを特徴とする、請求項９に記載のサーバシステムでの系切り換え方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバ装置、サーバシステム、及びサーバシステムでの系切り換え方法に係り、特にイーサネット（登録商標、以下同様）によりサーバ装置が二重化されたＶｏＩＰ（Voice over IP）サーバとして構成されているサーバシステムにおいて、現用系サーバのメモリの内容を待機系サーバのメモリへコピーすることによる系切り換え方法に関する。
【背景技術】
【０００２】
従来のＶｏＩＰサーバの二重化したサーバ間で構成されるサーバシステムにおいて、現用系サーバと待機系サーバの通信は、ＣＰＵ（central processing unit）が命令を実行することにより行われていた。このため、ＣＰＵ自体に障害が発生した場合には、現用系と待機系を切り換える際にメモリの内容をコピーすることができないので、待機系サーバでは障害発生前の状態を再現することができない。
【０００３】
上述の課題を解決するサーバシステムとして、メモリの障害が検出されたとき、現用系と待機系の各処理装置の動作を一旦停止して、この状態を保持し、現用系サーバの第２メモリのデータを待機系サーバの第２メモリを介して待機系サーバの主メモリに転送し、第２メモリのデータ転送の終了を検出してから両系の各サーバを初期状態にクリアして現用系と待機系を切り換える二重化サーバの切り換え制御方法が開示されている（例えば、特許文献１を参照）。このような制御方法により、系切り換え時のデータ欠落を防止した上で、障害発生時の現用系の切り換え後に円滑に処理を継続できるようになる。
【０００４】
また、上述の切り換え処理を全く中断することなく、現用系の切り換えを実現できる交換装置も開示されている（例えば、特許文献２を参照）。この交換装置では、現用系と待機系との切り換えに際し、現用系の内部状態を示すデータを凍結し、この凍結されたデータを待機系に転送し、データ転送後に現用系で処理された処理要求信号をその処理に係る情報を付して待機系に通知し、この通知された処理要求信号に基づき待機系において現用系で行われた処理と同一の処理を実行させる。そして、この処理実行に対応して待機系の内部状態を示すデータを更新し、上記通知された処理要求信号の待機系における未処理の処理要求信号の数が所定の処理のしきい値以下になった時点で現用系の処理を待機系の処理に切り換える。
【０００５】
【特許文献１】特開平０８−３１４７４６号公報
【特許文献２】特開平０９−２６１６９８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に開示された二重化サーバの切り換え制御方法では、各サーバにそれぞれ主メモリ及び第２メモリと２つのメモリを備え、それに伴い、かかるメモリの監視、制御、リセット制御、系切り換え制御等の特殊な専用ハードウェアを要する。このため、上記の切り換え制御のための回路も複雑となり、その切り換え制御も煩雑なものとなってしまう。
【０００７】
また、特許文献２に開示された交換装置では、現用系及び待機系の２つのシステムで常時同じ処理を実行させることにより、かかる２つの系のシステムが同じ状態を保っているため、通常時のＣＰＵや通信バスに対する負担が大きくなる。
【０００８】
そこで、本発明は、上記問題点に鑑みてなされたものであり、本発明の目的は、現用系サーバのＣＰＵ停止時においても、汎用的なイーサネットを用いて、現用系サーバのメモリの内容を待機系サーバへコピーすることにより簡便に二重化されたＶｏＩＰサーバの現用系と待機系の系切り換えの可能な、新規かつ改良されたサーバ装置、サーバシステム、及びサーバシステムでの系系切り換え方法を提供することである。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明のある観点によれば、通信バスで相互に接続された２台のサーバ装置のうち、一の前記サーバ装置が現用系として動作し、他の前記サーバ装置が待機系として動作する二重化されたＶｏＩＰサーバとして構成されるサーバシステムに備わるサーバ装置において、データやプログラムの送受信の際にデータやプログラムを格納する記憶手段と、この記憶手段に格納されたプログラムを実行するＣＰＵと、一のサーバ装置に備わるＣＰＵに障害が発生した際に、他のサーバ装置への系の切り換えを制御する系切り換え制御手段と、記憶手段を使用しながら通信バスでの通信の実行を制御する通信実行制御手段と、を備え、上記の記憶手段は、一の記憶手段を他の記憶手段と識別する手段となる記述子と、データやプログラムの送受信の際に、データ処理のために一時的に利用されるメモリ領域として機能する一時的記憶手段と、を備え、上記の系切り換え制御手段は、ＣＰＵで生じた障害を検出する障害検出機能部と、記憶手段に直接アクセスして、記憶手段を制御する記憶手段制御機能部と、記述子を記憶手段に生成する識別手段生成機能部と、を備えることを特徴とする、サーバ装置が提供される。
【００１０】
このとき、通信バスはイーサネットであり、系切り換え制御手段、通信実行制御手段、ＣＰＵ、及び記憶手段はＰＣＩ（Peripheral Component Interconnect）バスを介して接続されていることとしてもよく、系切り換え制御手段は、プログラマブルなデバイスであることとしてもよい。
【００１１】
このような構成とすることにより、イーサネットにより二重化されたＶＯＩＰサーバにおいて、動作状態にある現用系サーバに搭載されているＣＰＵの故障及びプログラムの暴走等の障害が発生した場合に、サーバ装置に備わる系切り換え制御手段がその障害を検出した後、汎用のイーサネットを用いて現用系サーバのメモリの内容を待機系サーバのメモリにコピーする。換言すると、ＣＰＵを使用せずにイーサネット通信により現用系サーバのメモリ情報を転送しているため、現用系サーバのＣＰＵが停止した状態でも、現用系サーバのメモリの内容を待機系サーバへコピーすることができる。このため、待機系サーバは現用系サーバのＣＰＵに障害が発生する前のメモリ状態を再現することができる。
【００１２】
また、本発明のサーバ装置は、一般的に使用されているＰＣＩ及びイーサネット通信で実現されることより、ＰＣＩバスに接続されるプログラマブルなデバイスである系切り換え制御手段となるコントローラ以外に専用ハードウェアを必要としない。このため、特殊なハードウェアを必要とせず、ＣＰＵボードのみで本発明を実現可能となることより、系切り換え制御手段を、例えばＰＣＩカードにし、ＰＣＩスロットを通してＣＰＵボードに接続できる形式にすることで二重化されたＶｏＩＰサーバのサービスを使用者の選択により追加することができるようになる。
【００１３】
また、系切り換え制御手段には、ＣＰＵに障害が発生した際に、ＣＰＵの修復を実行するためのリセット信号を送信する手段が更に設けられていることとしてもよい。
【００１４】
このような構成とすることにより、系切り換え制御手段がＣＰＵの障害を検出した直後から記憶手段であるメモリの識別手段となる記述子であるディスクリプタの生成が完了するまでの間に、ＣＰＵをリセット状態にすることが実行され、データの破壊を回避することが実現される。
【００１５】
また、上記課題を解決するために、本発明の別の観点によれば、通信バスで相互に接続された２台のサーバ装置のうち、一のサーバ装置が現用系として動作し、他のサーバ装置が待機系として動作する二重化されたＶｏＩＰサーバとして構成されるサーバシステムにおいて、上記のサーバ装置は、データやプログラムの送受信の際にデータやプログラムを格納する記憶手段と、記憶手段に格納されたプログラムを実行するＣＰＵと、一のサーバ装置に備わるＣＰＵに障害が発生した際に、他のサーバ装置への系の切り換えを制御する系切り換え制御手段と、記憶手段を使用しながら通信バスでの通信の実行を制御する通信実行制御手段と、を備え、上記の記憶手段は、一の記憶手段を他の記憶手段と識別する手段となる記述子と、データやプログラムの送受信の際に、データ処理のために一時的に利用されるメモリ領域として機能する一時的記憶手段と、を備え、系切り換え制御手段は、ＣＰＵで生じた障害を検出する障害検出機能部と、記憶手段に直接アクセスして、記憶手段を制御する記憶手段制御機能部と、記述子を記憶手段に生成する識別手段生成機能部と、を備えることを特徴とする、サーバシステムが提供される。
【００１６】
このとき、通信バスはイーサネットであり、系切り換え制御手段、通信実行制御手段、ＣＰＵ、及び記憶手段はＰＣＩバスを介して接続されていることとしてもよく、系切り換え制御手段は、プログラマブルなデバイスであることとしてもよい。
【００１７】
また、系切り換え制御手段には、ＣＰＵに障害が発生した際に、ＣＰＵの修復を実行するためのリセット信号を送信する手段が更に設けられていることとしてもよい。
【００１８】
また、上記課題を解決するために、本発明の更に別の観点によれば、通信バスで相互に接続された２台のサーバ装置のうち、一のサーバ装置が現用系として動作し、他のサーバ装置が待機系として動作する二重化されたＶｏＩＰサーバとして構成されるサーバシステムでの系切り換え方法において、現用系のサーバ装置に備わるＣＰＵに発生した障害を検出する障害検出工程と、障害検出工程後に現用系のサーバ装置に備わる記憶手段に格納されているデータのうち、待機系のサーバ装置に必要なデータを現用系のサーバ装置に備わる記憶手段にコピーを実行するデータ書き込み工程と、データ書き込み工程後に記憶手段に他の記憶手段と識別するための記述子を生成する記述子生成工程と、記述子の内容を現用系のサーバ装置に備わる通信バスでの通信実行を制御する通信実行制御手段で確認の後に、通信バスを介して待機系のサーバ装置にデータを送信するデータ送信工程と、現用系のサーバ装置から送信されたデータを待機系のサーバ装置に備わる記憶手段に格納するデータ格納工程と、を含むことを特徴とする、サーバシステムでの系切り換え方法が提供される。
【００１９】
このとき、障害検出工程直後から記述子生成工程の間に、ＣＰＵの修復を実行するためのリセット信号を送信する工程を含むこととしてもよい。
【００２０】
このような構成とすることにより、本発明のサーバ装置をサーバシステム及びこのサーバシステムでの系切り換え方法に取り入れることにより、上述した効果、すなわち、ＣＰＵの代わりに系切り換え制御手段がメモリ及びイーサネット通信を制御することより、現用系サーバのＣＰＵ停止時においても、汎用的なイーサネットを用いて、現用系サーバのメモリの内容を待機系サーバへコピーすることが可能となる。
【発明の効果】
【００２１】
以上説明したように本発明によれば、現用系サーバのＣＰＵが停止した状態でも待機系サーバへメモリ内容のコピーが汎用的なイーサネットを用いることにより可能なため、ＣＰＵに障害が発生した際に障害発生前の状態を保持したまま現用系と待機系のサーバの入れ替えをより簡便に実行できる。
【００２２】
また、上述した現用系と待機系の入れ替え機能は、一般的に使用されているＰＣＩ及びイーサネット通信で実現されることより、ＰＣＩバスに接続されるプログラマブルなデバイスである系切り換えコントローラ以外に専用ハードウェアを必要としない。このため、例えば、系切り換えコントローラをＰＣＩカードにし、ＰＣＩスロットを通してＣＰＵボードに接続できる形式にすることで、本発明で提案する二重化されたＶｏＩＰサーバのサービスを使用者の選択により追加することができるようになる。
【発明を実施するための最良の形態】
【００２３】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００２４】
まず、本発明におけるサーバシステムの第１の実施の形態の構成について図面を使用しながら説明する。図１は、本発明のサーバシステムの第１の実施の形態の全体構成図であり、図２は、本実施の形態のサーバシステム１００に備わるサーバ装置のハードウェア構成を説明するための構成図である。
【００２５】
図１に示すように、本実施の形態のサーバシステム１００は、通信バス１０２に複数のサーバ装置１０４が接続されることにより構成されている。このサーバ間の通信バス１０２には、本実施の形態では、イーサネットが使用され、このイーサネット１０２によりサーバ装置１０４が二重化されたＶｏＩＰサーバとして機能する。以下、上記複数あるサーバ装置１０４のうち、動作状態にある一のサーバ装置を現用系サーバ１０４ａと称し、待機状態にある他のサーバ装置を待機系サーバ１０４ｂと称するものとする。なお、図１において、サーバ装置１０４に備わる各構成要素に付す符号のうち、現用系サーバ１０４ａに含まれるものには、符号の末尾にａを付し、待機系サーバ１０４ｂに含まれるものには、符号の末尾にｂを付すものとする。
【００２６】
サーバ装置１０４には、図１及び図２に示すように、ＣＰＵ１０６（１０６ａ、１０６ｂ）、メモリ１０８（１０８ａ、１０８ｂ）、メモリコントローラ１１０（１１０ａ、１１０ｂ）、Ｉ／Ｏ（Input／Output）コントローラ１１２（１１２ａ、１１２ｂ）、系切り換えコントローラ１１４（１１４ａ、１１４ｂ）、及びイーサコントローラ１１６（１１６ａ、１１６ｂ）が備わる。そして、これら各構成要素が拡張スロットの規格の一つであるＰＣＩ（Peripheral Component Interconnect）バス１１８（１１８ａ、１１８ｂ）を介して接続されている。
【００２７】
ＣＰＵ１０６は、データ等の記憶手段であるメモリ１０８に記憶されたプログラムを実行する装置であり、不図示のマウスやキーボード等の入力装置や記憶装置からデータを受け取り、演算・加工した上で、プリンタやディスプレイ等の出力装置や記憶装置に出力する。
【００２８】
また、メモリコントローラ１１０は、データやプログラムを記憶するためのメモリ１０８と通信し、ＣＰＵ１０６やＩ／Ｏコントローラ１１２とメモリ１０８内のデータの受け渡しをする手段としての機能を有する。
【００２９】
メモリ１１２には、図２に示すように、メモリ１１２を識別する手段である記述子となるディスクリプタ１２０と、データ等の送受信の際にデータ処理のために一時的に利用されるメモリ領域として機能する受信バッファ１２２及び送信バッファ１２４が備わる。
【００３０】
Ｉ／Ｏコントローラ１１２は、ＰＣＩ、ＵＳＢ（Universal Serial Bus）、ＩＤＥ（Integrated Drive Electronics）等のバス１１８に接続された装置との通信におけるデータの入力・出力を制御する手段としての機能を有し、イーサコントローラ１１６は、イーサネット１０２を用いたデータの送受信を制御する手段としての機能を有する。
【００３１】
また、系切り換えコントローラ１１４は、本発明を実現するための核心となる構成要素であり、現用系サーバ１０４ａに備わるＣＰＵ１０６ａに障害が発生した際に、待機系サーバ１０４ｂへの系の切り換えを制御する系切り換え制御手段であり、ＦＰＧＡ（Field Programmable Gate Array）等のソフトウェアプログラムによって、一連の作業指示を付与するプログラマブルなデバイスである。本実施の形態では、系切り換えコントローラ１１４は、ＣＰＵ障害検出機能部１２６、メモリ制御機能部１２８、及びディスクリプタ生成機能部１３０の３つの機能部を有する。
【００３２】
ＣＰＵ障害検出機能部１２６は、ＣＰＵ１０６で生じた障害を検出する手段であり、ＣＰＵ障害検出機能部１２６に備わるＷＤＴ（Watch Dog Timer）を用いて係る障害を検出する。ＷＤＴとは、任意のサイズのカウンタ（不図示）で構成されており、ＣＰＵ１０６は一定周期でこのカウンタをクリアする。ＣＰＵ１０６に何らかの障害が発生し、カウンタのクリアが行われず、カウンタがオーバーフローした際に、ＷＤＴによりＣＰＵ１０６の障害が検出される。
【００３３】
メモリ制御機能部１２８は、メモリ１０８にアクセスする手段であり、ＰＣＩ（Peripheral Component Interconnect）のバスマスタ機能を搭載することにより、ＣＰＵ１０６を使用せず直接メモリ１０８にアクセスすることができる。バスマスタ機能については、ＰＣＩの規格で定義されているためここでは説明しない。
【００３４】
ディスクリプタ生成機能部１３０は、メモリ１１２を識別するための記述子としてメモリ１１２に設けられるディスクリプタ１２０を生成する手段である。このディスクリプタ１２０には、送受信データの有無、送受信バッファ１２２、１２４のアドレス、送受信バッファ１２２、１２４内のデータサイズが格納されている。
【００３５】
イーサコントローラ１１６は、メモリ１０８内に存在するディスクリプタ１２０と送受信バッファ１２２、１２４を用いてイーサネット通信を実行する制御手段である。ディスクリプタ１２０には、上述したように送受信データの有無、送受信バッファ１２２、１２４のアドレス、送受信バッファ１２２、１２４内のデータサイズが格納されている。そして、送受信バッファ１２２、１２４には、イーサネット１０２により転送したデータが格納されている。
【００３６】
次に、本実施の形態におけるサーバシステム１００に備わるイーサコントローラ１１６によるデータ送信動作について図面を使用しながら説明する。図３は、本実施の形態におけるサーバシステム１００に備わるイーサコントローラ１１６がデータ送信する仕組みを説明するための機能ブロック図である。
【００３７】
イーサコントローラ１１６は、メモリ１０８内に設けられたディスクリプタ１２０をポーリングし、送信データの有無を確認する機能を有する監視制御手段１３２を備える。この監視制御手段１３２が送信データの有無の確認をした際に、ディスクリプタ１２０に送信データが有る場合に、イーサコントローラ１１６はディスクリプタ１２０から送信バッファ１２４のアドレスとデータのサイズ（バイト数）を取得し、送信バッファ１２４からイーサコントローラ１１６内に備わる記憶手段であるＦＩＦＯバッファ１３４へデータをコピーする。この際に、ＦＩＦＯバッファ１３４へ蓄えられたデータは順次イーサネット１０２へ送信される。
【００３８】
通常のサーバ装置は、ＣＰＵがディスクリプタを生成するが、本実施の形態によるサーバシステム１００に備わるサーバ装置１０４は、系切り換えコントローラ１１４に備わるディスクリプタ生成機能部１３０がディスクリプタ１２０を生成することにより、ＣＰＵ１０６を使用せずにイーサネット１０２へデータを送信することができる。
【００３９】
次に、本実施の形態のサーバシステム１００によって実行される現用系サーバ１０４ａに備わるメモリ１０８ａに格納されたデータの内容を待機系サーバ１０４ｂに備わるメモリ１０８ｂにコピーする動作について、図面を使用しながら詳細に説明する。図４は、本実施の形態のサーバシステム１００によって実行される現用系サーバ１０４ａに備わるメモリ１０８ａに格納されたデータの内容を待機系サーバ１０４ｂに備わるメモリ１０８ｂにコピーする動作を説明するためのフローチャートであり、現用系サーバ１０４ａのＣＰＵ１０６ａに障害が発生した際に、メモリ１０８ａの内容を待機系サーバ１０４ｂのメモリ１０８ｂへコピーし、現用系と待機系を入れ替えるまでの動作を示す。
【００４０】
まず、現用系サーバ１０４ａのＣＰＵ１０６ａに故障又はプログラムの動作に異常が発生し、ＣＰＵ１０６ａに障害が発生する（Ｓ１００）。このＣＰＵ１０６ａの障害が発生した後に、系切り換えコントローラ１１４に備わるＣＰＵ障害検出機能部であるＷＤＴ１２６によりＣＰＵ１０６の障害を検出する（Ｓ１０２）。
【００４１】
次に、系切り換えコントローラ１１４は、待機系サーバ１０４ｂのＣＰＵ１０６ｂに現用系と待機系のサーバを入れ替えて系の切り換えを行うことを通知するために、系切り換えのためのメモリコピー用のデータ送信を開始する情報をメモリ１０８ａ上の送信バッファ１２４へ書き込む（Ｓ１０４）。
【００４２】
その後、メモリ１０８ａに格納されているデータから、待機系サーバ１０４ｂへコピーする必要のあるデータを選択し、メモリ１０８ａ上の送信バッファ１２４に書き込む（Ｓ１０６）。上記書き込みが終了すると、メモリコピーが完了することを通知するための情報をメモリ１０８ａ上の送信バッファ１２４に書き込む（Ｓ１０８）。
【００４３】
メモリ１０８ａ上の送信バッファ１２４への書き込みが完了した後、系切り換えコントローラ１１４ａは、メモリ１０８ａのディスクリプタ１２０へ送信バッファ１２４のアドレス、送信バッファ１２４に格納したデータのサイズを書き込み、そのディスクリプタ１２０を有効にする。ここで、ディスクリプタ１２０が有効になるとは、そのディスクリプタ１２０に対応する送信バッファ１２４にデータが格納されていることを示す（Ｓ１１０）。
【００４４】
その後、イーサコントローラ１１６ａに備わる監視制御手段１３２がポーリングによりメモリ１０８ａ上のディスクリプタ１２０を参照し、ディスクリプタ１２０が有効になっていることを確認した後に、データが格納されている送信バッファ１２４のアドレス及びデータサイズを取得する（Ｓ１１２）。
【００４５】
イーサコントローラ１１６ａは、上述のポーリングによりディスクリプタ１２０から得た情報を元に、送信バッファ１２４からイーサコントローラ１１６ａが装備するＦＩＦＯバッファ１３４へデータを取り込み、イーサネット１０２を介して待機系サーバ１０４ｂへデータを送信する（Ｓ１１４）。この待機系サーバ１０４ｂでは、ＣＰＵ１０６ｂが正常に動作しているため、通常と同じように、ＣＰＵ１０６ｂがメモリ１０８ｂ上の受信バッファ１２２からメモリ１０８ｂの適切なアドレスへデータを移動させる（Ｓ１１６）。その後、現用系と待機系のサーバが入れ替わり、障害が未発生のＣＰＵ１０６ｂを搭載したサーバ１０４ｂが現用系サーバとして動作する（Ｓ１１８）。
【００４６】
以上説明したように、本発明の本実施の形態におけるサーバシステム１００は、イーサネット１０２により二重化されたＶｏＩＰサーバにおいて、現用系サーバ１０４ａに搭載されているＣＰＵ１０６ａの故障、及びプログラムが暴走した場合に、現用系サーバ１０４ａのメモリ１０８ａの内容を待機系サーバ１０４ｂのメモリ１０８ｂへコピーすることができる。
【００４７】
すなわち、現用系サーバ１０４ａのＣＰＵ１０６ａに障害が発生した際に、系切り換えコントローラ１１４ａがその障害を検出した後に、イーサネット１０２を用いて現用系サーバ１０４ａのメモリ１０８ａの内容を待機系サーバ１０４ｂのメモリ１０８ｂにコピーする。このようにして、本実施の形態のサーバシステム１００は、ＣＰＵ１０６を使用せずにイーサネット通信により、メモリ情報を転送しているため、現用系サーバ１０４ａのＣＰＵ１０６ａが停止した状態においても、メモリ１０８ａの内容を現用系サーバ１０４ａから待機系サーバ１０４ｂへコピーできる。そのため、待機系サーバ１０４ｂは、現用系サーバ１０４ａのＣＰＵ１０６ａに障害が発生する前のメモリ状態を再現することができるようになる。
【００４８】
なお、現用系サーバ１０４ａのＣＰＵ１０６ａに障害が発生する前の状態を待機系サーバ１０４ｂで再現するために必要なデータを、現用系サーバ１０４ａの系切り換えコントローラ１１４ａに知らせるシステムが必要である。かかるシステムは、現用系サーバ１０４ａが起動するときに、必要なデータが格納されているメモリアドレスをメモリ１０８ａ内の位置を識別するための手段となる特定のアドレス（例えば0000h）に記憶することで実現できる。このとき、系切り換えコントローラ１１４ａは、図４に示す工程Ｓ１０６の時に、上述の特定のアドレス0000hに記載されているメモリアドレスに格納されているデータを送信バッファ１２４へ書き込めばよい。
【００４９】
また、現用系サーバ１０４ａのＣＰＵ１０６ａに障害が発生した後に、系切り換えコントローラ１１４ａが送信バッファ１２４への書き込み及びディスクリプタ１２０の生成をしている際に、現用系サーバ１０４ａのＣＰＵ１０６ａが再動作した場合には、ＣＰＵ１０６ａと系切り換えコントローラ１１４ａの二つのデバイスが同時にメモリアクセスを行いデータが破壊される可能性がある。そこで、図５に示すように、系切り換えコントローラ１１４からＣＰＵ１０６へデータ等が破壊されたＣＰＵを修復するためのリセット信号１３６を送信する手段を更に系切り換えコントローラ１１４に設けて、リセット信号１３６をＣＰＵ１０６へ送信する。このようにリセット信号送信手段（不図示）を設けることにより、系切り換えコントローラ１１４がＣＰＵ１０６の障害を検出した直後からディスクリプタ１２０の生成が完了するまでの間に、ＣＰＵ１０６をリセット状態にすることでデータの破壊を回避することが実現される。
【００５０】
以上詳述したように、本発明により、現用系サーバ１０４ａのＣＰＵ１０６ａが停止した状態でも、待機系サーバ１０４ｂへメモリ内容のコピーができるため、ＣＰＵ１０６ａに障害が発生した際に、障害発生前の状態を保持したまま現用系と待機系の入れ替えがより簡便にできるようになる。
【００５１】
また、上述した現用系から待機系への系切り換え機能は、一般的に使用されているＰＣＩ及びイーサネット通信で実現しているので、ＰＣＩバスに接続されるプログラマブルなデバイスである系切り換えコントローラ１１４以外に、専用ハードウェアを必要とせず、ＣＰＵボードのみで実現できる。このため、例えば、系切り換えコントローラをＰＣＩカードにし、ＰＣＩスロットを通してＣＰＵボードに接続できる形式にすることで、本発明による二重化のサービスを使用者の選択で追加することができるようになる。
【００５２】
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明は係る例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【図面の簡単な説明】
【００５３】
【図１】図１は、本発明のサーバシステムの第１の実施の形態の全体構成図である。
【図２】図２は、同実施の形態のサーバシステムに備わるサーバ装置のハードウェア構成を説明するための構成図である。
【図３】図３は、同実施の形態におけるサーバシステムに備わるイーサコントローラがデータ送信する仕組みを説明するための機能ブロック図である。
【図４】図４は、同実施の形態のサーバシステムによって実行される現用系サーバに備わるメモリに格納されたデータの内容を待機系サーバに備わるメモリにコピーする動作を説明するためのフローチャートである。
【図５】図５は、同実施の形態のサーバシステムに備わるサーバ装置のハードウェア構成の変形例を説明するための構成図である。
【符号の説明】
【００５４】
１００      サーバシステム
１０２      ネットワーク（イーサネット）
１０４      サーバ装置
１０４ａ    現用系サーバ
１０４ｂ    待機系サーバ
１０６      ＣＰＵ
１０８      メモリ
１１０      メモリコントローラ
１１２      Ｉ／Ｏコントローラ
１１４      系切り換えコントローラ
１１６      イーサコントロー
１１８      ＰＣＩバス
１２０      ディスクリプタ
１２２      受信バッファ
１２４      送信バッファ
１２６      ＣＰＵ障害検出機能部
１２８      メモリ制御機能部
１３０      ディスクリプタ生成機能部
１３２      監視制御手段
１３４      ＦＩＦＯバッファ
１３６      リセット信号
【図１】
2006309292.tif 000003
【図２】
2006309292.tif 000004
【図３】
2006309292.tif 000005
【図４】
2006309292.tif 000006
【図５】
2006309292.tif 000007