説明

フォールトトレラントシステム、メモリ制御方法、及びプログラム

【課題】フォールトトレラントコンピュータの処理速度が低下することを防ぐ。
【解決手段】運用系のメモリは、メモリテーブル及び転送用テーブルを備える。メモリテーブルに記憶されるデータが更新された場合に、この更新されたデータは、転送用テーブルにも記憶される。転送用テーブルから待機系へデータが転送される際には、転送用テーブルが記憶するデータの更新のみが制限され、メモリテーブルはプロセッサによる通常の処理の作業領域として継続して使用される。これにより、メモリが記憶するデータの更新が制限されることによってフォールトトレラントコンピュータの処理速度が低下することを防ぐことができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、フォールトトレラントシステム、メモリ制御方法、及びプログラムに関する。
【背景技術】
【0002】
フォールトトレラント(Fault Tolerant)な、すなわち耐障害性の高いコンピュータ(以下、FTコンピュータという)を実現するために、アクティブ‐スタンバイ方式が用いられる。アクティブ‐スタンバイ方式は、典型的には、互いに同様の構成を有する2個のシステムのうち、一方をアクティブとして運用し、他方をスタンバイとして待機させる方式である。また、この方式では、運用中のシステム(以下、運用系という)に障害が生じた場合等に、使用されるシステムが待機中のシステム(以下、待機系という)に切り替えられる。
【0003】
待機系のメモリは、運用系のメモリと同じデータを記憶するようにチェックポイント毎に更新される。チェックポイントは、プログラムで規定される任意の時点や、運用系の処理における所定の段階等である。具体的には、まず、運用系及び待機系のメモリが同一の初期状態とされた後に、運用系のメモリが記憶するデータの更新が監視される。その後、チェックポイント毎に、運用系のメモリが記憶するデータのうち更新されたデータが待機系へ転送され、待機系のメモリに書き込まれる(例えば、特許文献1及び2を参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平02−165344号公報
【特許文献2】特開2001−188690号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1及び2に開示されたシステム等では、運用系のメモリが記憶するデータが待機系へ転送される間に更新されることを防ぐために、このデータの更新が制限される必要があった。したがって、頻繁にデータが転送される場合には、メモリが記憶するデータの更新が制限されることによって、FTコンピュータの処理速度が低下するおそれがあった。
【0006】
本発明は、上記問題点に鑑みてなされたものであり、FTコンピュータの処理速度が低下することを防ぐことを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するために、本発明の第1の観点に係るフォールトトレラントシステムは、
メモリが有する第1記憶領域にデータを記憶させる第1記憶手段と、
前記第1記憶領域に記憶されるデータが更新された場合に、更新された前記データを、前記第1記憶領域と別に設けられた第2記憶領域に記憶させる第2記憶手段と、
前記第2記憶領域に記憶されるデータを他のシステムへ転送する転送手段と、
前記転送手段による転送の間に、前記第2記憶領域のデータの更新を制限する制限手段と、
を備える。
【0008】
上記目的を達成するために、本発明の第2の観点に係るメモリ制御方法は、
メモリが有する第1記憶領域にデータを記憶させる第1記憶ステップと、
前記第1記憶領域に記憶されるデータが更新された場合に、更新された前記データを、前記第1記憶領域と別に設けられた第2記憶領域に記憶させる第2記憶ステップと、
前記第2記憶領域に記憶されるデータを他のシステムへ転送する転送ステップと、
前記転送ステップによる転送の間に、前記第2記憶領域のデータの更新を制限する制限ステップと、
を含む。
【0009】
上記目的を達成するために、本発明の第3の観点に係るプログラムは、
コンピュータを、
メモリが有する第1記憶領域にデータを記憶させる第1記憶手段、
前記第1記憶領域に記憶されるデータが更新された場合に、更新された前記データを、前記第1記憶領域と別に設けられた第2記憶領域に記憶させる第2記憶手段、
前記第2記憶領域に記憶されるデータを他のシステムへ転送する転送手段、
前記転送手段による転送の間に、前記第2記憶領域のデータの更新を制限する制限手段、
として機能させる。
【発明の効果】
【0010】
本発明によれば、メモリ上の異なる2つの領域にデータが記憶され、一方の領域が記憶するデータの更新のみが制限される。このため、FTコンピュータは、他方の領域が記憶するデータの更新を、中断せずに実行することができる。これにより、FTコンピュータの処理速度が低下することを防ぐことができる。
【図面の簡単な説明】
【0011】
【図1】実施形態に係るFTコンピュータのハードウェアの構成を示すブロック図である。
【図2】運用系のメモリの構成を示す模式図である。
【図3】運用系のプロセッサがメモリを制御する処理を示すフロー図である。
【図4】データを更新するための命令が与えられたメモリを示す模式図である。
【図5】メモリページからデータが複製された転送用ページを示す模式図である。
【図6】メモリページのデータを再度更新するための命令が与えられたメモリを示す模式図である。
【図7】チェックポイントにおける転送を示す模式図である。
【図8】チェックポイントにおける転送が終了した後のメモリを示す模式図である。
【発明を実施するための形態】
【0012】
以下、本発明の実施形態について図面を参照しながら詳細に説明する。
【0013】
図1は、本実施形態に係るFTコンピュータ10のハードウェアの構成を示す。図1に示されるように、FTコンピュータ10は、運用系20、待機系30及び伝送路40を備える。
【0014】
運用系20は、FTコンピュータ10が通常時に運用するシステムである。運用系20については、障害の発生をあらかじめ想定した設計がなされる。運用系20は、プロセッサ21、メモリ22、補助記憶部23及びインターフェース部24等から構成される。メモリ22、補助記憶部23及びインターフェース部24はいずれも内部バス25を介してプロセッサ21に接続される。
【0015】
メモリ22は、RAM(Random Access Memory)等から構成される。メモリ22は、補助記憶部23に記憶されるプログラム26をロードし、プロセッサ21の作業領域として用いられる。図2に示されるように、メモリ22は、メモリテーブル50、状態テーブル60及び転送用テーブル70を有する。
【0016】
メモリテーブル50は、複数のメモリページ51から構成される。メモリページ51には、プロセッサ21が実行するプログラムやデータ等が格納される。なお、メモリページ51に格納される情報を以下、単にデータという。
【0017】
状態テーブル60は、複数の状態ページ61から構成される。各々の状態ページ61は、各々のメモリページ51と対応し、対応するメモリページ51の状態を示す状態フラグを記憶する。メモリページ51の状態は、データがチェックポイント後に更新されたことを示す「ダーティ」状態、又は、チェックポイント後に更新されていないことを示す「クリーン」状態のいずれかである。
【0018】
転送用テーブル70は、複数の転送用ページ71から構成される。転送用ページ71には、メモリページ51から複製されたデータが格納される。転送用ページ71に格納されるデータは、待機系30へ転送される。
【0019】
プロセッサ21は、CPU(Central Processing Unit)等から構成され、補助記憶部23に記憶されるプログラム26に従って、種々の処理を実行する。また、プロセッサ21は、メモリコントローラの機能を具備する。すなわち、プロセッサ21は、メモリ22からデータを読み出したり、メモリ22へデータを書き込んだりする。なお、プロセッサ21は、ページを単位としてメモリ22を制御する。ここで、ページは、メモリページ51、状態ページ61又は転送用ページ71のいずれかである。ページは、FTコンピュータに限らず、一般的にプロセッサが制御するメモリの記憶領域の単位である。
【0020】
補助記憶部23は、フラッシュメモリ、ハードディスク等の不揮発性メモリから構成され、プロセッサ21が実行するプログラム26をあらかじめ記憶する。また、補助記憶部23は、プロセッサ21の指示に従って、このプログラム26が記憶するデータをプロセッサ21に供給し、プロセッサ21から供給されたデータを記憶する。
【0021】
インターフェース部24は、伝送路40を介して待機系30に接続される。インターフェース部24は、プロセッサ21が待機系30へ送信するデータを中継する。
【0022】
待機系30は、運用系20に障害が発生した場合に使用されるバックアップシステムである。待機系30は、プロセッサ31、メモリ32、補助記憶部33及びインターフェース部34等から構成される。メモリ32、補助記憶部33及びインターフェース部34はいずれも内部バス35を介してプロセッサ31に接続される。
【0023】
プロセッサ31は、CPU等から構成され、補助記憶部33に記憶されるプログラム36に従って、種々の処理を実行する。また、プロセッサ31は、メモリコントローラの機能を具備する。
【0024】
メモリ32は、RAM等から構成され、補助記憶部33に記憶されるプログラム36をロードし、プロセッサ31の作業領域として用いられる。メモリ32は、チェックポイント毎に伝送路40及びインターフェース部34を介して運用系20から転送されたデータを記憶する。
【0025】
補助記憶部33は、フラッシュメモリ、ハードディスク等の不揮発性メモリから構成され、プロセッサ31が実行するプログラム36をあらかじめ記憶する。また、補助記憶部33は、プロセッサ31の指示に従って、このプログラム36が記憶するデータをプロセッサ31に供給し、プロセッサ31から供給されたデータを記憶する。
【0026】
インターフェース部34は、伝送路40を介して運用系20に接続される。
【0027】
以上の構成要素を備えるFTコンピュータ10がデータを転送することにより、メモリテーブル50及びメモリ32が記憶するデータは、チェックポイント毎に同一のデータとなる。以下、この転送に関する処理を、図3〜図8を用いて説明する。
【0028】
まず、FTコンピュータ10は、初期設定を行う(ステップS1)。具体的には、FTコンピュータ10は、初期設定としてメモリテーブル50とメモリ32とを同じ状態にする。例えば、プロセッサ21及びプロセッサ31が協働することにより、メモリテーブル50及びメモリ32のデータがクリアされる。また、プロセッサ21は、すべての状態ページ61が記憶する状態フラグを「クリーン」に設定する。
【0029】
次に、プロセッサ21は、データが更新されたメモリページ51の状態を「ダーティ」へ遷移させる。すなわち、プロセッサ21は、データが更新されたメモリページ51に対応する状態ページ61を選択し、この状態ページ61が記憶する状態フラグを「ダーティ」に設定する(ステップS2)。例えば、図4に示されるように、メモリページ51bのデータを更新するための命令In1があった場合に、プロセッサ21は、状態ページ61bが記憶する状態フラグを「ダーティ」に設定する。なお、状態ページ61bは、メモリページ51bに対応する。
【0030】
次に、プロセッサ21は、「ダーティ」状態のメモリページ51が記憶するデータを、転送用ページ71に複製する(ステップS3)。例えば、図5に示されるように、状態ページ61bが記憶する状態フラグが「ダーティ」である場合、プロセッサ21は、メモリページ51bのデータを転送用ページ71aへ複製する。
【0031】
その後、プロセッサ21は、「ダーティ」状態のメモリページ51を更新するための命令があるか否かを判定する(ステップS4)。
【0032】
「ダーティ」状態のメモリページ51を更新するための命令があると判定された場合(ステップS4;Yes)、プロセッサ21は、この命令に従ったデータを、メモリページ51と、このメモリページ51に対応する転送用ページ71とに格納する(ステップS5)。例えば、図6に示されるように、「ダーティ」状態のメモリページ51bのデータを更新するための命令In2があった場合、プロセッサ21は、メモリページ51b及び転送用ページ71aのデータを更新する。その後、プロセッサ21は、ステップS2〜ステップS5の処理を繰り返す。
【0033】
ステップS4にて「ダーティ」状態のメモリページ51を更新するための命令があると判定されない場合(ステップS4;No)、プロセッサ21は、チェックポイントであるか否かを判定する(ステップS6)。例えば、プロセッサ21は、OS(Operating System)等のプログラムが実行する処理において、メモリテーブル50が記憶するデータを待機系30へ転送するための命令があるか否かを判定する。
【0034】
プロセッサ21は、チェックポイントであると判定されない場合(ステップS6;No)、ステップS2〜ステップS6の処理を繰り返す。
【0035】
プロセッサ21は、チェックポイントであると判定した場合(ステップS6;Yes)、すべての状態ページ61が記憶する状態フラグを「クリーン」に設定する(ステップS7)。
【0036】
また、プロセッサ21は、転送用テーブル70が記憶するデータの更新を制限する(ステップS8)。ここで、メモリテーブル50が記憶するデータの更新は制限されないため、プロセッサ21は、メモリテーブル50を作業領域として通常時と同様に動作する。例えば、図7に示されるように、メモリページ51dのデータを更新するための命令In3があった場合、プロセッサ21はメモリページ51dが記憶するデータを更新することができる。
【0037】
次に、プロセッサ21は、転送用ページ71のデータを待機系30のメモリ32へ転送する(ステップS9)。これにより、チェックポイントにおいてメモリページ51bが記憶するデータと同一のデータが待機系30のメモリ32に格納される。
【0038】
その後、プロセッサ21は、転送用テーブル70が記憶するデータの更新に対する制限を解除する(ステップS10)。
【0039】
さらに、プロセッサ21は、転送用テーブル70に格納されるデータをすべてクリアする(ステップS11)。
【0040】
以降、プロセッサ21は、ステップS2〜ステップS11の処理を繰り返す。例えば、図8に示されるように、メモリページ51dのデータを更新するための命令In3があった場合には、プロセッサ21は、状態ページ71dが記憶する状態フラグを「ダーティ」に設定する(ステップS2)。そして、プロセッサ21は、メモリテーブル50及び転送用テーブル70が記憶するデータを更新する処理、並びに、チェックポイントにおけるデータを転送する処理を実行する。
【0041】
以上説明したように、本実施形態に係る運用系20は、初期設定後又はチェックポイント後に更新されたデータを、メモリテーブル50及び転送用テーブル70に記憶する。つまり、運用系20は、メモリ22が有する2つの領域に同一のデータを記憶する。また、運用系20は、データを転送する際に、転送用テーブル70が記憶するデータの更新のみを制限する。これにより、チェックポイントにおけるデータの転送の際に、プロセッサ21は、メモリテーブル50を用いて処理を継続することができる。したがって、チェックポイントにおけるFTコンピュータ10の処理能力の低下を防ぐことができる。
【0042】
また、チェックポイントを経過してから次のチェックポイントまでに更新されたデータが、転送用テーブル70に複製されて、待機系30へ転送される。すなわち、メモリテーブル50が有するメモリページ51のうち、更新されたメモリページ51のみが転送される。このため、運用系20は、待機系30へ転送するデータの容量を小さくすることができる。
【0043】
また、プロセッサ21は、転送が完了した転送用ページ71のデータをクリアする。これにより、プロセッサ21は、転送用テーブル70に記憶されるデータのうち、いずれのデータが待機系30へ転送されるかをチェックポイント毎に判別する必要がない。したがって、運用系20は簡潔な処理で高速に転送を実行することができる。
【0044】
また、プロセッサ21は、ページを単位としてメモリ22を制御する。すなわち、プロセッサ21は、メモリページ51を単位として転送用テーブル70へデータを複製し、転送用ページ71を単位として待機系30へデータを転送する。そのため、プロセッサ21は、記憶領域の単位を共通として、転送に関する処理と通常時に実行される処理とを実行することができ、効率的に種々の処理を実行することができる。
【0045】
また、状態ページ61は、メモリページ51がチェックポイント後に更新されたか否かを示す状態フラグを記憶した。プロセッサ21は、この状態ページ61を参照することにより、複製されるデータを記憶するメモリページ51を判別することができる。
【0046】
以上、実施形態について説明したが、本発明は上述の実施形態に限定されるものではない。
【0047】
例えば、上述の実施形態に係るプロセッサ21がメモリコントローラの機能を有したが、メモリコントローラとして独立した回路を運用系又は待機系に設けてもよい。
【0048】
例えば、上述の実施形態に係るプロセッサ21、メモリ22、補助記憶部23、インターフェース部24は内部バス25を介して接続されたが、チップセット又はブリッジ回路等を介して接続されてもよい。
【0049】
例えば、上述の実施形態に係るプロセッサ21は、メモリページ51を単位として複製等の処理を実行したが、メモリテーブル50を単位としてもよい。
【0050】
また、上述の実施形態に係る運用系20及び待機系30の機能は、専用のハードウェアによっても、また、通常のコンピュータシステムによっても実現することができる。
【0051】
例えば、上述の実施形態において運用系20の補助記憶部23又は待機系30の補助記憶部33に記憶されるプログラムを、フレキシブルディスク、CD−ROM(Compact Disk Read-Only Memory)、DVD(Digital Versatile Disk)、MO(Magneto-Optical disk)等のコンピュータ読み取り可能な記録媒体に格納して配布し、そのプログラムをコンピュータにインストールすることにより、上述の処理を実行する装置を構成することができる。
【0052】
また、プログラムをインターネット等の通信ネットワーク上の所定のサーバ装置が有するディスク装置等に格納しておき、例えば、搬送波に重畳させて、コンピュータにダウンロード等するようにしても良い。
【0053】
また、通信ネットワークを介してプログラムを転送しながら起動実行することによっても、上述の処理を達成することができる。
【0054】
更に、プログラムの全部又は一部をサーバ装置上で実行させ、その処理に関する情報をコンピュータが通信ネットワークを介して送受信しながらプログラムを実行することによっても、上述の処理を達成することができる。
【0055】
なお、上述の機能を、OS(Operating System)が分担して実現する場合又はOSとアプリケーションとの協働により実現する場合等には、OS以外の部分のみを媒体に格納して配布してもよく、また、コンピュータにダウンロード等しても良い。
【0056】
上述の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
【0057】
(付記1)
メモリが有する第1記憶領域にデータを記憶させる第1記憶手段と、
前記第1記憶領域に記憶されるデータが更新された場合に、更新された前記データを、前記第1記憶領域と別に設けられた第2記憶領域に記憶させる第2記憶手段と、
前記第2記憶領域に記憶されるデータを他のシステムへ転送する転送手段と、
前記転送手段による転送の間に、前記第2記憶領域のデータの更新を制限する制限手段と、
を備えるフォールトトレラントシステム。
【0058】
(付記2)
前記第2記憶手段は、
所定のチェックポイントを経過してから次のチェックポイントまでに更新された前記第1記憶領域のデータを前記第2記憶領域に記憶させ、
前記転送手段は、
前記チェックポイント毎にデータを転送する、
付記1に記載のフォールトトレラントシステム。
【0059】
(付記3)
前記第2記憶領域に記憶されたデータのうち、前記転送手段による転送が完了したデータをクリアするクリア手段、
を備える付記1又は2に記載のフォールトトレラントシステム。
【0060】
(付記4)
前記第2記憶手段は、
前記第1記憶領域を構成する複数の小領域のうち、更新されたデータを有する前記小領域のデータを、前記第2記憶領域に記憶させ、
前記転送手段は、
前記第2記憶領域に記憶された前記小領域のデータを他のシステムへ転送する、
付記1乃至3のいずれか一項に記載のフォールトトレラントシステム。
【0061】
(付記5)
前記第1記憶領域の前記小領域それぞれに対応するフラグを記憶する第3記憶手段と、
前記更新されたデータを有する前記小領域に対応するフラグをダーティに設定し、前記制限手段によりデータの更新が制限された時に前記複数の小領域に対応するフラグをクリーンに設定する設定手段と、
を備え、
前記第2記憶手段は、
ダーティに設定された前記フラグに対応する前記小領域のデータを前記第2記憶領域に記憶させる、
付記4に記載のフォールトトレラントシステム。
【0062】
(付記6)
前記小領域は、メモリページである、
付記4又は5に記載のフォールトトレラントシステム。
【0063】
(付記7)
メモリが有する第1記憶領域にデータを記憶させる第1記憶ステップと、
前記第1記憶領域に記憶されるデータが更新された場合に、更新された前記データを、前記第1記憶領域と別に設けられた第2記憶領域に記憶させる第2記憶ステップと、
前記第2記憶領域に記憶されるデータを他のシステムへ転送する転送ステップと、
前記転送ステップによる転送の間に、前記第2記憶領域のデータの更新を制限する制限ステップと、
を含むメモリ制御方法。
【0064】
(付記8)
コンピュータを、
メモリが有する第1記憶領域にデータを記憶させる第1記憶手段、
前記第1記憶領域に記憶されるデータが更新された場合に、更新された前記データを、前記第1記憶領域と別に設けられた第2記憶領域に記憶させる第2記憶手段、
前記第2記憶領域に記憶されるデータを他のシステムへ転送する転送手段、
前記転送手段による転送の間に、前記第2記憶領域のデータの更新を制限する制限手段、
として機能させるためのプログラム。
【符号の説明】
【0065】
10 FTコンピュータ
20 運用系
21、31 プロセッサ
22、32 メモリ
23、33 補助記憶部
24、34 インターフェース部
25、35 内部バス
26、36 プログラム
30 待機系
40 伝送路
50 メモリテーブル
51、51b、51d メモリページ
60 状態テーブル
61、61b、61d 状態ページ
70 転送用テーブル
71、71a 転送用ページ
In1、In2、In3 命令

【特許請求の範囲】
【請求項1】
メモリが有する第1記憶領域にデータを記憶させる第1記憶手段と、
前記第1記憶領域に記憶されるデータが更新された場合に、更新された前記データを、前記第1記憶領域と別に設けられた第2記憶領域に記憶させる第2記憶手段と、
前記第2記憶領域に記憶されるデータを他のシステムへ転送する転送手段と、
前記転送手段による転送の間に、前記第2記憶領域のデータの更新を制限する制限手段と、
を備えるフォールトトレラントシステム。
【請求項2】
前記第2記憶手段は、
所定のチェックポイントを経過してから次のチェックポイントまでに更新された前記第1記憶領域のデータを前記第2記憶領域に記憶させ、
前記転送手段は、
前記チェックポイント毎にデータを転送する、
請求項1に記載のフォールトトレラントシステム。
【請求項3】
前記第2記憶領域に記憶されたデータのうち、前記転送手段による転送が完了したデータをクリアするクリア手段、
を備える請求項1又は2に記載のフォールトトレラントシステム。
【請求項4】
前記第2記憶手段は、
前記第1記憶領域を構成する複数の小領域のうち、更新されたデータを有する前記小領域のデータを、前記第2記憶領域に記憶させ、
前記転送手段は、
前記第2記憶領域に記憶された前記小領域のデータを他のシステムへ転送する、
請求項1乃至3のいずれか一項に記載のフォールトトレラントシステム。
【請求項5】
前記第1記憶領域の前記小領域それぞれに対応するフラグを記憶する第3記憶手段と、
前記更新されたデータを有する前記小領域に対応するフラグをダーティに設定し、前記制限手段によりデータの更新が制限された時に前記複数の小領域に対応するフラグをクリーンに設定する設定手段と、
を備え、
前記第2記憶手段は、
ダーティに設定された前記フラグに対応する前記小領域のデータを前記第2記憶領域に記憶させる、
請求項4に記載のフォールトトレラントシステム。
【請求項6】
前記小領域は、メモリページである、
請求項4又は5に記載のフォールトトレラントシステム。
【請求項7】
メモリが有する第1記憶領域にデータを記憶させる第1記憶ステップと、
前記第1記憶領域に記憶されるデータが更新された場合に、更新された前記データを、前記第1記憶領域と別に設けられた第2記憶領域に記憶させる第2記憶ステップと、
前記第2記憶領域に記憶されるデータを他のシステムへ転送する転送ステップと、
前記転送ステップによる転送の間に、前記第2記憶領域のデータの更新を制限する制限ステップと、
を含むメモリ制御方法。
【請求項8】
コンピュータを、
メモリが有する第1記憶領域にデータを記憶させる第1記憶手段、
前記第1記憶領域に記憶されるデータが更新された場合に、更新された前記データを、前記第1記憶領域と別に設けられた第2記憶領域に記憶させる第2記憶手段、
前記第2記憶領域に記憶されるデータを他のシステムへ転送する転送手段、
前記転送手段による転送の間に、前記第2記憶領域のデータの更新を制限する制限手段、
として機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2012−190150(P2012−190150A)
【公開日】平成24年10月4日(2012.10.4)
【国際特許分類】
【出願番号】特願2011−51757(P2011−51757)
【出願日】平成23年3月9日(2011.3.9)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】