JP2013065259A - データ転送システム、転送元システム及び転送先システム並びにプログラム - Google Patents

データ転送システム、転送元システム及び転送先システム並びにプログラム Download PDF

Info

Publication number
JP2013065259A
JP2013065259A JP2011204805A JP2011204805A JP2013065259A JP 2013065259 A JP2013065259 A JP 2013065259A JP 2011204805 A JP2011204805 A JP 2011204805A JP 2011204805 A JP2011204805 A JP 2011204805A JP 2013065259 A JP2013065259 A JP 2013065259A
Authority
JP
Japan
Prior art keywords
transfer
data
information
virtual machine
file
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.)
Granted
Application number
JP2011204805A
Other languages
English (en)
Other versions
JP5756379B2 (ja
Inventor
Yoshimitsu Aoyanagi
慶光 青柳
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.)
Hitachi Solutions Ltd
Original Assignee
Hitachi Solutions Ltd
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 Hitachi Solutions Ltd filed Critical Hitachi Solutions Ltd
Priority to JP2011204805A priority Critical patent/JP5756379B2/ja
Publication of JP2013065259A publication Critical patent/JP2013065259A/ja
Application granted granted Critical
Publication of JP5756379B2 publication Critical patent/JP5756379B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】転送元と転送先の両方で共通の仮想マシンのマスタイメージの管理を不要であり、かつ、回線容量が小さい場合や複数の利用者による同時使用時にもネットワークの伝送効率を落とさずに済むデータ転送技術を実現する。
【解決手段】転送元システムを、転送する仮想マシンイメージを構成するデータを特定する第1の情報を取得する手段と、転送先システムにキャッシュされているデータを特定する第2の情報を取得する手段と、第1の情報と第2の情報を照合し、第2の情報以外の第1の情報に対応するデータを転送データとして抽出する手段とで構成する。転送先システムを、第2の情報をネットワーク経由で転送元システムに転送する手段と、ネットワーク経由で受信した転送データと自システム内にキャッシュされているデータとを組み合わせて仮想マシンイメージを再構築する手段とで構成する。
【選択図】図4

Description

