説明

データ転送装置、FTサーバ、データ転送方法、及びプログラム

【課題】データを効率的に転送することが可能なデータ転送装置等を提供する。
【解決手段】データ転送装置が備える主制御部103aは、第1転送方式と、第1転送方式とは異なる第2転送方式とを含む転送方式のいずれかを設定する転送方式設定部146と、データを転送させる転送制御部144とを備える。転送制御部144は、転送方式設定部146によって設定された転送方式に従って、データを転送させる。転送方法は例えば、転送方式設定部146によって、所定の時期ごとに設定される。また、第1転送方式は例えば、転送処理中に書き込みが発生する確率が高い場合に、第2転送方式よりもデータを効率的に転送できる転送方式である。第2転送方式は例えば、転送処理中に書き込みが発生する確率が低い場合に、第1転送方式よりもデータを効率的に転送できる転送方式である。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ転送装置、そのデータ転送装置を備えるFTサーバ、データ転送方法、及びプログラムに関する。
【背景技術】
【0002】
コンピュータシステムの可用性を高めるために、フォールトトレラントサーバ(FTサーバ)が広く利用されている。フォールトトレラントサーバは、CPU、メインメモリなどのハードウェア構成を二重又は多重に備える。FTサーバでは、主系統のCPUの状態を示すデータ、メインメモリが保持しているメモリデータなどは、適宜他系統へ転送される。これによって、各系統のCPU、メインメモリなどが同じ状態で維持されるため、主系統に障害が発生しても、他系統がその後の処理を継続することができる。
【0003】
随時更新されるデータを転送する方法に、予め定められた時期(チェックポイント)のデータを転送するチェックポイント方式がある。例えば特許文献1には、チェックポイント方式でプロセッサ内のキャッシュデータを他系統へ転送する方法が開示される。特許文献1に記載された方法では、キャッシュデータが更新されると、その更新の都度、その更新内容がメインメモリに書き出される。そして、チェックポイント時には、メインメモリに保持されたキャッシュデータのすべての更新内容が他系統へ一括して転送される。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平7−271624号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来の技術では、キャッシュデータに更新が発生すると、同じ更新内容が常に、キャッシュメモリとメインメモリとの2つの領域に書き出される。そのため、更新時の処理負荷が大きくなる。また、転送する必要があるのはチェックポイント直前の更新内容であるため、チェックポイント直前以外の更新内容を常にメインメモリに書き出すことは無駄な処理となる。特に、特定の領域に更新が集中する場合などには、結果的に無駄な処理が多くなる。
【0006】
本発明は、上記の実情に鑑みてなされたものであり、データを効率的に転送することが可能なデータ転送装置などを提供することを目的とする。
【課題を解決するための手段】
【0007】
上記の目的を達成するため、本発明の第1の観点に係るデータ転送装置は、
データの転送処理中に書き込みが発生する確率に応じた値を示す書込発生度データを参照し、参照した前記書込発生度データにより示される値に基づいて、第1転送方式と、前記第1転送方式とは異なる第2転送方式とを含む転送方式のいずれかを設定する転送方式設定手段と、
前記転送方式設定手段によって設定された転送方式に従って、データを転送させる転送制御手段とを備えることを特徴とする。
【0008】
また、本発明の第2の観点に係るFTサーバは、
データの転送処理中に書き込みが発生する確率に応じた値を示す書込発生度データを参照し、参照した前記書込発生度データにより示される値に基づいて、第1転送方式と、前記第1転送方式とは異なる第2転送方式とを含む転送方式のいずれかを設定する転送方式設定手段と、
前記転送方式設定手段によって設定された転送方式に従って、データを転送させる転送制御手段とを備えることを特徴とする。
【0009】
さらに、本発明の第3の観点に係るデータ転送方法は、
データの転送処理中に書き込みが発生する確率に応じた値を示す書込発生度データを参照し、
参照した前記書込発生度データにより示される値に基づいて、第1転送方式と、前記第1転送方式とは異なる第2転送方式とを含む転送方式のいずれかを設定し、
設定された前記転送方式に従って、データを転送させることを特徴とする。
【0010】
さらに、本発明の第4の観点に係るプログラムは、
データの転送処理中に書き込みが発生する確率に応じた値を示す書込発生度データを参照し、
参照した前記書込発生度データにより示される値に基づいて、第1転送方式と、前記第1転送方式とは異なる第2転送方式とを含む転送方式のいずれかを設定し、
設定された前記転送方式に従って、データを転送させることをコンピュータに実行させることを特徴とする。
【発明の効果】
【0011】
本発明によれば、異なる転送方式である第1転送方式及び第2転送方式のいずれかを設定し、設定された転送方法に従って、データが転送される。また、転送方法は、データの転送処理中に書き込みが発生する確率に応じた値に基づいて設定される。これによって、転送するデータへのアクセス傾向に応じて転送方式を設定することができる。したがって、データを効率的に転送することが可能になる。
【図面の簡単な説明】
【0012】
【図1】本発明の第1実施形態に係るFTサーバの構成の一例を示す図である。
【図2】第1実施形態に係るページテーブルデータが示すページテーブルの一例を示す図である。
【図3】第1実施形態に係るセグメントテーブルデータが示すセグメントテーブルの一例を示す図である。
【図4】第1実施形態に係るラストダーティページデータが示すラストダーティページの一例を示す図である。
【図5】第1実施形態に係る主制御部の詳細な構成を示す図である。
【図6】第1実施形態に係るメモリデータ更新部の詳細な構成を示す図である。
【図7】第1実施形態に係る転送制御部の詳細な構成を示す図である。
【図8】第1実施形態に係るDPカウンタ計数部の詳細な構成を示す図である。
【図9】第1実施形態に係る転送方式設定部の詳細な構成を示す図である。
【図10】第1実施形態に係る第1系統が、チェックポイントが到来した時に実行する処理の一例を示すフローチャートである。
【図11】第1実施形態に係る一括コピー方式転送処理の詳細を示すフローチャートである。
【図12】一括コピー方式での転送処理において、ダーティページのメモリデータが特定された状態を模式的に示す図である。
【図13】一括コピー方式での転送処理において、ダーティページのメモリデータが退避領域にローカルコピーされた状態を模式的に示す図である。
【図14】一括コピー方式での転送処理において、ダーティフラグがクリアされた状態を模式的に示す図である。
【図15】一括コピー方式での転送処理において、ダーティページのメモリデータが転送される状態を模式的に示す図である。
【図16】第1実施形態に係るCOW方式転送処理の詳細を示すフローチャートである。
【図17】COW方式での転送処理において、ダーティページのメモリデータが特定された状態を模式的に示す図である。
【図18】COW方式での転送処理において、書込禁止フラグが設定されるとともに、ダーティフラグがクリアされた状態を模式的に示す図である。
【図19】COW方式での転送処理において、書込要求が発生しなかったダーティページのメモリデータが転送される状態を模式的に示す図である。
【図20】COW方式での転送処理において、未転送のダーティページに書込要求が発生した状態を模式的に示す図である。
【図21】COW方式での転送処理において、書込要求が発生した未転送のダーティページのメモリデータが退避領域にローカルコピーされた状態を模式的に示す図である。
【図22】COW方式での転送処理において、書込要求が発生したダーティページのメモリデータが転送される状態を模式的に示す図である。
【図23】COW方式での転送処理において、書込要求があったダーティページのメモリデータが転送された後の状態を模式的に示す図である。
【図24】第1実施形態に係る転送方式更新処理の詳細を示すフローチャートである。
【図25】第1実施形態に係るメモリデータ更新処理を示すフローチャートである。
【図26】本発明の第2実施形態に係るFTサーバの構成の一例を示す図である。
【図27】第2実施形態に係るページテーブルデータが示すページテーブルの一例を示す図である。
【図28】第2実施形態に係る主制御部の詳細な構成を示す図である。
【図29】第2実施形態に係る転送制御部の詳細な構成を示す図である。
【図30】第2実施形態に係るDPカウンタ計数部の詳細な構成を示す図である。
【図31】第2実施形態に係る第1系統が、チェックポイントが到来した時に実行する処理の一例を示すフローチャートである。
【図32】第2実施形態に係る一括コピー方式転送処理の詳細を示すフローチャートである。
【図33】第2実施形態に係るCOW方式転送処理の詳細を示すフローチャートである。
【図34】第2実施形態に係るメモリデータ更新処理を示すフローチャートである。
【図35】第2実施形態に係る新規セグメント追加処理を示すフローチャートである。
【発明を実施するための形態】
【0013】
以下、本発明の実施形態について、図面を参照しながら説明する。
【0014】
(第1実施形態)
本発明の第1実施形態に係るフォールトトレラントサーバ(FTサーバ)について、図1〜25を参照して説明する。
【0015】
本実施形態に係るFTサーバ100は、図1に示すように、第1系統101aと第2系統101bとを備える。第1系統101aと第2系統101bとは、データを授受するための通信パス102で接続されている。
【0016】
本実施形態に係るFTサーバ100の場合、通常時には、第1系統101aが主系統として稼働し、第2系統101bは副系統として待機する。そして、チェックポイント時には、主記憶部104aが保持するメモリデータ、主制御部103aの状態を示すコンテキストデータなどが通信パス102を介して、第1系統101aから第2系統101bへ転送される。すなわち、本実施形態において主系統として稼働する第1系統101aは、データを転送する装置(データ転送装置)の一例である。
【0017】
本実施形態において、第1系統101aと第2系統101bとの間で一致させるデータ(転送対象データ)は、主記憶部103a内のデータであって、例えば第1系統101aにおいて実行されるゲストOSが使用する、主記憶部103a内のデータである。
【0018】
チェックポイントは、ユーザなどにより適宜設定される転送時期である。チェックポイントは、例えば定期的に設定される。チェックポイント時に、両系統101a,101bの状態は同じになる。そのため、通常時に稼働する第1系統101aに障害が発生したとしても、その後、第2系統101bが主系統となって障害発生前のチェックポイントの状態から処理を継続することができる。そして、第1系統101aが復旧すると、その復旧した第1系統(101a)は副系統として待機する。
【0019】
図1に示すように、第1系統101aと第2系統101bとは同様の構成を備える。各系統101a(101b)は、主制御部103a(103b)と、主記憶部104a(104b)と、補助記憶部105a(105b)と、FT制御部106a(106b)とを備える。各部103a〜106a(103b〜106b)は、データを授受するための内部バス107a(107b)を介して接続される。
【0020】
主制御部103a(103b)は、各種の演算処理の実行、各部の制御、主記憶部104a(104b)の記憶領域の管理及び更新などをする。主制御部103a(103b)は、CPU(Central Processing Unit)、MPU(Micro−Processing Unit)などにより実現される。また、主制御部103a(103b)は、MMU(Memory Management Unit)、DMA(Direct Memory Access)転送用のLSI(Large Scale Integration)などを組み合わせて実現されてもよい。
【0021】
主制御部103a(103b)は、図1に示すように、キャッシュ部108a(108b)を備える。キャッシュ部108a(108b)は、主制御部103a(103b)が高速でデータを読み書きできる記憶部であり、例えばページテーブルデータを保持しているTLB(Translation Lookaside Buffer)を含む。
【0022】
キャッシュ部108a(108b)が保持するページテーブルデータは、主記憶部104a(104b)のページを管理するためのテーブルを含むデータである。ページは、主記憶部104a(104b)の記憶領域を管理するために一般的に用いられる一定サイズ(例えば、4KByte)の記憶領域であり、本実施形態ではメモリデータの転送単位でもある。ページ単位で転送することによって、転送処理の高速化が可能になる。
【0023】
図2は、本実施形態に係るページテーブルデータ(転送単位テーブルデータ)110が示すページテーブルの一例を示す。ページテーブルデータ110は、同図に示すように、物理アドレスデータ111と、仮想アドレスデータ112と、ダーティフラグデータ113と、書込禁止フラグデータ114とを含む。ページテーブルデータ110の各データ111〜114は、ページごとに関連付けられている。
【0024】
物理アドレスデータ111は、主記憶部104a(104b)の記憶領域において各ページを特定するためのデータである。物理アドレスデータ111は、物理アドレスにより各ページを特定する。本実施形態の物理アドレスデータ111は、各ページの始まりとなる物理アドレスを示す。本実施形態ではページサイズが上述のように一定であるため、各ページの始まりを示す物理アドレスデータ111によって、主記憶部104a(104b)における各ページを特定することができる。
【0025】
なお、図2において、例えば「0x0000 0000」は、16進数の「0000 0000」により示されるアドレスを指す。これは、他の図においても同様である。
【0026】
仮想アドレスデータ112は、物理アドレスデータ111と同様に、主記憶部104a(104b)の記憶領域において各ページを特定するためのデータである。仮想アドレスデータ112は、仮想アドレスにより各ページを特定する。本実施形態の仮想アドレスデータ112は、上述の物理アドレスによる場合と同様に、各ページの始まりとなる仮想アドレスを示す。
【0027】
ダーティフラグデータ(第1ダーティデータ)113は、ダーティページを特定できるデータであって、ページごとのダーティフラグの状態によってダーティページであるか否かを示す。ダーティページは、計数時期と前回の計数時期との間に書き込みが発生したページである。計数時期は任意に設定されてよく、本実施形態ではチェックポイントである。なお、書き込みは、内容の一部又は全部を削除すること、それらを更新することなどを含む。
【0028】
本実施形態では、ダーティフラグデータ113が示すダーティフラグが立っている(「1」である)場合、そのダーティフラグデータ113に関連付けられたページはダーティページである。また、ダーティフラグデータ113が示すダーティフラグが立っていない(「0」である)場合、そのダーティフラグデータ113に関連付けられたページはダーティページでない。
【0029】
書込禁止フラグデータ114は、書込禁止フラグの状態を示すデータである。書込禁止フラグは、書き込みが禁止されているページであるか否かを示す。本実施形態では、書込禁止フラグデータ114が示す書込禁止フラグが立っている(「1」である)場合、その書込禁止フラグデータ114に関連付けられたページへの書き込みは禁止されている。書込禁止フラグが立っていない(「0」である)場合、その書込禁止フラグデータ114に関連付けられたページへの書き込みは許されている。
【0030】
図1に示す主記憶部104a(104b)は、主制御部103a(103b)がデータを読み書きする記憶部である。主記憶部104a(104b)は、RAM(Random Access Memory)などにより実現される。
【0031】
主記憶部104a(104b)の記憶領域は、転送対象領域としてのゲストOS領域、退避領域などを含む。ゲストOS領域は、ゲストOS(Operating System)が使用するゲストOS領域である。退避領域は、一時的にデータを退避させるための領域である。
【0032】
本実施形態に係る主記憶部104a(104b)は、セグメントテーブルデータを保持する。セグメントテーブルデータは、セグメントを管理するためのセグメントテーブルを示すデータである。セグメントは、主記憶部104a(104b)の転送対象領域を分割した領域である。セグメントは、1つ又は複数のページ(転送単位)で構成される。
【0033】
図3は、本実施形態に係るセグメントテーブルデータ120が示すセグメントテーブルの一例を示す。セグメントテーブルデータ120は、セグメント特定データ121と、転送方式データ122と、DP(Dirty Page)カウンタデータ123とを含む。セグメントテーブルデータ120の各データ121〜123は、セグメントごとに関連付けられている。
【0034】
セグメント特定データ121は、主記憶部104a(104b)の記憶領域において各セグメントを特定するためのデータである。本実施形態に係るセグメント構成データ121は、セグメント下限データ124とセグメント上限データ125とを含む。セグメント下限データ124及びセグメント上限データ125のそれぞれは、セグメントの下限及び上限となる物理アドレスを示す。したがって、本実施形態のセグメントは、セグメント下限データ124が示す物理アドレスからセグメント上限データ125が示す物理アドレスまでの領域により構成される。
【0035】
転送方式データ122は、各セグメントに含まれる転送対象データを第2系統101bへ転送する方式をセグメントごとに示すデータである。
【0036】
本実施形態での転送方式は、一括コピー方式とコピーオンライト(Copy On Write;COW)方式とのいずれかである。両方式の詳細は後述するため、ここではその概要を説明するにとどめる。
【0037】
一括コピー方式では、チェックポイント(転送時期)が到来した時に、まず、ダーティページのメモリデータを主記憶部104aの退避領域にコピー(ローカルコピー)される。次に、そのローカルコピーしたメモリデータがページごとに順次転送される。
【0038】
COW方式では、チェックポイント(転送時期)が到来した時に、ダーティページのメモリデータをページごとに順次転送する。そして、順次転送する途中に未転送のページへの書き込みが発生した場合に、そのページのメモリデータがローカルコピーされる。ローカルコピーされた後に、書き込みが発生した未転送のページのメモリデータが転送される。
【0039】
DPカウンタデータ123は、DPカウンタの値を示すデータである。本実施形態に係るDPカウンタの値は、2回のチェックポイント(計数時期)で連続してダーティフラグが立っていたページの数をセグメントごとに集計した値である。すなわち、DPカウンタデータ123は、頻度データの一例であって、各セグメントに書き込みが発生した頻度を、より具体的には、各セグメントに含まれるページに所定条件を満たす書き込みが発生した頻度を示す。本実施形態は、2回のチェックポイント(計数時期)で連続してダーティフラグが立っていたことを所定条件としている。
【0040】
本実施形態に係る主記憶部104a(104b)は、さらに、ラストダーティページ(LDP)データ(第2ダーティデータ)を保持する。LDPデータは、ラストダーティページを特定できるデータである。ラストダーティページは、前々回のチェックポイント(計数時期)と前回のチェックポイント(計数時期)との間に、書き込みが発生したページである。図4は、本実施形態に係るLDPデータ130の一例を示す。LDPデータ130は、ラストダーティページの始まりとなる物理アドレスを示す。
【0041】
本実施形態に係る主記憶部104a(104b)は、さらに、チェックポイントカウンタ(CPカウンタ)データをも保持する。CPカウンタデータは、セグメントテーブルデータ120の転送方式データ122が書き込まれた後に、チェックポイント(転送時期)が到来した回数(転送回数)を示すデータである。
【0042】
図1に示す補助記憶部105a(105b)は、OS、アプリケーションソフトウェアなどのコンピュータプログラムを含む各種データを記憶している大容量の記憶部である。補助記憶部105a(105b)は、HDD(Hard Disk Drive)などにより実現される。
【0043】
FT制御部106a(106b)は、各系統101a,101b間でのデータの授受を行い、またそのための制御を行なう。FT制御部106a(106b)は、FT制御用のLSIなどにより実現される。
【0044】
FT制御部106a(106b)は、主制御部103a(103b)の制御に従って、主記憶部104a(104b)のダーティページのメモリデータを取得し、取得したメモリデータを他の系統101b(101a)へ通信パス102を介してページごとに転送する転送部を含む。なお、転送されたメモリデータは、他の系統101b(101a)のFT制御部106b(106a)によって取得され、主記憶部104b(104a)に格納される。
【0045】
ここから、図5〜9を参照して、本実施形態に係る主制御部103aが備える詳細な構成について説明する。
【0046】
主制御部103aは、図5に示すように、CP監視部141と、書込要求判断部142と、メモリデータ更新部143と、転送制御部144と、DPカウンタ計数部145と、転送方式設定部146とを制御部又は処理部として備える。主制御部103a内の各制御部又は処理部141〜146とキャッシュ部108aとは、内部バス147を介してデータを授受できるように接続される。
【0047】
CP監視部141は、チェックポイント(計数時期及び転送時期)が到来したか否かを監視する。書込要求判断部142は、主記憶部104aへの書込要求が実行中のアプリケーションプログラムなどによって発生したか否かを判断する。
【0048】
メモリデータ更新部143は、書込要求があった場合に、主記憶部104aの記憶領域に保持されているメモリデータを書き込むための制御及び書込処理を実行する。図6は、メモリデータ更新部143の詳細な構成を示す。同図に示すように、メモリデータ更新部143は、書込禁止フラグ判断部151と、ダーティフラグ判断部152と、ダーティフラグ設定部153と、メモリデータ書込部154とを備える。
【0049】
書込禁止フラグ判断部151は、ページテーブルデータ110の書込禁止フラグデータ114を参照し、それによって、各ページへの書き込みが禁止されているか否かを判断する。
【0050】
ダーティフラグ判断部152は、ページテーブルデータ110のダーティフラグデータ113を参照する。それによって、ダーティフラグ判断部152は、チェックポイント(計数時期及び転送時期)と前回のチェックポイント(計数時期及び転送時期)との間に、すなわち、前回のチェックポイント以降に各ページへの書き込みが発生したか否かを判断する。
【0051】
ダーティフラグ設定部153は、書込要求があった場合に、その書込要求があったページのダーティフラグが立った状態となるようにダーティフラグデータ113に設定する。詳細には、ダーティフラグ設定部153は、書込要求があった場合に、ダーティフラグデータ113を参照し、その書込要求があったページに関連付けられたダーティフラグの状態を判断する。そして、ダーティフラグ設定部153は、ダーティフラグが立っていないと判断したときに、そのダーティフラグデータ113が示すダーティフラグを立った状態に設定する。
【0052】
メモリデータ書込部154は、書込要求があったページにデータを書き込む。
【0053】
図5に示す転送制御部144は、転送対象データを転送するための制御を行う。転送制御部144は、図7に示すように、転送方式判断部161と、ダーティページ特定部162と、ラストダーティページ設定部163と、ローカルコピー部164と、フラグ管理部165と、転送指示部166とを備える。
【0054】
転送方式判断部161は、セグメントテーブルデータ120の転送方式データ122を参照し、各セグメントに関連付けられた転送方式が、一括コピー方式とCOW方式とのいずれであるかを判断する。
【0055】
ダーティページ特定部(ダーティ単位特定手段)162は、主記憶部104a(104b)の記憶領域においてダーティページを特定する。具体的には、ダーティページ特定部162は、ページテーブルデータ110の物理アドレスデータ111又は仮想アドレスデータ112とダーティフラグデータ113とを参照し、転送対象データであるページのうち、ダーティフラグが立っているページを特定する。そして、ダーティページ特定部162は、ページテーブルデータ110のダーティフラグが立っているページに対応する物理アドレスデータ111又は仮想アドレスデータ112を参照することによって、ダーティページを特定する。
【0056】
ダーティページ特定部162により特定されたページは、前回のチェックポイント以降に第2系統101bとの間で異なる内容となっている領域である。そのため、ダーティページ特定部162により特定されたページが、転送対象データのうち、転送すべきメモリデータである。ダーティページ特定部162がダーティページを特定することによって、転送対象領域のすべてのメモリデータを転送するより場合も、転送するデータ量を減らすことができる。
【0057】
ラストダーティページ設定部163は、ダーティページ特定部162が前回のチェックポイント(計数時期)が到来した時に特定したダーティページを特定できるデータをラストダーティページデータ130として主記憶部104aに保持させる。
【0058】
ローカルコピー部164は、転送対象データを主記憶部140aの退避領域に適宜コピーする。このローカルコピーは、主制御部103aがDMA機能又は機構を備える場合、高速で処理できる。
【0059】
フラグ管理部165は、ページテーブルデータ110のダーティフラグデータ113及び書込禁止フラグデータ114を参照し、各フラグの状態を判断し、また適宜更新する。
【0060】
転送指示部166は、転送方式判断部161によって判断された転送方式に従って、ダーティページに含まれるメモリデータを転送することを示す指示データをFT制御部(転送部)106aに送信する。このような指示データを転送することによって、転送指示部166は、FT制御部106aにそのメモリデータを転送させる。
【0061】
図5に示すDPカウンタ計数部(書込発生度計数手段)145は、書き込みが発生したページが属するセグメントを特定し、書き込みが発生した頻度をセグメントごとに示すDPカウンタを用いて、書き込みが発生した頻度をセグメントごとに集計する。そして、DPカウンタ計数部145は、集計した値を示すデータを生成するとともに、生成したデータをセグメントテーブルデータ120のDPカウンタデータ123として設定する。DPカウンタ計数部145は、図8に示すように、連続書込判断部171と、DPカウンタ加算部172とを備える。
【0062】
連続書込判断部171は、上記の所定条件を満たす書き込みが発生したか否かをセグメントごとに判断する。本実施形態に係る連続書込判断部171は、ラストダーティページデータ130とページテーブルデータ110のダーティフラグデータ113とを参照し、2回のチェックポイント(計数時期)で連続して書き込みが発生していたか否かをページごとに判断する。
【0063】
DPカウンタ加算部172は、連続書込判断部171によって2回のチェックポイントで連続して書き込みが発生していたと判断された場合、その判断対象となったページが属するセグメントを特定する。そして、DPカウンタ加算部172は、特定したセグメントのDPカウンタデータ123を参照し、参照したDPカウンタデータ123が示すDPカウンタの値に「1」を加算する。DPカウンタ加算部172は、特定したセグメントのDPカウンタデータ123に加算後の値を設定する。
【0064】
図5に示す転送方式設定部146は、CPカウンタデータを参照し、参照したCPカウンタデータが示すCPカウンタに基づいて、各セグメントに適した転送方式を示すデータをセグメントテーブルデータ120の転送方式データ122に所定の時期ごとに設定する。転送方式設定部146は、図9に示すように、CPカウンタ判断部181と、転送方式更新部182と、CPカウンタ加算部183と、CPカウンタクリア部184とを備える。
【0065】
CPカウンタ判断部(転送回数判断手段)181は、主記憶部104aが保持しているCPカウンタデータを参照する。そして、CPカウンタ判断部181は、参照したCPカウンタデータが示すCPカウンタがCPカウンタ用の閾値(CP閾値)以上であるか否かを判断する。
【0066】
転送方式更新部182は、CPカウンタ判断部181によってCPカウンタがCP閾値以上であると判断された場合に、各セグメントのメモリデータを効率的に転送できる転送方式を示すデータにより、セグメントテーブルデータ120の転送方式データ122を更新する。転送方式更新部182は、図9に示すように、DPカウンタ判断部185と、転送方式書込部186と、DPカウンタクリア部187とを備える。
【0067】
DPカウンタ判断部(書込発生度判断手段)185は、セグメントテーブルデータ120のDPカウンタデータ123を参照する。そして、DPカウンタ判断部183は、DPカウンタデータ123により示されるDPカウンタがDPカウンタ用の閾値(DP閾値)以上であるか否かを各セグメントについて判断する。
【0068】
転送方式書込部(転送方式生成手段)186は、DPカウンタ判断部185のセグメントごとの判断結果に基づいて、一括コピー方式及びCOW方式のいずれかを示すセグメントごとのデータを転送方式データ122として主記憶部104aに書き込む。具体的には、DPカウンタがDP閾値以上であると判断された場合に、転送方式書込部186は一括コピー方式を示すデータを生成する。また、DPカウンタがDP閾値未満であると判断された場合に、転送方式書込部186はCOW方式を示すデータを生成する。そして、いずれの場合も、転送方式書込部186は生成したデータを転送方式データ122として主記憶部104aに書き込む。
【0069】
DPカウンタクリア部187は、セグメントテーブルデータ120のDPカウンタデータ123に「0」を設定する。
【0070】
CPカウンタ加算部183は、主記憶部104aが保持しているCPカウンタデータにより示されるCPカウンタに1を加算し、加算後の値をCPカウンタデータに設定する。
【0071】
CPカウンタクリア部184は、主記憶部104aが保持しているCPカウンタデータに「0」を設定する。
【0072】
これまで、本実施形態に係るFTサーバ100の構成について説明した。次に、第1実施形態に係るFTサーバ100の主系統である第1系統101aが実行する処理について、図10〜25を参照して説明する。
【0073】
図10は、第1実施形態に係る第1系統101aが、チェックポイントが到来した時に実行する処理を示すフローチャートである。
【0074】
CP監視部141は、チェックポイントが到来したか否かを判断する(ステップS101)。チェックポイントが到来していないと判断された場合(ステップS101;No)、主制御部103aは、通常処理を実行する(ステップS102)。通常処理とは、OS、アプリケーションソフトウェアなどを実行する処理である。
【0075】
チェックポイントが到来したと判断された場合(ステップS101;Yes)、主制御部103aは、各セグメントについて、ループB処理(ステップS104)からCOW方式転送処理(ステップS109)までの処理を繰り返す(ステップS103)。
【0076】
DPカウンタ計数部145は、処理対象となっているセグメント内の各ページについて、ダーティフラグ連続判断処理(ステップS105)とDPカウンタ加算処理(ステップS106)とを繰り返す(ステップS104)。
【0077】
連続書込判断部171は、各ページのダーティフラグが2回のチェックポイントで連続して立っているか否かを判断する(ステップS105)。具体的には、連続書込判断部171は、ラストダーティページデータ130とページテーブルデータ110のダーティフラグデータ113とを参照する。連続書込判断部171は、ラストダーティページデータ130が示すラストダーティページに含まれ、かつ、ダーティフラグデータ113が示すダーティフラグが立っているページを特定する。連続書込判断部171は、その特定したページについてダーティフラグが連続して立っていたと判断する。また、連続書込判断部171は、それ以外のページについてダーティフラグが連続して立っていないと判断する。
【0078】
ダーティフラグが連続して立っていないと判断した場合(ステップS105;No)、連続書込判断部171は、次のページのダーティフラグ連続判断処理(ステップS105)を実行する。
【0079】
ダーティフラグが連続して立っていると判断された場合(ステップS105;Yes)、DPカウンタ加算部172は、連続書込判断部171による判断の対象となったページが属するセグメントに関連付けられたDPカウンタに1を加算する(ステップS106)。具体的には、DPカウンタ加算部172は、連続書込判断部171による判断の対象となったページが属するセグメントを特定する。DPカウンタ加算部172は、DPカウンタデータ123を参照し、特定したセグメントのDPカウンタを取得する。DPカウンタ加算部172は、取得したDPカウンタに1を加算し、セグメントテーブルデータ120のDPカウンタデータ123として加算後の値を示すデータを主記憶部104aに書き込む。
【0080】
このように、ループB処理(ステップS104)における処理を実行することによって、2回のチェックポイントで連続してダーティフラグが立っていたページの数がセグメントごとに集計される。これによって、各セグメントに書き込みが発生した頻度を集計することができる。ダーティフラグが連続して立っていた回数を2回として各セグメントの書き込みの発生頻度を集計することによって、各セグメントに含まれる同一ページが頻繁に更新されるか否かを示す指標を、比較的短い期間の履歴に基づいて得ることができる。
【0081】
続けて、図10を参照して、転送方式判断部161は、処理対象となっているセグメントの転送方式を判断する(ステップS107)。具体的には、転送方式判断部161は、主記憶部104aが保持しているセグメントテーブルデータ120の転送方式データ122を参照する。転送方式判断部161は、参照した転送方式データ122によって示される転送方式を特定し、これによって、処理対象となっているセグメントに適用する転送方式を判断する。本実施形態における転送方式は、上述のように、「一括コピー方式」と「COW方式」とのいずれかである。
【0082】
「一括コピー方式」であると判断された場合(ステップS107;一括コピー方式)、転送制御部144は、処理対象となっているセグメントのダーティページのメモリデータを一括コピー方式で第2系統101bへ転送するための制御をし、FT制御部106aが、第2系統101bへメモリデータを転送する(ステップS108)。
【0083】
ここで、一括コピー方式での転送方法について説明する。
図11は、一括コピー方式転送処理(ステップS108)の詳細を示すフローチャートである。
【0084】
ダーティページ特定部162は、前回のチェックポイント以降に書き込みが発生したページであるダーティページを特定する(ステップS201)。具体的には、ダーティページ特定部162は、主記憶部104aが保持しているページテーブルデータ110に含まれるダーティフラグデータ113を参照する。ダーティページ特定部162は、参照したダーティフラグデータ113により示されるダーティフラグが立っているか否かをページごとに判断する。ダーティページ特定部162は、ダーティフラグが立っていると判断した場合に、そのダーティフラグデータ113に関連付けられたページをダーティページとして特定する。図12は、ダーティページ特定処理(ステップS201)においてダーティページのメモリデータが特定された状態を模式的に示す。
【0085】
チェックポイント時の転送対象データのうち、転送する必要があるメモリデータは、ダーティページのメモリデータである。ダーティページ特定処理(ステップS201)によって、転送する必要があるページのメモリデータを特定することができる。
【0086】
ローカルコピー部164は、ダーティページ特定処理(ステップS201)において特定されたダーティページのメモリデータをローカルコピーする(ステップS202)。図13は、ダーティページのメモリデータがローカルコピーされた状態を模式的に示す。ローカルコピー処理(ステップS202)を実行することによって、チェックポイントにおけるダーティページのメモリデータの内容が確保される。
【0087】
なお、図13において退避領域に括弧を付して記載する「(0x0000 0000)」は、16進数表記の物理アドレス「0x0000 0000」から始まるページのメモリデータが退避領域内のページにコピーされていることを示す。「(0x00AD 0000)」も同様である。また、他の図においても同様である。
【0088】
ラストダーティページ設定部163は、ダーティページ特定処理(ステップS201)において特定されたダーティページを特定できるデータをLDPデータとして主記憶部104aに保持させる(ステップS203)。これによって、ラストダーティページデータ130が設定される。
【0089】
フラグ管理部165は、処理対象のセグメントに含まれるすべてのページのダーティフラグをクリアする(ステップS204)。具体的には、フラグ管理部165は、処理対象であるセグメントを構成するページのすべてについて、ダーティフラグデータ113に「0」を設定する。図14は、ダーティページのダーティフラグがクリアされた状態を模式的に示す。
【0090】
転送指示部166は、退避領域にコピーされたダーティページのメモリデータを第2系統101bへ転送させる(ステップS205)。具体的には、転送指示部166は、退避領域にコピーされたダーティページのメモリデータを第2系統101bへ転送する指示データをFT制御部106aに出力する。指示データを取得したFT制御部106aは、メモリデータを取得して、第2系統101bへ転送する。図15は、一括コピー方式において、ダーティページのメモリデータが転送される状態を模式的に示す。
【0091】
以上で、一括コピー方式での転送処理(ステップS108)は終了する。これによって、処理対象となったセグメントのメモリデータについて、両系統101a,101bの主記憶部104a,104bの状態が同じになる。
【0092】
図10に戻り、「COW方式」であると判断された場合(ステップS107;COW方式)、転送制御部144は、処理対象となっているセグメントのダーティページのメモリデータをCOW方式で第2系統101bへ転送するための制御をし、FT制御部106aが、第2系統101bへメモリデータを転送する(ステップS109)。
【0093】
ここで、COW方式での転送方法について説明する。
図16は、COW方式転送処理(ステップS109)の詳細を示すフローチャートである。
【0094】
ダーティページ特定部162は、ダーティページ特定処理(ステップS201)と同様に、ダーティページを特定する(ステップS301)。図17は、ダーティページ特定処理(ステップS301)においてダーティページのメモリデータが特定された状態を模式的に示す。
【0095】
フラグ管理部165は、ダーティページ特定処理(ステップS301)において特定されダーティページについて、書込禁止フラグデータ134に「1」を設定する(ステップS302)。書込禁止フラグ設定処理(ステップS302)によって、ダーティページに対応する、主記憶部104aの領域への書き込みが禁止される。そのため、チェックポイントにおけるダーティページのメモリデータの内容が確保される。
【0096】
ラストダーティページ設定部163は、LDPデータ設定処理(ステップS203)と同様に、ダーティページ特定処理(ステップS301)において特定されたダーティページを特定できるデータをLDPデータとして主記憶部104aに保持させる(ステップS303)。
【0097】
フラグ管理部165は、ダーティフラグクリア処理(ステップS204)と同様に、処理対象のセグメントに含まれるすべてのページのダーティフラグをクリアする(ステップS304)。図18は、ダーティページの書込禁止フラグが設定されるとともに、ダーティフラグがクリアされた状態を模式的に示す。
【0098】
主制御部103aは、処理対象となっているセグメント内の各ダーティページについて、書込要求判断処理(ステップS306)からメモリデータ転送処理(ステップS311)までを繰り返す(ステップS305)。ここでは、書込禁止フラグ134を参照することによって、主制御部103aは、ダーティページであるか否かを判別することができる。
【0099】
書込要求判断部142は、処理対象となるダーティページについて、書込要求があるか否かを判断する(ステップS306)。書込要求がないと判断した場合(ステップS306;No)、転送指示部166は、FT制御部106aに指示データを出力することによって、処理対象となるダーティページのメモリデータを第2系統101bへ転送させる(ステップS307)。転送指示部166から指示データを取得したFT制御部106aは、その指示に従って、メモリデータを第2系統101bへ転送する。図19は、書込要求がない場合のダーティページのメモリデータが転送される状態を模式的に示す。
【0100】
フラグ管理部165は、メモリデータ転送処理(ステップS307)が完了したページに関連付けられた書込禁止フラグをクリアする(ステップS308)。具体的には、フラグ管理部165は、メモリデータ転送処理(ステップS307)が完了したページに関連付けられた書込禁止フラグデータ134に「0」を設定する(更新後の状態につき、図20参照。)。
【0101】
書込要求があると判断された場合(ステップS306;Yes)、ローカルコピー部164は、処理対象となっているダーティページのメモリデータをローカルコピーする(ステップS309)。図20は、未転送のダーティページに書込要求が発生した状態を模式的に示す。また、図21は、書込要求が発生した未転送のダーティページのメモリデータをローカルコピーした状態を模式的に示す。図21は、16進数表記の物理アドレス「0000 0000」から始まるページのメモリデータが、16進数表記の物理アドレス「05F1 D100」で特定される退避領域内のページにコピーされることを表す。
【0102】
ここでのローカルコピー処理(ステップS309)は例えば、一般的なOSを実行する第1系統101aにおける割り込み処理として実現される。処理対象となっているダーティページに書き込みが発生する場合であっても、ローカルコピー処理(ステップS309)を実行することによって、書込要求が発生したダーティページのメモリデータの内容をチェックポイント時の状態で確保できる。
【0103】
フラグ管理部165は、ローカルコピーしたメモリデータを含むページに関連付けられたダーティフラグを立てる(ステップS310)。具体的には、フラグ管理部165は、そのページに関連付けられたダーティフラグデータ113に「1」を設定する(図21参照)。
【0104】
転送指示部166は、FT制御部106aに指示データを出力することによって、処理対象となるダーティページのメモリデータを第2系統101bへ転送させる(ステップS311)。転送指示部166から指示データを取得したFT制御部106aは、その指示に従って、メモリデータを第2系統101bへ転送する。図22は、書込要求が発生したダーティページのメモリデータが転送される状態を模式的に示す図である。同図に示すように、転送されるメモリデータは、ローカルコピー元のメモリデータである。そして、メモリデータへの書き込みは、ローカルコピー先のメモリデータになされる。そのため、ローカルコピー先のページに関連付けられたダーティフラグデータ113には、「1」が設定される。
【0105】
フラグ管理部165は、メモリデータ転送処理(ステップS311)が完了した後に、転送が完了したダーティページの書込禁止フラグをクリアする(ステップS308)。図23は、COW方式において書込要求があったダーティページのメモリデータが転送された後の状態を模式的に示す。同図に示すように、メモリデータの転送処理が完了したダーティページに関連付けられた書込禁止フラグデータ114には「0」が設定されている。なお、ローカルコピー処理(ステップS309)の後は、ローカルコピー先のページに書き込みがなされ、そのページが転送対象領域に組み込まれる。
【0106】
以上で、COW方式での転送処理(ステップS109)は終了する。これによって、処理対象となったセグメントのメモリデータについて、両系統101a,101bの主記憶部104a,104bの状態が同じになる。
【0107】
これまで説明したように、一括コピー方式の転送処理(ステップS108)では、すべてのダーティページのメモリデータが、主記憶部104aの退避領域に一旦ローカルコピーされる。これに対して、COW方式の転送処理(ステップS109)では、ダーティページのメモリデータが順次転送される。そして、未転送のダーティページに書込要求が発生した場合に、そのダーティページのメモリデータが、主記憶部104aの退避領域にローカルコピーされる。すなわち、COW方式の転送処理(ステップS109)では、未転送のダーティページへの書き込みがなければ、ローカルコピーは発生しない。
【0108】
そのため、転送処理中に発生する書込要求が少ない場合、COW方式による方が一括コピー方式によるよりも転送処理のために第1系統101aに掛かる負荷は小さい。これに対して、転送処理中に発生する書込要求が多い場合、一括コピー方式による方がCOW方式によるよりも転送処理のために第1系統101aに掛かる負荷は小さい。
【0109】
このように、一括コピー方式とCOW方式とのいずれが効率的であるかは、転送処理中に書込要求が発生するページがセグメント中に多いか少ないかによって異なる。すなわち、転送処理中に書込要求が発生するページがセグメント中に多い場合、一括コピー方式の方が効率的にメモリデータを転送できる。転送処理中に書込要求が発生するページがセグメント中に少ない場合、COW方式の方が効率的にメモリデータを転送できる。したがって、一括コピー方式とCOW方式とは、転送処理中に書込要求が発生するページがセグメント内に多いか少ないかに応じて設定されるとよい。
【0110】
転送処理中に書込要求が発生するページが多いか少ないかは、各セグメントに書き込みが発生した頻度(書込頻度)と相関がある。すなわち、書込頻度が高いセグメントの場合、そのセグメント内の多くのページに対して転送処理中に書込要求が発生する確率が高い。これに対して、書込頻度が低いセグメントの場合、そのセグメント内の多くのページに対して転送処理中に書込要求が発生する確率が低い。そのため、書込頻度が高いセグメントには一括コピー方式を適用し、書込頻度が低いセグメントにはCOW方式を適用することによって、メモリデータの効率的な転送が可能になる。
【0111】
また、セグメントは任意に定められてよいが、例えばページ単位のように小さい領域とすると、セグメントテーブルデータ120などデータ転送のために必要になるデータの容量が大きくなってしまう。他方、セグメントを転送対象データ全体のように大きい領域とすると、転送方法を動的に切り替えることによる転送効率の向上はあるものの、各転送時の転送効率の向上は小さくなってしまう。そこで、セグメントは、メモリデータへのアクセス傾向に応じて設定されることが望ましい。一般的に、メモリデータへのアクセス傾向は、実行するアプリケーションプログラムに依存する点が大きい。そのため、例えばアプリケーションプログラムが使用する主記憶部104aの記憶領域に対応してセグメントが設定されるとよい。このようにセグメントごとに転送方式を設定することによって、データ転送のために必要になるデータの容量を抑えながら、各転送時の転送効率の向上を図ることが可能になる。
【0112】
再び図10を参照する。
CPカウンタ判断部181は、チェックポイントカウンタがCP閾値以上であるか否かを判断する(ステップS110)。具体的には、CPカウンタ判断部181は、主記憶部104aが保持しているCPカウンタデータを参照する。CPカウンタ判断部181は、参照したCPカウンタデータにより示されるCPカウンタと第1閾値とを比較し、これによって判断する。
【0113】
CPカウンタの値が第1閾値未満であると判断された場合(ステップS110;No)、CPカウンタ加算部183は、CPカウンタに1を加算した値を示すデータによって、主記憶部104aのCPカウンタデータを更新する(ステップS111)。
【0114】
CPカウンタの値が第1閾値以上であると判断された場合(ステップS110;Yes)、転送方式更新部182は、転送方式更新処理(ステップS112)を実行する。このように、第1閾値として定められた回数に相当するチェックポイントが経過するたびに、転送方式更新処理(ステップS112)が実行される。これによって、転送方式更新処理(ステップS112)を実行するためにFTサーバ100に掛かる負荷を適切に調整することができる。
【0115】
ここで、転送方式更新処理(ステップS112)の詳細について、図24を参照して説明する。
【0116】
転送方式更新部182は、DPカウンタ判断処理(ステップS402)からDPカウンタクリア処理(ステップS405)までの処理を各セグメントについて繰り返す(ステップS401)。
【0117】
DPカウンタ判断部183は、処理対象となっているセグメントのDPカウンタが第2閾値以上であるか否かを判断する(ステップS402)。具体的には、DPカウンタ判断部183は、主記憶部104aが保持しているセグメントテーブルデータ120のDPカウンタデータ123を参照する。DPカウンタ判断部183は、参照したセグメントテーブルデータ120に含まれるDPカウンタデータ123により示されるDPカウンタのうち、処理対象となっているセグメントのDPカウンタを特定する。DPカウンタ判断部183は、特定したDPカウンタと第2閾値とを比較し、比較結果に基づいて判断する。
【0118】
DPカウンタが第2閾値以上であると判断された場合(ステップS402;Yes)、転送方式書込部184は、処理対象となっているセグメントの転送方式データ122に「一括コピー」方式を設定する(ステップS403)。具体的には、転送方式書込部184は、処理対象となっているセグメントに関連付けられたセグメントテーブルデータ120の転送方式データ122として、「一括コピー」であることを示すデータを主記憶部104aに書き込む。
【0119】
DPカウンタが第2閾値未満であると判断された場合(ステップS402;No)、転送方式書込部184は、処理対象となっているセグメントの転送方式データ122に「COW」方式を設定する(ステップS405)。COW方式設定処理(ステップS404)において転送方式書込部184が実行する具体的な処理は、一括コピー方式設定処理(ステップS403)と同様であるため、その説明は省略する。
【0120】
DPカウンタクリア部186は、DPカウンタ123の値をクリアする(ステップS405)。具体的には、DPカウンタクリア部186は、処理対象となっているセグメントに関連付けたセグメントテーブルデータ120のDPカウンタデータ123として、「0」を示すデータを書き込む。
【0121】
DPカウンタの値は、上述のように、所定の集計期間に各セグメントに含まれるページに更新がなされる頻度を示す。そのため、DPカウンタの値が大きければ、COW方式で転送すると転送処理中に多くのページに書込要求が発生する可能性が高いため、一括コピー方式での転送が適している。逆に、DPカウンタの値が小さければ、COW方式で転送しても転送処理中に多くのページに書込要求が発生する可能性は低いため、COW方式での転送に適している。本実施形態のように、DPカウンタが第2閾値以上であるセグメントには一括コピー方式を適用し、DPカウンタが第2閾値未満であるセグメントにはCOW方式を適用することによって、メモリデータを効率的に転送することが可能になる。
【0122】
再び図10を参照して、CPカウンタクリア部184は、CPカウンタの値をクリアする(ステップS113)。具体的には、CPカウンタクリア部184は、「0」を示すデータによって、主記憶部104aが保持しているCPカウンタデータを更新する。
【0123】
第1系統101aは、これまで説明したループB処理(ステップS104)からCPカウンタクリア処理(ステップS113)までの処理をすべてのセグメントについて実行するループA処理(ステップS103)の後に、処理を終了する。
【0124】
このように、チェックポイントが到来すると、まず、DPカウンタ計数処理(ステップS104〜ステップS106)が実行される。これによって、DPカウンタが計数される。次に、メモリデータ転送処理(ステップS107〜ステップS109)が実行される。これによって、主記憶部104aと主記憶部104bとは、転送対象データについて同じ状態になる。さらに、転送方式設定処理(ステップS110〜ステップS113)が実行される。これによって、各セグメントのメモリデータを効率的に転送できる転送方式が更新される。
【0125】
次に、図25は、第1実施形態に係る第1系統101aが実行するメモリデータ更新処理を示すフローチャートである。
【0126】
書込要求判断部142は、主記憶部104aへの書込要求が発生したか否かを判断する(ステップS521)。書込要求が発生していないと判断した場合(ステップS521;No)、書込要求判断部142は、書込要求判断処理(ステップS521)を継続する。
【0127】
書込要求が発生したと判断された場合(ステップS521;Yes)、書込禁止フラグ判断部151は、書込要求が発生したページの書込禁止フラグが立っているか否かを判断する(ステップS522)。具体的には、書込禁止フラグ判断部151は、ページテーブルデータ110の書込禁止フラグデータ114を参照し、書込要求が発生したページに関連付けられている書込禁止フラグの状態に基づいて判断する。
【0128】
書込禁止フラグが立っていると判断された場合(ステップS522;Yes)、メモリデータ書込部154は、その書込要求に係るデータを書き込む(ステップS523)。書込禁止フラグが立っているということは、COW方式での転送処理の途中である。そのため、メモリデータ書込部154は、ローカルコピー先のページにデータを書き込む。
【0129】
書込禁止フラグが立っていないと判断された場合(ステップS522;No)、ダーティフラグ判断部152は、書込要求が発生したページのダーティフラグが立っているか否かを判断する(ステップS524)。具体的には、ダーティフラグ判断部152は、ページテーブルデータ110のダーティフラグデータ113を参照し、書込要求が発生したページに関連付けられているダーティフラグの状態に基づいて判断する。
【0130】
ダーティフラグが立っていると判断された場合(ステップS524;Yes)、メモリデータ書込部154は、その書込要求に係るデータを書き込む(ステップS523)。
【0131】
ダーティフラグが立っていないと判断された場合(ステップS524;No)、ダーティフラグ設定部153は、ページテーブルデータ110のダーティフラグデータ113のうち、書込要求があったページに関連付けられているダーティフラグデータ113に「1」を設定する(ステップS525)。これによって、書き込みがなされるページのダーティフラグが立った状態になる。
【0132】
続けて、メモリデータ書込部154は、書込要求が発生したページにその書込要求に係るデータを書き込む(ステップS523)。これにより、第1系統101aは、メモリデータ更新処理を終了する。
【0133】
このようなメモリデータ更新処理が実行されることによって、主記憶部104aのメモリデータが更新される。また、メモリデータが更新されたページには、ダーティフラグが設定される。
【0134】
以上、本発明の第1実施形態について説明した。
本実施形態によれば、セグメントテーブルデータ120は、転送方式がセグメントごとに設定されている転送方式データ122を含む。設定される転送方式は、一括コピー方式とCOW方式とのいずれかである。一括コピー方式は、転送処理中に書込要求が発生する頻度が高い場合に、COW方式よりも効率よく転送できる方式である。また、COW方式は、転送処理中に書込要求が発生する頻度が低い場合に、一括コピー方式よりも効率よく転送できる方式である。
【0135】
転送方式データ122では、セグメントへの書込要求が発生する頻度に応じて、一括コピー方式とCOW方式とのいずれかの転送方式が各セグメントに設定されている。そのため、転送方式データ122を参照し、各セグメントに設定された転送方式に従って各セグメントのメモリデータを転送することによって、効率よく各セグメントのメモリデータを転送することができる。本実施形態では転送対象領域が複数のセグメントに分割されるため、転送対象領域全体のメモリデータを1つの転送方式で転送するよりも、効率的に転送することが可能になる。
【0136】
また、本実施形態によれば、転送方式データ122が示す各セグメントの転送方式は、DPカウンタデータ123が示すDPカウンタに基づいて設定される。すなわち、DPカウンタがDP閾値以上である場合に、一括コピー方式が設定される。また、DPカウンタがDP閾値未満である場合に、COW方式が設定される。本実施形態において説明したように、DPカウンタは、各セグメントに書き込みが発生した頻度を示し、転送処理中に各セグメントに書込要求が発生する確率と相関がある。したがって、DPカウンタに基づいて転送方式を設定することによって、効率的な転送に適した転送方式を確実に設定することが可能になる。
【0137】
また、本実施形態によれば、DPカウンタは、ページテーブルデータ110のダーティフラグデータ113及びラストダーティページデータ130に基づいて計数される。本実施形態に係るページテーブルデータ110は、主記憶部104aの記憶領域をページ単位で管理する場合に、主制御部103aなどに通常保持されるデータである。そのため、DPカウンタは、ラストダーティページデータ130を主記憶部104aなどに保持させることによって、容易に実現できる。DPカウンタに基づいて転送方式を設定することによって、効率的な転送に適した転送方式を容易に設定することが可能になる。
【0138】
さらに、本実施形態によれば、CPカウンタデータが示すCPカウンタがCP閾値以上となった場合に、転送方式データ122が示す各セグメントの転送方式の設定を更新する。これによって、チェックポイントが到来するたびに転送方式の設定を更新するよりも、FTサーバ100に掛かる処理負荷を抑えながら、適切なタイミングで転送方式を見直すことができる。各セグメントのメモリデータへのアクセス傾向は随時変わることがあるが、本実施形態によれば効率的な転送に適した転送方式を維持することができる。したがって、メモリデータの高い転送効率を持続させることが可能になる。
【0139】
さらに、本実施形態では主記憶部104aが、セグメントテーブルデータ120及びラストダーティページデータ130を保持する。これは、一般的なOSの機能またはそれを拡張することによって、容易に実現することができる。また、本実施形態では、COW方式で書込要求が発生すると、ローカルコピーする。これは、一般的なOSの割り込み機能またはそれを拡張することによって、容易に実現することができる。したがって、本実施形態によれば、メモリデータの効率的な転送を容易に実現することが可能になる。
【0140】
(第2実施形態)
本発明の第2実施形態では、主制御部のキャッシュ部が、第1実施形態のセグメントテーブルデータ120及びラストダーティページデータ130に相当するデータを保持する。この点、両データ120及び130を主記憶部104aが保持している第1実施形態と異なる。また、これらのデータ120,130をキャッシュ部に保持させることによって、第1実施形態においてソフトウェアを実行することにより実現された機能の一部をハードウェアにより実現することができる。そのため、本実施形態では、第1実施形態と同様の効果に加えて、処理の高速化が可能になる。
【0141】
本発明の第2実施形態について、図26〜35を参照して説明する。これらの図では、第1実施形態と同じ構成要素には同一の参照符号を付している。本実施形態では、第1実施形態と異なる構成要素について説明し、第1実施形態と同じ構成要素についての重複する説明は省略する。
【0142】
図26に示すように、本発明の第2実施形態に係るFTサーバ200の構成は、図1に示すFTサーバ100と概ね同様の構成を備えた第1系統201aと第2系統201aとを備える。本実施形態でも、第1系統201aが主系統であり、第2系統201aが副系統である。
【0143】
本実施形態と第1実施形態とは、主制御部203a(203b)の詳細な構成と、主記憶部204a(204b)及びキャッシュ部208a(208b)が保持しているデータとが異なる。
【0144】
まず、本実施形態に係るキャッシュ部208a(208b)は、第1実施形態と同様のセグメントテーブルデータ120(図3参照)と、図27に示すページテーブルデータ210とを保持する。
【0145】
本実施形態に係るページテーブルデータ210は、図27に示すように、第1実施形態に係るページテーブルデータ110に含まれる各データ111〜114に加えて、ページごとに関連付けられたラストダーティフラグデータ215を含む。
【0146】
ラストダーティフラグデータ215は、ラストダーティページフラグの状態を示すデータである。ラストダーティフラグデータ215が関連付けられたページがラストダーティページである場合、ラストダーティページフラグは、立った状態を示す「1」である。また、ラストダーティフラグデータ215が関連付けられたページがラストダーティページでない場合、ラストダーティページフラグは、立っていない状態を示す「0」である。
【0147】
すなわち、ラストダーティフラグデータ215は、ラストダーティページを特定するためのデータ(LDPデータ)に相当する。
【0148】
本実施形態に係る主制御部203aは、図28に示すように、主制御部103aが備える構成(図5参照)に加えて、新規セグメント追加部248を備える。また、主制御部203aは、第1実施形態に係る転送制御部144とDPカウンタ計数部148とに代えて、転送制御部244とDPカウンタ計数部248とを備える。
【0149】
転送制御部244は、第1実施形態に係る転送制御部144と同様に、メモリデータを転送するための制御を行う。転送制御部244は、図29に示すように、フラグ管理部165に代えて、フラグ管理部265を備える。なお、転送制御部244は、ラストダーティページ設定部163(図7参照)を備えない。
【0150】
フラグ管理部265は、ページテーブルデータ110のダーティフラグデータ113及び書込禁止フラグデータ114に加えて、ラストダーティフラグデータ215を参照し、各フラグの状態を判断し、また適宜更新する。このように、本実施形態では、フラグ管理部265がLDPデータに相当するデータを管理する。そのため、フラグ管理部265は、第1実施形態のフラグ管理部165と異なり、キャッシュ部208aにのみアクセスし、主記憶部204aにアクセスすることがない。これによって、フラグ管理部265は、フラグ管理部165よりも高速に処理ができる。
【0151】
図28に示すDPカウンタ計数部245は、第1実施形態のDPカウンタ計数部145と同様に、DPカウンタを計数し、計数した値によってセグメントテーブルデータ120のDPカウンタデータ123を更新する。DPカウンタ計数部245は、図30に示すように、第1実施形態のDPカウンタ計数部145が備える構成要素に加えて、ラストダーティフラグクリア部273を備える。また、DPカウンタ計数部245は、第1実施形態の連続書込判断部171に代えて、連続書込判断部271を備える。
【0152】
連続書込判断部271は、第1実施形態に係る連続書込判断部171と同様に、2回のチェックポイントで連続して書き込みが発生したか否かをページごとに判断する。連続書込判断部271は、連続書込判断部171とは異なり、ページテーブルデータ210のダーティフラグデータ113とラストダーティフラグデータ215とを参照する。そして、ダーティフラグとラストダーティフラグとが示すフラグの両方が立っている場合に、連続書込判断部271は、2回のチェックポイントで連続して書き込みが発生したと判断する。それ以外の場合に、連続書込判断部271は、2回のチェックポイントで連続して書き込みが発生しないと判断する。
【0153】
ラストダーティフラグクリア部273は、すべてのページのラストダーティフラグデータ215に「0」を設定する。これによって、すべてのページのラストダーティフラグがクリアされる。
【0154】
図28に戻り、新規セグメント追加部248は、セグメントテーブルデータ120に新たなセグメントのエントリを追加する。
【0155】
これまで、本実施形態に係るFTサーバ200の構成について説明した。次に、本実施形態に係るFTサーバ200の主系統である第1系統201aが実行する処理について、図31〜35を参照して説明する。
【0156】
図31は、第2実施形態に係る第1系統201aが、チェックポイントが到来した時に実行する処理を示すフローチャートである。同図に示すように、第2実施形態では、第1実施形態とは異なり(図10参照)、チェックポイントが到来した時にDPカウンタ計数処理(ステップS104〜ステップS106)が実行されない。これは、本実施形態では、書込要求が発生した時にDPカウンタ計数処理が実行されるためである。本実施形態に係るDPカウンタ計数処理の詳細については後に説明する。
【0157】
また、本実施形態では、図31に示す一括コピー方式転送処理(ステップS508)の詳細が、第1実施形態に係る一括コピー方式転送処理(図10のステップS108)とは異なる。図32は、本実施形態に係る一括コピー方式転送処理(ステップS508)の詳細を示す。同図に示すように、一括コピー方式転送処理(ステップS508)では、一括コピー方式転送処理(ステップS108)とは異なり(図11参照)、ラストダーティページ設定処理(ステップS203)が実行されない。また、ダーティフラグクリア処理(ステップS204)も実行されない。
【0158】
さらに、本実施形態では、図31に示すCOW方式転送処理(ステップS509)の詳細が、第1実施形態に係るCOW方式転送処理(図10のステップS109)とは異なる。図33は、本実施形態に係るCOW方式転送処理(ステップS509)の詳細を示す。同図に示すように、COW方式転送処理(ステップS509)では、COW方式転送処理(ステップS109)とは異なり(図16参照)、ラストダーティページ設定処理(ステップS303)が実行されない。また、ダーティフラグクリア処理(ステップS304)も実行されない。
【0159】
さらに図31を参照すると、本実施形態では、一括コピー方式及びCOW方式での転送処理(ステップS508及びステップS509)の後に、ラストダーティフラグ設定処理(ステップS514)が実行される。
【0160】
具体的には、フラグ管理部264は、ダーティフラグデータ113が示す各ページのダーティフラグの状態をそのままラストダーティフラグデータ215に移動させる。これによって、ダーティフラグがクリアされるとともに、ラストダーティフラグが設定される。これは、第1実施形態のラストダーティページ設定処理(ステップS203又はステップS303)とダーティフラグクリア処理(ステップS204又はステップS204)とに相当する。本実施形態でのラストダーティフラグ設定処理(ステップS514)は、例えばTLBのようなキャッシュ部208a内でのデータの移動である。そのため、本実施形態によれば、ラストダーティページ設定処理(ステップS203又はステップS303)とダーティフラグクリア処理(ステップS204又はステップS204)とに相当する処理を第1実施形態よりも高速に実行することが可能になる。
【0161】
次に、図34は、本実施形態に係る第1系統201aが実行するメモリデータ更新処理を示すフローチャートである。同図に示すように、本実施形態に係るメモリデータ更新処理は、第1実施形態に係るメモリデータ更新処理(図25参照)に加えて、ダーティフラグ連続判断処理(ステップS726)、ラストダーティフラグクリア処理(ステップS727)、及びDPカウンタ加算処理(ステップS106)を含む。本実施形態のメモリデータ更新処理において追加された処理(ステップS726、ステップS727、及びステップS106)は、第1実施形態に係るにDPカウンタ計数処理(図10のステップS104〜ステップS106)に相当する。
【0162】
ダーティフラグ設定処理(ステップS525)の後に、連続書込判断部271は、2回のチェックポイントで連続して書き込みが発生したか否かをページごとに判断する(ステップS726)。具体的には、連続書込判断部271は、ページテーブルデータ210のうち、書込要求が発生したページのダーティフラグデータ113とラストダーティフラグデータ215とを参照する。連続書込判断部271は、参照したデータ113及び215によって示されるフラグの状態に基づいて判断する。
【0163】
連続書込判断部271は、参照したデータ113及び215によって示されるフラグのいずれか一方又は両方が立っていない場合に、所定の書き込みが発生していないと判断する(ステップS726;No)。この場合、データ書込部154は、その書込要求に係るデータを書き込み(ステップS523)、処理を終了する。
【0164】
連続書込判断部271は、参照したデータ113及び215によって示されるフラグの両方が立っている場合に、所定の書き込みが発生したと判断する(ステップS726;Yes)。この場合、ラストダーティフラグクリア部273は、すべてのページのラストダーティフラグデータ215が示すラストダーティフラグをクリアする(ステップS727)。
【0165】
このように、本実施形態では、メモリデータ更新処理において、すなわち、書込要求が発生したときに、DPカウンタ係数処理(ステップS726,ステップS727,及びステップS106)が実行される。これにより、チェックポイント(転送時期)が到来した時に実行される処理が第1実施形態よりも減少し、その際の処理負荷を軽減することができる。
【0166】
さらに、図35は、本実施形態に係る第1系統201aが実行する新規セグメント追加処理を示すフローチャートである。
【0167】
新規セグメント追加部248は、セグメントテーブルデータ120のセグメント上限データ125に新たなセグメントの物理アドレスの上限を設定する(ステップS701)。新規セグメント追加部248は、セグメントテーブルデータ120のセグメント下限データ124に新たなセグメントの物理アドレスの下限を設定する(ステップS702)。新規セグメント追加部248は、セグメントテーブルデータ120の新たなセグメントのDPカウンタデータ123に「0」を設定する(ステップS703)。新規セグメント追加部248は、セグメントテーブルデータ120の新たなセグメントの転送方式データ122に初期値を設定し(ステップS704)、処理を終了する。初期値には、一括コピー方式とCOW方式とのいずれかが予め定められる。
【0168】
このような新規セグメント追加処理によって、新しいセグメントのエントリがセグメントテーブルデータ120に追加される。
【0169】
以上、本発明の第2実施形態について説明した。
本実施形態によれば、第1実施形態と同様に、転送対象領域全体のメモリデータを1つの転送方式で転送するよりも、効率的に転送することが可能になる。
【0170】
また、第1実施形態と同様に、DPカウンタに基づいて転送方式を設定することによって、効率的な転送に適した転送方式を確実に設定することが可能になる。
【0171】
さらに、DPカウンタは、ラストダーティページデータ130をキャッシュ部208aなどに保持させることによって、容易に実現できる。そのため、第1実施形態と同様に、DPカウンタに基づいて転送方式を設定することによって、効率的な転送に適した転送方式を容易に設定することが可能になる。
【0172】
さらに、第1実施形態と同様に、効率的な転送に適した転送方式を維持することができる。したがって、第1実施形態と同様に、メモリデータの高い転送効率を持続させることが可能になる。
【0173】
さらに、本実施形態ではキャッシュ部208aが、セグメントテーブルデータ120及びラストダーティフラグデータ215を保持する。主制御部103aは一般に、主記憶部204aよりもキャッシュ部208aに高速にアクセスできる。そのため、これらのデータ120及び215へのアクセスを伴う処理の高速化が可能になる。したがって、本実施形態によれば、特にチェックポイントが到来した時に実行される処理の高速化を図ることができる。
【0174】
さらに、セグメントテーブルデータ120及びラストダーティフラグデータ215をTLBに追加的に含めることは、主制御部103aを実現するプロセッサがレジスタや、カウンタを備える場合には、マイクロコードの変更によって実現できる。したがって、このような場合に本実施形態を採用することによって特に容易に、メモリデータの効率的な転送を実現することが可能になる。
【0175】
以上、本発明の実施形態について説明したが、本発明はこれまで説明した実施形態に限定されるものではない。
【0176】
例えば、本発明に係る各実施形態は、仮想OS支援機構を備えるCPUにおける仮想環境上での冗長構成を実現する場合にも適用できる。例えば、CPUが保持するページテーブルにラスとダーティフラグを追加するとともに、CPUがセグメントテーブルを保持すればよい。これによっても、メモリデータを効率的に転送することが可能になる。また、ハードウェア構成の支援による高速な処理も可能になる。
【0177】
また例えば、各実施形態では、転送対象データは、主記憶部103a内のデータであるとしたが、転送対象データはこれに限られない。転送対象データは、異なる系統又は装置間で転送される任意のデータであってよい。また、転送対象データは、同一装置内で転送される任意のデータであってもよい。また、転送対象データを保持する領域が転送対象領域である。転送対象領域は、主記憶部104a(104b)に限らず、FTサーバが備える任意の記憶手段の記憶領域内に設定されてよい。
【0178】
さらに例えば、各実施形態ではFTサーバ100(200)が2系統101a,101b(201a,201b)を備える例により説明したが、FTサーバはこれに限られない。FTサーバは3系統以上を備えてもよい。FTサーバが3系統以上備える場合も、通常時には、いずれか1つの系統が主系統として稼動し、他の系統が待機する。そして、待機する各系統は主系統の状態を保持する。
【0179】
さらに例えば、各実施形態では転送単位は、ページであるとしたが、転送単位はこれに限られない。転送単位は任意のサイズで設定されてよい。
【0180】
さらに例えば、各実施形態では転送単位テーブルデータとしてのページテーブルデータが、各ページの始まりとなる物理アドレスを示すデータを物理アドレスデータとして保持するとしたが、物理アドレスデータはこれに限られない。物理アドレスデータは、各ページを特定できるデータであればよく、例えば各転送単位の上限及び下限となる物理アドレスを示すデータであってもよい。また、仮想アドレスデータも、各転送単位の上限及び下限となる仮想アドレスを示すデータであってもよい。さらに、各ページを特定できるデータの他の例として、各ページに付与されたページ番号を示すデータを挙げることができる。
【0181】
さらに例えば、各実施形態では、ダーティフラグデータ113は、「0」と「1」により示されるフラグを用いてダーティページを特定したが、これに限られない。ダーティフラグデータ113はダーティページを特定できるデータであればよく、フラグによって示されなくてもよい。また、フラグを用いる場合であっても、「0」「1」以外の任意の文字、記号などによってフラグの状態が示されてよい。書込禁止フラグデータ114、及びラストダーティフラグデータ215についても同様である。
【0182】
さらに例えば、各実施形態では、転送時期と計数時期とのいずれもが同一のチェックポイントであるとしたが、転送時期と計数時期とはこれに限られない。転送時期は、転送処理を開始する時期として任意に定められてよい。また、計数時期は、DPカウンタ計数処理を開始する時期として任意に定められてよい。ただし、転送時期と計数時期が異なる場合には、転送時期が到来した時のダーティページと計数時期が到来した時のダーティページとのそれぞれを示すデータが必要になる。各データは例えば、ページテーブルデータ110,120に、ダーティフラグデータ113に代えて含まれてよい。
【0183】
さらに例えば、各実施形態では転送方式は、一括コピー方式とCOW方式とであるとしたが、転送方式はこれに限られない。転送方式は例えば、転送対象領域に書き込みがなされると、その都度、書き込まれた内容を退避領域に書き込み、チェックポイント時に退避領域のメモリデータを転送する方式であってもよい。この方式は、書き込み要求が発生する頻度が低く、特に書き込みが特定のページに集中しないセグメントに適用すると、メモリデータを効率よく転送することができる。
【0184】
さらに例えば、各実施形態では、各セグメントに書き込みが発生した頻度を計数するための所定条件は、2回のチェックポイントで連続してダーティフラグが立っていたこととしたが、所定条件はこれに限られない。所定条件は例えば、単に、前回のチェックポイント以降に書き込みが発生したことであってもよい。また、所定条件は例えば、ある1回のチェックポイントでダーティフラグが立っていたことであってもよい。この場合、DPカウンタは例えば、各チェックポイントにおいてダーティフラグデータ113が示すダーティフラグが立っているページの数をセグメントごとに集計した値となる。さらに、所定条件は、3回以上の所定の回数のチェックポイントで連続してダーティフラグが立っていたことであってもよい。この場合、DPカウンタは例えば、3回以上のチェックポイントで連続してダーティフラグが立っていたページの数をセグメントごとに集計した値となる。
【0185】
さらに例えば、各実施形態では、各セグメントに書き込みが発生した頻度(書込頻度)に基づいて、転送方式を設定したが、転送方式を設定するための指標は書込頻度に限られない。転送方式は、転送処理中にセグメント内で書き込みが発生する確率に応じた値(書込発生度)に基づいて、設定されればよい。すなわち、書込頻度及びそれを示す頻度データのそれぞれは、書込発生度及びそれを示す書込発生度データの一例である。
【0186】
書込発生度は、各セグメントに書き込みが発生した頻度(書込頻度)の他に、例えば、各セグメントに書き込みが発生した確率又は割合(書込確率又は書込割合)を含む。また、各セグメント内に一定サイズの監視領域をセグメントのサイズに応じた数だけ予め定め、監視領域に発生した書き込みの有無を数値化し、その書き込み発生の有無を示す値をセグメントごとに集計して得られる値が書込発生度とされてもよい。さらに、その監視領域に対する、書き込みが発生した領域の割合が書込発生度とされてもよい。そして、これらの書込発生度を集計する時期は、任意に定められてよい。
【0187】
このような書込発生度は、転送処理中にセグメント内で書き込みが発生する確率が高くなるに従って、大きな値となる。そのため、このような書込発生度を採用する場合、転送方式設定部146は、例えば各実施形態と同様の処理を実行すればよい。すなわち、転送方式設定部146は、書込発生度データを取得し、取得した書込発生度データが示す書込発生度が閾値以上であるセグメントには、例えば一括コピー方式を設定するとよい。また、転送方式設定部146は、取得した書込発生度データが示す書込発生度が閾値以上であるセグメントには、例えばCOW方式を設定すればよい。
【0188】
さらに、書込発生度は、転送処理中にセグメント内で書き込みが発生する確率が高くなるに従って、小さくなる値であってもよい。このような書込発生度の例として、書込頻度、書込確率その他のこれまで例示した書込発生度の逆数を挙げることができる。この場合、転送方式設定部は、書込発生度データを取得し、取得した書込発生度データが示す書込発生度が閾値以下であるセグメントには、例えば一括コピー方式を設定するとよい。また、転送方式設定部は、取得した書込発生度データが示す書込発生度が閾値より大きいセグメントには、例えばCOW方式を設定すればよい。
【0189】
このように書込発生度には、転送処理中にセグメント内で書き込みが発生する確率に応じた種々の値が採用されうる。転送方式設定部が各セグメントの書込発生度に基づいて各セグメントの転送方式を設定し、設定された転送方式に従って転送制御部144,244が転送対象データを転送させることによって、転送対象データを効率的に転送することが可能になる。
【0190】
データ転送装置としてのFTサーバ100の第1系統101aが備える主制御部103a、主記憶部104a、補助記憶部105a、FT制御部106aなどから構成される第1系統101aの処理を行う中心となる部分は、専用のシステム、通常のコンピュータシステムなどを用いて実現可能である。たとえば、各実施形態において説明した第1系統101aの動作を実行するためのコンピュータプログラムを、コンピュータが読み取り可能な記録媒体(フレキシブルディスク、CD−ROM、DVD−ROM等)に格納して配布し、そのコンピュータプログラムをコンピュータにインストールすることにより、上記の処理を実行する第1系統101aを構成してもよい。また、インターネット等の通信ネットワーク上のサーバ装置が有する記憶装置にそのコンピュータプログラムを格納しておき、通常のコンピュータシステムがダウンロード等することで第1系統101aを構成してもよい。
【0191】
また、第1系統101aの機能を、OS(オペレーティングシステム)とアプリケーションプログラムの分担、またはOSとアプリケーションプログラムとの協働により実現する場合などには、アプリケーションプログラム部分及びOSを一部変更するためのアプリケーションプログラムの一方又は両方を必要に応じて記録媒体や記憶装置に格納してもよい。
【0192】
また、搬送波にコンピュータプログラムを重畳し、通信ネットワークを介して配信することも可能である。たとえば、通信ネットワーク上の掲示板(BBS,Bulletin Board System)に上記のコンピュータプログラムを掲示し、ネットワークを介してそのコンピュータプログラムを配信してもよい。そして、このコンピュータプログラムを起動し、OSの制御下で、他のアプリケーションプログラムと同様に実行することにより、上記の処理を実行できるように構成してもよい。
【0193】
本発明は、本発明の範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。また、上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。
【0194】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【0195】
(付記1)
データの転送処理中に書き込みが発生する確率に応じた値を示す書込発生度データを参照し、参照した前記書込発生度データにより示される値に基づいて、第1転送方式と、前記第1転送方式とは異なる第2転送方式とを含む転送方式のいずれかを設定する転送方式設定手段と、
前記転送方式設定手段によって設定された転送方式に従って、データを転送させる転送制御手段とを備える
ことを特徴とするデータ転送装置。
【0196】
(付記2)
前記転送方式設定手段は、所定の時期ごとに、前記書込発生度データを参照し、参照した前記書込発生度データにより示される値に基づいて、前記第1転送方式と前記第2転送方式とを含む転送方式のいずれかを設定する
ことを特徴とする付記1に記載のデータ転送装置。
【0197】
(付記3)
前記第1転送方式は、転送処理中に書き込みが発生する確率が高い場合に、前記第2転送方式よりもデータを効率的に転送できる転送方式であり、
前記第2転送方式は、転送処理中に書き込みが発生する確率が低い場合に、前記第1転送方式よりもデータを効率的に転送できる転送方式である
ことを特徴とする付記1又は2に記載のデータ転送装置。
【0198】
(付記4)
前記第1転送方式は、転送時期が到来した時に、転送すべきデータをローカルコピーした後に、前記転送すべきデータを順次転送する転送方式である
ことを特徴とする付記1から3のいずれか1つに記載のデータ転送装置。
【0199】
(付記5)
第2転送方式は、転送時期が到来した時に、転送すべきデータを順次転送するとともに、前記転送すべきデータのうち未転送のデータに書き込みが発生した場合には、前記未転送のデータをローカルコピーした後に、前記未転送のデータを転送する転送方式である
ことを特徴とする付記1から4のいずれか1つに記載のデータ転送装置。
【0200】
(付記6)
前記転送方式設定手段は、各セグメントの前記書込発生度データを参照し、参照した前記書込発生度データにより示される値に基づいて、前記第1転送方式と前記第2転送方式とを含む転送方式のいずれかをセグメントごとに設定し、
前記転送制御手段は、前記転送方式設定手段によって設定された転送方式に従って、前記各セグメントに含まれるデータを転送させる
ことを特徴とする付記1から5のいずれか1つに記載のデータ転送装置。
【0201】
(付記7)
各セグメントの前記書込発生度データを参照し、参照した前記書込発生度データによって示される各セグメントの値と第1閾値とを比較し、前記各セグメントの値が前記第1閾値以上であるか否かを判断する書込発生度判断手段と、
前記書込発生度判断手段によって前記値が前記第1閾値以上であると判断された場合に、当該判断がなされたセグメントの転送方式が前記第1転送方式であることを示す前記転送方式データを生成し、前記値が前記第1閾値未満であると判断された場合に、当該判断がなされたセグメントの転送方式が前記第2転送方式であることを示す前記転送方式データを生成する転送方式生成手段とを備える
ことを特徴とする付記1から6のいずれか1つに記載のデータ転送装置。
【0202】
(付記8)
前記転送方式生成手段によって転送方式データが生成された後の転送回数を示す転送回数データを参照し、参照した前記転送回数データによって示される転送回数と第2閾値とを比較し、前記転送回数が前記第2閾値以上であるか否かを判断する転送回数判断手段を備え、
前記書込発生度判断手段は、前記転送回数判断手段によって前記転送回数が前記第2閾値以上であると判断された場合に、前記書込発生度データを参照し、参照した前記書込発生度データによって示される各セグメントの値と第1閾値とを比較し、前記各セグメントの値が前記第1閾値以上であるか否かを判断する
ことを特徴とする付記2から7のいずれか1つに記載のデータ転送装置。
【0203】
(付記9)
前記各セグメントに含まれる転送単位のうち、計数時期と前回の計数時期との間に書き込みが発生した転送単位を特定できる第1ダーティデータを参照し、前記第1ダーティデータを参照することによって書き込みが発生したと特定される転送単位の数をセグメントごとに集計し、集計した値を示すデータを前記書込発生度データとして生成する書込発生度計数手段を備える
ことを特徴とする付記7又は8に記載のデータ転送装置。
【0204】
(付記10)
前記書込発生度計数手段は、前記第1ダーティデータと、前記前回の計数時期と前々回の計数時期との間に書き込みが発生した前記転送単位を特定できる第2ダーティデータとを参照し、前記第1ダーティデータを参照することによって書き込みが発生したと特定され、かつ、前記第2ダーティデータを参照することによって書き込みが発生したと特定される転送単位の数をセグメントごとに集計し、集計した値を示すデータを前記書込発生度データとして生成する
ことを特徴とする付記9に記載のデータ転送装置。
【0205】
(付記11)
前記計数時期は、予め定められる転送時期と同一である
ことを特徴とする付記8又は9に記載のデータ転送装置。
【0206】
(付記12)
前記書込発生度計数手段は、転送時期が到来した時に、前記第1ダーティデータを、又は、前記第1ダーティデータと前記第2ダーティデータとを参照する
ことを特徴とする付記9から11のいずれか1つに記載のデータ転送装置。
【0207】
(付記13)
前記書込発生度計数手段は、主記憶部への書き込みが発生した時に、前記第1ダーティデータを、又は、前記第1ダーティデータと前記第2ダーティデータとを参照する
ことを特徴とする付記9から11のいずれか1つに記載のデータ転送装置。
【0208】
(付記14)
前記転送方式データ、前記書込発生度データ、前記第1ダーティデータ、及び前記第2ダーティデータの全部又は一部を保持しているキャッシュ部を備える
ことを特徴とする付記1から13のいずれか1つに記載のデータ転送装置。
【0209】
(付記15)
前記転送方式データ、前記書込発生度データ、前記第1ダーティデータ、及び前記第2ダーティデータの全部又は一部を保持している主記憶部を備える
ことを特徴とする付記1から13のいずれか1つに記載のデータ転送装置。
【0210】
(付記16)
前記転送制御手段は、
前記転送方式データを参照し、参照した前記転送方式データが示す前記転送方式によって前記各セグメントの転送方式を判断する転送方式判断手段と、
前記各セグメントに含まれる転送単位の各々への書き込みが前回の転送時期以降に発生したか否かを示す第3ダーティデータを参照し、書き込みが発生したことが前記第3ダーティデータによって示される転送単位を特定するダーティ単位特定手段と、
前記転送方式判断手段によって判断された転送方式に従って、前記各セグメントに含まれるデータのうち特定した転送単位に含まれるデータを転送させる転送指示手段とを備える
ことを特徴とする付記1から15のいずれか1つに記載のデータ転送装置。
【0211】
(付記17)
前記転送制御手段は、転送方式判断手段によって前記第1転送方式であると判断された場合に、前記ダーティ単位特定手段によって特定された転送単位に含まれるデータを主記憶部内の退避領域にコピーするローカルコピー手段を備え、
前記転送指示手段は、前記転送方式判断手段によって前記第1転送方式であると判断された場合に、前記ローカルコピー手段によってコピーされた前記退避領域のデータを転送させる
ことを特徴とする付記16に記載のデータ転送装置。
【0212】
(付記18)
前記転送制御手段は、転送方式判断手段によって前記第2転送方式であると判断された場合であって、前記ダーティ単位特定手段によって特定された転送単位への書き込みが発生したときに、当該書き込みが発生した転送単位に含まれるデータを主記憶部内の退避領域にコピーするローカルコピー手段を備え、
前記転送指示手段は、転送方式判断手段によって前記第2転送方式であると判断された場合であって、前記ダーティ単位特定手段によって特定された転送単位への書き込みが発生したときには、前記ローカルコピー手段がコピーした後に、当該書き込みが発生した転送単位に含まれるデータを転送させ、前記ダーティ単位特定手段によって特定された転送単位への書き込みが発生しないときには、当該転送単位に含まれるデータを転送させる
ことを特徴とする付記16又は17に記載のデータ転送装置。
【0213】
(付記19)
データの転送処理中に書き込みが発生する確率に応じた値を示す書込発生度データを参照し、参照した前記書込発生度データにより示される値に基づいて、第1転送方式と、前記第1転送方式とは異なる第2転送方式とを含む転送方式のいずれかを設定する転送方式設定手段と、
前記転送方式設定手段によって設定された転送方式に従って、データを転送させる転送制御手段を備える
ことを特徴とするFTサーバ。
【0214】
(付記20)
データの転送処理中に書き込みが発生する確率に応じた値を示す書込発生度データを参照し、
参照した前記書込発生度データにより示される値に基づいて、第1転送方式と、前記第1転送方式とは異なる第2転送方式とを含む転送方式のいずれかを設定し、
設定された前記転送方式に従って、データを転送させる
ことを特徴とするデータ転送方法。
【0215】
(付記21)
データの転送処理中に書き込みが発生する確率に応じた値を示す書込発生度データを参照し、
参照した前記書込発生度データにより示される値に基づいて、第1転送方式と、前記第1転送方式とは異なる第2転送方式とを含む転送方式のいずれかを設定し、
設定された前記転送方式に従って、データを転送させることをコンピュータに実行させる
ことを特徴とするプログラム。
【0216】
(付記22)
データの転送処理中に書き込みが発生する確率に応じた値を示す書込発生度データを参照し、
参照した前記書込発生度データにより示される値に基づいて、第1転送方式と、前記第1転送方式とは異なる第2転送方式とを含む転送方式のいずれかを設定し、
設定された前記転送方式に従って、データを転送させることをコンピュータに実行させるプログラムを記録した
コンピュータ読み取り可能な記録媒体。
【符号の説明】
【0217】
100,200 FTサーバ
101a,201a 第1系統
101b,201b 第2系統
102 通信パス
103a,103b,203a,203b 主制御部
104a,104b,204a,204b 主記憶部
105a,105b 補助記憶部
106a,106b FT制御部
108a,108b,208a,208b キャッシュ部
141 CP監視部
142 書込要求判断部
143 メモリデータ更新部
144,244 転送制御部
145,245 DPカウンタ計数部
146 転送方式設定部
151 書込禁止フラグ判断部
152 ダーティフラグ判断部
153 ダーティフラグ設定部
154 メモリデータ書込部
161 転送方式判断部
162 ダーティページ特定部
163 ラストダーティページ設定部
164 ローカルコピー部
165,265 フラグ管理部
166 転送指示部
171,271 連続書込判断部
172 DPカウンタ加算部
181 CPカウンタ判断部
182 転送方式更新部
183 CPカウンタ加算部
184 CPカウンタクリア部
185 DPカウンタ判断部
186 転送方式書込部
187 DPカウンタクリア部
273 ラストダーティフラグクリア部

