JP5561334B2 - データ転送装置 - Google Patents

データ転送装置 Download PDF

Info

Publication number
JP5561334B2
JP5561334B2 JP2012213856A JP2012213856A JP5561334B2 JP 5561334 B2 JP5561334 B2 JP 5561334B2 JP 2012213856 A JP2012213856 A JP 2012213856A JP 2012213856 A JP2012213856 A JP 2012213856A JP 5561334 B2 JP5561334 B2 JP 5561334B2
Authority
JP
Japan
Prior art keywords
small area
area
memory
transfer
small
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2012213856A
Other languages
English (en)
Other versions
JP2014067357A (ja
Inventor
理砂子 内田
晋樹 阿部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2012213856A priority Critical patent/JP5561334B2/ja
Priority to US14/039,672 priority patent/US9398094B2/en
Publication of JP2014067357A publication Critical patent/JP2014067357A/ja
Application granted granted Critical
Publication of JP5561334B2 publication Critical patent/JP5561334B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Description

本発明は、計算機のメモリに記憶されているデータを他の計算機へ転送するデータ転送装置、データ転送方法、およびプログラムに関する。
可用性を高めた計算機システムとして、ホットスタンバイ構成のHAクラスタ(High availability cluster)、FTサーバ(Fault Tolerant server)が知られている。
HAクラスタは、複数台のサーバを相互接続し、システムの冗長化を図る。現在稼動している(稼動系)サーバに障害が発生した場合、待機系として用意されていたサーバが処理を引き継ぐため、クラスタ全体としては異常なく稼動し続けているように見える。主な方式として、アクティブスタンバイ方式とレプリケーション方式とがある。
アクティブスタンバイ方式のHAクラスタでは、運用系と待機系でストレージを共有する。運用系は、待機系を同期させるのに必要な、アプリケーションに依存した情報を共有ストレージに書き、待機系はフェイルオーバー時にこの情報を用いてリカバリを行う。即ち、アクティブスタンバイ方式では、フェイルオーバー時にアプリケーション毎のリカバリ処理が必要になるため、アプリケーションやOSから見て、透過的に可用性を得ることができない。また、フェイルオーバーには時間を要し、その間はサービスが提供できなくなるという問題がある。
レプリケーション方式のHAクラスタでは、運用系と待機系が個別にストレージを持ち、運用系のアプリケーションに到着したリクエストを待機系にも転送することで、待機系に運用系と同じ状態遷移をさせる。一般に、複数の系の状態を一致させることを、同期をとると言う。運用系に障害が発生して停止した場合、待機系のアプリケーションの状態は運用系と同期しているため、運用系を切り離してサービスを継続することができる。しかし、クラスタリングするアプリケーション毎にレプリケーションの仕組みを追加しなければならないため、アプリケーションやOSから見て、透過的に可用性を得ることができない。
このようにHAクラスタでは、アプリケーションやOSに可用性を意識した仕組みを追加しなければならない。これに対して、FTサーバでは、そのような必要性はない。即ち、FTサーバは、アプリケーションやOSが特別な処理を必要としないで、透過的にサービスを継続することができる。FTサーバを実現する方式は、ハードウェア方式とソフトウェア方式とに大別される。
ハードウェア方式のFTサーバは、CPU、メモリ、ストレージなどの主要なハードウェアコンポーネントを冗長化する。CPUやメモリ、チップセットを含むモジュールをCPUサブシステム、各種IOデバイスを含むモジュールをIOサブシステムと呼ぶ。CPUサブシステムとIOサブシステムとで二重化の方式が異なる。CPUサブシステムは、クロック単位でハードウェア的に完全に同期させる。これをロックステップと呼ぶ。両方とも完全に同じ動作をしているので、故障発生時は対象となるCPUサブシステムを論理的に切り離し、正常なCPUサブシステムで動作を続行させる。故に、CPUサブシステムには稼働系、待機系の概念はない。他方、IOサブシステムは、一方を稼働系、他方を待機系として使用し、ソフトウェアによる二重化制御を行う。稼働系のIOサブシステムで故障が発生した場合、これをソフトウェアで検出し、直ちに待機系側に切り替える。ハードウェア方式のFTサーバは、極めて高い可用性を実現することができる。しかし、特殊なハードウェアで構成されるため、同程度の性能を持つPCサーバと比較して導入コストがかかる。
ソフトウェア方式のFTサーバは、物理計算機上で複数のOSを動作させることを可能とした仮想化技術を使用する。物理計算機上に仮想的に構築される計算機を、仮想計算機あるいは仮想マシンと呼ぶ。ソフトウェア方式のFTサーバでは、物理計算機を冗長化し、稼働系の仮想計算機と待機系の仮想計算機とをそれぞれ異なる物理計算機上に配置する。稼働系の仮想計算機が属する物理計算機でハードウェアの故障等の障害が発生した場合、その仮想計算機が行っている処理を他の物理計算機上の待機系の仮想計算機で継続して実行する。アプリケーションやOSから見て、透過的にサービスを継続するために、ソフトウェア方式のFTサーバでは、稼働系と待機系の仮想計算機の状態を一致させる処理、すなわち同期を行う。
稼働系と待機系の仮想計算機を同期させる方式には、主に仮想ロックステップ方式とチェックポイント方式の2つの方式がある。仮想ロックステップ方式は、稼働系の仮想計算機に対する入力を、待機系の仮想計算機に対しても与えることにより、待機系の仮想計算機の状態を稼働系の仮想計算機と同じように遷移させる。仮想計算機間の同期に必要なデータ量が少なくて済む利点がある反面、稼働系と待機系とでCPUの種類が異なると動作しないといった課題がある。
他方、チェックポイント方式は、定期的に、稼働系の仮想計算機のイメージ(CPU、メモリ、ストレージなど)を待機系に送り、待機系の仮想計算機の状態を稼働系の仮想計算機の状態に一致させる。チェックポイント方式は、仮想ロックステップ方式と比較して実装が容易であり、CPUの特定の機能に依存しないため、幅広い製品に実装できる利点がある。その反面、仮想計算機のイメージはデータ量が多いため、仮想ロックステップ方式よりも1回の同期にかかるオーバーヘッドが大きいという課題がある。
この課題を解決するために、前回のチェックポイント以降に更新された稼働系の仮想計算機のイメージのみを待機系に送ることが本発明に関連する第1の関連技術として提案されている(例えば非特許文献1参照)。この第1の関連技術では、チェックポイントが到来すると、稼働系の仮想計算機を一旦停止させることでメインメモリへの更新を遮断し、前回のチェックポイント以降に更新のあったメインメモリのページであるダーティページの全てを、メインメモリに設けたバッファにローカルコピーする。そして、ローカルコピーを完了すると、停止させていた稼働系の仮想計算機を再起動し、並行して、上記コピーされたダーティページを上記バッファから待機系へと転送する。
Brendan Cully、外5名、"Remus: HighAvailability via Asynchronous Virtual Machine Replication"、[online]、[平成24年9月5日検索]、インターネット〈URL:http://www.cs.ubc.ca/~andy/papers/remus-nsdi-final.pdf〉
しかしながら、メモリ中の転送対象となるページを全てローカルコピーするためにはそれ相当の処理時間を必要とする。上述した本発明に関連する第1の関連技術では、転送対象データを全てコピーし終えるまでメモリの更新を停止させなければならないため、計算機の性能が低下する。
本発明の目的は、上述した課題、すなわち、或る時点のメモリ内容を計算機外部へ転送する際には全転送対象データを全てコピーし終えるまでメモリの更新を停止させる必要がある、という課題を解決するデータ転送装置を提供することにある。
本発明の第1の観点に係るデータ転送装置は、
計算機に備わるデータ転送装置であって、
データのコピーを作成するコピー手段と、
データを一時的に退避するための退避領域と、
データを自計算機外部へ送信する通信手段と、
複数の小領域から構成されるメモリの記憶データを自計算機外部へ転送する制御を行う制御手段とを有し、
前記制御手段は、
前記メモリ中の転送対象とする複数の前記小領域の中から、前記退避領域を経由して自計算機外部へ転送する前記小領域を間接転送小領域として、また、前記退避領域を経由せずに自計算機外部へ転送する前記小領域を直接転送小領域として、それぞれ選択し、
自計算機から前記メモリへの更新を停止させた期間内に、前記間接転送小領域として選択した前記小領域の記憶データを前記コピー手段を使用して前記メモリから前記退避領域にコピーし、該コピーと並行して、前記直接転送小領域として選択した前記小領域の記憶データを前記通信手段を使用して前記メモリから自計算機外部へ転送し、
前記退避領域にコピーされた前記小領域の記憶データを、前記通信手段を使用して前記退避領域から自計算機外部へ転送する。
本発明の第2の観点に係るデータ伝送方法は、
複数の小領域から構成されるメモリの記憶データを、計算機外部へ転送するデータ転送方法であって、
前記メモリ中の転送対象とする複数の前記小領域の中から、前記退避領域を経由して自計算機外部へ転送する前記小領域を間接転送小領域として、また、前記退避領域を経由せずに自計算機外部へ転送する前記小領域を直接転送小領域として、それぞれ選択し、
自計算機から前記メモリへの更新を停止させた期間内に、前記間接転送小領域として選択した前記小領域の記憶データを前記メモリから前記退避領域にコピーし、該コピーと並行して、前記直接転送小領域として選択した前記小領域の記憶データを前記メモリから自計算機外部へ転送し、
前記退避領域にコピーされた前記小領域の記憶データを、前記退避領域から自計算機外部へ転送する。
本発明の第3の観点に係るプログラムは、
コンピュータを、
データのコピーを作成するコピー手段と、
データを一時的に退避するための退避領域と、
データを自計算機外部へ送信する通信手段と、
複数の小領域から構成されるメモリの記憶データを自計算機外部へ転送する制御を行う制御手段であって、
前記メモリ中の転送対象とする複数の前記小領域の中から、前記退避領域を経由して自計算機外部へ転送する前記小領域を間接転送小領域として、また、前記退避領域を経由せずに自計算機外部へ転送する前記小領域を直接転送小領域として、それぞれ選択し、
自計算機から前記メモリへの更新を停止させた期間内に、前記間接転送小領域として選択した前記小領域の記憶データを前記コピー手段を使用して前記メモリから前記退避領域にコピーし、該コピーと並行して、前記直接転送小領域として選択した前記小領域の記憶データを前記通信手段を使用して前記メモリから自計算機外部へ転送し、
前記退避領域にコピーされた前記小領域の記憶データを、前記通信手段を使用して前記退避領域から自計算機外部へ転送する制御手段と
して機能させる。
本発明は上述したような構成を有するため、或る時点のメモリ内容を計算機外部へ転送する際のメモリ更新停止期間を短縮でき、それによって計算機の性能を向上することができる。
本発明の第1の実施形態のブロック図である。 本発明の第1の実施形態の動作手順を示すフローチャートである。 本発明の第1の実施形態においてメモリコピーと転送動作とが並行して実施されている様子を示すタイムチャートである。 本発明の第2の実施形態のブロック図である。 本発明の第2の実施形態におけるメモリ管理手段の動作手順を示すフローチャートである。 本発明の第2の実施形態におけるログ管理情報記憶部およびログ記憶部を説明するための図である。 本発明の第2の実施形態における制御モジュールの動作手順を示すフローチャートである。 本発明の第2の実施形態におけるコピーモジュールの動作手順を示すフローチャートである。 本発明の第2の実施形態における転送モジュールの動作手順を示すフローチャートである。 本発明の第2の実施形態におけるカレント領域番号記憶部を説明するための図である。 本発明の第2の実施形態における仮想計算機の停止期間において、メモリコピーとデータ転送動作とが並行して実施され、仮想計算機の実行期間において、ダーティページのアドレスが記録される様子を示すタイムチャートである。
次に本発明の実施の形態について図面を参照して詳細に説明する。
[第1の実施形態]
図1を参照すると、本発明の第1の実施形態にかかるデータ転送装置100は、計算機の1つのコンポーネントとして、計算機110に備えられている。
データ転送装置100は、計算機110のメモリ120に記憶されたデータを計算機外部へ送信する機能を有する。メモリ120は、計算機110の例えばメインメモリ(主記憶)である。メモリ120は、複数の小領域121に分割して管理されている。小領域は、例えばページあるいはセグメントであってよい。
データ転送装置100は、コピー部101と、退避領域102と、通信部103と、制御部104とを有する。コピー部101は、データのコピーを作成する機能を有する。退避領域102は、データを一時的に退避するための記憶領域である。退避領域102は、計算機110のメインメモリに設けられていても良いし、メインメモリとは独立した他のメモリ上に設けられていても良い。通信部103は、データを通信路130を通じて自計算機外部へ送信する機能を有する。通信路130は、専用の通信路であっても良いし、インターネット等の公衆通信路であっても良い。
制御部104は、メモリ120の記憶データを自計算機外部へ転送する制御を司る。より具体的には、制御部104は、メモリ120中の転送対象とする複数の小領域121の中から、退避領域102を経由して自計算機外部へ転送する小領域を間接転送小領域として、また、退避領域102を経由せずに自計算機外部へ転送する小領域を直接転送小領域として、それぞれ選択する機能を有する。また制御部104は、自計算機からメモリ120への更新を停止させた期間内に、間接転送小領域として選択した小領域121の記憶データをコピー部101を使用してメモリ120から退避領域102にコピーし、このコピーと並行して、直接転送小領域として選択した小領域121の記憶データを通信部103を使用してメモリ120から自計算機外部へ転送する機能を有する。さらに制御部104は、退避領域102にコピーされた小領域121の記憶データを、通信部103を使用して退避領域102から自計算機外部へ転送する機能を有する。
次に本実施形態の動作を説明する。図2は本実施形態の動作手順を示すフローチャートである。
データ転送装置100の制御部104は、チェックポイントが到来する毎に、図2に示される一連の処理を実行するための制御を開始する。まず、制御部104は、メモリ120中の転送対象とする複数の小領域121の中から、自計算機内の退避領域102を経由して自計算機外部へ転送する小領域(間接転送小領域)と、退避領域102を経由せずに自計算機外部へ転送する小領域(直接転送小領域)とを選択する(ステップS101)。
次に制御部104は、自計算機からメモリ120への更新を停止させた期間内に、間接転送小領域として選択した小領域121の記憶データをコピー部101を使用してメモリ120から退避領域102にコピーし、該コピーと並行して、直接転送小領域として選択した小領域121の記憶データを通信部103を使用してメモリ120から自計算機外部へ転送する(ステップS102)。
次に制御部104は、退避領域102にコピーされた小領域121の記憶データを、通信部103を使用して退避領域102から自計算機外部へ転送する(ステップS103)。
図3は本実施形態においてメモリコピーと転送動作とが並行して実施されている様子を示すタイムチャートである。図3を参照すると、本実施形態においては、或るチェックポイントCPの時点で転送対象となる小領域121が複数存在する場合、メモリ120から退避領域102へ小領域121の記憶データをコピーする動作と、メモリ120から計算機外部へ小領域121の記憶データを転送する動作とが並行して行われる。メモリ120上の転送対象となる小領域121の全てが、退避領域102へコピーされるか、或いは計算機外部へ転送されてしまえば、メモリ120上の当該転送対象となる小領域121はもはや更新を禁止する必要はない。すなわち、メモリ120の更新を停止させなければならない期間は、チェックポイントCPの時点から、メモリ120から退避領域102へ小領域121の記憶データをコピーする動作が終了し、かつ、メモリ120から計算機外部へ小領域121の記憶データを転送する動作が終了した時点までとなる。
今、1つの小領域121の記憶データをメモリ120から退避領域102へコピーするのに要する時間をTc、1つの小領域121の記憶データをメモリ120から計算機外部へ送信するのに要する時間をTsとする。また、転送対象となる小領域121の個数をn、そのうち退避領域102へコピーされる小領域121の個数をm(<n)とする。このとき、本実施形態におけるメモリ更新禁止期間は次式で与えられる。
max(mTc,(n−m)Ts) …(1)
ここで、max(X,Y)は、XとYのうちの最大値を表す。
従って、上記の(1)式で与えられるメモリ更新禁止期間が最小となるように、mの値、すなわち間接転送小領域の個数mと直接転送小領域の個数(n−m)を定めることで、メモリ更新禁止期間を最小にすることができる。但し、本発明では、必ずしも最小化する必要はない。転送対象となる小領域121の一部を直接転送小領域とし、残りを間接転送小領域とした場合に、転送対象となる小領域121の全てを間接転送小領域とした場合に比べて必要なメモリ更新禁止期間が短縮されるならば、どのようなmの値であってもよい。
上記の(1)式で与えられるメモリ更新禁止期間が最小となるように、間接転送小領域の個数mと直接転送小領域の個数(n−m)を定める具体的な方法は幾つか考えられる。
例えば、制御部104は、チェックポイントCP時点で確定する転送対象となる小領域121の個数nと、予め記憶している上記Tc、Tsの値とを用いて、上記(1)式の値を最小化するようなmを計算によって求めるようにして良い。
或いは、間接転送小領域の個数mと直接転送小領域の個数(n−m)を事前に計算で求めるのではなくて、結果的にそのようなmの値でローカルコピーとデータ転送とが並列化されるように制御しても良い。具体的には、制御部104は、先ず、メモリ120中の転送対象とする複数の小領域121の中から間接転送小領域としての小領域121と直接転送小領域としての小領域121とをそれぞれ1つずつ選択する。次に、間接転送小領域として選択した1つの小領域121の記憶データがメモリ120から退避領域102へコピーする処理が完了する毎に、間接転送小領域および直接転送小領域の何れにも未だ選択されていない転送対象とする小領域121が残っている場合に、間接転送小領域とする次の一つの小領域121を選択する。また、直接転送小領域として選択した1つの小領域121の記憶データがメモリ120から自計算機外部へ転送する処理が完了する毎に、間接転送小領域および直接転送小領域の何れにも未だ選択されていない転送対象とする小領域121が残っている場合に、直接転送小領域とする次の一つの小領域121を選択する。
上述したように本実施形態によれば、或る時点のメモリ内容を計算機外部へ転送する際のメモリ更新停止期間を短縮でき、それによって計算機の性能を向上することができる。
その理由は、小領域121の記憶データをメモリ120から退避領域102にコピーする動作と並行して、他の小領域121の記憶データをメモリ120から自計算機外部へ転送する動作を行うため、転送対象となる全ての小領域121をメモリ120から退避領域102へコピーする場合に比べて、メモリ120から退避領域102を経由せずに自計算機外部へ転送する小領域の個数分だけ、コピーの総時間が短縮されるためである。
[第2の実施形態]
次に、本発明の第2の実施形態にかかるFTサーバについて説明する。
図4を参照すると、本実施形態にかかるFTサーバは、主系サーバ1と従系サーバ2とを備えている。主系サーバ1は通常時に業務を実行するサーバであり、従系サーバ2は主系サーバ1の障害時に、主系サーバ1が実行していた業務を引き継ぐサーバである。主系サーバ1は、従系サーバ2への業務の引き継ぎを可能にするため、チェックポイントとなる毎に、前回のチェックポイント以降に更新されたメモリ上のページ(ダーティページ)の内容を従系サーバ2へ送信し、両サーバ1,2のメモリの内容を一致させるようにしている。即ち、本実施形態は、チェックポイント方式によるFTサーバである。
このような機能を有する主系サーバ1は、物理計算機10と、物理計算機10上で動作するホストOS20と、ホストOS20上で動作する仮想マシンモニタ30及び冗長化ソフトウェア50と、仮想マシンモニタ30上で動作する仮想計算機40とから構成されている。
物理計算機10は、メモリ11と、DMA(Direct Memory Access)コントローラ12と、退避領域13と、CPU(図示せず)内に設けられた仮想化支援機構14と、内部にRDMA(Remote Direct Memory Access)コントローラ16を有するネットワークアダプタ15と、ログ管理情報記憶部17と、ログ記憶部18と、カレント領域番号記憶部19とを備えている。ここで、メモリ11は、物理計算機10が備えているメモリ(メインメモリ)の内の、仮想計算機40に割り当てられている部分を示している。換言すれば、メモリ11は、仮想計算機40の状態を表している。また、ログ管理情報記憶部17とログ記憶部18とカレント領域番号記憶部19とは、例えば物理計算機10が備えているメモリ(メインメモリ)に設けられる。
ホストOS20は、RDMAコントローラ16用のRDMAドライバ21と、DMAコントローラ12用のDMAドライバ22とを含んでいる。
仮想マシンモニタ30は、ゲストOS41を有する仮想計算機40を提供するものであり、メモリ管理手段31を備えている。メモリ管理手段31は、ページ毎にダーティか否かを示すダーティビットを管理する機能を有している。メモリ管理手段31は、チェックポイント時点でメモリ11のページに対応するダーティビットを全て“0”(非ダーティ)に初期化し、以降、メモリ11のページが更新されると、当該ページに対応するダーティビットを“1”(ダーティ)にセットする。このため、次のチェックポイントが到来したときに、メモリ11に対応する全ページのダーティビットを検査すれば、前回のチェックポイントから今回のチェックポイントまでに更新されたメモリ11の全ページのリストは取得できる。しかし、この方法では、チェックポイント以降に、全ダーティビットをスキャンしなければならないので、チェックポイント時点で速やかにダーティページのリストは得られない。そこで、本実施形態のメモリ管理手段31は、前回のチェックポイントから現在までの間に、ゲストOS41によってメモリ11の新たなページが更新される毎にそのページ番号(ダーティページの先頭アドレス)をログ記憶部18に記録することによって、チェックポイントが到来した時点ではダーティページのリストがログ記憶部18に既に生成されているようにしている。なお、ログ記憶部18に記録されるダーティページのリストの先頭アドレスやリスト長は、ログ管理情報記憶部17に記憶されるようになっている。
このように仮想計算機40の実行中に当該仮想計算機40に割り当てられているメモリ11のダーティページのリストを冗長化ソフトウェア50から参照できるメモリ上に動的に生成する機能を、ダーティページロギング機能と呼ぶ。本実施形態では、仮想マシンモニタ30にダーティページロギング機能を持たせたが、仮想化支援機構14にダーティページロギング機能を持たせるようにしてもよい。
冗長化ソフトウェア50は、従系サーバ2内の図示しない冗長化ソフトウェアと協調して、主系サーバ1と従系サーバ2とをFTサーバとして機能させるためのソフトウェアである。主系サーバ1側の冗長化ソフトウェア50は、メモリ11の記憶データを主系サーバ1の外部に転送する制御を司る制御部としての機能を有する。より具体的には、冗長化ソフトウェア50は、制御モジュール51と、コピーモジュール52と、転送モジュール53とを備えている。
制御モジュール51は、チェックポイントにおいて、仮想計算機40を一時停止させる機能や、コピーモジュール52及び転送モジュール53を起動する機能を有する。更に、制御モジュール51は、コピーモジュール52及び転送モジュール53の処理が完了したとき、仮想計算機40の処理を再開させる機能や、DMAドライバ22に対して、コピーモジュール52によって退避領域13にコピー(ローカルコピー)されているデータの転送を指示する機能を有する。
コピーモジュール52は、ログ記憶部18に記憶されているダーティページのリストを参照して、メモリ11中の一部のダーティページの内容を、DMAドライバ22及びDMAコントローラ12を利用して、メモリ11から退避領域13にローカルコピーする機能を有する。
転送モジュール53は、ログ記憶部18に記憶されているダーティページのリストを参照して、メモリ11中の他の一部のダーティページの内容を、RDMAドライバ21およびRDMAコントローラ16を利用して、メモリ11から従系サーバ2へ転送(直接転送)する機能を有する。
そして、本実施形態では、コピーモジュール52によるローカルコピーと転送モジュール53による直接転送とが、メモリ11中の互いに異なるダーティページに対して並行して行われるようにするために、コピーモジュール52は、ログ記憶部18に記憶されているダーティページのリスト18Aの先頭から最後尾に向けて順に、ローカルコピー処理の対象とするダーティページを取得し、他方、転送モジュール53は逆に当該リストの最後尾から先頭に向けて順に、直接転送処理の対象とするダーティページを取得するようにしている。また、双方のモジュール52、53が、他方のモジュールの処理の進捗状況を把握できるようにするために、ダーティページのリストのどのページまでローカルコピーの処理を終えたかを示すコピー用領域番号と、どのページまで直接転送の処理を終えたかを示す転送用領域番号とを、カレント領域番号記憶部19に記録するようにしている。
次に、本実施形態の動作を説明する。
先ず、メモリ管理手段31の動作を説明する。図5は、メモリ管理手段31の動作手順を示すフローチャートである。
メモリ管理手段31は、ゲストOS41によってメモリ11上のページが更新されると(ステップS51がYes)、上記ページに対応するダーティフラグが“1”になっているか否かを判定する(ステップS52)。ダーティフラグは、対応するページがダーティページであるか否かを示すものであり、本実施形態では、ダーティページに対応するダーティフラグは“1”になっている。
そして、ダーティフラグが“0”の場合(ステップS52がNo)は、上記ページがダーティページになったことを示すために、上記ページに対応するダーティフラグを“1”に変更する(ステップS53)と共に、上記ページのページ番号(例えば、Pk)をログ記憶部18のダーティページのリストに記録し(ステップS54)、その後、再びステップS51の処理を行う。ここで、ステップS54の処理を図6を参照して詳しく説明する。図6は、ログ記憶部18に記憶されているダーティページのリスト18Aの一例と、ログ管理情報記憶部17に記憶されている情報の一例とを示している。
先ず、ログ管理情報記憶部17から、ダーティページのリスト18Aの先頭を示す開始アドレスと、当該リストの最後尾を示す最大領域番号とを入力する。その後、最大領域番号をインクリメント(+1)し、インクリメント後の最大領域番号によって示されるリスト18Aの領域に、今回のダーティページのページ番号「Pk」を記録すると共に、インクリメント後の最大領域番号をログ管理情報記憶部17にライトする。例えば、図6に示すように、ログ管理情報記憶部17から入力した最大領域番号が「n」の場合は、領域番号「(n+1)」の領域にダーティページのページ番号「Pk」を記録する。以上がステップS54で行われる処理である。
これに対して、ダーティフラグが“1”の場合(ステップS52がYes)は、既に上記ページのページ番号「Pk」は、ログ記憶部18のダーティページリスト18Aに記録済みなので、ステップS51の処理に戻る。
また、メモリ管理手段31は、チェックポイントになった場合(ステップS55がYes)は、全てのページのダーティフラグを“0”に初期化すると共に、ログ管理情報記憶部17中の最大領域番号を「0」に初期化した後(ステップS56)、ステップS51の処理に戻る。
次に、冗長化ソフトウェア50内の制御モジュール51、コピーモジュール52、及び、転送モジュール53の動作を説明する。図7、図8、及び、図9は、それぞれ制御モジュール51、コピーモジュール52、及び、転送モジュール53の動作手順を示すフローチャートである。
制御モジュール51は、チェックポイントになると、仮想計算機40を一時停止させ(図7のステップS71)、メモリ11の更新を禁止する。次に、制御モジュール51は、当該チェックポイント時点でログ記憶部18に作成されているダーティページリスト18Aの開始アドレスから1だけ減じた値と、最終アドレス(最大領域番号)に1を加えた値とを、コピー用領域番号と転送用領域番号との初期値として、カレント領域番号記憶部19に記録する(ステップS72、図10参照)。ダーティページリスト18Aの最終アドレス(最大領域番号)は、ログ管理情報記憶部17から入力する。
その後、制御モジュール51は、コピーモジュール52と転送モジュール53とを起動し(ステップS73)、両モジュール52,53から完了通知が送られてくるのを待つ(ステップS74)。
コピーモジュール52は、起動されると、カレント領域番号記憶部19を排他的にアクセスするためにロック取得処理を行う(ステップS81)。排他制御のためのロック機構は計算機分野では周知の技術であるため、詳細な説明は省略する。コピーモジュール52は、ロック取得処理に成功した場合に限り、ステップS82以降の処理に進み、ロック取得処理に失敗した場合には、例えば一定時間経過後に再度ロック取得処理を試みる。
コピーモジュール52は、ステップS82では、カレント領域番号記憶部19からコピー用領域番号と転送用領域番号とをリードする。次にコピーモジュール52は、上記リードしたコピー用領域番号をインクリメント(+1)した後の値と、上記リードした転送用領域番号とを比較する(ステップS83)。インクリメント後のコピー用領域番号の方が転送用領域番号よりも小さい場合(ステップS84がYes)は、当該インクリメント後のコピー用領域番号で示されるダーティページリスト18Aのダーティページは、ローカルコピーの対象としてよい。このため、コピーモジュール52は、上記インクリメント後のコピー用領域番号でカレント領域番号記憶部19に記録されているコピー用領域番号を上書きし(ステップS84)、取得したロックを解放する処理を行った後(ステップS85)、DMAドライバ22に対して、上記ローカルコピー対象のダーティページをメモリ11から退避領域13へローカルコピーする実行の指示を行う(ステップS86)。その後、DMAドライバ22からDMA転送の終了通知を受けると、ステップS81の処理に戻る。
ここで、ステップS86で行う処理の一例を以下に説明する。先ず、コピーモジュール52は、上記インクリメント後のコピー用領域番号によって示される、ログ記憶部18上のダーティページリスト18Aのページ番号を入力する。このページ番号は、今回ローカルコピーするダーティページの開始アドレスに相当する。次に、コピーモジュール52は、退避領域13の先頭アドレスと、自モジュール52で保持している現在までのコピー回数(初期値は0)と、ページサイズとに基づいて、転送先のアドレス(開始アドレス)を求める。より具体的には、(退避領域13の先頭アドレス)+(ページサイズ)×(コピー回数)なる演算を行うことにより、転送先の開始アドレスを求める。
その後、コピーモジュール52は、DMAドライバ22に対して、転送元の開始アドレスとして今回ローカルコピーするダーティページの開始アドレスを、レングスとしてページサイズを、転送先の開始アドレスとして上記演算で求めたアドレスをそれぞれ指定した転送指示を出力する。これにより、DMAドライバ22はDMAコントローラ12を制御して、転送元の開始アドレスによって示される、メモリ11上の1ページ分のダーティページの内容を、退避領域13にコピー(DMA転送)する。DMA転送の終了は、DMAコントローラ12からDMAドライバ22を介してコピーモジュール52に通知される。コピーモジュール52は、コピー回数を+1する。以上がステップS86で行う処理の一例である。
これに対して、ステップS83において、インクリメント後のコピー用領域番号が転送用領域番号以上であると判断した場合はローカルコピーすべきダーティページはもはや存在しないため、コピーモジュール52は制御モジュール51に対して完了通知を送り(ステップS87)、自らの処理を終了する。この完了通知には、コピーモジュール52が保持しているコピー回数あるいは退避領域13の最終コピー位置が含まれる。
一方、転送モジュール53は、制御モジュール51によって起動されると、カレント領域番号記憶部19を排他的にアクセスするためにロック取得処理を行い(図9のステップS91)、ロックの取得に成功すると、カレント領域番号記憶19からコピー用領域番号と転送用領域番号とをリードする(ステップS92)。
次いで、転送モジュール53は、上記リードしたコピー用領域番号と上記リードした転送用領域番号から1だけデクリメントした値とを比較する(ステップS93)。そして、転送用領域番号から1だけデクリメントした値がコピー用領域番号よりも大きい場合(ステップS93がYes)は、当該デクリメント後の転送用領域番号で示されるダーティページリスト18Aのダーティページは、直接転送の対象としてよい。このため、転送モジュール53は、上記デクリメント後の転送用領域番号でカレント領域番号記憶部19に記録されている転送用領域番号を上書きし(ステップS94)、取得したロックを解放する処理を行った後(ステップS95)、RDMAドライバ21に対して、上記直接転送対象のダーティページをメモリ11から従系サーバ2へRDMA転送する実行の指示を行う(ステップS96)。その後、RDMAドライバ21からRDMA転送の終了通知を受けると、ステップS91の処理に戻る。
ここで、ステップS96で行う処理の一例を以下に説明する。先ず、転送モジュール53は、カレント領域番号記憶部19中の転送用領域番号によって示される、ログ記憶部18上のダーティページリスト18Aのページ番号を入力する。このページ番号はダーティページの開始アドレスに相当する。その後、転送モジュール53は、RDMAドライバ21に対して転送元の開始アドレス及びレングス(ページサイズ)と、転送先を示す情報(従系サーバ2を示す情報)とを含んだ転送指示を出力する。これにより、RDMAドライバ21はネットワークアダプタ15内のRDMAコントローラを制御して、開始アドレス及びレングスよって示される、メモリ11上のダーティページの内容を従系サーバ2に送信(RDMA転送)する。以上がステップS96で行う処理の一例である。
これに対して、ステップS93において、転送用領域番号がコピー用領域番号以下であると判定した場合は、直接転送すべきダーティページはもはや存在しないため、転送モジュール53は制御モジュール51に対して完了通知を送り(ステップS97)、自らの処理を終了する。
さて、コピーモジュール52及び転送モジュール53からの完了通知を待っていた制御モジュール51は、両モジュール52,53からの完了通知を受信すると(図7のステップS74がYes)、仮想計算機40の処理を再開させる(ステップS75)。次いで、制御モジュール51は、RDMAドライバ21及びネットワークアダプタ15内のRDMAコントローラ16を利用して、退避領域13にローカルコピーされているダーティページの内容を退避領域13から従系サーバ2へ転送し(ステップS76)、その後、処理を終了する。
ここで、ステップS76で行う処理の一例を以下に説明する。モジュール51は、先ず、コピーモジュール52からの完了通知に含まれていたコピー回数と、ページサイズとに基づいて、RDMA転送するダーティページのレングスの合計値を求める。より具体的には、(ページサイズ)×(コピー回数)なる演算を行うことにより、レングスの合計値を求める。その後、制御モジュール51は、RDMAドライバ21に対して転送元の開始アドレス(退避領域13の先頭アドレス)及びRDMA転送するダーティページのレングスの合計値と、転送先を示す情報(従系サーバ2を示す情報)とを含んだ転送指示を出力する。これにより、RDMAドライバ21はネットワークアダプタ15内のRDMAコントローラ16を制御して、開始アドレス及びレングスの合計値によって示される、退避領域13上の領域にローカルコピーされているダーティページの内容を従系サーバ2に送信(RDMA転送)する。以上がステップS76で行う処理の一例である。
図11は、仮想計算機40の停止期間においてローカルコピーと直接データ転送とが並行して行われ、また仮想計算機40の実行中にダーティページのページ番号が記録される様子を示すタイムチャートである。図11を参照すると、本実施形態では、或るチェックポイントCP1の時点で、転送対象となるダーティページが複数存在する場合、メモリ11から退避領域13へダーティページのデータをローカルコピーする動作と、メモリ11から従系サーバ2へダーティページのデータを転送する動作とが並行して行われる。そして、メモリ11から退避領域13へのコピー動作が終了し、且つ、メモリ11から従系サーバ2への転送動作が完了すると、仮想計算機40は実行状態となる。その後、稼働計算機40で動作するゲストOS41によりメモリ11上のページが更新されると、そのページ(ダーティページ)のアドレスが、チェックポイント時点で一旦初期化されたログ記憶部18のダーティページリスト18Aに再び記録されていく。
このように本実施形態によれば、チェックポイント方式によるFTサーバにおいて、主系サーバ1で動作する仮想計算機40の状態を表すメモリ11の内容をチェックポイント毎に主系サーバ1から従系サーバ2へ転送する際の、稼働計算機40の停止期間を短縮でき、それによって稼働計算機40の性能を向上することができる。
その理由の一つは、メモリ11中のダーティページをメモリ11から退避領域13にコピーする動作と並行して、メモリ11中の他のダーティページをメモリ11から退避領域13を経由せずに従系サーバ2へ転送する動作を行うため、全てのダーティページをメモリ11から退避領域13へコピーする場合に比べて、メモリ11から退避領域12を経由せずに従系サーバ2へ転送するダーティページの個数分だけ、コピーの総時間が短縮されるためである。
他の理由は、メモリ管理手段31が有するダーティページロギング機能により、チェックポイントが到来した時点でダーティページのリストがログ記憶部18に既に生成されているため、ダーティページリストを作成するために仮想計算機40を停止させる必要がなくなるためである。
さらに別の理由は、RDMA方式を使用して、ダーティページをメモリ11から退避領域13を経由せずに従系サーバ2を高速に転送できるためである。
[その他の実施形態]
上記の第2の実施形態では、主系サーバ1で動作する仮想計算機40は1台としたが、複数の仮想計算機40が動作していてもよい。主系サーバ1で第1の仮想計算機と第2の仮想計算機とが動作する場合、チェックポイント毎に、第1の仮想計算機の状態を表すメモリの記憶データと、第2の仮想計算機の状態を表すメモリの記憶データとが、主系サーバ1から従系サーバ2へ転送される。このとき、第1の仮想計算機の状態を表すメモリから間接転送小領域と直接転送小領域とを選択すると共に、第2の仮想計算機の状態を表すメモリから間接転送小領域と直接転送小領域とを選択することにより、ローカルコピーと直接転送とを並列に実施してもよい。これとは違って、第1の仮想計算機の状態を表すメモリの小領域は全て間接転送小領域として選択し、第2の仮想計算機の状態を表すメモリの小領域は全て直接転送小領域として選択し、ローカルコピーと直接転送とを並列に実施してもよい。
また、上記の第2の実施形態では、主系サーバ1のプロセッサ構成やメインメモリ構成について特に言及しなかったが、本発明は、単一プロセッサ構成の主系サーバ1に適用することができることは勿論、NUMA(Non Uniformed Memory Architecture)等を採用する密結合マルチプロセッサ構成の主系サーバ1に対しても適用可能である。
100 データ転送装置
101 コピー部
102 退避領域
103 通信部
104 制御部
110 計算機
120 メモリ
121 小領域
130 通信路
1 主系サーバ
2 従系サーバ
10 物理計算機
11 メモリ
12 DMAコントローラ
13 退避領域
14 仮想化支援機構
15 ネットワークアダプタ
16 RDMAコントローラ
17 ログ管理情報記憶部
18 ログ記憶部
18A ダーティページのリスト
19 カレント領域番号記憶部
20 ホストOS
21 RDMAドライバ
22 DMAドライバ
30 仮想マシンモニタ
31 メモリ管理手段
40 仮想計算機
41 ゲストOS
50 冗長化ソフトウェア
51 制御モジュール
52 コピーモジュール
53 転送モジュール

Claims (22)

  1. 計算機に備わるデータ転送装置であって、
    データのコピーを作成するコピー手段と、
    データを一時的に退避するための退避領域と、
    データを自計算機外部へ送信する通信手段と、
    複数の小領域から構成されるメモリの記憶データを自計算機外部へ転送する制御を行う制御手段とを有し、
    前記制御手段は、
    前記メモリ中の転送対象とする複数の前記小領域の中から、前記退避領域を経由して自計算機外部へ転送する前記小領域を間接転送小領域として、また、前記退避領域を経由せずに自計算機外部へ転送する前記小領域を直接転送小領域として、それぞれ選択し、
    自計算機から前記メモリへの更新を停止させた期間内に、前記間接転送小領域として選択した前記小領域の記憶データを前記コピー手段を使用して前記メモリから前記退避領域にコピーし、該コピーと並行して、前記直接転送小領域として選択した前記小領域の記憶データを前記通信手段を使用して前記メモリから自計算機外部へ転送し、
    前記退避領域にコピーされた前記小領域の記憶データを、前記通信手段を使用して前記退避領域から自計算機外部へ転送する
    データ転送装置。
  2. 前記制御手段は、前記選択では、前記メモリ中の転送対象とする複数の前記小領域の中から前記間接転送小領域としての前記小領域と前記直接転送小領域としての前記小領域をそれぞれ1つずつ選択し、前記間接転送小領域として選択した1つの前記小領域の記憶データが前記メモリから前記退避領域へコピーする処理が完了する毎に、前記間接転送小領域および前記直接転送小領域の何れにも未だ選択されていない転送対象とする前記小領域が残っている場合に、前記間接転送小領域とする次の一つの前記小領域を選択し、また、前記直接転送小領域として選択した1つの前記小領域の記憶データが前記メモリから自計算機外部へ転送する処理が完了する毎に、前記間接転送小領域および前記直接転送小領域の何れにも未だ選択されていない転送対象とする前記小領域が残っている場合に、前記直接転送小領域とする次の一つの前記小領域を選択する
    請求項1に記載のデータ転送装置。
  3. 前記制御手段は、前記選択では、前記メモリ中の転送対象とする複数の前記小領域を、前記間接転送小領域と前記直接転送小領域とに二分割し、該二分割では、前記間接転送小領域として選択された全ての前記小領域の記憶データを前記コピー手段を使用して前記メモリから前記退避領域にコピーするのに必要な時間と、前記直接転送小領域として選択された全ての前記小領域の記憶データを前記通信手段を使用して前記メモリから自計算機外部へ転送するのに必要な時間とのうちの最大値が最小となるように行う
    請求項1に記載のデータ転送装置。
  4. 前回のチェックポイント以降に更新された前記小領域のリストを記憶するログ記憶手段と、
    前記メモリの前記小領域が更新されたときに前記リストを更新するメモリ管理手段と
    をさらに有し、
    前記制御手段は、前記リストを参照して、前記間接転送小領域および前記直接転送小領域を選択する
    請求項1、2または3に記載のデータ転送装置。
  5. 前記通信手段は、RDMA転送によりデータを転送する
    請求項1乃至4の何れかに記載のデータ転送装置。
  6. 前記通信手段は、ネットワークアダプタである
    請求項1乃至5の何れかに記載のデータ転送装置。
  7. 前記コピー手段は、DMA転送によりデータを前記退避領域にコピーする
    請求項1乃至6の何れかに記載のデータ転送装置。
  8. 前記計算機は、FTサーバを構成する主系の計算機であり、前記自計算機外部は、前記FTサーバを構成する従系の計算機である
    請求項1乃至7の何れかに記載のデータ転送装置。
  9. 複数の小領域から構成されるメモリの記憶データを、計算機外部へ転送するデータ転送方法であって、
    前記メモリ中の転送対象とする複数の前記小領域の中から、退避領域を経由して自計算機外部へ転送する前記小領域を間接転送小領域として、また、前記退避領域を経由せずに自計算機外部へ転送する前記小領域を直接転送小領域として、それぞれ選択し、
    自計算機から前記メモリへの更新を停止させた期間内に、前記間接転送小領域として選択した前記小領域の記憶データを前記メモリから前記退避領域にコピーし、該コピーと並行して、前記直接転送小領域として選択した前記小領域の記憶データを前記メモリから自計算機外部へ転送し、
    前記退避領域にコピーされた前記小領域の記憶データを、前記退避領域から自計算機外部へ転送する
    データ転送方法。
  10. 前記選択では、前記メモリ中の転送対象とする複数の前記小領域の中から前記間接転送小領域としての前記小領域と前記直接転送小領域としての前記小領域をそれぞれ1つずつ選択し、前記間接転送小領域として選択した1つの前記小領域の記憶データが前記メモリから前記退避領域へコピーする処理が完了する毎に、前記間接転送小領域および前記直接転送小領域の何れにも未だ選択されていない転送対象とする前記小領域が残っている場合に、前記間接転送小領域とする次の一つの前記小領域を選択し、また、前記直接転送小領域として選択した1つの前記小領域の記憶データが前記メモリから自計算機外部へ転送する処理が完了する毎に、前記間接転送小領域および前記直接転送小領域の何れにも未だ選択されていない転送対象とする前記小領域が残っている場合に、前記直接転送小領域とする次の一つの前記小領域を選択する
    請求項9に記載のデータ転送方法。
  11. 前記選択では、前記メモリ中の転送対象とする複数の前記小領域を、前記間接転送小領域と前記直接転送小領域とに二分割し、該二分割では、前記間接転送小領域として選択された全ての前記小領域の記憶データを前記メモリから前記退避領域にコピーするのに必要な時間と、前記直接転送小領域として選択された全ての前記小領域の記憶データを前記メモリから自計算機外部へ転送するのに必要な時間とのうちの最大値が最小となるように行う
    請求項9に記載のデータ転送方法。
  12. 複数の小領域から構成されるメモリと、
    データのコピーを作成するコピー手段と、
    データを一時的に退避するための退避領域と、
    データを自計算機外部へ送信する通信手段と、
    前記メモリの記憶データを自計算機外部へ転送する制御を行う制御手段とを有し、
    前記制御手段は、
    前記メモリ中の転送対象とする複数の前記小領域の中から、前記退避領域を経由して自計算機外部へ転送する前記小領域を間接転送小領域として、また、前記退避領域を経由せずに自計算機外部へ転送する前記小領域を直接転送小領域として、それぞれ選択し、
    自計算機から前記メモリへの更新を停止させた期間内に、前記間接転送小領域として選択した前記小領域の記憶データを前記コピー手段を使用して前記メモリから前記退避領域にコピーし、該コピーと並行して、前記直接転送小領域として選択した前記小領域の記憶データを前記通信手段を使用して前記メモリから自計算機外部へ転送し、
    前記退避領域にコピーされた前記小領域の記憶データを、前記通信手段を使用して前記退避領域から自計算機外部へ転送する
    計算機。
  13. 前記制御手段は、前記選択では、前記メモリ中の転送対象とする複数の前記小領域の中から前記間接転送小領域としての前記小領域と前記直接転送小領域としての前記小領域をそれぞれ1つずつ選択し、前記間接転送小領域として選択した1つの前記小領域の記憶データが前記メモリから前記退避領域へコピーする処理が完了する毎に、前記間接転送小領域および前記直接転送小領域の何れにも未だ選択されていない転送対象とする前記小領域が残っている場合に、前記間接転送小領域とする次の一つの前記小領域を選択し、また、前記直接転送小領域として選択した1つの前記小領域の記憶データが前記メモリから自計算機外部へ転送する処理が完了する毎に、前記間接転送小領域および前記直接転送小領域の何れにも未だ選択されていない転送対象とする前記小領域が残っている場合に、前記直接転送小領域とする次の一つの前記小領域を選択する
    請求項12に記載の計算機。
  14. 前記制御手段は、前記選択では、前記メモリ中の転送対象とする複数の前記小領域を、前記間接転送小領域と前記直接転送小領域とに二分割し、該二分割では、前記間接転送小領域として選択された全ての前記小領域の記憶データを前記コピー手段を使用して前記メモリから前記退避領域にコピーするのに必要な時間と、前記直接転送小領域として選択された全ての前記小領域の記憶データを前記通信手段を使用して前記メモリから自計算機外部へ転送するのに必要な時間とのうちの最大値が最小となるように行う
    請求項12に記載の計算機。
  15. 前回のチェックポイント以降に更新された前記小領域のリストを記憶するログ記憶手段と、
    前記メモリの前記小領域が更新されたときに前記リストを更新するメモリ管理手段と
    をさらに有し、
    前記制御手段は、前記リストを参照して、前記間接転送小領域および前記直接転送小領域を選択する
    請求項12、13または14に記載の計算機。
  16. 主系サーバと該主系サーバと通信可能な従系サーバとを有し、
    前記主系サーバは、
    複数の小領域から構成されるメモリと、
    データのコピーを作成するコピー手段と、
    データを一時的に退避するための退避領域と、
    データを前記従系サーバへ送信する通信手段と、
    前記メモリの記憶データを前記従系サーバへ転送する制御を行う制御手段とを有し、
    前記制御手段は、
    前記メモリ中の転送対象とする複数の前記小領域の中から、前記退避領域を経由して前記従系サーバへ転送する前記小領域を間接転送小領域として、また、前記退避領域を経由せずに前記従系サーバへ転送する前記小領域を直接転送小領域として、それぞれ選択し、
    自サーバから前記メモリへの更新を停止させた期間内に、前記間接転送小領域として選択した前記小領域の記憶データを前記コピー手段を使用して前記メモリから前記退避領域にコピーし、該コピーと並行して、前記直接転送小領域として選択した前記小領域の記憶データを前記通信手段を使用して前記メモリから前記従系サーバへ転送し、
    前記退避領域にコピーされた前記小領域の記憶データを、前記通信手段を使用して前記退避領域から前記従系サーバへ転送する
    フォールトトレラントサーバ。
  17. 前記制御手段は、前記選択では、前記メモリ中の転送対象とする複数の前記小領域の中から前記間接転送小領域としての前記小領域と前記直接転送小領域としての前記小領域をそれぞれ1つずつ選択し、前記間接転送小領域として選択した1つの前記小領域の記憶データが前記メモリから前記退避領域へコピーする処理が完了する毎に、前記間接転送小領域および前記直接転送小領域の何れにも未だ選択されていない転送対象とする前記小領域が残っている場合に、前記間接転送小領域とする次の一つの前記小領域を選択し、また、前記直接転送小領域として選択した1つの前記小領域の記憶データが前記メモリから前記従系サーバへ転送する処理が完了する毎に、前記間接転送小領域および前記直接転送小領域の何れにも未だ選択されていない転送対象とする前記小領域が残っている場合に、前記直接転送小領域とする次の一つの前記小領域を選択する
    請求項16に記載のフォールトトレラントサーバ。
  18. 前記制御手段は、前記選択では、前記メモリ中の転送対象とする複数の前記小領域を、前記間接転送小領域と前記直接転送小領域とに二分割し、該二分割では、前記間接転送小領域として選択された全ての前記小領域の記憶データを前記コピー手段を使用して前記メモリから前記退避領域にコピーするのに必要な時間と、前記直接転送小領域として選択された全ての前記小領域の記憶データを前記通信手段を使用して前記メモリから前記従系サーバへ転送するのに必要な時間とのうちの最大値が最小となるように行う
    請求項16に記載のフォールトトレラントサーバ。
  19. 前回のチェックポイント以降に更新された前記小領域のリストを記憶するログ記憶手段と、
    前記メモリの前記小領域が更新されたときに前記リストを更新するメモリ管理手段と
    をさらに有し、
    前記制御手段は、前記リストを参照して、前記間接転送小領域および前記直接転送小領域を選択する
    請求項16、17または18に記載のフォールトトレラントサーバ。
  20. 複数の小領域から構成されるメモリと該メモリのデータを一時的に退避するための退避領域とを有するコンピュータを、
    データのコピーを作成するコピー手段と、
    データを自計算機外部へ送信する通信手段と、
    前記メモリの記憶データを自計算機外部へ転送する制御を行う制御手段であって、
    前記メモリ中の転送対象とする複数の前記小領域の中から、前記退避領域を経由して自計算機外部へ転送する前記小領域を間接転送小領域として、また、前記退避領域を経由せずに自計算機外部へ転送する前記小領域を直接転送小領域として、それぞれ選択し、
    自計算機から前記メモリへの更新を停止させた期間内に、前記間接転送小領域として選択した前記小領域の記憶データを前記コピー手段を使用して前記メモリから前記退避領域にコピーし、該コピーと並行して、前記直接転送小領域として選択した前記小領域の記憶データを前記通信手段を使用して前記メモリから自計算機外部へ転送し、
    前記退避領域にコピーされた前記小領域の記憶データを、前記通信手段を使用して前記退避領域から自計算機外部へ転送する制御手段と
    して機能させるためのプログラム。
  21. 前記制御手段は、前記選択では、前記メモリ中の転送対象とする複数の前記小領域の中から前記間接転送小領域としての前記小領域と前記直接転送小領域としての前記小領域をそれぞれ1つずつ選択し、前記間接転送小領域として選択した1つの前記小領域の記憶データが前記メモリから前記退避領域へコピーする処理が完了する毎に、前記間接転送小領域および前記直接転送小領域の何れにも未だ選択されていない転送対象とする前記小領域が残っている場合に、前記間接転送小領域とする次の一つの前記小領域を選択し、また、前記直接転送小領域として選択した1つの前記小領域の記憶データが前記メモリから自計算機外部へ転送する処理が完了する毎に、前記間接転送小領域および前記直接転送小領域の何れにも未だ選択されていない転送対象とする前記小領域が残っている場合に、前記直接転送小領域とする次の一つの前記小領域を選択する
    請求項20に記載のプログラム。
  22. 前記制御手段は、前記選択では、前記メモリ中の転送対象とする複数の前記小領域を、前記間接転送小領域と前記直接転送小領域とに二分割し、該二分割では、前記間接転送小領域として選択された全ての前記小領域の記憶データを前記コピー手段を使用して前記メモリから前記退避領域にコピーするのに必要な時間と、前記直接転送小領域として選択された全ての前記小領域の記憶データを前記通信手段を使用して前記メモリから自計算機外部へ転送するのに必要な時間とのうちの最大値が最小となるように行う
    請求項20に記載のプログラム。
JP2012213856A 2012-09-27 2012-09-27 データ転送装置 Expired - Fee Related JP5561334B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012213856A JP5561334B2 (ja) 2012-09-27 2012-09-27 データ転送装置
US14/039,672 US9398094B2 (en) 2012-09-27 2013-09-27 Data transfer device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012213856A JP5561334B2 (ja) 2012-09-27 2012-09-27 データ転送装置

Publications (2)

Publication Number Publication Date
JP2014067357A JP2014067357A (ja) 2014-04-17
JP5561334B2 true JP5561334B2 (ja) 2014-07-30

Family

ID=50340001

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012213856A Expired - Fee Related JP5561334B2 (ja) 2012-09-27 2012-09-27 データ転送装置

Country Status (2)

Country Link
US (1) US9398094B2 (ja)
JP (1) JP5561334B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11829266B2 (en) 2019-11-19 2023-11-28 Mitsubishi Heavy Industries, Ltd. Computing device, redundant system, program, and method for constructing redundant configuration

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9986028B2 (en) * 2013-07-08 2018-05-29 Intel Corporation Techniques to replicate data between storage servers
TWI624757B (zh) * 2017-05-24 2018-05-21 財團法人工業技術研究院 資料處理方法、資料處理系統與電腦程式產品
JP6915459B2 (ja) * 2017-08-30 2021-08-04 富士通株式会社 情報処理装置、情報処理システム及びプログラム
JP7332280B2 (ja) * 2018-09-10 2023-08-23 横河電機株式会社 冗長化システム、冗長化プログラム、及び情報処理装置
CN112559116A (zh) * 2019-09-25 2021-03-26 阿里巴巴集团控股有限公司 内存迁移方法、装置及计算设备
US11436112B1 (en) * 2021-05-17 2022-09-06 Vmware, Inc. Remote direct memory access (RDMA)-based recovery of dirty data in remote memory

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04349524A (ja) * 1991-05-28 1992-12-04 Matsushita Electric Ind Co Ltd データ管理装置
US6622263B1 (en) * 1999-06-30 2003-09-16 Jack Justin Stiffler Method and apparatus for achieving system-directed checkpointing without specialized hardware assistance
US7734593B2 (en) * 2005-11-28 2010-06-08 Commvault Systems, Inc. Systems and methods for classifying and transferring information in a storage network
US8307136B2 (en) * 2009-08-03 2012-11-06 National Instruments Corporation Data movement system and method
US9002970B2 (en) * 2012-07-12 2015-04-07 International Business Machines Corporation Remote direct memory access socket aggregation

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11829266B2 (en) 2019-11-19 2023-11-28 Mitsubishi Heavy Industries, Ltd. Computing device, redundant system, program, and method for constructing redundant configuration

Also Published As

Publication number Publication date
US9398094B2 (en) 2016-07-19
US20140089447A1 (en) 2014-03-27
JP2014067357A (ja) 2014-04-17

Similar Documents

Publication Publication Date Title
JP5561334B2 (ja) データ転送装置
JP4727437B2 (ja) データベースを有するストレージシステムの記憶制御方法
US9032248B1 (en) Memory write tracking for virtual machines
JP6136629B2 (ja) ストレージ制御装置,ストレージシステム,および制御プログラム
US9213500B2 (en) Data processing method and device
CN103098043A (zh) 随需虚拟机映像流式传输
US9811404B2 (en) Information processing system and method
WO2019061352A1 (zh) 数据加载方法及装置
US20210089379A1 (en) Computer system
US7451285B2 (en) Computer systems, management computers and storage system management method
WO2016106756A1 (zh) 一种容灾方法、系统和装置
US10565135B2 (en) Information processing device, information processing method, main processor core, program, information processing method, and sub processor core
US9454445B2 (en) Fault tolerant server
JP6291711B2 (ja) フォールトトレラントシステム
JP6356822B2 (ja) 計算機システム及びメモリダンプ方法
US10120594B1 (en) Remote access latency in a reliable distributed computing system
JP7164175B2 (ja) 分散ファイル装置、フェイルオーバ方法、プログラム及び記録媒体
US10656867B2 (en) Computer system, data management method, and data management program
JP2010231295A (ja) 解析システム
JP5636695B2 (ja) フォールトトレラントシステム及び仮想マシン構築方法
JP7050707B2 (ja) ストレージ制御装置、ストレージシステム、ストレージ制御方法、及び、ストレージ制御プログラム
JP2009157880A (ja) サーバ装置及びファイルシステム
US11468091B2 (en) Maintaining consistency of asynchronous replication
JP5702651B2 (ja) 仮想マシン同期方法及びシステム及び運用系の仮想マシン及びプログラム
JP2004005113A (ja) 複数の実計算機上で動作する仮想計算機システム及びその制御方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140304

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140421

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140513

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140526

R150 Certificate of patent or registration of utility model

Ref document number: 5561334

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees