(57)【要約】【課題】現用機に障害が発生した場合に、現用機のデータとの同期状態を考慮しつつ、複数の予備機の中から新たな現用機を決定する。【解決手段】現用機と複数の予備機とを備える冗長化システムであって、各予備機は、自予備機のデータ更新情報と自予備機が現用機として可能か否かを示す現用機可否情報とを記憶する記憶手段１４と、現用機の障害を検知すると、記憶手段１４に記憶された自予備機のデータ更新情報および現用機可否情報を他予備機に通知するとともに、他予備機のデータ更新情報および現用機可否情報を他予備機から取得する通知手段１２と、自予備機のデータ更新情報および現用機可否情報と、他予備機のデータ更新情報および現用機可否情報とを用いて、自予備機および他予備機の中から新たな現用機を決定する決定手段１３と、を備える。【選択図】図１
2014154056.tif 000002
【特許請求の範囲】
【請求項１】
現用機と複数の予備機とを備える冗長化システムであって、
各予備機は、
自予備機のデータ更新情報と、自予備機が現用機として可能か否かを示す現用機可否情報とを記憶する記憶手段と、
前記現用機の障害を検知すると、前記記憶手段に記憶された自予備機のデータ更新情報および現用機可否情報を他予備機に通知するとともに、他予備機のデータ更新情報および現用機可否情報を他予備機から取得する通知手段と、
自予備機のデータ更新情報および現用機可否情報と、他予備機のデータ更新情報および現用機可否情報とを用いて、自予備機および他予備機の中から新たな現用機を決定する決定手段と、を備えること
を特徴とする冗長化システム。
【請求項２】
請求項１記載の冗長化システムであって、
前記決定手段は、現用機可否情報が現用機として可能であって、データ更新情報が最新の予備機を、新たな現用機として決定すること
を特徴とする冗長化システム。
【請求項３】
請求項１または２記載の冗長化システムであって、
前記現用機との全データの同期処理が開始されると、前記記憶手段に記憶された現用機可否情報を不可能に更新し、前記同期処理が終了すると、現用機可否情報を可能に更新する更新手段を、さらに備えること
を特徴とする冗長化システム。
【請求項４】
現用機と複数の予備機とを備える冗長化システムが行う、現用機決定方法であって、
各予備機は、
自予備機のデータ更新情報と、自予備機が現用機として可能か否かを示す現用機可否情報とを記憶する記憶部を備え、
前記現用機の障害を検知すると、前記記憶部に記憶された自予備機のデータ更新情報および現用機可否情報を他予備機に通知するとともに、他予備機のデータ更新情報および現用機可否情報を他予備機から取得する通知ステップと、
自予備機のデータ更新情報および現用機可否情報と、他予備機のデータ更新情報および現用機可否情報とを用いて、自予備機および他予備機の中から新たな現用機を決定する決定ステップと、を行うこと
を特徴とする現用機決定方法。
【請求項５】
請求項４記載の現用機決定方法であって、
前記決定ステップは、現用機可否情報が現用機として可能であって、データ更新情報が最新の予備機を、新たな現用機として決定すること
を特徴とする現用機決定方法。
【請求項６】
請求項４または５記載の現用機決定方法であって、
前記現用機との全データの同期処理が開始されると、前記記憶手段に記憶された現用機可否情報を不可能に更新し、前記同期処理が終了すると、現用機可否情報を可能に更新する更新ステップと、をさらに行うこと
を特徴とする現用機決定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、冗長化システムにおいて、現用機に障害が発生した場合に、複数の予備機の中から現用機を決定する冗長化システムおよび現用機決定方法に関する。
【背景技術】
【０００２】
現用機と複数の予備機とを備える冗長化システムにおいて、現用機および予備機は、データを重複して保有する。そのため、現用機と予備機との間で、データの同期および整合性を確保する必要がある。特許文献１には、重複データを保持する分散データシステムにおいて、データの更新回数を用いて、データの整合性を維持し、保証する技術が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開2000-10845号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
冗長化システムにおいて、現用機が故障した場合、複数の予備機の中から次の新たな現用機を決定する必要がある。このとき、各予備機は、現用機とのデータの同期状態が異なるものが混在している可能性がある。このため、各予備機の更新情報のみを用いて、最新の更新情報を有する予備機を新たな現用機として決定すると、旧現用機の持つ最新データと新たな現用機が保持しているデータとが同期していない（新現用機のデータが古い）場合がある。このような古いデータを保持する予備機を新現用機として決定した場合、新現用機でのデータ操作要求に対して、適切に応じる事ができない。
【０００５】
本発明は、上記事情に鑑みてなされたものであり、本発明の目的は、冗長化システムにおいて、現用機に障害が発生した場合に、現用機のデータとの同期状態を考慮しつつ、複数の予備機の中から新たな現用機を決定する冗長化システムおよび現用機決定方法を提供することにある。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明は、現用機と複数の予備機とを備える冗長化システムであって、各予備機は、自予備機のデータ更新情報と、自予備機が現用機として可能か否かを示す現用機可否情報とを記憶する記憶手段と、前記現用機の障害を検知すると、前記記憶手段に記憶された自予備機のデータ更新情報および現用機可否情報を他予備機に通知するとともに、他予備機のデータ更新情報および現用機可否情報を他予備機から取得する通知手段と、自予備機のデータ更新情報および現用機可否情報と、他予備機のデータ更新情報および現用機可否情報とを用いて、自予備機および他予備機の中から新たな現用機を決定する決定手段と、を備える。
【０００７】
本発明は、現用機と複数の予備機とを備える冗長化システムが行う、現用機決定方法であって、各予備機は、自予備機のデータ更新情報と、自予備機が現用機として可能か否かを示す現用機可否情報とを記憶する記憶部を備え、前記現用機の障害を検知すると、前記記憶部に記憶された自予備機のデータ更新情報および現用機可否情報を他予備機に通知するとともに、他予備機のデータ更新情報および現用機可否情報を他予備機から取得する通知ステップと、自予備機のデータ更新情報および現用機可否情報と、他予備機のデータ更新情報および現用機可否情報とを用いて、自予備機および他予備機の中から新たな現用機を決定する決定ステップと、を行う。
【発明の効果】
【０００８】
本発明によれば、冗長化システムにおいて、現用機に障害が発生した場合に、現用機のデータとの同期状態を考慮しつつ、複数の予備機の中から新たな現用機を決定する冗長化システムおよび現用機決定方法を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施形態に係る冗長化システムの構成図である。
【図２】Slaveのユニットの機能を示すブロック図である。
【図３】新Master決定処理を説明するための説明図である。
【図４】比較例の新Master決定処理を説明するための説明図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施の形態について、図面を参照して説明する。
【００１１】
図１は、本実施形態における冗長化システムの構成を示す全体構成図である。本実施形態の冗長化システムは、複数のユニットで構成され、１台の現用機のユニット(以降、「Master」と呼ぶ)と、複数台の予備機のユニット（以降、「Slave」と呼ぶ）とを備える。なお、各ユニットは、それぞれ別のハードウェアで実現される。図示する例では、ユニット１はMasterで、ユニット２〜４は、Slaveである。
【００１２】
また、各ユニットは、ネットワークを介してそれぞれ互いに接続される。具体的には、Master- Slave間およびSlave- Slave間がネットワークを介して接続される。Masterが保持しているデータは、外部（例えば、クライアントなど）から冗長化システムへの問い合わせ要求があった際の実際の処理 (データの参照、更新)に使用される原本である。したがって、冗長化システムの各Slaveに問い合わせ要求が来た場合に、SlaveからMasterに必ず問い合わせを行い、Masterで保持しているデータを用いて問い合わせ要求に対する応答を行う。図示する例では、図１の矢印で示すように、ユニット２〜４の各Slaveは、それぞれユニット１のMasterに問い合わせ要求を送信し、Masterから取得した処理結果を問い合わせ要求元に応答する。
【００１３】
また、Masterと各Slaveとは同じデータ（同期したデータ）を保持し、Masterのデータが更新された際には、MasterからSlaveへのデータの同期処理が実施される。なお、新たなSlaveを冗長化システム内に最初に組み込む場合、または、Slaveの障害などにより全データの同期処理の再開が発生した場合等には、Masterが保持している全データの同期処理を実施することで、SlaveのデータをMasterのデータと同期させる。
【００１４】
図２は、本実施形態における、各Slave（ユニット２〜４）の構成を示すブロック図である。
【００１５】
図示するSlaveは、更新部１１と、通知部１２と、決定部１３と、記憶部１４と、データ格納部（ストレージ）１５とを備える。
【００１６】
記憶部１４には、当該Slave自身のデータ更新情報と、当該Slave自身が現用機として可能な状態であるか否かを示すMaster化可否情報とが保持・記憶される。データ更新情報には、データ格納部１５に格納されたデータの最新の更新情報が設定される。データ更新情報には、例えば、更新時刻情報（タイムスタンプ）、更新するたびにインクリメントされる更新回数（シリアルナンバー、ユニークな識別子）などを用いる。
【００１７】
Master可否情報には、「可能」および「不可能」の２つの状態のうちいずれかの状態が設定される。Masterが保持する全データの同期処理が完了したSlaveは、自身のSlaveがMasterとして可能な状態であることを示す「可能」をMaster可否情報として保持する。一方、Masterが保持する全データの同期処理を実行している最中のSlave、あるいは冗長化システム内に新たに組み込んだSlaveについては、自身のSlaveが現用機として不可能な状態であることを示す「不可能」をMaster可否情報として保持する。
【００１８】
更新部１１は、記憶部１４に記憶された、自身のデータ更新情報と、Master可否情報とをそれぞれ更新する。Master可否情報については、更新部１１は、Masterとの全データの同期処理が開始されると、記憶部１４のMaster可否情報を「不可能」に更新し、同期処理が終了すると、Master可否情報を「可能」に更新する。具体的なMaster可否情報の変更契機は以下の通りである。
【００１９】
（１）Masterから全データの同期処理を行う場合、Masterは、全データの同期の開始通知を所望のSlaveに送信する。開始通知を受信したSlaveの更新部１１は、記憶部１４のMaster可否情報を「不可能」に更新する。その後、Masterと連携して、全データの同期処理を行い、全データの同期処理が終了した後、Masterは、全データの同期処理の終了通知を 当該Slaveに送信する。終了通知を受信したSlaveの更新部１１は、Master可否情報を「不可能」から「可能」に更新し、記憶部１４に保持する。
【００２０】
（２）Slaveの障害などにより全データの同期処理をMasterに依頼する場合（再開が発生した場合など）、当該Slaveは、Masterに全データの同期処理の開始依頼を送信する。これにより、Masterは、全データの同期処理の開始通知を依頼元のSlaveに送信する。開始通知を受信したSlaveの更新部１１は、記憶部１４のMaster可否情報を「不可能」に更新する。その後、Masterと連携して、全データの同期処理を行い、全データの同期処理が終了した後、Masterは、全データの同期処理の終了通知を依頼元のSlaveに送信する。終了通知を受信したSlaveの更新部１１は、Master可否情報を「不可能」から「可能」に更新し、記憶部１４に保持する。
【００２１】
なお、更新部１１は、データ更新情報については、例えば、更新時刻情報（タイムスタンプ）を用いる場合は、データを更新した時刻を逐次設定し、更新回数を用いる場合は、更新が完了したタイミングで、現在の更新回数に「１」インクリメントする。
【００２２】
通知部１２は、Masterの障害・故障を契機に、自身の情報を他の全てのSlaveと交換する。すなわち、通信部１２は、Masterの障害を検知すると、記憶部１４に記憶された自身のデータ更新情報およびMaster可否情報を他の全てのSlaveに通知するとともに、他の全てのSlaveのデータ更新情報およびMaster可否情報を他の全てのSlaveから取得する。
【００２３】
具体的には、通知部１２は、自身の情報として、ユニット番号と、および記憶部１４に保持されたMaster可否情報およびデータ更新情報とを他の全てのSlaveに通知（送信）するとともに、他の全ての各Slaveから他者の情報（ユニット番号、Master可否情報、データ更新情報）を取得（受信）し、記憶部１４に記憶する。これにより、各Slaveは、互いに全Slaveのユニット番号、Master可否情報およびデータの更新情報を保持することになる。
【００２４】
決定部１３は、自身のデータ更新情報およびMaster可否情報と、他の全てのSlaveのデータ更新情報およびMaster可否情報とを用いて、自身および他の全てのSlaveの中から新たなMasterを決定する。本実施形態では、決定部１３は、Master可否情報が「可能」であり、かつデータ更新情報が最新のSlaveを、新たなMasterとして決定する。なお、更新時刻情報をデータ更新情報に用いる場合は、更新時刻が最も遅いもの（現在時刻に最も近いもの）を最新とし、更新回数をデータ更新情報に用いる場合は、更新回数が最も多いものを最新とする。
【００２５】
なお、Master可否情報が「可能」であって、データ更新情報が最新のSlaveが複数ある場合には、ユニット番号の若いユニットを新Masterに決定する。全てのSlaveで、同じ情報（Master可否情報、データ更新情報）を保持しているため、各Slaveにおいて決定部１３が決定する新Masterは、同じになり、不整合が生じない。
【００２６】
また、Master可否情報が「不可能」のSlaveのみしかない場合は、データが古い可能性が高いため、決定部１３が、システム自律で（自動的に）で新Masterを決定することは行わない。
【００２７】
上記説明した各ユニットは、例えば、ＣＰＵと、メモリと、ＨＤＤ等の外部記憶装置と、入力装置と、出力装置とを備えた汎用的なコンピュータシステムを用いることができる。このコンピュータシステムにおいて、ＣＰＵがメモリ上にロードされた各ユニット用のプログラムを実行することにより、各ユニットの各機能が実現される。また、各ユニット用のプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ−ＲＯＭなどのコンピュータ読取り可能な記録媒体に記憶することも、ネットワークを介して配信することもできる。
【００２８】
次に、本実施形態の具体的な処理について説明する。
【００２９】
図３は、Masterに障害が発生したことにより、新Masterを決定する処理を説明するための説明図である。
【００３０】
図３（a）は、通常運用中における、各SlaveのMasterとのデータの同期状態について示すものである。ユニット２のSlaveは、Masterの全データの同期処理中（しかかり中）の状態であって、記憶部１４に記憶される自身のMaster可否情報は「不可能」であるものとする。一方、ユニット３およびユニット４は、Masterの全データの同期処理が完了した状態であって、記憶部１４に記憶される自身のMaster可否情報は「可能」であるものとする。また、各Slaveは、記憶部１４に自身のデータ更新情報（ここでは、データの更新時刻情報とする)を有し、データの最終更新時刻は図示する通りとする。
【００３１】
図３（ｂ）では、Masterの障害発生を契機に、各Slaveの通知部１２が、自身のユニット番号、Master可否情報およびデータ更新情報を、他のSlaveに通知し合い、全Slaveのユニット番号、Master可否情報およびデータ更新情報を記憶部１４に保持する。そして、各Slaveの決定部１３は、全Slaveの中で、Master可否情報に「可能」（Masterとして可能な状態）が設定されたSlaveを新Masterとして決定する。なお、図示するように、Master可否情報が「可能」なSlaveが複数あり、かつデータ更新情報が同じ（つまり、更新時刻が同一の）最新のSlaveが複数ある場合には、ユニット番号の若いユニットを、新Masterとして決定する。図示する例では、図３（ｃ）に示すように、ユニット３を新Masterとして決定する。
【００３２】
以下に、本実施形態の比較例を説明する。
【００３３】
図４は、比較例における、新Masterを決定する処理を説明するための説明図である。比較例では、各Slaveは、データ更新情報のみを保持し、Master可否情報は保持しないものとする。
【００３４】
図４（a）に示す通常運用中における、各SlaveのMasterとのデータの同期状態は、ユニット２のSlaveは、Masterの全データの同期処理中（しかかり中）の状態であって、一方、ユニット３およびユニット４は、Masterの全データの同期処理が完了した状態であるものとする。また、各Slaveは、自身のデータ更新情報（ここでは、データの更新時刻情報とする)を保持し、データの最終更新時刻は図示する通りとする。
【００３５】
図４（ｂ）では、Masterの障害発生を契機に、各Slaveが自身のユニット番号およびデータ更新情報を、他のSlaveに通知し合い、全Slaveのユニット番号およびデータ更新情報を保持する。そして、各Slaveは、全Slaveの中で、データ更新情報が最新のSlaveを新Masterとして決定する。なお、データ更新情報が同じ最新のSlaveが複数ある場合には、ユニット番号の若いユニットを、新Masterとして決定する。
【００３６】
図示する例では、図４（ｃ）に示すように、データ更新時刻が最新のユニット２を新Masterとして決定する。しかしながら、ユニット２は、旧Masterと全データの同期処理を実行している最中のSlaveである。したがって、新Masterとなったユニット２のデータ更新情報が最新であっても、Masterのデータとの同期状態を考慮していないため、ユニット２が保持しているデータが古い可能性がある。そのため、新Masterとなったユニット２のデータでは、冗長化システムへのデータの問い合わせ要求に対して、適切に応じられない場合がある。
【００３７】
これに対し、本実施形態では、各Slaveは、Master可否情報を保持することで、Masterのデータとの同期状態を考慮し、Masterのデータと同期しているSlaveのみを新Masterとして決定することができる。これにより、本実施形態では、データの鮮度が高く、冗長化システムへのデータ問い合わせ要求に適切に応じることが可能な、適切なSlaveを新たなMasterとして決定し、適切なMaster切り替えを実現することができる。
【００３８】
なお、本発明は上記実施形態に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。
【符号の説明】
【００３９】
１１：更新部
１２：通知部
１３：決定部
１４：記憶部
１５：データ格納部
【図１】
2014154056.tif 000003
【図２】
2014154056.tif 000004
【図３】
2014154056.tif 000005
【図４】
2014154056.tif 000006