【特許請求の範囲】
【請求項1】
データの転送処理中に書き込みが発生する確率に応じた値を示す書込発生度データを参照し、参照した前記書込発生度データにより示される値に基づいて、第1転送方式と、前記第1転送方式とは異なる第2転送方式とを含む転送方式のいずれかを設定する転送方式設定手段と、
前記転送方式設定手段によって設定された転送方式に従って、データを転送させる転送制御手段とを備える
ことを特徴とするデータ転送装置。
【請求項2】
前記転送方式設定手段は、所定の時期ごとに、前記書込発生度データを参照し、参照した前記書込発生度データにより示される値に基づいて、前記第1転送方式と前記第2転送方式とを含む転送方式のいずれかを設定する
ことを特徴とする請求項1に記載のデータ転送装置。
【請求項3】
前記第1転送方式は、転送処理中に書き込みが発生する確率が高い場合に、前記第2転送方式よりもデータを効率的に転送できる転送方式であり、
前記第2転送方式は、転送処理中に書き込みが発生する確率が低い場合に、前記第1転送方式よりもデータを効率的に転送できる転送方式である
ことを特徴とする請求項1又は2に記載のデータ転送装置。
【請求項4】
前記第1転送方式は、転送時期が到来した時に、転送すべきデータをローカルコピーした後に、前記転送すべきデータを順次転送する転送方式である
ことを特徴とする請求項1から3のいずれか1項に記載のデータ転送装置。
【請求項5】
第2転送方式は、転送時期が到来した時に、転送すべきデータを順次転送するとともに、前記転送すべきデータのうち未転送のデータに書き込みが発生した場合には、前記未転送のデータをローカルコピーした後に、前記未転送のデータを転送する転送方式である
ことを特徴とする請求項1から4のいずれか1項に記載のデータ転送装置。
【請求項6】
前記転送方式設定手段は、各セグメントの前記書込発生度データを参照し、参照した前記書込発生度データにより示される値に基づいて、前記第1転送方式と前記第2転送方式とを含む転送方式のいずれかをセグメントごとに設定し、
前記転送制御手段は、前記転送方式設定手段によって設定された転送方式に従って、前記各セグメントに含まれるデータを転送させる
ことを特徴とする請求項1から5のいずれか1項に記載のデータ転送装置。
【請求項7】
各セグメントの前記書込発生度データを参照し、参照した前記書込発生度データによって示される各セグメントの値と第1閾値とを比較し、前記各セグメントの値が前記第1閾値以上であるか否かを判断する書込発生度判断手段と、
前記書込発生度判断手段によって前記値が前記第1閾値以上であると判断された場合に、当該判断がなされたセグメントの転送方式が前記第1転送方式であることを示す前記転送方式データを生成し、前記値が前記第1閾値未満であると判断された場合に、当該判断がなされたセグメントの転送方式が前記第2転送方式であることを示す前記転送方式データを生成する転送方式生成手段とを備える
ことを特徴とする請求項1から6のいずれか1項に記載のデータ転送装置。
【請求項8】
前記各セグメントに含まれる転送単位のうち、計数時期と前回の計数時期との間に書き込みが発生した転送単位を特定できる第1ダーティデータを参照し、前記第1ダーティデータを参照することによって書き込みが発生したと特定される転送単位の数をセグメントごとに集計し、集計した値を示すデータを前記書込発生度データとして生成する書込発生度計数手段を備える
ことを特徴とする請求項7に記載のデータ転送装置。
【請求項9】
前記書込発生度計数手段は、前記第1ダーティデータと、前記前回の計数時期と前々回の計数時期との間に書き込みが発生した前記転送単位を特定できる第2ダーティデータとを参照し、前記第1ダーティデータを参照することによって書き込みが発生したと特定され、かつ、前記第2ダーティデータを参照することによって書き込みが発生したと特定される転送単位の数をセグメントごとに集計し、集計した値を示すデータを前記書込発生度データとして生成する
ことを特徴とする請求項8に記載のデータ転送装置。
【請求項10】
前記書込発生度計数手段は、転送時期が到来した時に、前記第1ダーティデータを、又は、前記第1ダーティデータと前記第2ダーティデータとを参照する
ことを特徴とする請求項8又は9に記載のデータ転送装置。
【請求項11】
前記書込発生度計数手段は、主記憶部への書き込みが発生した時に、前記第1ダーティデータを、又は、前記第1ダーティデータと前記第2ダーティデータとを参照する
ことを特徴とする請求項8又は9に記載のデータ転送装置。
【請求項12】
データの転送処理中に書き込みが発生する確率に応じた値を示す書込発生度データを参照し、参照した前記書込発生度データにより示される値に基づいて、第1転送方式と、前記第1転送方式とは異なる第2転送方式とを含む転送方式のいずれかを設定する転送方式設定手段と、
前記転送方式設定手段によって設定された転送方式に従って、データを転送させる転送制御手段とを備える
ことを特徴とするFTサーバ。
【請求項13】
データの転送処理中に書き込みが発生する確率に応じた値を示す書込発生度データを参照し、
参照した前記書込発生度データにより示される値に基づいて、第1転送方式と、前記第1転送方式とは異なる第2転送方式とを含む転送方式のいずれかを設定し、
設定された前記転送方式に従って、データを転送させる
ことを特徴とするデータ転送方法。
【請求項14】
データの転送処理中に書き込みが発生する確率に応じた値を示す書込発生度データを参照し、
参照した前記書込発生度データにより示される値に基づいて、第1転送方式と、前記第1転送方式とは異なる第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

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35】
image rotate


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