本発明は、ネットワーク経由で接続された複数のコンピュータシステム間においてデータを転送する技術に関する。
現在、ネットワーク経由で接続された複数のコンピュータシステムの間において、大容量のファイルを高速に転送するための技術が研究されている(例えば特許文献1及び2を参照)。このうち、特許文献1は、複数のサーバで構成されたシステムにおけるファイルの高速転送技術を開示する。具体的には、特許文献1は、圧縮符号化されたストリームデータの切れ目やファイルの論理構造を考慮してファイルを複数のデータに分割し、当該分割後の各データを複数の伝送チャネルを用いて並列転送する手法を開示する。一方、特許文献2は、ディザスタ・リカバリシステムにおいて一般的な技術を開示する。具体的には、特許文献2は、ディスク間でデータの整合性が保てる点を静止点とし、静止点に対する差分データのみをディザスタ・リカバリサイト(コンピュータシステム)に転送する手法を開示する。この手法は、静止点に対する差分データのみを転送することにより転送データ量を最小化し、結果的にデータの高速転送を実現する。
特開2011−029936号公報 特開2010−217993号公報
しかし、特許文献1に記載の技術は、複数の伝送チャネルを用い、大容量のデータ全体を並列転送することを前提とする。すなわち、この技術は、複数のコンピュータシステム間に複数の伝送チャネルが設定されていることを必要とする。また、特許文献1の方法は、大容量のデータ全体を転送することを前提とするため、個々の伝送チャネルの回線容量が小さい場合や複数の利用者が複数の伝送チャネルを同時に使用してファイルを転送する場合に、個々の伝送チャネルの利用頻度が高まり、伝送効率の低下が認められる。
一方、特許文献2に記載の技術は、プライマリサイト(コンピュータシステム)とディザスタ・リカバリサイト(コンピュータシステム)の間において、共通のマスタディスクを管理する必要がある。しかし、マスタディスクの管理は、新たなコストを必要とし、更に管理対象が増えるほどその管理コストが増大する。
かかる技術的課題を解決するため、本発明においては、以下に示す転送元システムと転送先システムとで構成されるデータ転送システムを提案する。
本発明に係る転送元システムは、転送する仮想マシンイメージを構成するデータを特定する第1の情報を取得する仮想マシンイメージ情報取得部と、転送先システムにキャッシュされているデータを特定する第2の情報を取得するキャッシュ情報取得部と、第1の情報と第2の情報を照合し、第2の情報以外の第1の情報に対応するデータを転送データとして抽出するデータ抽出部とを有する。
本発明に係る転送先システムは、前記の第2の情報をネットワーク経由で転送元システムに転送するデータ転送部と、ネットワーク経由で受信した前記の転送データと自システム内にキャッシュされているデータとを組み合わせて仮想マシンイメージを再構築する仮想マシン構成部とを有する。
本発明によれば、転送元システムと転送先システムにおいて、両システムに共通する仮想マシンのマスタイメージを管理する必要性をなくすことができる。その分、キャッシュデータの消費容量を削減することができる。また、本発明は、仮想マシンイメージの再構築処理に必要なデータだけを転送し、仮想マシンイメージの全体を転送しない。このため、本発明は、使用可能な個々の伝送チャネルの回線容量が小さい場合や複数の利用者が伝送チャネルを同時に使用する場合でも、ネットワークの伝送効率を落とすことなく高速にデータ転送することができる。上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
データ転送システムのネットワーク構成例を示す図。 ファイルの高速転送に用いられる従来技術例1を示す図。 ファイルの高速転送に用いられる従来技術例2を示す図。 形態例に係るファイルの高速転送技術を説明する図。 転送元システムにおけるプログラム構成を示す図。 転送先システムにおけるプログラム構成を示す図。 仮想マシンメタ情報の構成例を示す図。 空きクラスタビットマップの構成例を示す図。 ファイルハッシュ表の構成例を示す図。 ファイルクラスタ表の構成例を示す図。 転送クラスタビットマップの構成例を示す図。 転送データの構成例を示す図。 モジュールハッシュ表の構成例を示す図。 モジュールDBの構成例を示す図。 仮想マシンマウントプログラムの処理手順例を示すフローチャート。 抽出プログラムの処理手順例を示すフローチャート。 データ抽出プログラムにおける仮想マシンの基本情報抽出処理手順例を示すフローチャート。 データ抽出プログラムにおける転送データ抽出処理例を示すフローチャート。 仮想マシン構成プログラムにおけるモジュールハッシュ表の転送処理手順例を示すフローチャート。 仮想マシン構成プログラムにおける仮想マシン作成処理手順例を示すフローチャート。 モジュール抽出プログラムの処理手順例を示すフローチャート。
以下の実施の形態においては、便宜上その必要があるときは、複数のセクションまたは実施例に分割して説明する。特に明示した場合を除き、それらは互いに無関係ではなく、一方は他方の一部または全部の変形例、応用例、詳細説明、補足説明等の関係にある。また、以下の各実施例において、要素の数等(個数、数値、量、範囲等を含む)に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよい。
さらに、以下の実施例において、その構成要素(要素ステップ等も含む)は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須でない。
以下、本発明の実施例を図面に基づいて詳細に説明する。なお、実施例を説明するための全図において、同一の機能を有する部材には同一または関連する符号を付し、その繰り返しの説明は省略する。また、以下の実施の形態では、特に必要なとき以外は同一または同様な部分の説明を原則として繰り返さない。
また、以下の実施例では、各機能部、処理部、処理手段等においては、それらの一部又は全部をプログラムを通じて実現する場合について説明するが、同機能は例えば集積回路その他のハードウェアとして実現しても良い。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリやハードディスク、SSD(Solid State Drive)等の記憶装置、ICカード、SDカード、DVD等の記憶媒体に格納することができる。
また、制御線や情報線は、説明上必要と考えられるものを示すものであり、製品上必要な全ての制御線や情報線を表すものでない。実際にはほとんど全ての構成が相互に接続されていると考えて良い。
[データ転送システムのネットワーク構成]
図1に、実施例に係るデータ転送システムのネットワーク構成例を説明する。なお、以下の説明では、データの転送元となるコンピュータシステムを転送元システムと呼び、データの転送先となるコンピュータシステムを転送先システムと呼ぶ。
図1は、国内サイトと海外サイトの間に構築されるデータ転送システムを表している。ただし、本実施例に係るデータ転送システムは、ネットワーク経由で接続された複数のコンピュータシステムより構築される全てのシステムに応用することができる。例えば転送元システムと転送先システムの両方が同一国内又は同一領域内に位置する場合、同一建物内又は同一室内に位置する場合にも適用することができる。また、データ転送に使用するネットワークは、有線ネットワークでも無線ネットワークでもよい。
さらに、以下の説明では、実施例に係るファイル転送技術を応用したサービスの提供例として、送信元システムがグループ企業1(1)とグループ企業2(2)、送信先システムが海外事業所1(3)、海外事業所2(4)、海外事業所3(5)、海外事業所4(6)の場合について説明する。勿論、サービスの提供例は、この構成に限らず、送信元システムと送信先システムが同一事業体又はグループに属する場合、異なる事業体又はグループに属する場合等、様々なサービス形態が考えられる。
グループ企業1(1)には、拠点1A(11)、拠点1B(13)、本社(16)があり、各拠点にはデータ同期装置(12、14、15)が設置されている。グループ企業2(2)には、拠点2A(21)、拠点2B(23)、本社(26)があり、各拠点にはデータ同期装置(22、24、25)が設置されている。
海外事業所1(3)には、拠点1C(32)、拠点2C(34)があり、各拠点にはデータ同期装置(31、33)が設置されている。海外事業所2(4)には、拠点1D(42)があり、同拠点にはデータ同期装置(41)が設置されている。海外事業所3(5)には、拠点1E(52)、拠点2D(54)があり、各拠点にはデータ同期装置(51、53)が設置されている。海外事業所4(6)には、拠点2E(62)があり、同拠点にはデータ同期装置(61)が設置されている。
一般に、各拠点同士は、VPN(Virtual Private Network)等を通じて仮想的なネットワークを構成しているものとする。
[従来例における高速ファイル転送技術]
実施例と従来例との違いを明らかにするために、まず、高速ファイル転送技術の従来例を説明する。
図2に、従来例1を示す。図2は、本社(16)から海外事業所1(32)に対し、仮想マシン(201、204)を高速に転送する場合に使用するファイル転送技術の概要を表している。従来例1の場合、本社(16)に設置したデータ同期装置(15)と海外事業所1(32)に設置したデータ同期装置(31)が、仮想マシンイメージの転送を最適化する。本社(16)側のシステムが転送元システムであり、海外事業所1(32)側のシステムが転送先システムに当たる。
図2に示すシステムは、一般に、(1) 転送元システムにおけるデータ圧縮処理と転送先システムにおけるデータ解凍処理を組み合わせた転送データ量の削減処理、(2) 複数セッションの確立とそれらを同時に使用した多重転送処理とを採用する。図2のシステムは、専用のデータ同期装置(15、31)を使用し、圧縮後データ(202、203)の多重転送を実現する。なお、本社(16)や海外事業所1(32)に設置された端末(211、212)に組み込まれたエージェントプログラムが、データ同期装置(15、31)の代替機能を担う場合もある。
図3に、従来例2を示す。図3も、本社(16)から海外事業所1(32)に対し、仮想マシンのイメージを高速転送する場合に使用するファイル転送技術の概要を表している。ただし、従来例2のシステムは、本社(16)と海外事業所1(32)のそれぞれが、同一の仮想マシンのマスタイメージ(301、302)を共有する点において従来例1(図2)と異なる。
このシステムの場合、本社(16)に設置したデータ同期装置(15)が、仮想マシンイメージ(301)に対するデータの変更をリアルタイムで監視し、データの変更が検知されたとき、変更部分である変更部分データ(303)を変更データ(304)として海外事業所1(32)に転送する。このとき、海外事業所1(32)のデータ同期装置(31)は、受信した変更データ(304)から変更部分データ(305)を復元し、仮想マシンイメージ(302)に適用する。
反対に、海外事業所1(32)の仮想マシンイメージ(302)にデータの変更があった場合も、同様の方法により、本社(16)の仮想マシンイメージ(301)との間でデータを同期する。なお、本社(16)や海外事業所1(32)に設置された端末(211、212)に組み込まれたエージェントプログラムが、データ同期装置(15、31)の代替機能を担う場合もある。
[実施例に係る高速ファイル転送技術]
図4に、実施例に係る高速ファイル転送技術の具体例を示す。図4も、本社(16)から海外事業所1(32)に対し、仮想マシンのイメージを高速転送する場合に使用するファイル転送技術の概要を表している。
実施例に係る高速ファイル転送技術の場合、仮想マシンイメージの全体又はマスタイメージとの差分データを転送するのではなく、転送先システム内のキャッシュデータと仮想マシンイメージを構成するデータとの差分データを転送し、仮想マシンイメージは転送先システムの処理資源を利用して再構築する手法を採用する。
図4の場合、海外事業所1(32)の端末(212)には、任意の仮想マシンイメージに共通する基本データ(例えばアプリケーション・ソフトウェア、ミドル・ソフトウェア、OS(Operating System)等)の構成ファイル(402)が予めキャッシュされているものとする。もっとも、キャッシュデータは任意であり、転送時点で転送先システム内の端末にキャッシュされているデータの意味で用いてもよい。キャッシュデータは、プログラムに限らず、データファイルも含んでよい。
図4に示す高速ファイル転送技術をより詳細に説明する。前述したように、仮想マシンイメージの転送元である転送元システム(本社(16))は、仮想マシンイメージ(401)の全体を転送せず、転送先システム(端末(212))にキャッシュされていないデータ(403)だけを抽出し、転送先システム(端末(212))に転送する。図4の場合、DB(Data Base)データ(403)が転送される。なお、DBデータは、データ圧縮した形態で転送してもよい。
一方、転送先システム側の端末(212)は、キャッシュされている構成ファイル(402)とDBデータ(403)とを組み合せ、新たな仮想マシンイメージ(404)を再構築する様子を表している。仮想マシンイメージ404が再構築される様子を矢印で示している。
前述したように、従来例1(図2)の場合には、仮想マシンイメージの全体をデータ圧縮した後、複数セッションを利用した多重転送により、仮想マシンイメージを転送する。しかし、本実施例では、仮想マシンイメージの再構築の際に不足するデータ、すなわちDBデータ(403)だけを転送する。しかも、転送するデータ量は、仮想マシンイメージの全体をデータ圧縮する場合よりも格段に小さく済み、転送データ量を最小化することができる。
なお、本実施例に係る転送方式もある種の差分データ転送方式であるが、従来例2(図3)のように、仮想マシンのマスタイメージを送信元と送信先の両方で共通に保持する必要がない。その分、本実施例は、システム上必要とされるデータ容量を低減することができる。
さらに、本実施例は、アプリケーション・ソフトウェア、ミドル・ソフトウェア、OS等の構成ファイル(402)をファイル単位で切り出してキャッシュできる点で従来例2(図3)と異なっている。このため、構成ファイル(402)の構成上の変更も、ファイル単位で自由に実現できる。なお、切り出し単位はモジュール単位でもよい。
さらに、従来例2(図3)の場合には、転送元システムと転送先システムの間で仮想マシンのマスタイメージを1対1に対応付けて管理する必要がある。しかし、本実施例の場合には、アプリケーション・ソフトウェア、ミドル・ソフトウェア、OSの構成ファイル(402)を複数の仮想マシンイメージで共通化することができる。この場合、転送元システムと転送先システムの間において、1対N(Nは2以上の自然数)の管理が可能となり、管理上必要なディスク容量の大幅な節約を実現できる。なお、本実施例の場合には、構成ファイル(402)がいわゆるプログラムファイルで構成されているが、データファイルが含まれていてもよい。
[転送元システムのプログラム構成]
図5に、本実施例に係る転送元システムに実装されるプログラムの構成例を示す。転送元である本社(16)の端末(211)には、オペレーティングシステム(501)、仮想マシンマウントプログラム(502)、データ抽出プログラム(503)がインストールされている。
仮想マシンマウントプログラム(502)は、仮想マシンイメージをローカルファイルシステムのボリュームとしてマウントするためのプログラムである。データ抽出プログラム(503)は、仮想マシンイメージをリモート端末に転送する場合に、転送データを抽出するプログラムである。実際の転送データは、仮想マシンメタ情報(504)、空きクラスタビットマップ(505)、ファイルハッシュ表(506)、ファイルクラスタ表(507)、転送クラスタビットマップ(508)、転送データ(509)である。
[転送先システムのプログラム構成]
図6に、本実施例に係る転送先システムに実装されるプログラムの構成例を示す。転送先である海外事業所1(32)の端末(212)には、オペレーティングシステム(601)、仮想マシンマウントプログラム(602)、仮想マシン構成プログラム(603)、モジュール抽出プログラム(604)がインストールされている。
仮想マシンマウントプログラム(602)は、図5のプログラムと同一である。仮想マシン構成プログラム(603)は、リモート端末から転送された仮想マシンメタ情報(504)、空きクラスタビットマップ(505)、ファイルハッシュ表(506)、ファイルクラスタ表(507)、転送クラスタビットマップ(508)、転送データ(509)と、モジュールDB(606)のキャッシュデータに基づいて仮想マシンイメージを再構成するプログラムである。
モジュール抽出プログラム(604)は、アプリケーション・ソフトウェア、ミドル・ソフトウェア、OSをインストールした記憶媒体やマスタとなる仮想マシンイメージから、キャッシュすべきモジュールファイルを抽出し、モジュールDB(606)に登録するプログラムである。
さらに、本実施例に係る転送先システムは、モジュールDB(606)のキャッシュ情報(どのモジュールがキャッシュされているか)を転送元である本社(16)の端末(211)との間で共有するための仕組みとして、キャッシュ内のファイルのハッシュ値をリスト化したモジュールハッシュ表(605)を管理する。
[仮想マシンメタ情報の構成例]
図7に、仮想マシンメタ情報(504)の構成例を示す。仮想マシンメタ情報(504)は、仮想マシンイメージのヘッダ部に登録されている情報を抽出したファイルであり、仮想マシンの雛型を構築する場合に用いられる。
[空きクラスタビットマップの構成例]
図8に、空きクラスタビットマップ(505)の構成例を示す。空きクラスタビットマップ(505)は、仮想マシンイメージにおける仮想ディスクのビットマップ情報を抽出したファイルである。ビットマップ情報とは、ディスク上における各クラスタの利用状況を表すデータであり、ビット値の「1」はクラスタの使用中を示し、ビット値の「0」はクラスタが未使用であることを示している。図8の場合、仮想ディスクの先頭から192クラスタ(=8×24)までが使用中、その後24クラスタ(8*3)が未使用であることを示している。
[ファイルハッシュ表の構成例]
図9に、ファイルハッシュ表(506)の構成例を示す。ファイルハッシュ表(506)は、仮想マシンイメージにおける仮想ディスク内にあるファイルのハッシュ値の情報を抽出したファイルであり、転送の必要があるファイルの判別に用いられる。図9は、“AUTOEXEC.BAT”というファイルのハッシュ値が“0f3a597266321ba”であることを示している。
[ファイルクラスタ表の構成例]
図10に、ファイルクラスタ表(507)の構成例を示す。ファイルクラスタ表(507)は、仮想マシンイメージにおける仮想ディスク内にあるファイルのクラスタ情報(ファイルがどのクラスタに格納されているか)を抽出したファイルであり、転送の必要があるファイルの判別に用いられる。図10は、“bootfont.bin”というファイルが、“35164”クラスタから、”33”クラスタ長分格納されていることを示している。
[転送クラスタビットマップの構成例]
図11に、転送クラスタビットマップ(508)の構成例を示す。転送クラスタビットマップ(508)は、仮想マシンイメージにおける仮想ディスクで、転送の必要なクラスタのビットマップ情報を抽出したファイルであり、ビット値の「1」は転送の必要なクラスタを示し、ビット値の「0」は転送不要なクラスタであることを示している。図11は、仮想ディスクの先頭から136クラスタ(8*17)までは転送が必要であるが、それ以外のクラスタは転送の必要がないことを示している。特に、図中の太字で示した斜体文字部分は、使用中のクラスタであり、転送の必要がないものを示している。
[転送データの構成例]
図12に、転送データ(509)の構成例を示す。転送データ(509)は、転送が必要なクラスタのデータを1ファイルにまとめたファイルである。
[モジュールハッシュ表の構成例]
図13に、モジュールハッシュ表(605)の構成例を示す。モジュールハッシュ表(605)は、モジュールDB(606)のキャッシュ情報(どのモジュールがキャッシュされているか)を転送元と共有するために、キャッシュDB内のファイルのハッシュ値をリスト化したファイルである。なお、本実施例ではハッシュ値を用いているが、モジュールの特定が可能であればその他の情報を用いてもよい。
[モジュールDBの構成例]
図14に、モジュールDB(606)の構成例を示す。モジュールDB(606)は、モジュールファイルのハッシュ値と実データをデータベース化したものである。本実施例では、“AAA.sys” というファイルが、ハッシュ値“da39a3ee5e6b4b0d3255bfef95601890afd80709”を持ち、データが“4d 5a 90 00 03 00 00 00 04 00 00 00 ff ff 00 00 … 0e 1f ba 0e 00 b4 09 cd 21 b8 01 4c cd 21 54 68”であることを示している。
[データ処理の流れ]
以下、本実施例を構成する各部において実行される処理の流れをフローチャートを用いて具体的に説明する。
[仮想マシンマウントプログラムの処理]
図15に、仮想マシンマウントプログラムの処理内容をフローチャートで示す。仮想マシンマウントプログラム(502、602)は、仮想マシンマウント要求を待ち(ステップ1501)、仮想マシンマウント要求を受信すると(ステップ1502)、仮想マシンイメージをローカルファイルシステムのボリュームとしてマウントする(ステップ1503)。
[データ抽出プログラムの処理]
図16に、データ抽出プログラム(503)の処理内容をフローチャートで示す。本実施例における仮想マシンイメージの転送は、図17に示す仮想マシン基本情報抽出処理(ステップ1601)、図18に示す転送データ抽出処理(ステップ1602)の後、開始される。仮想マシンイメージの転送は、ステップ1601及び1602の生成データである、仮想マシンメタ情報(504)、空きクラスタビットマップ(505)、ファイルハッシュ表(506)、ファイルクラスタ表(507)、転送クラスタビットマップ(508)、転送データ(509)の転送により実行される。
[仮想マシン基本情報抽出処理の詳細]
図17に、ステップ1601として実行される仮想マシン基本情報抽出処理の詳細内容を示す。最初に、データ抽出プログラム(503)は、転送先システムに対し、モジュールハッシュ表(605)の転送を要求する(ステップ1701)。
なお、このステップ1701において、転送先システム(仮想マシン構成プログラム(603))において実行される処理動作の詳細は図19に示す。ここで、モジュールハッシュ表(605)には、モジュールDB(606)のキャッシュ情報(どのモジュールがキャッシュされているかを示す情報)が記載されている。要求に対する応答として、データ抽出プログラム(503)は、モジュールハッシュ表(605)を、転送先システムから入手する。
次に、データ抽出プログラム(503)は、仮想マシンイメージを入力し、仮想マシンメタ情報(504)を抽出する(ステップ1702)。この後、データ抽出プログラム(503)は、抽出した情報をファイルに格納する。
次に、データ抽出プログラム(503)は、仮想マシンマウントプログラム(502)に対し、仮想マシンをローカルファイルシステムのボリュームとしてマウントすることを要求する(ステップ1703)。このステップ1703で実行される処理の詳細は図15に示している。
ボリュームマウント後、データ抽出プログラム(503)は、空きクラスタビットマップ(505)を抽出する(ステップ1704)。この後、データ抽出プログラム(503)は、抽出した情報をファイルに格納する。
次に、データ抽出プログラム(503)は、マウントボリュームの全ファイルの探索が終了したか否かを判定する(ステップ1705)。未探索ファイルが残っている間、データ抽出プログラム(503)は、ファイルが格納されているクラスタ情報を抽出し、抽出結果をファイルクラスタ表(507)に追記する(ステップ1706)。さらに、データ抽出プログラム(503)は、抽出されたファイルのハッシュ値を計算し、抽出結果をファイルハッシュ表(506)に追記する(ステップ1707)。ステップ1705において探索すべきファイルがなくなると、データ抽出プログラム(503)はループ処理を抜け、一連の処理を終了する。
[転送データ抽出処理の詳細]
図18に、ステップ1602として実行される転送データ抽出処理の詳細内容を示す。最初に、データ抽出プログラム(503)は、空きクラスタビットマップ(505)を転送クラスタビットマップ(508)にコピーする(ステップ1801)。
次に、データ抽出プログラム(503)は、ファイルハッシュ表(506)とファイルクラスタ表(507)を参照する(ステップ1802)。
ここで、データ抽出プログラム(503)は、ファイルハッシュ表(506)に登録されている全項目の探索が終了したか否かを判定する(ステップ1803)。未探索項目が残っている間、データ抽出プログラム(503)は、ファイルハッシュ表(506)の各ファイルのハッシュ値が、仮想マシンイメージ転送先サイトから受信したモジュールハッシュ表(605)に登録済か否かをチェックする(ステップ1804)。
登録済は、該当モジュールの転送が不要であることを意味する。従って、データ抽出プログラム(503)は、空きクラスタビットマップ(505)を参照し、対応するファイルのクラスタ情報に基づいて、転送クラスタビットマップ(508)の対応するクラスタのビットを「0」に設定する(ステップ1805)。未登録の場合、データ抽出プログラム(503)は、ステップ1803に戻る。データ抽出プログラム(503)は、未探索項目が無くなるまで、ステップ1803からステップ1805を繰り返す。これにより、転送クラスタビットマップ(508)には、転送の必要があるクラスタのみビット値「1」が設定される。
未探索項目が無くなると、データ抽出プログラム(503)は、転送クラスタビットマップ(508)の全ビット探索が終了したか否かを判定する(ステップ1806)。未探索ビットがある場合、データ抽出プログラム(503)は、ビット値が「1」か「0」かをチェックする(ステップ1807)。ビット値が「1」の場合、データ抽出プログラム(503)は、転送データ(509)に対応するクラスタのデータを追記する(ステップ1808)。一方、ビット値が「0」の場合、データ抽出プログラム(503)は、ステップ1806に戻る。データ抽出プログラム(503)は、未探索ビットが無くなるまで、ステップ1806からステップ1808を繰り返す。これにより、転送の必要があるクラスタを転送データ(509)に集約する。
未探索ビットが無くなると、データ抽出プログラム(503)はループ処理を抜け、一連の処理を終了する。
[モジュールハッシュ表転送処理の詳細]
図19に、仮想マシン構成プログラム(603)によるモジュールハッシュ表転送処理のフローチャートを示す。仮想マシン構成プログラム(603)は、転送元システムからのモジュールハッシュ表(605)の転送要求の受信を待ち受ける(ステップ1901)。仮想マシン構成プログラム(603)は、モジュールハッシュ表転送を受信すると(ステップ1902)、モジュールハッシュ表(605)を仮想マシンイメージの転送元システムに送信する(ステップ1903)。
[仮想マシン作成処理の詳細]
図20に、仮想マシン構成プログラム(603)により実行される仮想マシン作成処理の詳細内容を示す。最初に、仮想マシン構成プログラム(603)は、仮想マシンメタ情報(504)を入力し、仮想マシンの雛型を作成する(ステップ2001)。
次に、仮想マシン構成プログラム(603)は、転送クラスタビットマップ(508)の全ビットの探索が終了したか否かを判定する(ステップ2002)。未探索ビットが残っている間、仮想マシン構成プログラム(603)は、ビット値が「1」か「0」かをチェックする(ステップ2003)。
ビット値が「1」の場合、仮想マシン構成プログラム(603)は、転送データ(509)を参照し、雛型仮想マシンの対応するクラスタにデータを格納する(ステップ2004)。一方、ビット値が「0」の場合、仮想マシン構成プログラム(603)は、ステップ2002に戻る。仮想マシン構成プログラム(603)は、未探索ビットが無くなるまで、ステップ2002からステップ2004を繰り返す。これにより、仮想マシンイメージの転送元システムの側から送信された転送データ(509)の全てのデータが雛型仮想マシンに反映される。
ステップ2002において未探索ビットが無くなると、仮想マシン構成プログラム(603)は、ファイルハッシュ表(506)の全項目の探索が終了したか否か判定する(ステップ2005)。
未探索項目がある場合、仮想マシン構成プログラム(603)は、ファイルハッシュ表(506)の各ファイルのハッシュ値が、モジュールDB(606)に登録済か否かチェックする(ステップ2006)。登録済の場合、仮想マシン構成プログラム(603)は、モジュールDB(606)から対応するファイルのデータを抽出し、雛型仮想マシンに格納する(ステップ2007)。一方、未登録の場合、仮想マシン構成プログラム(603)は、ステップ2005に戻る。仮想マシン構成プログラム(603)は、未探索項目が無くなるまで、ステップ2005からステップ2007を繰り返す。これにより、雛型仮想マシンには、予めキャッシュされているアプリケーション・ソフトウェア、ミドル・ソフトウェア、OSの構成ファイル(402)が反映される。
未探索項目が無くなると、仮想マシン構成プログラム(603)はループ処理を抜け、一連の処理を終了する。
以上のプロセス終了時点で、雛型仮想マシン(仮想マシンイメージ(404)は、その転送元システムの仮想マシンイメージ(401)と同じファイルになる。
[モジュール抽出プログラムの処理]
図21に、モジュール抽出プログラム(604)の処理内容をフローチャートで示す。モジュール抽出プログラム(604)は、最初に、仮想マシンマウントプログラム(602)に、アプリケーション・ソフトウェア、ミドル・ソフトウェア、OSのインストール媒体やマスタとなる仮想マシンイメージを、ローカルファイルシステムのボリュームとしてマウントすることを要求する処理を実行する(ステップ2101)。
ボリュームのマウント後、モジュール抽出プログラム(604)は、ボリューム内の全ファイルの探索が終了したか否かを判定する(ステップ2102)。未探索ファイルが在る場合、モジュール抽出プログラム(604)は、各ファイルのハッシュ値を計算し、モジュールDB(606)に登録する処理を実行し(ステップ2103)、次に、ハッシュ値をモジュールハッシュ表(605)に追記する処理を実行する(ステップ2104)。モジュール抽出プログラム(604)は、未探索ファイルが無くなるまで、ステップ2102からステップ2104を繰り返す。
未探索ファイルが無くなると、モジュール抽出プログラム(604)はループ処理を抜け、一連の処理を終了する。
[まとめ]
以上説明したように、本実施例に係る転送先システムには、任意の仮想マシンにおいて共通に使用されるアプリケーション・ソフトウェア、ミドル・ソフトウェア、OSの構成ファイル(402)等のファイルが予めファイル単位でキャッシュされ、転送先システム内で管理されている。なお、キャッシュデータのファイルを共通に利用する仮想マシンの数が多いほど、仮想マシンの転送に利用するキャッシュデータの数が少なく済む。もっとも、転送先システムが転送時点でキャッシュしているファイルを、本実施例におけるキャッシュデータと考えてもよい。
また、本実施例に係る転送元システムは、仮想マシンイメージの転送に先立って、転送先システムのキャッシュデータの情報を取得し、仮想マシンイメージの構成に必要でありながら、転送先システムに存在しないデータだけを抽出し、転送データを構成する。このように、本実施例の場合には、仮想マシンイメージの全体を転送する必要がなく、その分、転送データ量を低減することができる。なお、この転送データ量の低減は、仮想マシンイメージの再構築機能が、転送先システム側の機能として用意されていることにより実現される。換言すると、本実施例に係るデータ転送システムでは、ネットワーク経由によるデータ転送を、CPUを使った仮想マシンイメージの再構築処理にオフロードすることができる。
また、本実施例に係るデータ転送システムは、転送元システムと転送先システムが、仮想マシンの共通のマスタイメージを管理する必要がない。このため、キャッシュデータの容量を削減することができ、ハードウェア資源が十分でない環境でも動作可能なシステムを提供することができる。勿論、キャッシュデータの容量が小さく済む分、コストの低減を実現できる。
また、本実施例の場合には、転送データ量が少なく済むため、仮想マシンイメージの転送時にも、複数の伝送チャネルを利用した多重転送を必ずしも必要としない。このため、データ転送システムの構築に必要とされるネットワーク部分の自由度を高めることができる。このため、回線容量が小さい地域や高度な通信機能を利用できない地域との間でも、仮想マシンイメージの転送サービスを提供することができる。勿論、複数の伝送チャネルを用いた多重転送が可能な場合には、伝送に要する時間を短縮することができる。しかも、本実施例の場合には、転送データ量が少なく済むため、複数人が伝送チャネルを利用する場合でも、データ転送に要する占有時間が少なく済むため、ネットワーク全体における通信への影響を最小限に留めることができる。
1…グループ企業1、2…グループ企業2、3…海外事業所1、4…海外事業所2、5…海外事業所3、6…海外事業所4、11…拠点1A、13…拠点1B、21…拠点2A、23…拠点2B、32…拠点1C、34…拠点2C、42…拠点1D、52…拠点1E、54…拠点2D、62…拠点2E、16、26…本社、12、14、22、24、31,33、41、51,53、61…データ同期装置、502…仮想マシンマウントプログラム、503…データ抽出プログラム、504…仮想マシンメタ情報、505…空きクラスタビットマップ、506…ファイルハッシュ表、507…ファイルクラスタ表、508…転送クラスタビットマップ、509…転送データ、602…仮想マシンマウントプログラム、603…仮想マシン構成プログラム、604…モジュール抽出プログラム、605…モジュールハッシュ表、606…モジュールDB。

Claims (14)

  1. ネットワーク経由で接続された転送元システムと転送先システムで構成されるデータ転送システムにおいて、
    前記転送元システムは、転送する仮想マシンイメージを構成するデータを特定する第1の情報を取得する仮想マシンイメージ情報取得部と、前記転送先システムにキャッシュされているデータを特定する第2の情報を取得するキャッシュ情報取得部と、前記第1の情報と前記第2の情報を照合し、前記第2の情報以外の前記第1の情報に対応するデータを転送データとして抽出するデータ抽出部とを有し、
    前記転送先システムは、前記第2の情報をネットワーク経由で前記転送元システムに転送するデータ転送部と、ネットワーク経由で受信した前記転送データと自システム内にキャッシュされている前記データとを組み合わせて前記仮想マシンイメージを再構築する仮想マシン構成部とを有する
    ことを特徴とするデータ転送システム。
  2. 請求項1に記載のデータ転送システムにおいて、
    前記第1及び第2の情報は、ファイル又はモジュールのハッシュ値である
    ことを特徴とするデータ転送システム。
  3. 請求項1に記載のデータ転送システムにおいて、
    前記第2の情報は、キャッシュされているモジュールを特定する情報である
    ことを特徴とするデータ転送システム。
  4. 請求項1に記載のデータ転送システムにおいて、
    前記第2の情報は、キャッシュされているファイルを特定する情報である
    ことを特徴とするデータ転送システム。
  5. 請求項1に記載のデータ転送システムにおいて、
    前記第2の情報は、複数の仮想マシンイメージに共通する情報である
    ことを特徴とするデータ転送システム。
  6. ネットワーク経由で転送先システムと接続される転送元システムにおいて、
    転送する仮想マシンイメージを構成するデータを特定する第1の情報を取得する仮想マシンイメージ情報取得部と、
    前記転送先システムにキャッシュされているデータを特定する第2の情報を取得するキャッシュ情報取得部と、
    前記第1の情報と前記第2の情報を照合し、前記第2の情報以外の前記第1の情報に対応するデータを転送データとして抽出するデータ抽出部と
    を有することを特徴とする転送元システム。
  7. 請求項6に記載の転送元システムにおいて、
    前記第1及び第2の情報は、ファイル又はモジュールのハッシュ値である
    ことを特徴とする転送元システム。
  8. ネットワーク経由で転送元システムと接続される転送先システムにおいて、
    自システムにキャッシュされているデータを特定する第2の情報をネットワーク経由で前記転送元システムに転送するデータ転送部と、
    ネットワーク経由で前記転送元システムから受信した転送データと自システム内にキャッシュされている前記データとを組み合わせて仮想マシンイメージを再構築する仮想マシン構成部と
    を有することを特徴とする転送先システム。
  9. 請求項8に記載の転送先システムにおいて、
    前記第2の情報は、ファイル又はモジュールのハッシュ値である
    ことを特徴とする転送先システム。
  10. 請求項8に記載の転送先システムにおいて、
    前記第2の情報は、キャッシュされているモジュールを特定する情報である
    ことを特徴とする転送先システム。
  11. 請求項8に記載の転送先システムにおいて、
    前記第2の情報は、キャッシュされているファイルを特定する情報である
    ことを特徴とする転送先システム。
  12. 請求項8に記載の転送先システムにおいて、
    前記第2の情報は、複数の仮想マシンイメージに共通する情報である
    ことを特徴とする転送先システム。
  13. ネットワーク経由で転送先システムと接続される転送元システムを構成するコンピュータを、
    転送する仮想マシンイメージを構成するデータを特定する第1の情報を取得する仮想マシンイメージ情報取得部、
    前記転送先システムにキャッシュされているデータを特定する第2の情報を取得するキャッシュ情報取得部、
    前記第1の情報と前記第2の情報を照合し、前記第2の情報以外の前記第1の情報に対応するデータを転送データとして抽出するデータ抽出部
    として機能させるためのプログラム。
  14. ネットワーク経由で転送元システムと接続される転送先システムを構成するコンピュータを、
    自システムにキャッシュされているデータを特定する第2の情報をネットワーク経由で前記転送元システムに転送するデータ転送部、
    ネットワーク経由で前記転送元システムから受信した転送データと自システム内にキャッシュされている前記データとを組み合わせて仮想マシンイメージを再構築する仮想マシン構成部
    として機能させるプログラム。
JP2011204805A 2011-09-20 2011-09-20 データ転送システム、転送元システム及び転送先システム並びにプログラム Active JP5756379B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011204805A JP5756379B2 (ja) 2011-09-20 2011-09-20 データ転送システム、転送元システム及び転送先システム並びにプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011204805A JP5756379B2 (ja) 2011-09-20 2011-09-20 データ転送システム、転送元システム及び転送先システム並びにプログラム

Publications (2)

Publication Number Publication Date
JP2013065259A true JP2013065259A (ja) 2013-04-11
JP5756379B2 JP5756379B2 (ja) 2015-07-29

Family

ID=48188681

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011204805A Active JP5756379B2 (ja) 2011-09-20 2011-09-20 データ転送システム、転送元システム及び転送先システム並びにプログラム

Country Status (1)

Country Link
JP (1) JP5756379B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016026071A1 (zh) * 2014-08-18 2016-02-25 华为技术有限公司 虚拟机数据的同步方法和装置
JP2018532184A (ja) * 2015-09-17 2018-11-01 ベリタス テクノロジーズ エルエルシー 頻繁に使用されるイメージセグメントをキャッシュからプロビジョニングするためのシステム及び方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110297728B (zh) * 2019-06-20 2021-07-23 暨南大学 基于起源数据的文件重建过程中选择性数据重建方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060155674A1 (en) * 2005-01-07 2006-07-13 Microsoft Corporation Image server
JP2008226167A (ja) * 2007-03-15 2008-09-25 Toshiba Corp データ配布システム及びデータ配布プログラム
US7447854B1 (en) * 2005-12-30 2008-11-04 Vmware, Inc. Tracking and replicating changes to a virtual disk
WO2009081527A1 (ja) * 2007-12-26 2009-07-02 Nec Corporation 情報処理装置、仮想計算機構成方法、並びに、プログラムを記録したコンピュータ読み取り可能な記録媒体
WO2009154272A1 (ja) * 2008-06-20 2009-12-23 日本電気株式会社 版管理システム、方法、及び、プログラム
WO2010052999A1 (ja) * 2008-11-06 2010-05-14 日本電気株式会社 メンテナンスシステム、メンテナンス方法、及びメンテナンス用プログラム
JP2010231661A (ja) * 2009-03-27 2010-10-14 Nec Corp 仮想マシンシステム、仮想マシンシステムの動作方法、及び仮想マシンシステムの動作プログラム

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060155674A1 (en) * 2005-01-07 2006-07-13 Microsoft Corporation Image server
US7447854B1 (en) * 2005-12-30 2008-11-04 Vmware, Inc. Tracking and replicating changes to a virtual disk
JP2008226167A (ja) * 2007-03-15 2008-09-25 Toshiba Corp データ配布システム及びデータ配布プログラム
WO2009081527A1 (ja) * 2007-12-26 2009-07-02 Nec Corporation 情報処理装置、仮想計算機構成方法、並びに、プログラムを記録したコンピュータ読み取り可能な記録媒体
WO2009154272A1 (ja) * 2008-06-20 2009-12-23 日本電気株式会社 版管理システム、方法、及び、プログラム
WO2010052999A1 (ja) * 2008-11-06 2010-05-14 日本電気株式会社 メンテナンスシステム、メンテナンス方法、及びメンテナンス用プログラム
US20120011507A1 (en) * 2008-11-06 2012-01-12 Takayuki Sasaki Maintenance system, maintenance method and program for maintenance
JP2010231661A (ja) * 2009-03-27 2010-10-14 Nec Corp 仮想マシンシステム、仮想マシンシステムの動作方法、及び仮想マシンシステムの動作プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016026071A1 (zh) * 2014-08-18 2016-02-25 华为技术有限公司 虚拟机数据的同步方法和装置
JP2018532184A (ja) * 2015-09-17 2018-11-01 ベリタス テクノロジーズ エルエルシー 頻繁に使用されるイメージセグメントをキャッシュからプロビジョニングするためのシステム及び方法

Also Published As

Publication number Publication date
JP5756379B2 (ja) 2015-07-29

Similar Documents

Publication Publication Date Title
CN100337218C (zh) 网络存储系统中的数据管理方法及其构建的网络存储系统
CN107391629B (zh) 集群间数据迁移方法、系统、服务器及计算机存储介质
WO2017167171A1 (zh) 一种数据操作方法,服务器及存储系统
US11068499B2 (en) Method, device, and system for peer-to-peer data replication and method, device, and system for master node switching
US20190007208A1 (en) Encrypting existing live unencrypted data using age-based garbage collection
CN106156359A (zh) 一种云计算平台下的数据同步更新方法
CN105095364A (zh) 一种数据同步系统和方法
WO2009134772A2 (en) Peer-to-peer redundant file server system and methods
CN106657169B (zh) 一种Redis中主从节点数据同步方法
EP3285186B1 (en) Methods and procedures for timestamp-based indexing of items in real-time storage
CN110727738B (zh) 基于数据分片的全局路由系统、电子设备及存储介质
CN112199427A (zh) 一种数据处理方法和系统
CN103023996A (zh) 一种云数据存储系统
JP5756379B2 (ja) データ転送システム、転送元システム及び転送先システム並びにプログラム
CN115150410A (zh) 多集群访问方法和系统
CN105827678A (zh) 一种基于高可用架构下的通信方法和节点
CN111225003B (zh) 一种nfs节点配置方法和装置
CN106855869B (zh) 一种实现数据库高可用的方法、装置和系统
CN102624932A (zh) 基于索引的异地云数据同步方法
CN102185717A (zh) 业务处理设备、方法及系统
CN111459416B (zh) 一种基于分布式存储的热迁移系统及其迁移方法
CN111382132A (zh) 医学影像数据云存储系统
JP2013543169A (ja) ミドルウェアマシン環境を含むシステム
CN112685486B (zh) 数据库集群的数据管理方法、装置、电子设备及存储介质
CN110971872B (zh) 一种基于分布式集群的视频图像信息采集方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140109

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140724

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140819

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20150203

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150325

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20150403

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: 20150507

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150529

R150 Certificate of patent or registration of utility model

Ref document number: 5756379

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250