(57)【要約】【課題】現用系サーバと待機系サーバとでメモリ同期させる二重化システムにおいて、アプリケーションプログラムの開発を容易にし、プログラム開発効率を向上させる。【解決手段】現用系サーバ１と待機系サーバ２とを備える二重化システムであって、現用系サーバ１は、アプリケーション処理を行うアプリケーション処理手段１０１、１０３と、アプリケーション処理で発生した現用系サーバ１の主メモリ１２を更新させる第１の更新要求に応じて、待機系サーバ２の主メモリ２２を更新するための第２の更新要求を待機系サーバ２に送信する第１の同期手段１０２、１０４とを備え、待機系サーバ２は、現用系サーバ１から第２の更新要求を受け付けると、当該待機系サーバ２の主メモリ２２を更新する第２の同期手段２０２、２０４と、を備える。【選択図】図２
2012256240.tif 000002
【特許請求の範囲】
【請求項１】
現用系サーバと待機系サーバとを備える二重化システムであって、
前記現用系サーバは、
アプリケーション処理を行うアプリケーション処理手段と、
前記アプリケーション処理で発生した、当該現用系サーバの主メモリを更新させる第１の更新要求に応じて、前記待機系サーバの主メモリを更新するための第２の更新要求を前記待機系サーバに送信する第１の同期手段と、を備え、
前記待機系サーバは、
前記現用系サーバから前記第２の更新要求を受け付けると、当該待機系サーバの主メモリを更新する第２の同期手段と、を備えること
を特徴とする二重化システム。
【請求項２】
請求項１記載の二重化システムであって、
前記アプリケーション処理手段は、前記第１の更新要求を前記第１の同期手段に送出し、
前記第１の同期手段は、前記第１の更新要求を受け付けて、当該現用系サーバの主メモリを更新するとともに、前記待機系サーバに前記第２の更新要求を送信すること
を特徴とする二重化システム。
【請求項３】
請求項１記載の二重化システムであって、
前記アプリケーション処理手段は、前記第１の更新要求を当該現用系サーバの主メモリに送出し、
前記第１の同期手段は、前記主メモリに対する更新を検知して、前記待機系サーバに前記第２の更新要求を送信すること
を特徴とする二重化システム。
【請求項４】
請求項２記載の二重化システムであって、
前記第１の同期手段は、前記第２の同期手段から前記第２の更新要求に対する更新応答を受信し、前記現用系サーバの主メモリの更新が完了している場合、前記アプリケーション処理手段に更新結果を通知すること
を特徴とする二重化システム。
【請求項５】
請求項３記載の二重化システムであって、
前記主メモリは、前記現用系サーバの主メモリおよび前記待機系サーバの主メモリの更新が完了した場合、前記アプリケーション処理手段に更新結果を通知すること
を特徴とする二重化システム。
【請求項６】
請求項１から請求項５のいずれか１項に記載の二重化システムであって、
前記現用系サーバは、
前記アプリケーション処理手段に割り当てられた第１の演算処理装置と、
前記第１の同期手段に割り当てられた第２の演算処理装置と、をさらに備えること、
を特徴とする二重化システム。
【請求項７】
請求項１からは請求項６のいずれか１項に記載の二重化システムが行う、前記現用系サーバの主メモリと前記待機系サーバの主メモリとを同期させるメモリ同期方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、現用系サーバと待機系サーバとを備える二重化システムにおいて、現用系サーバのメモリと待機系サーバのメモリとを同期させる技術に関する。
【背景技術】
【０００２】
ＩＰ電話システムにおけるＳＩＰサーバ等、信頼性が要求されるサーバにおいては二重化構成をとることが行われている。二重化構成では、現用系と待機系の同一の機能を備えた一対のサーバを一つのクラスタとし、系間を接続するネットワークを介して現用系から待機系へとメモリ内容を転送し、メモリを同期しながら運用することで系を切り替えることを可能とする。
【０００３】
特許文献１には、多重化データベースシステムにおいて、新規データベースサーバをシステムに組み込む際に各データベースサーバのデータを同期化する方法が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開2007-241323号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述したような従来の技術では、呼処理などのアプリケーションプログラムを開発する際に、本来のアプリケーション処理の他に、系間のメモリデータ転送処理も考慮した実装を行わなければならず、実装が複雑になるという問題がある。すなわち、アプリケーションプログラムが複雑になり、プログラム開発に時間および負荷がかかる。
【０００６】
本発明は、上記事情に鑑みてなされたものであり、本発明の目的は、現用系サーバと待機系サーバとでメモリ同期させる二重化システムにおいて、アプリケーションプログラムの開発を容易にし、プログラム開発効率を向上させることにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明は、現用系サーバと待機系サーバとを備える二重化システムであって、前記現用系サーバは、アプリケーション処理を行うアプリケーション処理手段と、前記アプリケーション処理で発生した、当該現用系サーバの主メモリを更新させる第１の更新要求に応じて、前記待機系サーバの主メモリを更新するための第２の更新要求を前記待機系サーバに送信する第１の同期手段と、を備え、前記待機系サーバは、前記現用系サーバから前記第２の更新要求を受け付けると、当該待機系サーバの主メモリを更新する第２の同期手段と、を備える。
【０００８】
本発明は、前記二重化システムが行う、現用系サーバの主メモリと待機系サーバの主メモリとを同期させるメモリ同期方法である。
【発明の効果】
【０００９】
本発明によれば、現用系サーバと待機系サーバとでメモリ同期させる二重化システムにおいて、アプリケーションプログラムの開発を容易にし、プログラム開発効率を向上させることができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態に係る二重化システムの構成図である。
【図２】各サーバ上のプログラム構成を示す図である。
【図３】第１の実施例のメモリ同期処理を示すシーケンスである。
【図４】第２の実施例のメモリ同期処理を示すシーケンスである。
【図５】第３の実施例のメモリ同期処理を示すシーケンスである。
【図６】第４の実施例のメモリ同期処理を示すシーケンスである。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態について、図面を参照して説明する。
【００１２】
図１は、本発明の実施形態に係る二重化システムの構成図である。図示する二重化システムでは、同一の機能を備える一対の現用系サーバ１（ＡＣＴ系サーバ）と、待機系サーバ２（ＳＢＹ系サーバ）とを備える。現用系サーバ１と待機系サーバ２は、一つのクラスタとしてサーバ間を接続するネットワーク９を介して現用系サーバ１から待機系サーバ２へとメモリの内容を転送し、メモリを同期しながら運用することで系を切替えることを可能とする。
【００１３】
本実施形態の現用系サーバ１は、複数のＣＰＵ１１と、主メモリ１２（メモリ）と、ディスクコントローラ１３と、ディスク１４と、ＮＩＣ（Network Interface Card）１５とを備え、これらはバス１６で接続されている。同様に、本実施形態の待機系サーバ２は、複数のＣＰＵ２１と、主メモリ２２と、ディスクコントローラ２３と、ディスク２４と、ＮＩＣ２５とを備え、これらはバス２６で接続されている。
【００１４】
このように、本実施形態の現用系サーバ１および待機系サーバ２は、筐体内（サーバ内）に複数のＣＰＵを備えたマルチコアサーバである。
【００１５】
図２は、現用系サーバ１および待機系サーバ２のプログラム構成の一例を示す図である。図示する例では、現用系サーバ１および待機系サーバ２のそれぞれが、４つのＣＰＵ１１１〜１１４、２１１〜２１４を備える。
【００１６】
そして、図示する例では、現用系サーバ１および待機系サーバ２のそれぞれは、２つのサーバプログラムのプロセス（サーバプロセス１、サーバプロセス２：アプリケーション処理手段）１０１、１０３、２０１、２０３が、並列で動作しているものとする。なお、サーバプログラムは、所定のアプリケーション処理を行うアプリケーションプログラムである。また、プロセスは、ＯＳからメモリ領域などの割り当てを受けて処理を実行するプログラムの実行単位である。
【００１７】
各サーバプロセス１０１、１０３、２０１、２０３は、ＯＳ１０５、２０５を介してＣＰＵや主メモリ１２、２２などのリソースを利用する。図示する例では、現用系サーバ１のサーバプロセス１：１０１は、ＣＰＵ１：１１１上で動作し、サーバプロセス２：１０３はＣＰＵ３：１１３上で動作するものとする。また、待機系サーバ２のサーバプロセス１：２０１は、ＣＰＵ１：２１１上で動作し、サーバプロセス２：２０３はＣＰＵ３：２１３上で動作するものとする。
【００１８】
また、本実施形態では、現用系サーバ１と待機系サーバ２との間でメモリ同期処理を実行するメモリ同期プログラムのプロセス（メモリ同期プロセス１、メモリ同期プロセス２：同期手段）１０２、１０４、２０２、２０４を、サーバプロセス毎に備える。なお、メモリ同期プログラムは、ＯＳ１０５、２０５上で動作するミドルウェアとして用いられる。
【００１９】
図示する例では、現用系サーバ１では、サーバプロセス１：１０１のメモリ同期処理を実行するメモリ同期プロセス１：１０２と、サーバプロセス２：１０３のメモリ同期処理を実行するメモリ同期プロセス２：１０４とを備える。そして、メモリ同期プロセス１：１０２はＣＰＵ２：１１２上で動作し、メモリ同期プロセス２：１０４はＣＰＵ４：１１４上で動作するものとする。
【００２０】
同様に、待機系サーバ２では、サーバプロセス１：２０１のメモリ同期処理を実行するメモリ同期プロセス１：２０２と、サーバプロセス２：２０３のメモリ同期処理を実行するメモリ同期プロセス２：２０４とを備える。そして、メモリ同期プロセス１：２０２はＣＰＵ２：２１２上で動作し、メモリ同期プロセス２：２０４はＣＰＵ４：２１４上で動作するものとする。
【００２１】
このように、本実施形態の現用系サーバ１および待機系サーバ２は、各筐体内に複数のＣＰＵを備えたマルチコアサーバであって、系間でデータ転送を行うメモリ同期プロセスと、アプリケーション処理を行うサーバプロセスとを分けてそれぞれにＣＰＵを割り当てることにより、アプリケーションサービスの中断時間を短縮することが可能である。
【００２２】
なお、各サーバプログラムおよび各メモリ同期プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ−ＲＯＭなどのコンピュータ読取り可能な記録媒体に記憶することも、ネットワークを介して配信することもできる。
【００２３】
次に、本実施形態におけるメモリ同期方法について説明する。メモリ同期方法には、以下に示す４つ実施例がある。以下の各実施例では、図２に示すサーバプロセス１：１０１、２０１に割り当てられた主メモリを、メモリ同期プロセス１：１０２、２０２が同期させる場合を例として説明する。
【００２４】
＜第１の実施例＞
図３は、第１の実施例のメモリ同期処理のシーケンスである。
【００２５】
まず、現用系サーバ１および待機系サーバ２は、それぞれ初期処理を行う（Ｓ１１〜Ｓ１４）。すなわち、サーバプロセス１は、ＯＳに対して処理に必要なメモリの確保要求を行う（Ｓ１１）。ＯＳは、主メモリ上の空き領域を確保し、確保した領域のメモリを初期化する（Ｓ１２）。
【００２６】
また、ＯＳは、メモリ確保に伴い、サーバプロセス１のメモリ参照要求およびメモリ更新要求を受け付けるためのメモリ同期プロセス１の処理を起動する（Ｓ１３）。この際、ＯＳは、メモリ参照要求およびメモリ更新要求を受け付けてアクセス制御できるように、サーバプロセス１のプロセスＩＤと、割り当てたメモリ領域の情報（アドレス等）を、メモリ同期プロセス１に通知する。
【００２７】
そして、ＯＳは、サーバプロセス１に対してメモリ割り当てが完了したことを通知する（Ｓ１４）。この際、ＯＳは、メモリ同期プロセス１のプロセスＩＤをサーバプロセス１に通知する。
【００２８】
現用系サーバ１および待機系サーバ２のそれぞれで初期処理が終了した後、現用系サーバ１のサーバプロセス１は、アプリケーション処理の中でメモリ参照が必要になった場合、Ｓ１４で通知されたプロセスＩＤに基づいて、メモリ同期プロセス１にメモリ参照要求を送出する（Ｓ１５）。このメモリ参照要求には、サーバプロセス１のプロセスＩＤと、参照したいメモリ領域の情報とが含まれる。
【００２９】
メモリ同期プロセス１は、Ｓ１３でＯＳから通知された情報と、メモリ参照要求に含まれる情報とを比較し、サーバプロセス１のメモリ参照要求が正当か否かを判定するアクセス制御を行う。例えば、ＯＳから通知されたプロセスＩＤとメモリ参照要求に含まれるプロセスＩＤとが一致し、ＯＳから通知されたメモリ領域にメモリ参照要求で指定されたメモリ領域が含まれる場合、正当であると判別し、アクセスを許可する。
【００３０】
メモリ同期プロセス１は、アクセスを許可すると判別した場合、メモリ参照要求で指定されたメモリ内容を、ＯＳを介して主メモリから取得する（Ｓ１６）。
【００３１】
そして、メモリ同期プロセス１は、取得したメモリ内容（メモリ参照結果）をサーバプロセス１に応答・送出する（Ｓ１７）。
【００３２】
また、サーバプロセス１は、アプリケーション処理の中でメモリ更新が必要になった場合、Ｓ１４で通知されたプロセスＩＤに基づいてメモリ同期プロセス１にメモリ更新要求を送出する（Ｓ１８）。このメモリ更新要求には、サーバプロセス１のプロセスＩＤと、更新したいメモリ領域の情報と、メモリ更新内容とが含まれる。
【００３３】
メモリ同期プロセス１は、Ｓ１３でＯＳから通知された情報に基づいて、Ｓ１６と同様のアクセス制御を行い、アクセスを許可すると判別した場合、ＯＳを介してメモリ更新要求のメモリ更新内容で、現用系サーバ１の主メモリを更新する（Ｓ１９）。
【００３４】
そして、メモリ同期プロセス１は、ＮＩＣとネットワークを介して待機系サーバ２のメモリ同期プロセス１に更新要求を送信し、待機系サーバ２からの更新応答を待ち合わせる（Ｓ２０）。すなわち、更新応答を受信するまで、サーバプロセス１にメモリ更新結果を通知せず、待ち状態となる。なお、Ｓ２０の更新要求には、更新したいメモリ領域の情報、メモリ更新内容などが含まれる。
【００３５】
待機系サーバ２のメモリ同期プロセス１は、ＯＳを介して更新要求で指定された内容で、待機系サーバ２の主メモリを更新する（Ｓ２１）。そして、待機系サーバ２のメモリ同期プロセス１は、更新応答を現用系サーバ１のメモリ同期プロセス１に、ＮＩＣとネットワークを介して送信する（Ｓ２２）。更新応答には、待機系サーバ２の主メモリの更新結果（ＯＫ、ＮＧなど）が含まれる。
【００３６】
現用系サーバ１のメモリ同期プロセス１は、待機系サーバ２から更新応答を受信し、Ｓ１９のメモリ更新の結果をおよびＳ２２の更新応答に基づくメモリ更新結果を、サーバプロセス１に通知する（Ｓ２３）。例えば、Ｓ１９およびＳ２２のメモリ更新がともに正常に行われた場合、メモリ更新が正常に完了した旨のメモリ更新結果を通知する。このように、現用系サーバ１のメモリ同期プロセス１は、待機系サーバ２から更新応答を受信し、かつ、現用系サーバ１の主メモリの更新が完了していることを条件に、サーバプロセス１に更新結果を通知する。
【００３７】
以上説明した第１の実施例では、現用系サーバ１のメモリ更新と、待機系サーバ２のメモリ更新とを同期させた後に、現用系サーバ１のサーバプロセス１にメモリ更新が終了したことを通知する。
【００３８】
なお、本実施例では、Ｓ１９で現用系サーバ１の主メモリを更新した後に、Ｓ２１で待機系サーバ２の主メモリを更新することとしたが、待機系サーバ２の主メモリを更新した後に、現用系サーバ１の主メモリを更新することとしてもよい。例えば、待機系サーバ２からの更新応答を受信した後に、現用系サーバ１の主メモリを更新してもよい。
【００３９】
＜第２の実施例＞
図４は、第２の実施例のメモリ同期処理のシーケンスである。
【００４０】
図４に示す第２の実施例のＳ３１〜Ｓ３９までの処理については、図３に示す第１の実施例のＳ１１〜Ｓ１９と同様であるため、ここでは説明を省略する。 
現用系サーバ１のメモリ同期プロセス１は、現用系サーバ１のメモリ更新が終了すると（Ｓ３９）、メモリ更新結果をサーバプロセス１に通知する（Ｓ４０）。
【００４１】
そして、メモリ同期プロセス１は、ＮＩＣとネットワークを介して、待機系サーバ２のメモリ同期プロセス１に更新要求を送信し、待機系サーバ２から送信される更新応答を待つ（Ｓ４１）。なお、メモリ同期プロセス１は、以降のＳ４２およびＳ４３の処理で異常が発生した場合に備えて、メモリ更新要求の内容をメモリ同期プロセス１内に保持しておき、一定期間応答が得られない場合はＳ４１のメモリ更新要求を再送することにより確実に待機系サーバ２のメモリを更新するようにすることが望ましい。
【００４２】
待機系サーバ２のメモリ同期プロセス２は、ＯＳを介して更新要求で指定された内容で、待機系サーバ２の主メモリを更新する（Ｓ４２）。そして、待機系サーバ２のメモリ同期プロセス１は、更新応答（更新結果）を現用系サーバ１のメモリ同期プロセス１に送信する（Ｓ４３）。
【００４３】
第２の実施例では、現用系サーバ１のメモリ同期プロセス１は、待機系サーバ２のメモリ更新を待たずに非同期で、現用系サーバ１のサーバプロセス１に現用系サーバ１のメモリ更新が終了したことを通知する。
【００４４】
＜第３の実施例＞
図５は、第３の実施例のメモリ同期処理のシーケンスである。
【００４５】
まず、現用系サーバ１および待機系サーバ２は、それぞれ初期処理を行う（Ｓ５１〜Ｓ５４）。すなわち、サーバプロセス１は、ＯＳに対して処理に必要なメモリの確保要求を行う（Ｓ５１）。ＯＳは、主メモリ上の空き領域を確保し、確保した領域のメモリを初期化する（Ｓ５２）。また、ＯＳは、メモリ確保に伴い、メモリ同期処理を行うメモリ同期プロセス１の処理を起動する（Ｓ５３）。そして、ＯＳは、サーバプロセス１に対してメモリ割り当てが完了したことを通知する（Ｓ５４）。
【００４６】
現用系サーバ１および待機系サーバ２のそれぞれで初期処理が終了した後、現用系サーバ１のサーバプロセス１は、アプリケーション処理の中でメモリ参照が必要になった場合、ＯＳを介して直接、主メモリにメモリ参照要求を送出する（Ｓ５５）。このメモリ参照要求には、参照したいメモリ領域の情報が含まれる。主メモリは、要求された領域のメモリ内容を取得し、取得したメモリ内容（メモリ参照結果）をＯＳを介してサーバプロセス１に応答・送出する（Ｓ５６）。
【００４７】
また、サーバプロセス１は、アプリケーション処理の中でメモリ更新が必要になった場合、ＯＳを介して直接、主メモリにメモリ更新要求を送出する（Ｓ５７）。このメモリ更新要求には、更新したいメモリ領域の情報と、メモリ更新内容とが含まれる。
【００４８】
主メモリは、メモリ更新要求を受け付けると、例外処理の起動などにより、ＯＳに対してメモリ更新内容、更新領域などを含む更新通知を送出する（Ｓ５８）。ＯＳは、受け付けた更新通知をメモリ同期プロセス１に送出する（Ｓ５９）。
【００４９】
メモリ同期プロセス１は、ＯＳから受け付けた更新通知に基づいて主メモリに対する更新が発生したことを検知し、待機系サーバ２の主メモリを更新するための更新要求をＮＩＣとネットワークを介して待機系サーバ２のメモリ同期プロセス１に送信し、待機系サーバ２からの更新応答を待ち合わせる（Ｓ６０）。
【００５０】
待機系サーバ２のメモリ同期プロセス１は、ＯＳを介して更新要求で指定された内容で、待機系サーバ２の主メモリを更新する（Ｓ６１）。そして、待機系サーバ２のメモリ同期プロセス１は、更新応答を現用系サーバ１のメモリ同期プロセス１に、ＮＩＣとネットワークを介して送信する（Ｓ６２）。更新応答には、待機系サーバ２の主メモリの更新結果（ＯＫ、ＮＧなど）が含まれる。
【００５１】
現用系サーバ１のメモリ同期プロセス１は、待機系サーバ２から更新応答（メモリ更新結果）を受信し、受信した更新応答をＳ５９の更新通知に対する応答としてＯＳに送出する（Ｓ６３）。ＯＳは、Ｓ５８で通知された更新通知に基づいて、現用系サーバ１の主メモリを更新する（Ｓ６４）。主メモリは、ＯＳを介してメモリ更新結果をサーバプロセス１に通知する（Ｓ６５）。すなわち、現用系サーバ１の主メモリおよび待機系サーバの主メモリの更新が完了したことを条件に、主メモリは、サーバプロセス１に更新結果を通知する。
【００５２】
このように、第３の実施例では、待機系サーバ２のメモリ更新の応答を受け付けた後に、現用系サーバ１のメモリ更新を行うことで、現用系サーバ１の主メモリと待機系サーバ２の主メモリとを同期させる。
【００５３】
なお、本実施例では、Ｓ６１で待機系サーバ２の主メモリを更新した後に、Ｓ６４で現用系サーバ１の主メモリを更新することとしたが、現用系サーバ１の主メモリを更新した後に、待機系サーバ２の主メモリを更新することとしてもよい。例えば、待機系サーバ２に更新要求を送信する前に現用系サーバ１の主メモリを更新してもよい。
【００５４】
また、本実施例では、Ｓ５８、Ｓ５９のメモリおよびＯＳから受け付けた更新通知に基づいて主メモリに対する更新を検知することとしたが、これに限定されず、例えば、主メモリの更新を監視する監視プロセスを設けて主メモリに対する更新を検知することとしてもよい。
【００５５】
＜第４の実施例＞
図６は、第４の実施例のメモリ同期処理のシーケンスである。
【００５６】
図６に示す第４の実施例のＳ７１〜Ｓ７９までの処理については、図５に示す第３の実施例のＳ５１〜Ｓ５９と同様であるため、ここでは説明を省略する。
【００５７】
ＯＳは、Ｓ７９で更新通知をメモリ同期プロセス１に送出すると、メモリ同期プロセス１からの更新通知応答を待ち合わせることなく、現用系サーバ１の主メモリを更新する（Ｓ８０）。そして、主メモリは、ＯＳを介してメモリ更新結果をサーバプロセス１に通知する（Ｓ８１）。
【００５８】
一方、メモリ同期プロセス１は、ＯＳから受け付けた更新通知（Ｓ７９）に基づいて、待機系サーバ２の主メモリを更新するための更新要求をＮＩＣとネットワークを介して待機系サーバ２のメモリ同期プロセス１に送信する（Ｓ８２）。
【００５９】
待機系サーバ２のメモリ同期プロセス１は、ＯＳを介して更新要求で指定された内容で、待機系サーバ２の主メモリを更新する（Ｓ８３）。そして、待機系サーバ２のメモリ同期プロセス１は、更新応答を現用系サーバ１のメモリ同期プロセス１に、ＮＩＣとネットワークを介して送信する（Ｓ８４）。更新応答には、待機系サーバ２の主メモリの更新結果（ＯＫ、ＮＧなど）が含まれる。
【００６０】
現用系サーバ１のメモリ同期プロセス１は、待機系サーバ２から更新応答（メモリ更新結果）を受信し、受信した更新応答をＳ７９の更新通知に対する応答としてＯＳに送出する（Ｓ６５）。
【００６１】
第４の実施例では、待機系サーバ２のメモリ更新を待たずに非同期で、現用系サーバ１の主メモリを更新する。
【００６２】
以上説明した本実施形態では、アプリケーション処理を行うサーバプロセスとは別に、サーバプロセスに対応したメモリ同期プロセスを備える。これにより、本実施形態のアプリケーションプログラムは、メモリ同期処理を考慮したプログラムを開発する必要がなくなり、プログラムの開発を容易にし、プログラム開発効率を向上させることができる。
【００６３】
また、本実施形態の現用系サーバ１および待機系サーバ２は、各筐体内に複数のＣＰＵを備えたマルチコアサーバであり、メモリ同期プロセスと、サーバプロセスとを分けてそれぞれにＣＰＵを割り当てる。これにより、アプリケーションサービスの中断時間を短縮することが可能である。
【００６４】
なお、本発明は上記実施形態に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。
【００６５】
例えば、上記第１から第４の実施例では、メモリ同期処理を実行するメモリ同期プロセスをＯＳとは別のプロセスとし、サーバプロセスからみたミドルウェアとして実装する例を説明したが、これらの実施例に限定されるものではなく、ＯＳやハードウェアの一部としてメモリ同期プロセスと同等の機能を実装することとしてもよい。
【００６６】
また、上記第１から第４の実施例では、サーバプロセスがメモリ確保要求した際にメモリ同期プロセスを起動する例を示したが、これに限定されるものではなく、あらかじめメモリ同期プロセスを起動しておいてもよい。
【００６７】
また、本実施形態では、サーバプロセスとメモリ同期プロセスとが１対１に対応している例を示しているが、これに限定されるものではなく、複数のサーバプロセスに対して１つのメモリ同期プロセスを割り当ててもよいし、１つのサーバプロセスに対して複数のメモリ同期プロセスを割り当てるようにしてもよい。また、サーバプロセスとメモリ同期プロセスとの割り当て関係を固定的にするのではなく、処理負荷の状況などに応じて動的に切り替えられるようにしてもよい。
【００６８】
また、第３および第４の実施例では、ハードウェアである主メモリにおいてメモリ更新要求を検知する例を説明したが、ＯＳやメモリ同期プロセスなどのミドルウェアにおいてメモリへのアクセスを監視するようにして、サーバプロセスからのメモリ更新要求を検知するようにしてもよい。
【００６９】
また、第２および第４の実施例では、現用系サーバ１のメモリ更新の度に非同期にメモリ同期プロセスが待機系サーバ２のメモリ更新処理を行う例を説明したが、これに限定されるものではなく、現用系サーバ１のメモリ更新が一定量溜まったタイミングで一括して待機系サーバ２の主メモリを同期して更新してもよいし、周期的に更新状況を確認して一括で同期してもよい。
【符号の説明】
【００７０】
１  ：現用系サーバ
２  ：待機系サーバ
１１、２１：ＣＰＵ
１２、２２：主メモリ
１３、２３：ディスクコントローラ
１４、２４：ディスク
１５、２５：ＮＩＣ
１０１、２０１：サーバプロセス１
１０２、２０２：メモリ同期プロセス１
１０３、２０３：サーバプロセス２
１０４、２０４：メモリ同期プロセス２
１０５、２０５：ＯＳ
９：ネットワーク
【図１】
2012256240.tif 000003
【図２】
2012256240.tif 000004
【図３】
2012256240.tif 000005
【図４】
2012256240.tif 000006
【図５】
2012256240.tif 000007
【図６】
2012256240.tif 000008