以下、本発明の実施の形態を図面に基づいて説明する。クラウドサービスでは、VM(Virtual Machine)イメージファイルは1つのファイルとして転送される。圧縮転送すると、転送と解凍とがシーケンシャルに処理される。従って、転送時間を短くしても、解凍処理の時間だけサービス開始が遅くなる。
複数に分割して、転送処理と解凍処理とを並列処理する方法が考えられるが、最初の転送と最後の解凍処理に関しては、並列処理を行うことができない。この部分の時間短縮は困難である。
本実施例では、圧縮による転送時間の短縮と、並列化できない処理部分の時間を最小化して、転送開始からサービス開始までの時間を大幅に短縮する。
まず、クラウドサービスの一例として、データセンタの構成例を説明する。図1は、本実施例における、データセンタの構成例を示す図である。図1において、データセンタ1000は、管理者1と、転送制御サーバ30と、複数の配置対象サーバ4等とを有する。データセンタ1000は、転送制御サーバ30からIP網2等のネットワークを介して配置対象サーバ4へVMイメージファイル6を転送するデータ転送システムに相当する。
管理者1は、VMイメージファイル6を管理する責任者であり、転送制御サーバ30を利用するユーザである。管理者1は、転送制御サーバ30で、VMイメージファイル6の管理に係る操作を行う。
転送制御サーバ30は、管理者1からの要求に応じて、転送制御サーバ30がファイル管理ディレクトリ30dで管理しているVMイメージファイル6をIP網2を介して配置対象サーバ4へ転送する。転送制御サーバ30は、データ転送制御装置に相当する。配置対象サーバ4は、VMイメージファイル6を配置し、サービスを起動するサーバである。
データセンタ1000において、管理者1からVMイメージファイル6の登録を指示する操作を転送制御サーバ30で行う(ステップS11)。転送制御サーバ30は、VMイメージファイル6の登録要求に添付されたVMイメージファイル6をファイル管理ディレクトリ30dに格納する(ステップS12)。この際に、VMイメージファイル6は、最適な転送方法で転送可能なように分割され、分割単位で圧縮又は非圧縮され、ファイル管理ディレクトリ30dに登録される。また、分割単位の転送順序も決定される。
VMイメージファイル6の登録後、管理者1からVMイメージファイル6の転送要求を転送制御サーバ30へ行う(ステップS21)。転送制御サーバ30は、VMイメージファイル6を5個に分割してIP網2を介して、管理者1が指定した配置対象サーバ4へ転送する(ステップS22)。
ここでは、VMイメージファイル6が、VM−0001、VM−0002、VM−0003、VM−0004、VM−0005の5個に分割されて配置対象サーバ4へ転送される場合を示している。VMイメージファイル6を分割した5個のファイルの内、VM−0001、VM−0002、VM−0003、及びVM−0004は圧縮ファイルであり、VM−0005は非圧縮ファイルである。VM−0001、VM−0002、VM−0003、VM−0004、VM−0005等の分割ファイルを総称して、分割ファイル6dとする。
分割単位が小さい(細分化)ほど転送時には有利であるが、分割数が多くなると、ファイル圧縮率が悪くなる傾向がある。従って、適度な分割が望ましい。発明者は、圧縮率悪化の度合いがファイルの内容に依存することに着目し、本実施例では、転送するVMイメージファイルで分割後の圧縮率の度合いをシミュレーションすることで適度な分割数を決定する。
データセンタ1000における転送制御サーバ30及び配置対象サーバ4の機能構成について説明する。図2は、サーバの機能構成例について説明するための図である。図2において、転送制御サーバ30は、登録処理部31と、圧縮解凍処理部32と、圧縮判定部33と、転送制御部34と、送受信部35とを有する。また、転送制御サーバ30は、ファイル管理ディレクトリ30d、転送時間管理テーブル30e、転送順序制御テーブル30f等を、後述する記憶部330に記憶する。
登録処理部31は、管理者1から受信したVMイメージファイル6の登録要求に応じて、登録要求に含まれるVMイメージファイル6を分割して、記憶領域の空いている配置対象サーバ4に転送して登録する。VMイメージファイル6に係る情報は、ファイル管理ディレクトリ30dに格納される。
圧縮解凍処理部32は、登録処理部31からの指示に応じて、指定された分割ファイル6dを圧縮又は解凍する。圧縮解凍処理部32は、分割ファイル6dを圧縮した場合には、圧縮ファイルサイズを戻り値とする。
圧縮判定部33は、転送時間管理テーブル30eを参照して、VMイメージファイル6の転送時間及び解凍時間の総時間が最も短くなる転送方法を判定する。
転送制御部34は、転送順序制御テーブル30fを参照して、転送順に分割ファイル6dを指定して、送受信部35に配置対象サーバ4へ転送させる。
送受信部35は、転送制御部34からの転送指示に応じて、ファイル管理ディレクトリ30dから指定された圧縮又は非圧縮の分割ファイル6dを読み出して、指定された配置対象サーバ4へ転送する。送受信部35は、また、分割ファイル6dを転送する毎に、配置対象サーバ4へファイル情報通知を行う。ファイル情報通知には、圧縮状態、最終転送フラグ等の情報が含まれる。転送制御部34と送受信部35とが、転送部に相当する。
配置対象サーバ4は、送受信部41と、配置制御部42と、解凍部43と、結合部44とを有する。また、配置対象サーバ4は、配置ディレクトリ40dを、後述する記憶部430に記憶する。
送受信部41は、転送制御サーバ30から分割ファイル6dを受信すると、配置ディレクトリ40dに格納する。
配置制御部42は、転送制御サーバ30から受信したファイル情報通知に基づいて、解凍部43及び結合部44を制御して、解凍した分割ファイル6dを結合して、VMイメージファイル6を復元する。
解凍部43は、配置制御部42の指示に応じて、配置ディレクトリ40d内の、指定された分割ファイル6dを解凍する。
結合部44は、配置制御部42の指示に応じて、配置ディレクトリ40d内の、指定された解凍済みの分割ファイル6dを結合して、VMイメージファイル6を復元する。
上述した転送制御サーバ30は、図3に示すようなハードウェア構成を有する。図3は、転送制御サーバのハードウェア構成を示す図である。図3において、転送制御サーバ30は、コンピュータによって制御される端末であって、CPU(Central Processing Unit)311と、メモリ312と、ディスク313と、NIC(Network Interface Card)314と、ユーザインタフェース315と、ドライブ装置316とを有し、PCIバス319に接続される。
CPU311は、メモリ312に格納されたプログラムに従って転送制御サーバ30を制御する。メモリ312には、RAM(Random Access Memory)、ROM(Read Only Memory)等が用いられ、CPU311にて実行されるプログラム、CPU311での処理に必要なデータ、CPU311での処理にて得られたデータ等を記憶又は一時保存する。
ディスク313には、HDD(Hard Disk Drive)等が用いられ、各種処理を実行するためのプログラム等のデータ、及びVMイメージファイル6を格納する。ディスク313に格納されているプログラムの一部がメモリ312にロードされ、CPU311に実行されることによって、各種処理が実現される。記憶部330は、メモリ312及び/又はディスク313に相当する。
ユーザインタフェース315は、ディスプレイ、マウス、キーボード等を有し、CPU311の制御のもとに必要な各種情報を表示し、ユーザが転送制御サーバ30による処理に必要な各種情報を入力するために用いられる。NIC314は、有線又は無線などのネットワークを通じて通信を行う。NIC314による通信は無線又は有線に限定されるものではない。
転送制御サーバ30によって行われる処理を実現するプログラムは、例えば、CD−ROM(Compact Disc Read-Only Memory)等の記憶媒体317によって転送制御サーバ30に提供される。
ドライブ装置316は、ドライブ装置316にセットされた記憶媒体317(例えば、CD−ROM等)と転送制御サーバ30とのインターフェースを行う。
また、記憶媒体317に、後述される本実施の形態に係る種々の処理を実現するプログラムを格納し、この記憶媒体317に格納されたプログラムは、ドライブ装置316を介して転送制御サーバ30にインストールされる。インストールされたプログラムは、転送制御サーバ30により実行可能となる。
尚、プログラムを格納する記憶媒体317としてCD−ROMに限定するものではなく、コンピュータが読み取り可能な媒体であればよい。コンピュータ読取可能な記憶媒体として、CD−ROMの他に、DVDディスク、USBメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリであっても良い。
次に、転送制御サーバ30の図2で説明した機能構成の実装例を説明する。図4は、転送制御サーバの機能構成の実装例を説明するための図である。図4では、本実施例に係る機能構成の実装に関するハードウェアのみを示し、他を省略している。
図4において、CPU311が対応するプログラムを実行することにより、登録処理部31、圧縮解凍処理部32、圧縮判定部33、転送制御部34、送受信部35は、実現される。各部31〜35の処理概要は上述した通りである。したがって、CPU311が、登録処理部31、圧縮解凍処理部32、圧縮判定部33、転送制御部34、送受信部35の処理を行うことにより、夫々の処理部として動作する。
ファイル管理ディレクトリ30dは、ディスク313に保持される。ファイル管理ディレクトリ30dは、VMイメージファイル6の実態を含むため、ディスク313に格納される。
転送時間管理テーブル30e及び転送順序制御テーブル30fは、メモリ312に格納される。これらテーブル30e及び30fは、本実施例に係る処理で作成、参照されるテーブルであり、処理の終了後には、削除されても良い。
NIC314は、配置対象サーバ4との通信を制御し、VMイメージファイル6が転送制御サーバ30から配置対象サーバ4へと配置される。ユーザインタフェース315は、管理者1への情報を表示すると共に、管理者1による操作を受け付ける。ユーザインタフェース315は、管理者1からのVMイメージファイル6の登録要求を受け付けると、登録処理部31に通知する。また、ユーザインタフェース315は、管理者1からのVMイメージファイル6の転送要求を受け付けると、転送制御部34に通知する。
図5は、テーブルのデータ構成例を示す図である。図5(A)では、転送時間管理テーブル30eのデータ構成例を示している。図5(A)において、転送時間管理テーブル30eは、分割ファイル名、解凍時間、圧縮ファイル転送時間、非圧縮ファイル転送時間、圧縮状態等の項目を有する。
分割ファイル名は、VMイメージファイル6の分割ファイル6dのファイル名を示す。解凍時間は、VMイメージファイル6の分割ファイル6dの圧縮ファイルを解凍するときの時間(秒)を示す。
圧縮ファイル転送時間は、分割ファイル6dの圧縮ファイルを転送するのに掛る時間(秒)を示す。非圧縮ファイル転送時間は、分割ファイル6dの非圧縮ファイルを転送するのに掛る時間(秒)を示す。圧縮状態は、分割ファイル6dを圧縮して転送、又は、非圧縮で転送のいずれかを示す。
図5(B)では、転送順序制御テーブル30fのデータ構成例を示している。図5(B)において、転送順序制御テーブル30fは、分割ファイル名、転送順番等の項目を有する。
分割ファイル名は、VMイメージファイル6の分割ファイル6dのファイル名を示す。転送順番は、分割ファイル6dを転送する順番を示す。
次に、配置対象サーバ4について説明する。上述した配置対象サーバ4は、ストレージであって、図6に示すようなハードウェア構成を有する。
図6は、配置対象サーバのハードウェア構成を示す図である。図6において、配置対象サーバ4は、コンピュータによって制御される端末であって、CPU411と、メモリ412と、ディスク413と、NIC414とを有し、PCIバス419に接続される。
CPU411は、メモリ412に格納されたプログラムに従って配置対象サーバ4を制御する。メモリ412には、RAM(Random Access Memory)、ROM(Read Only Memory)等が用いられ、CPU411にて実行されるプログラム、CPU411での処理に必要なデータ、CPU411での処理にて得られたデータ等を記憶又は一時保存する。
ディスク413には、HDD(Hard Disk Drive)等が用いられ、各種処理を実行するためのプログラム等のデータを格納する。ディスク413に格納されているプログラムの一部がメモリ412にロードされ、CPU411に実行されることによって、各種処理が実現される。記憶部430は、メモリ412及び/又はディスク413を有する。
NIC414は、有線又は無線などのネットワークを通じて通信を行う。NIC414による通信は無線又は有線に限定されるものではない。
次に、配置対象サーバ4の図2で説明した機能構成の実装例を説明する。図7は、配置対象サーバの機能構成の実装例を説明するための図である。図7では、本実施例に係る機能構成の実装に関するハードウェアのみを示し、他を省略している。
図7において、CPU411が対応するプログラムを実行することにより、送受信部41、配置制御部42、解凍部43、結合部44は、実現される。したがって、CPU411が、送受信部41、配置制御部42、解凍部43、結合部44の処理を行うことにより、夫々の処理部として動作する。
配置ディレクトリ40dは、VMイメージファイル6の実態を含むため、ディスク413に格納される。
NIC414は、転送制御サーバ30との通信を制御し、VMイメージファイル6が転送制御サーバ30から配置対象サーバ4へと配置される。
次に、VMイメージファイル6の登録処理例について図8〜図10で説明する。図8〜図10は、転送制御サーバによる登録処理例について説明するための図である。図8において、管理者1がVMイメージファイル6の登録要求を転送制御サーバ30で行う(ステップS51)。管理者1により、15GbyteのVMイメージファイル6と、0.6Gbpsのファイル転送レートとが入力される。VMイメージファイル6のファイルサイズ「15Gbyte」、ファイル転送レート「0.6Gbps」は単なる一例に過ぎない。
転送制御サーバ30の登録処理部31は、VMイメージファイル6の最適な圧縮率となる分割数を取得する(ステップS52)。例えば、登録処理部31は、まず、VMイメージファイル6を3分割して圧縮率を算出する。圧縮率は、
(圧縮後の分割ファイルのサイズの総和)
÷ (VMイメージファイル6のファイルサイズ)
で求める。
3分割後の圧縮率と、分割前のVMイメージファイル6の圧縮率との差を算出する。分割前のVMイメージファイル6の圧縮率は、
(圧縮後のVMイメージファイル6のファイルサイズ)
÷ (VMイメージファイル6のファイルサイズ)
で求める。この圧縮率を比較元圧縮率とする。
3分割後の圧縮率と、分割前のVMイメージファイル6の圧縮率との差が、所定値(例えば、0.05(5%))以下であるか否かを判断する。所定値以下である場合、分割数を所定数分増やす。例えば、所定数を2とした場合、VMイメージファイル6を5分割する。VMイメージファイル6を5分割した場合の圧縮率を算出する。比較元圧縮率と5分割の圧縮率との差が所定値以下であるか否かを判断する。
所定値以下の間、分割数を増やして、比較元圧縮率と比較する。所定値を超えた分割数の1つ前の分割数を最適な圧縮率となる分割数(以下、最適分割数と言う)であると判断する。最適分割数とは、即ち、比較元圧縮率との差を所定値(例えば、0.05(5%))内で維持する最大の分割数である。ここでは、7分割で圧縮率が悪くなり、結果、最適分割数は5であると判断する。
登録処理部31は、VMイメージファイル6を最適分割数で均等に分割する(ステップS53)。15GbyteのVMイメージファイル6を均等に5分割する。1の分割ファイル6dは3Gbyteである。
そして、登録処理部31は、分割ファイル6dを夫々圧縮して、解凍することで、各分割ファイル6dの圧縮後のファイルサイズと、非圧縮時のファイルサイズ及び解凍時間とを取得する(ステップS54)。
登録処理部31は、各分割ファイル6dを圧縮して解凍する処理を圧縮解凍処理部32に行わせる。圧縮解凍処理部32は、分割ファイル6dを圧縮した結果の圧縮ファイルサイズと、圧縮後に解凍するまでの解凍時間とを戻り値として登録処理部31に通知する。
図9にて、転送制御サーバ30の登録処理部31は、圧縮ファイル転送時間と、非圧縮ファイル転送時間とを算出し、ステップS54(図8)で得た各分割ファイル6dの解凍時間と、算出した圧縮ファイル転送時間及び非圧縮ファイル転送時間とを転送時間管理テーブル30eに登録する(ステップS55)。
圧縮ファイル転送時間は、
圧縮ファイルサイズ × ファイル転送レート
により求める。
また、非圧縮ファイル転送時間は、
非圧縮ファイルサイズ × ファイル転送レート
により求める。
ファイル転送レートには、管理者1が入力した「0.6Gbps」が代入される。
ステップS55での登録処理によって、転送時間管理テーブル30eには、5個の分割ファイル6dに対して、解凍時間、圧縮ファイル転送時間、非圧縮ファイル転送時間、圧縮状態が設定される。圧縮状態は、次のステップS56で設定される。
次に、圧縮判定部33は、分割ファイル6dの圧縮及び非圧縮のパターンの内、最適な転送方法を決定し、各分割ファイル6dの圧縮状態をファイル転送時間管理テーブルに登録する(ステップS56)。
最適な転送方法とは、総解凍時間が総転送時間以下(総解凍時間≦総転送時間)となる、分割ファイル6dの圧縮及び非圧縮のパターンによる転送を言う。以下、総解凍時間が総転送時間以下(総解凍時間≦総転送時間)を転送条件と言う。
総解凍時間は、最初に転送する分割ファイルの転送時間に、圧縮された分割ファイル6dを全て解凍するのに掛る解凍時間の総和を加算した合計時間で表される。総解凍時間は、
最初の転送ファイルの転送時間 + 圧縮された全分割ファイルの解凍時間の総和
で求める。最初の転送ファイルは、圧縮された分割ファイル6dの内、一番転送時間が短いファイルである。
また、総転送時間は、圧縮又は非圧縮の分割ファイル6dを全て配置対象サーバ4に転送するのに掛る合計時間である。
圧縮判定部33による、最適な転送方法となる分割ファイル6dの圧縮及び非圧縮のパターンの判定例について説明する。先ず、5個の分割ファイル6dの全てを圧縮した場合、総解凍時間は「125」秒であり、総転送時間は「100」秒である。総解凍時間「125」秒が総転送時間「100」秒より長いため、最適な転送方法に該当しない。
圧縮判定部33は、分割ファイル「VM−0001」から順に1つを非圧縮にした場合で、転送条件を満足するか否かを判定する。非圧縮にする分割ファイル6dの選択順は任意である。この例では、分割ファイル「VM−0005」で、総解凍時間は「104」秒であり、総転送時間は「104」秒であるため、転送条件を満足する。
圧縮判定部33は、転送条件を満足した分割ファイル6dの圧縮状態を、転送時間管理テーブル30eの圧縮状態に設定する。
図10にて、転送制御サーバ30の登録処理部31は、転送時間管理テーブル30eの圧縮状態に従って、ファイル管理ディレクトリ30d内の各分割ファイルを圧縮又は非圧縮する。「非圧縮する」とは、圧縮せずに元のデータファイルのままにしておくことである。
この例では、分割ファイル「VM−0001」〜「VM−0004」を圧縮し、分割ファイル「VM−0005」は非圧縮となる。
次に、登録処理部31は、転送順序制御テーブル30fに分割ファイル名と転送順序とを登録する(ステップS58)。登録処理部31は、以下の転送順決定方法に従い転送順序を決める。
1)転送時間管理テーブル30eにおいて、圧縮状態が圧縮を示す分割ファイル6dの内、圧縮ファイル転送時間が短いものから順に転送する。
2)非圧縮の分割ファイル6dを圧縮した分割ファイル6dの後に転送する。
この例では、上記1)により、圧縮した分割ファイル「VM−0001」〜「VM−0004」に関して、圧縮ファイル転送時間が短い順は、「VM−0004」、「VM−0002」、「VM−0001」、「VM−0003」となる。従って、転送順序「1」から「4」が決定する。上記2)により、分割ファイル「VM−0005」が転送順序「5」となる。
上述した転送順決定方法により、転送順序制御テーブル30fの転送順序に順番「1」から「5」が設定される。
その後、転送制御サーバ30において、管理者1からVMイメージファイル6の転送要求を受けると、転送制御部34は、転送順序制御テーブル30fを参照して、転送順序に従って、各分割ファイル名を指定した転送指示を送受信部35に行う(ステップS59)。送受信部35は、指定された分割ファイル名に基づいて、ファイル管理ディレクトリ30dから分割ファイル6dを読み出して、読み出した分割ファイル6dを配置対象サーバ4へ転送する。
次に、ステップS59でのVMイメージファイル6の転送処理例について図11で説明する。図11は、転送制御サーバの転送処理例を説明するための図である。図11において、管理者1がVMイメージファイル6の転送要求を行う(ステップS71)。転送要求では、管理者1が、VMイメージファイル6と、配置対象サーバ4のIPアドレスとが入力される。
転送制御サーバ30の転送制御部34は、転送順序制御テーブル30fから転送順序に対応するVMイメージファイル6の分割ファイル名を検索する(ステップS72)。最初の転送では、転送順序「1」が設定されている分割ファイル名を取得する。この場合、分割ファイル名は「VM−0001」である。
転送制御部34は、取得した分割ファイル名を指定して、送受信部35に、分割ファイル6dを転送させる(ステップS73)。送受信部35は、指定された分割ファイル名を用いて、ファイル管理ディレクトリから分割ファイル6dを読み出して、管理者1が指定した配置対象サーバ4のIPアドレスに対して読み出した分割ファイル6dを転送する。
転送制御部34は、送受信部35によって分割ファイル6dが転送される毎に、全分割ファイル6dを転送するまで、転送順序を1加算して(ステップS74)、ステップS72及びS73を繰り返す。管理者1が指定したVMイメージファイル6の分割ファイル6dを全て転送すると、この転送処理は終了する。
配置対象サーバ4では、分割ファイル6dを受信する毎に順次解凍し、全ての分割ファイル6dを解凍したら、解凍済み及び非圧縮の分割ファイル6dを結合して、元のVMイメージファイル6を復元する(ステップS75)。
上述したように、転送制御サーバ30は、転送条件(総解凍時間≦総転送時間)を満たす転送方法で、分割ファイル6dを転送するため、配置対象サーバ4において、圧縮された最後の分割ファイル「VM−0003」が解凍した頃には、最後に転送された分割ファイル「VM−0005」を受信できる。この例では、分割ファイル「VM−0005」は非圧縮ファイルであるので、分割ファイル「VM−0005」の受信により、配置対象サーバ4は、解凍処理の完了を待つことなく、全分割ファイル「VM−0001」〜「VM−0005」を結合することができる。
以下各処理についてフローチャートで説明する。転送制御サーバ30の登録処理部31による登録処理について説明する。図12及び図13は、登録処理を説明するためのフローチャート図である。
図12にて、転送制御サーバ30の登録処理部31は、設計者1からユーザインタフェース315を介してVMイメージファイル6の登録要求を受け付ける(ステップS101)。登録処理部31は、設計者1によって入力されたVMイメージファイル6のファイルサイズを原本ファイルサイズに設定する(ステップS101)。登録処理部31は、圧縮解凍処理部32によってVMイメージファイル6を圧縮し、圧縮後のファイルサイズを取得して、圧縮後サイズに設定する(ステップS102)。そして、登録処理部31は、圧縮後サイズを原本ファイルサイズで割って、比較元圧縮率を求める(ステップS103)。
登録処理部31は、分割数に1を設定して(ステップS105)、カウンタを初期値(0より大きい整数)から開始して所定値ずつ増加し到達値に達するまで、ステップS107からS112までの処理を繰り返す(ステップS106)。例えば、初期値を5、所定値を5、到達値を50とする。初期値、所定値、及び到達値は、管理者1によって設定されても良い。
登録処理部31は、VMイメージファイル6をカウンタ値で均等に分割して(ステップS107)、圧縮解凍処理部32によって、各分割ファイル6dを圧縮する(ステップS108)。登録処理部31は、圧縮解凍処理部32から圧縮後の各分割ファイル6dのファイルサイズを取得する。
登録処理部31は、圧縮後の各分割ファイル6dのファイルサイズを合計して、合計圧縮サイズを求める(ステップS109)。そして、登録処理部31は、圧縮率を算出する(ステップS110)。
圧縮率 = (合計圧縮サイズ)/(原本ファイルサイズ)
により、圧縮率を算出する。
登録処理部31は、ステップS110で得た圧縮率とステップS104で算出した比較元圧縮率との差が所定値(例えば、0.05)以下であるか否かを判断する(ステップS111)。所定値以下の場合、登録処理部31は、カウンタ値を分割数に設定する(ステップS112)。従って、所定値以下の間は、分割数が更新され大きくなる。所定値より大きくなった場合、又は、到達値までカウントした場合、登録処理部31は、図13のステップS113へと進む。
図13にて、登録処理部31は、VMイメージファイル6を分割数で均等に分割し(ステップS113)、圧縮解凍処理部32によって、各分割ファイル6dを圧縮して解凍する(ステップS114)。登録処理部31は、圧縮解凍処理部32から各分割ファイル6dの解凍時間を取得する。
登録処理部31は、解凍時間を転送時間管理テーブル30eの解凍時間に登録する(ステップS115)。転送時間管理テーブル30eの解凍時間に、圧縮解凍処理部32から取得した各分割ファイル6dの解凍時間が設定される。
また、登録処理部31は、各分割ファイル6dの非圧縮時のファイル転送時間を計算する(ステップS116)。
転送時間 = ファイルサイズ×8(bit) ÷ 転送するネットワーク帯域
により計算する。登録処理部31は、非圧縮時の転送時間をファイル転送時間管理テーブル30eの非圧縮ファイル転送時間に登録する(ステップS117)。
次に、登録処理部31は、各分割ファイル6dの圧縮時のファイル転送時間を計算する(ステップS118)。
転送時間 = ファイルサイズ×8(bit) ÷ 転送するネットワーク帯域
により計算する。登録処理部31は、圧縮時の転送時間をファイル転送時間管理テーブル30eの圧縮ファイル転送時間に登録する(ステップS119)。
そして、登録処理部31は、各分割ファイル6dの圧縮/非圧縮の最適パターン抽出及び転送時間を算出して、最短転送時間を取得する圧縮/非圧縮決定処理(図14)を行う(ステップS120)。
登録処理部31は、分割ファイル6dを圧縮/非圧縮の最適パターンに従って、圧縮解凍処理部32によって圧縮して、ファイル管理ディレクトリ30dに格納することにより配置する(ステップS121)。
登録処理部31は、転送順序制御テーブル30fに各分割ファイルの転送順序を登録する転送順序登録処理(図17)を行う(ステップS122)。登録処理部31は、最短転送時間を取得して、この登録処理を終了する。
ステップS120での圧縮/非圧縮決定処理について図14から図16で説明する。図14から図16は、圧縮/非圧縮決定処理を説明するためのフローチャート図である。図14にて、登録処理部31は、第1カウンタを1から分割ファイル数まで1づつ増加しながら繰り返すループAを行う(ステップS201)。
登録処理部31は、第1カウンタが1より大きいか否かを判断する(ステップS202)。第1カウンタが1である場合、登録処理部31は、転送時間管理テーブル30eの圧縮状態に「圧縮」を設定して(ステップS203)、ループBを行うためステップS206へと進む。
一方、第1カウンタが1より大きい場合、登録処理部31は、転送時間管理テーブル30eの圧縮状態が「圧縮」を示すレコードの内、圧縮ファイル転送時間が最も長い値を示すレコードの圧縮状態を「非圧縮」に変更する(ステップS204)。また、登録処理部31は、転送時間管理テーブル30eの圧縮状態が「圧縮」を示すレコードの内、圧縮ファイル転送時間が最も短い値を初回ファイル転送時間に設定して(ステップS205)、ループBを開始する。
登録処理部31は、第2カウンタを1から分割フィル数まで1づつ増加しながら繰り返すループBを行う(ステップS206)。登録処理部31は、転送時間管理テーブルからレコードを1つ読み出して(ステップS207)、圧縮状態が「圧縮」を示すか否かを判断する(ステップS208)。
圧縮状態が「非圧縮」を示す場合、登録処理部31は、総転送時間に転送時間管理テーブルの非圧縮ファイル転送時間を加算して(ステップS209)、図15のステップS212へと進む。
一方、圧縮状態が「圧縮」を示す場合、登録処理部31は、総解凍時間にレコード内の解凍時間の値を加算して(ステップS210)、総転送時間にレコード内の圧縮ファイル転送時間の値を加算する(ステップS211)。そして、登録処理部31は、図15のステップS212へと進む。
図15にて、登録処理部31は、評価する分割ファイル6dはまだあるか否かを判断する(ステップS221)。ループBに対して、分割ファイル数分繰り返し処理したか否かが判断される。評価する分割ファイル6dがまだある場合、即ち、第2カウンタが分割ファイル数に到達していない場合、登録処理部31は、ステップS206へ戻り、第2カウンタを1インクリメントして上記同様の処理を繰り返す。
一方、分割ファイル6dを全て評価した場合、即ち、第2カウンタが分割ファイル数に到達した場合、登録処理部31は、総解凍時間に初回ファイル転送時間の値を加算する(ステップS222)。
登録処理部31は、第1カウンタが1より大きいか否かを判断する(ステップS223)。第1カウンタが1の場合、登録処理部31は、総解凍時間と総転送時間の内、短い方の時間を最小転送時間に設定して(ステップS224)、図16のステップS234へと進む。
一方、第1カウンタが1より大きい場合、登録処理部31は、総解凍時間が総転送時間以上であるか否かを判断する(ステップS225)。総解凍時間が総転送時間より短い場合、登録処理部31は、図16のステップS229へと進む。
図16にて、図15のステップS224にて総解凍時間が総転送時間より短い場合、登録処理部31は、最小転送時間と総転送時間とを比較して(ステップS229)、総転送時間が最小転送時間より長いか否かを判断する(ステップS230)。総転送時間が最小転送時間以下の場合、登録処理部31は、ステップS234へと進む。
一方、総転送時間が最小転送時間以下の場合、登録処理部31は、最小転送時間に総転送時間を設定して(ステップS231)、評価する圧縮及び非圧縮のパターンはまだあるか否かを判断する(ステップS234)。まだある場合、登録処理部31は、図14のステップS201へと戻り、ループAに関して第1カウンタを1インクリメントし、上述した同様の処理を繰り返す。
一方、全ての圧縮及び非圧縮のパターンを評価した場合、ループAに関して処理を終了したと判断し、登録処理部31は、この圧縮/非圧縮決定処理を終了する。
図15に戻り、ステップS225にて、総解凍時間が総転送時間以上である場合、登録処理部31は、最小転送時間と総解凍時間とを比較して(ステップS226)、総解凍時間が最小転送時間より長いか否かを判断する(ステップS227)。総解凍時間が最小転送時間以下である場合、登録処理部31は、図16のステップS232へと進む。
図16にて、登録処理部31は、転送時間管理テーブル30eの圧縮状態が「非圧縮」を示すレコードの内、一番短い転送時間を示すレコードの圧縮状態を「圧縮」に変更する(ステップS233)。そして、登録処理部31は、この圧縮/非圧縮決定処理を終了する。
図15に戻り、ステップS227にて、総解凍時間が最小転送時間より長い場合、登録処理部31は、最小転送時間に総解凍時間を設定して(ステップS228)、図16のステップS234へと進む。
図16にて、登録処理部31は、評価する圧縮及び非圧縮のパターンはまだあるか否かを判断する(ステップS234)。まだある場合、登録処理部31は、図14のステップS201へと戻り、ループAに関して第1カウンタを1インクリメントし、上述した同様の処理を繰り返す。
一方、全ての圧縮及び非圧縮のパターンを評価した場合、ループAに関して処理を終了したと判断し、登録処理部31は、この圧縮/非圧縮決定処理を終了する。
ステップS122での転送順序登録処理について図17で説明する。図17は、転送順序登録処理を説明するためのフローチャート図である。図17において、登録処理部31は、転送時間管理テーブル30eの圧縮状態が「圧縮」を示すレコードの内、圧縮ファイルを転送時間の短い順に分割ファイル名を取得し、転送順序制御テーブル30fに、分割ファイル名と転送順序とを、転送順序を1からインクリメントしながら登録する(ステップS301)。
例えば、図10の例において、転送順序制御テーブル30fに、分割ファイル名「VM−0004」及び転送順序「1」、分割ファイル名「VM−0002」及び転送順序「2」、分割ファイル名「VM−0001」及び転送順序「3」、そして分割ファイル名「VM−0003」及び転送順序「4」が順に設定される。
また、登録処理部31は、転送時間管理テーブル30eの圧縮状態が「非圧縮」を示すレコードの分割ファイル名を取得し、転送順序制御テーブル30fに、分割ファイル名と転送順序とを既に登録されている転送順番の最大値に対して1インクリメントしながら登録する(ステップS302)。
図10の例において、転送時間管理テーブル30eから分割ファイル名「VM−0005」が取得される。そして、転送時間管理テーブル30eに既に登録されている転送順番のうち最大値「4」を取得する。分割ファイル名「VM−0005」と最大値「4」を1インクリメントした転送順番「5」とが、転送順序制御テーブル30fに追加設定される。
次に、転送制御部34による転送制御処理を説明する。図18は、転送制御処理を説明するためのフローチャート図である。図18において、転送制御部34は、管理者1からVMイメージファイルの転送要求を受け付けると(ステップS401)、転送制御部34は、転送処理を分割ファイル数分を繰り返す(ステップS402)。ステップS402〜S405の処理が繰り返される。
転送制御部34は、転送順序制御テーブル30fから転送順序c+1番目の分割ファイル名を取得する(ステップS403)。そして、転送制御部34は、ファイル管理ディレクトリ30dからステップS403で取得した分割ファイル名の分割ファイル6dを読み出して、配置対象サーバ4へ転送する(ステップS404)。
分割ファイル6dの転送後、転送制御部34は、ステップS404で転送した分割ファイル6dの情報を配置対象サーバ4へ通知する(ステップS405)。分割ファイル6dの情報には、圧縮又は非圧縮を示す情報と、最終転送ファイルであった場合には最終転送ファイルを示す情報とを含む。
そして、分割ファイル数分の転送処理を終了すると、転送制御部34は、この転送制御処理を終了する。
次に、配置対象サーバ4での分割ファイル受信処理を説明する。図19は、配置対象サーバでの分割ファイル受信処理を説明するためのフローチャート図である。図19において、配置対象サーバ4の送受信部41が転送制御サーバ30からVMイメージファイルの分割ファイル6dを受信して(ステップS501)、分割ファイル6dの情報を受信する(ステップS502)。転送制御サーバ30から受信した分割ファイル6dは、配置ディレクトリ40dに格納される。
配置制御部42は、送受信部41が受信した分割ファイル6dの情報が圧縮又は非圧縮のいずれを示すか否かを確認する(ステップS503)。分割ファイル6dの情報が非圧縮を示す場合、ステップS505へと進む。一方、分割ファイル6dの情報が圧縮を示す場合、解凍部43によって分割ファイル6dを解凍する(ステップS504)。解凍部43によって解凍された分割ファイル6dで置き換えて、配置ディレクトリ40に格納される。
配置制御部42は、ステップS501で受信した分割ファイル6dが最終転送ファイルであったか否かを判断する(ステップS505)。ステップS502で受信した分割ファイル6dの情報によって、ステップS501で受信した分割ファイル6dが最終転送ファイルであったことを示すか否かを確認すればよい。最終転送ファイルでなかった場合、配置制御部42は、ステップS501へ戻り、送受信部41が分割ファイル6dを受信するのを待つ。
一方、分割ファイル6dが最終転送ファイルであった場合、配置制御部42は、配置ディレクトリ40dに格納された複数の分割ファイル6dを結合して、VMイメージファイル6を復元して置き換えて、配置ディレクトリ40に格納される。
以下に、本実施例における処理シーケンスについて図20から図25で説明する。図20から図23は、登録処理シーケンスを示す図である。図22において、登録処理部31は、VMイメージファイル6の登録要求を受け付ける(ステップS601)。VMイメージファイル6の登録要求には、VMイメージファイル6と、ファイル転送レートとが含まれる。
登録処理部31は、分割ファイル6dの圧縮率の合計が最適な分割数を決定し(ステップS602)、決定した分割数でVMイメージファイルを均等に分割する(ステップS603)。登録処理部31は、以下のステップS604からS617(図12)までの処理を分割ファイル数分繰り返す。
登録処理部31は、圧縮解凍処理部33に圧縮要求を行う(ステップS604)。圧縮要求によって分割ファイル名が指定されている。圧縮解凍処理部33は、圧縮要求によって指定されている分割ファイル6dを圧縮し、圧縮後のファイルサイズを登録処理部31に通知する(ステップS606)。登録処理部31は、圧縮後のファイルサイズを用いて圧縮ファイル転送時間を計算する(ステップS607)。
登録処理部31は、転送時間管理テーブル30eに圧縮ファイル転送時間登録を行う(ステップS608)。分割ファイル名と圧縮ファイル転送時間とが転送時間管理テーブル30eに登録され、登録処理部31は、転送時間管理テーブル30eから圧縮ファイル転送時間登録応答を受信する(ステップS609)。
図21にて、登録処理部31は、解凍要求を圧縮解凍処理部32に行う(ステップS610)。解凍要求で分割ファイル名が指定される。圧縮解凍処理部32は、解凍要求で指定される分割ファイル6dを解凍し、登録処理部31に分割ファイル名と解凍時間とを指定した解凍応答を行う(ステップS612)。
登録処理部31は、転送時間管理テーブル30eに対して、分割ファイル名と解凍時間とを含む解凍時間登録を行う(ステップS613)。転送時間管理テーブル30eにおいて、解凍時間登録で指定された分割ファイル名に対応付けて解凍時間が登録される。登録処理部31は、転送時間管理テーブル30eから解凍時間登録応答を受信する(ステップS614)。
登録処理部31は、非圧縮ファイル転送時間を計算して(ステップS615)、転送時間管理テーブル30eに対して、非圧縮ファイル転送時間登録を行う(ステップS616)。非圧縮ファイル転送時間登録によって、分割ファイル名と、ステップS615で計算した非圧縮ファイル転送時間とが指定される。転送時間管理テーブル30eにおいて、非圧縮ファイル転送時間登録で指定された分割ファイル名に対応付けて非圧縮ファイル転送時間が登録される。登録処理部31は、転送時間管理テーブル30eから非圧縮ファイル転送時間登録応答を受信する(ステップS617)。
図22にて、登録処理部31は、圧縮判定部33に対して圧縮パタン抽出要求を行う(ステップS618)。圧縮判定部33は、各分割ファイル6dの圧縮又は非圧縮の最適パターンを抽出し、また、転送時間を計算して(ステップS619)、転送時間管理テーブル30eに圧縮管理テーブル登録要求を行う(ステップS620)。圧縮管理テーブル登録要求には、分割ファイル名と、圧縮状態(圧縮又は非圧縮)とが指定されている。
転送時間管理テーブル30eにおいて、圧縮管理テーブル登録要求で指定された分割ファイル名に対応付けて圧縮状態(圧縮又は非圧縮)が登録される。圧縮判定部33は、転送時間管理テーブル30eから圧縮管理テーブル登録応答を受信する(ステップS621)。
圧縮判定部33は、登録処理部31へ圧縮パターン抽出応答を行う(ステップS622)。登録処理部31は、分割候補パターンで分割し、最適パターンで各分割ファイル6dを圧縮又は非圧縮して、ファイル管理ディレクトリに配置する(ステップS623)。
図23にて、登録処理部31は、ステップS624からS625の処理を分割ファイル数分繰り返す。転送順序制御テーブル30fに各分割ファイル6dの転送順序を登録する(ステップS624)。登録処理部31から転送順序登録要求が転送順序制御テーブル30fに行われる。転送順序登録要求には、分割ファイル名と、転送順序とが指定される。
転送順序制御テーブル30fに、分割ファイル名と、転送順序とが記憶されると、転送順序登録応答が登録処理部31へ行われ(ステップS625)、この登録処理シーケンスが終了する。
次に、転送制御シーケンスについて図24及び図25で説明する。図24及び図25は、転送制御シーケンスを示す図である。図24にて、転送制御部34は、VMイメージファイル転送要求を受けると(ステップS701)。VMイメージファイル転送要求にはVMイメージファイルと、配置対象サーバのIPアドレスとが指定される。送受信部35に対して、分割ファイル数分、以下のステップS702〜S709の処理を繰り返す。
転送制御部34は、転送順序制御テーブル30fに転送順序を指定した転送順序参照を行う(ステップS702)。転送順序制御テーブル30fは、転送順序に対応する分割ファイル名を読み出して、転送制御部34に対して、読み出した分割ファイル名を含む転送順序応答を行う(ステップS703)。
次に、転送制御部34は、送受信部35に対して、ファイル転送要求を行う(ステップS704)。ファイル転送要求には、分割ファイル名と、転送先IPアドレスとが含まれる。送受信部35は、ファイル転送要求に含まれる分割ファイル名を指定して、ファイル管理ディレクトリ30dに分割ファイル6dを要求する(ステップS705)。ファイル管理ディレクトリ30dは、送受信部35によって指定された分割ファイル6dを送受信部35に提供する(ステップS706)。
送受信部35は、IP網2を介して、転送先IPアドレスの配置対象サーバ4へ分割ファイル6dのファイル転送を行い(ステップS707)、また、転送先IPアドレスの配置対象サーバ4へファイル転送通知を行う(ステップS708)。ファイル転送通知によって、ステップS707でファイル転送した分割ファイル6dの圧縮状態と、最終転送フラグとが通知される。
そして、送受信部35は、転送制御部34にファイル転送応答を行う(ステップS709)。全ての分割ファイル6dのファイル転送を終了すると、転送制御部34は、VMイメージファイル転送応答を行う(ステップS710)。送受信部35は、一方で、IP網2を介して、配置対象サーバ4からファイル受信の通知を受けて(ステップS711)、転送制御サーバ30でのファイル転送は終了する。
図25にて、全ての分割ファイル6dを受信して、VMイメージファイル6を配置する配置対象サーバ4での処理シーケンスについて説明する。配置対象サーバ4の送受信部41は、分割ファイル数分、以下のステップS801〜S812の処理を繰り返す。
転送制御サーバ30から分割ファイル6dを受信すると(ステップS801)、配置ディレクトリ40dへ格納する(ステップS802)。
そして、配信制御部42は、転送制御サーバ30からファイル転送通知を受信すると(ステップS803)、ステップS801で受信した分割ファイ6dは圧縮ファイルであったか否かを判断する(ステップS804)。ファイル転送通知によって、圧縮状態に「圧縮」が指定されているか否かが確認される。圧縮ファイルでない場合、配信制御部42は、ステップS808へと進む。
一方、圧縮ファイルの場合、配信制御部42は、解凍部43に対して、ファイル解凍要求を行う(ステップS805)。解凍部43は、ステップS802で配置ディレクトリ40dに格納された分割ファイル6dを解凍する解凍処理を行った後(ステップS806)、配信制御部42へファイル解凍応答を行う(ステップS807)。
配信制御部42は、ステップS803で受信したファイル転送通知の最終転送フラグによって、最終転送が通知されたか否かを判断する(ステップS808)。最終転送の分割ファイル6dでない場合、配信制御部42は、転送制御サーバ30へファイル受信通知を行う(ステップS812)。配置対象サーバ4での転送処理シーケンスを終了する。
一方、最終転送の分割ファイル6dの場合、配信制御部42は、結合部44に対してファイル結合要求を行う(ステップS809)。結合部44は、配置ディレクトリ40dに格納された分割ファイル6dを結合して、VMイメージファイル6を復元した後(ステップS810)、配信制御部42へファイル結合応答を行う(ステップS811)。配信制御部42は、転送制御サーバ30へファイル受信通知を行う(ステップS812)。配置対象サーバ4での転送処理シーケンスを終了する。
図26は、本実施例の効果を説明するための図である。図26(A)では、圧縮したVMイメージファイル6を転送し、圧縮したVMイメージファイル6の受信後に解凍した場合を例示している。転送に100秒掛り、解凍に121秒掛った場合、圧縮したVMイメージファイル6の転送開始から、VMイメージファイル6を実行可能な状態になるまで、221秒掛ったことになる。
図26(B)では、本実施例における一例を示している。図26(B)において、VMイメージファイル6を均等に分割した、分割ファイル「VM−0001」から「VM−0005」を転送した場合を例示している。分割ファイル「VM−0001」から「VM−0004」は圧縮ファイルであり、分割ファイル「VM−0005」は非圧縮ファイルである。
転送制御サーバ30から、転送時間が最短の分割ファイル「VM−0004」が最初に転送され、非圧縮の分割ファイル「VM−0005」が、圧縮された分割ファイル「VM−0002」、「VM−0001」、及び「VM−0003」の後に転送される。
配置対象サーバ4では、分割ファイル「VM−0004」を最初に受信し、解凍を開始する。「VM−0004」の解凍処理中に、圧縮された分割ファイル「VM−0002」を受信し、「VM−0004」の解凍後に解凍開始する。同様に、解凍処理中に、順次、圧縮された分割ファイル「VM−0001」と「VM−0003」とを受信し、解凍する。
配置対象サーバ4は、圧縮された分割ファイル「VM−0004」、「VM−0002」、「VM−0001」、及び「VM−0003」が解凍されたタイミングで、非圧縮の分割ファイル「VM−0005」を転送制御サーバ30から受信できるため、非圧縮の分割ファイル「VM−0005」受信と略同時に、分割ファイル「VM−0001」から「VM−0005」を結合することができる。
本実施例では、この例の場合、分割ファイル「VM−0004」に掛った転送時間t1と、圧縮された分割ファイル「VM−0004」、「VM−0002」、「VM−0001」、及び「VM−0003」の解凍時間の合計とにより、転送を開始してから配置対象サーバ4でVMイメージファイル6の起動まで合計104秒である。図25(A)で例示した場合と比べて、配置対象サーバ4は効率的に分割ファイルを受信してVMイメージファイル6を復元することができるため、より迅速にVMイメージファイル6を起動することができる。
上述より、本実施例は、NFV(Network Function Virtualizatioin)において仮想化技術を応用した仮想マシン上のアプリケーション起動に必要なファイルの物理サーバ(配置対象サーバ4に相当)へ展開する処理を短縮化できる。これによって、管理者1はいち早くサービスを開始することができる。
即ち、VMイメージファイルファイルの転送時間だけでなく、VMイメージファイルの転送開始から転送先サーバ(配置対象サーバ4に相当)でのアプリケーション起動、サービス開始までの時間を短くできる。
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
以上の実施例を含む実施形態に関し、更に以下の付記を開示する。
(付記1)
データファイルを分割し、
前記データファイルを分割した複数の分割ファイルの夫々を、所定のアルゴリズムで圧縮したときの圧縮ファイル転送時間及び解凍時間と、圧縮しない非圧縮で転送したときの非圧縮ファイル転送時間とに基づいて、圧縮して転送する分割ファイルと、非圧縮で転送する分割ファイルとを決定し、
圧縮又は非圧縮を決定した前記複数の分割ファイルの転送順序を決定し、
決定した前記転送順序に従って、前記複数の分割ファイルを送信する
処理をコンピュータが行うデータ転送方法。
(付記2)
前記圧縮ファイル転送時間が最短の前記分割ファイルを最初に転送するように前記転送順序を決定することを特徴とする付記1記載のデータ転送方法。
(付記3)
圧縮した分割ファイルの転送後に、非圧縮の分割ファイルを転送するように前記転送順序を決定することを特徴とする付記1又は2記載のデータ転送方法。
(付記4)
前記圧縮した分割ファイルを圧縮ファイル転送時間の短い順に前記転送順序を決定することを特徴とする付記2又は3記載のデータ転送方法。
(付記5)
前記分割ファイルの夫々を圧縮後のファイルサイズと前記データファイルのファイルサイズとから圧縮率を計算し、
前記データファイルの圧縮率と、圧縮後の前記分割ファイルの圧縮率との差が所定値内で最大となる分割数を決定し、
前記分割数で、前記データファイルを均等に分割することを特徴とする付記1乃至4のいずれか一項記載のデータ転送方法。
(付記6)
前記分割数で均等に分割した前記複数の分割ファイルに対して、前記圧縮した分割ファイルの解凍時間を合計した総解凍時間が、圧縮した分割ファイル及び前記非圧縮の分割ファイルの転送時間を合計した総転送時間以下となる圧縮及び非圧縮のパターンを決定することを特徴とする付記5記載のデータ転送方法。
(付記7)
前記データファイルは、Virtual Machineイメージファイルであることを特徴とする付記1乃至6のいずれか一項記載のデータ転送方法。
(付記8)
データファイルを分割する分割部と、
前記データファイルを分割した複数の分割ファイルの夫々を、所定のアルゴリズムで圧縮したときの圧縮ファイル転送時間及び解凍時間と、圧縮しない非圧縮で転送したときの非圧縮ファイル転送時間とに基づいて、圧縮して転送する分割ファイルと、非圧縮で転送する分割ファイルとを決定する圧縮決定部と、
圧縮又は非圧縮を決定した前記複数の分割ファイルの転送順序を決定する転送順序決定部と、
決定した前記転送順序に従って、前記複数の分割ファイルを転送する転送部と
を有するデータ転送制御装置。
(付記9)
データファイルをサーバから装置へ転送するデータ転送システムであって、
前記サーバは、
前記データファイルを分割し、
前記データファイルを分割した複数の分割ファイルの夫々を、所定のアルゴリズムで圧縮したときの圧縮ファイル転送時間及び解凍時間と、圧縮しない非圧縮で転送したときの非圧縮ファイル転送時間とに基づいて、圧縮して転送する分割ファイルと、非圧縮で転送する分割ファイルとを決定し、
圧縮又は非圧縮を決定した前記複数の分割ファイルの転送順序を決定し、
決定した前記転送順序に従って、前記複数の分割ファイルを送信し、
前記装置は、
前記圧縮した分割ファイル及び前記非圧縮の分割ファイルの転送時間を合計した総転送時間内に、前記圧縮した分割ファイルを解凍し、
解凍した前記分割ファイルと、非圧縮で転送された前記分割ファイルとを結合して、前記データファイルを復元する
ことを特徴とするデータ転送システム。
(付記10)
データファイルを分割し、
前記データファイルを分割した複数の分割ファイルの夫々を、所定のアルゴリズムで圧縮したときの圧縮ファイル転送時間及び解凍時間と、圧縮しない非圧縮で転送したときの非圧縮ファイル転送時間とに基づいて、圧縮して転送する分割ファイルと、非圧縮で転送する分割ファイルとを決定し、
圧縮又は非圧縮を決定した前記複数の分割ファイルの転送順序を決定し、
決定した前記転送順序に従って、前記複数の分割ファイルを送信する
処理をコンピュータに行わせるデータ転送プログラム。