以下、本発明の実施の形態について、図面を参照して詳細に説明する。
(第1の実施の形態)
本発明の第1の実施の形態としての重複データ管理装置10の構成を図1に示す。図1において、重複データ管理装置10は、重複データ管理情報生成部11を含む。ここで、重複データ管理装置10は、CPU(Central Processing Unit)と、RAM(Random Access Memory)と、ROM(Read Only Memory)と、ハードディスク等の記憶装置と、接続インタフェースとを備えたコンピュータ装置によって構成可能である。接続インタフェースは、ネットワークに接続するネットワークインタフェースであってもよいし、他の装置にケーブル等を介して接続するインタフェースであってもよい。この場合、重複データ管理情報生成部11は、接続インタフェースと、ROMおよび記憶装置に記憶されたコンピュータ・プログラムおよび各種データをRAMに読み込んで実行するCPUとによって構成される。なお、重複データ管理装置10およびその機能ブロックを構成するハードウェア構成は上述の構成に限定されない。
また、図1において、重複データ管理装置10は、装置90aおよび装置90bと通信可能に接続されている。なお、装置90aおよび90bを、以下、総称して装置90とも記載する。例えば、重複データ管理装置10は、インターネット、LAN(Local Area Network)、SAN(Storage Area Network)、公衆回線網、無線通信網またはこれらの組合せ等によって構成されるネットワークを介して各装置90と接続されていてもよい。なお、図1には、2つの装置90を示したが、本発明の重複データ管理装置が接続される装置の数を限定するものではない。
ここで、装置90は、自装置における重複データ情報を有する装置である。自装置における重複データ情報とは、自装置において重複する複数のデータに関する情報である。例えば、装置90に保持される重複データ情報の一例について、図2を用いて模式的に説明する。図2では、装置90aには、データA1,B1,C1,B2,C2が保持されている。そのうち、B1およびB2、ならびに、C1およびC2は、それぞれ同一のデータである。この場合、装置90aは、データA1,B1,C1の実データA,B,Cを保持し、データA1,B1,C1の参照先をそれぞれ実データA,B,Cにマッピングしている。また、装置90aは、B2およびC2の参照先をそれぞれ実データB,Cにマッピングしている。そして、装置90aは、自装置の重複データ情報として、BおよびCを表す情報を保持している。同様に、図2において、装置90bには、データB3,D3,E3,B4,D4が保持されている。そのうち、B3およびB4、ならびに、D3およびD4は、それぞれ同一のデータである。この場合、装置90bは、B3,D3,E3の実データB,D,Eを保持し、データB3,D3,E3の参照先をそれぞれ実データB,D,Eにマッピングしている。また、装置90bは、データB4,D4の参照先をそれぞれ実データB,Dにマッピングしている。そして、装置90bは、自装置の重複データ情報として、BおよびDを表す情報を保持している。なお、装置90は、自装置で重複しているデータに関する重複データ情報を有していればよく、必ずしも、上述のように重複データを統合して管理していなくてもよい。
次に、重複データ管理装置10の機能ブロックの詳細について説明する。
重複データ管理情報生成部11は、装置90aの重複データ情報と、装置90bの重複データ情報とを用いて、装置90aおよび90b間の重複データ管理情報を生成する。具体的には、重複データ管理情報生成部11は、装置90aの重複データ情報が示す重複データと、装置90bの重複データ情報が示す重複データとの間で重複するものを検出し、検出したデータを表す重複データ管理情報を生成する。例えば、重複データ管理情報は、装置90間で重複するデータについて、装置90aでの実データの格納位置と、装置90bでの実データの格納位置とを含むものであってもよい。
以上のように構成された重複データ管理装置10の動作について図3を用いて説明する。
図3において、まず、重複データ管理情報生成部11は、装置90aにおける重複データ情報を取得する(ステップS1)。
次に、重複データ管理情報生成部11は、装置90bにおける重複データ情報を取得する(ステップS2)。なお、ステップS1およびS2の実行順序は順不同である。
次に、重複データ管理情報生成部11は、装置90aにおける重複データ情報の示す各データと、装置90bにおける重複データ情報の示す各データとの間で重複するものを検出する(ステップS3)。
次に、重複データ管理情報生成部11は、ステップS3で検出した装置90間で重複するデータについて、重複データ管理情報を生成する(ステップS4)。
以上で、重複データ管理装置10は動作を終了する。
このような重複データ管理情報生成動作の具体例を図4に示す。ここでは、各装置90には、図2に示したような重複データ情報がそれぞれ保持されているものする。
図4において、まず、重複データ管理情報生成部11は、装置90aから重複データ情報「B,C」と、装置90bから重複データ情報「B,D」とを取得する(ステップS1,S2)。
次に、重複データ管理情報生成部11は、装置90aの重複データ情報が示すデータB,Cと、装置90bの重複データ情報が示すデータB,Dとを検出対象として、装置90間でデータ比較を行う。ここでは、重複データ管理情報生成部11は、データBが重複することを検出する(ステップS3)。なお、図4では、斜線パターンで塗りつぶされた矩形は、重複データの検出対象となるデータを表している。
次に、重複データ管理情報生成部11は、データBを表す重複データ管理情報を生成する(ステップS4)。図4では、重複データ管理情報生成部11は、各装置90におけるデータBの格納位置を、重複データ管理情報に含めている。
以上で、重複データ管理情報生成動作の具体例の説明を終了する。
次に、本発明の第1の実施の形態の効果について述べる。
本発明の第1の実施の形態としての重複データ管理装置は、重複データの検出処理をより効率的に実行する。
その理由は、重複データ管理情報生成部が、各装置における重複データ情報を用いて、一方の装置における重複データと、他方の装置における重複データとの間で重複するものを検出するからである。
ここで、装置間で重複するデータは、各装置内でも重複しているケースが多いと考えられる。したがって、そのようなケースであれば、本実施の形態は、各装置における重複データ同士を装置間で比較するだけで、装置間で重複するデータの多くを検出可能となる。このように、本実施の形態は、各装置において重複していないデータについては装置間の比較処理を省略することにより、重複データ検出処理を効率的に実行しながら、装置間の重複データの多くを検出することができる。
(第2の実施の形態)
次に、本発明の第2の実施の形態について図面を参照して詳細に説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第1の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。
まず、本発明の第2の実施の形態としての重複データ管理装置20の構成を図5に示す。図5において、重複データ管理装置20は、本発明の第1の実施の形態としての重複データ管理装置10に対して、重複データ管理情報生成部11に替えて重複データ管理情報生成部21を備える点が異なる。
また、図5において、重複データ管理装置20は、装置90a、90b、90c、90dと通信可能に接続されている。装置90a、90b、90c、90dは、本発明の第1の実施の形態において説明した装置90と同様に構成される。また、装置90aおよび90bはノードAに含まれ、装置90cおよび90dはノードBに含まれるものとする。なお、図5には、2つのノードにそれぞれ2つずつ含まれる装置90を示したが、本発明の重複データ管理装置が接続されるノードの数および各ノードに含まれる装置の数を限定するものではない。
重複データ管理情報生成部21は、本発明の第1の実施の形態における重複データ管理情報生成部11と同様に構成されることにより、装置90間の重複データ管理情報を生成する。さらに、重複データ管理情報生成部21は、一方の装置90間の重複データ管理情報と、他方の装置90間の重複データ管理情報とに基づいて、階層的な重複データ管理情報を生成する。例えば、重複データ管理情報生成部21は、ノードAに含まれる装置90aおよび90b間の重複データ管理情報が示す各データと、ノードBに含まれる装置90cおよび90d間の重複データ管理情報が示す各データとの間で重複するものを検出し、ノードAおよびB間の重複データ管理情報を生成する。
以上のように構成された重複データ管理装置20の動作について、図6を参照して説明する。
まず、重複データ管理情報生成部21は、ノードAにおける装置90aおよび90b間について本発明の第1の実施の形態における重複データ管理情報生成部11と同様に動作することにより重複データ管理情報を生成する(ステップS41)。
次に、重複データ管理情報生成部21は、ノードBにおける装置90cおよび90d間についても同様に重複データ管理情報を生成する(ステップS42)。
次に、重複データ管理情報生成部21は、装置90aおよび90b間の重複データ管理情報が示す各データと、装置90cおよび90d間の重複データ管理情報が示す各データとを比較し、重複するものを検出する(ステップS43)。
次に、重複データ管理情報生成部21は、ステップS43で検出したノードAおよびB間で重複するデータについて、重複データ管理情報を生成する(ステップS44)。これにより、階層的な重複データ管理情報が生成された。
以上で、重複データ管理装置20は、重複データ管理情報生成動作を終了する。
例えば、重複データ管理装置20により生成される階層的な重複データ管理情報の一例を図7に示す。
図7において、ノードA内の装置90aは、重複データ情報としてデータA,B,Cを表す情報を保持し、ノードA内の装置90bは、重複データ情報としてデータB,C,Dを表す情報を保持しているとする。また、ノードB内の装置90cは、重複データ情報としてデータB,E,Fを表す情報を保持し、ノードB内の装置90dは、重複データ情報としてデータB,F,Gを表す情報を保持しているとする。
この場合、まず、重複データ管理情報生成部21は、ノードAにおける装置90aおよび90b間の重複データ管理情報として「B,C」を表す情報を生成する(ステップS41)。
次に、重複データ管理情報生成部21は、ノードBにおける装置90cおよび90d間の重複データ管理情報としてデータ「B,F」を表す情報を生成する(ステップS42)。
次に、重複データ管理情報生成部21は、ノードAの重複データ管理情報が示すデータB,C、および、ノードBの重複データ管理情報が示すデータB,Fを比較し、重複する「B」を検出する(ステップS43)。
そして、重複データ管理情報生成部21は、ノードAおよびB間の重複データ管理情報として「B」を表す情報を生成する(ステップS44)。
また、さらに、ノードAおよびBがノードXに含まれ、図示しないノードCおよびノードDがノードYに含まれる場合を考える。この場合、重複データ管理装置20は、ノードAおよびB間の重複データ管理情報と、ノードCおよびD間の重複データ管理情報とを用いて、ノードXおよびY間の重複データ管理情報を生成してもよい。このように、重複データ管理装置20が生成する重複データ管理情報の階層の深さに制限はない。
次に、本発明の第2の実施の形態の効果について述べる。
本発明の第2の実施の形態としての重複データ管理装置は、異なるノード間で重複するデータを、より効率的に検出することができる。
その理由は、重複データ管理情報生成部が、一方の装置間の重複データ管理情報の示す各データと、他方の装置間の重複データ管理情報の示す各データとの間で重複するものを検出し、階層的な重複データ管理情報を生成するからである。これにより、本実施の形態は、各ノードに含まれる全ての装置に格納される全てのデータ同士を比較する処理を必要とせずに、異なるノード間で重複するデータを検出可能となる。
なお、本発明の第2の実施の形態において、重複データ管理装置20が、管理対象となる複数のノードの外部に設置される例を中心に説明した。この他、重複データ管理装置20の重複データ管理情報生成部21は、管理対象となる複数のノードに分散されて実現されてもよい。
例えば、ノードAに含まれる任意の装置上に重複データ管理情報生成部21Aが実現されているとする。同様に、ノードB内の任意の装置上に重複データ管理情報生成部21Bが実現され、ノードAおよびノードBを含むノードX内の任意の装置上に重複データ管理情報生成部21Xが実現されているとする。この場合、重複データ管理情報生成部21Aは、ノードA内の装置間の重複データ管理情報を生成して保持する。同様に、重複データ管理情報生成部21Bは、ノードB内の装置間の重複データ管理情報を生成して保持する。そして、重複データ管理情報生成部21Xは、重複データ管理情報生成部21Aに保持されるノードAの重複データ管理情報と、重複データ管理情報生成部21Bに保持されるノードBの重複データ管理情報とを用いて、ノードAおよびB間の重複データ管理情報を生成すればよい。また、重複データ管理情報生成部21Xは、このようにして生成したノードAおよびB間の重複データ管理情報を、ノードXにおける重複データ管理情報として保持すればよい。これにより、重複データ管理情報生成部21Xは、ノードXを含むさらに上位のノードPに含まれる重複データ管理情報生成部21Pに対して、ノードXの重複データ管理情報を提供することができる。
このように、重複データ管理情報生成部を複数のノードに分散して階層的に構成することにより、本実施の形態は、階層的な重複データ管理情報をより効率的に生成可能となる。
(第3の実施の形態)
次に、本発明の第3の実施の形態について図面を参照して詳細に説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第1の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。
まず、本発明の第3の実施の形態としてのデータ転送制御システム3の構成を図8に示す。図8において、データ転送制御システム3は、重複データ管理装置30と、データ転送制御装置40とを含む。また、重複データ管理装置30は、本発明の第1の実施の形態としての重複データ管理装置10に対して、重複データ管理情報生成部11に替えて重複データ管理情報生成部31を含む点が異なる。また、データ転送制御装置40は、データ転送制御部41を含む。ここで、データ転送制御装置40は、CPUと、RAMと、ROMと、ハードディスク等の記憶装置と、接続インタフェースとを備えたコンピュータ装置によって構成可能である。接続インタフェースは、ネットワークに接続するネットワークインタフェースであってもよいし、他の装置にケーブル等を介して接続するインタフェースであってもよい。この場合、データ転送制御部41は、接続インタフェースと、ROMおよび記憶装置に記憶されたコンピュータ・プログラムおよび各種データをRAMに読み込んで実行するCPUとによって構成される。なお、データ転送制御装置40およびその機能ブロックを構成するハードウェア構成は上述の構成に限定されない。
また、図8において、重複データ管理装置30は、ストレージシステム91aおよび91bとそれぞれ通信可能に接続されている。また、データ転送制御装置40は、ストレージシステム91aおよび91bとそれぞれ通信可能に接続されている。以降、ストレージシステム91aおよび91bを総称してストレージシステム91とも記載する。例えば、重複データ管理装置30およびデータ転送制御装置40は、インターネット、LAN、SAN、公衆回線網、無線通信網またはこれらの組合せ等によって構成されるネットワークを介してストレージシステム91と接続されていてもよい。なお、図8は、2つのストレージシステム91を示したが、本発明のデータ転送制御システムに接続されるストレージシステムの数を限定するものではない。
ストレージシステム91aは、情報処理装置92a上で動作する仮想マシンの仮想ディスクを格納する。ストレージシステム91bは、情報処理装置92b上で動作する仮想マシンの仮想ディスクを格納する。以降、情報処理装置92aおよび92bを総称して情報処理装置92とも記載する。ここで、仮想ディスクは、ストレージシステム91の記憶装置が論理的に分割された単位によって構成され、LUN(logical unit number)によって識別される論理ボリュームであってもよい。また、ストレージシステム91は、重複排除機能を有しており、自装置内で重複するデータを統合して管理し、重複データ情報を保持している。
情報処理装置92は、自装置上で1つ以上の仮想マシンを動作させる。各仮想マシンには、1つ以上の仮想ディスクが割り当てられ、各仮想ディスクは、ストレージシステム91に格納される。なお、図8には、各情報処理装置92に格納される3つずつの仮想マシンと、各ストレージシステム91に格納される3つずつの仮想ディスクを示したが、本発明のデータ転送制御システムに接続されるストレージシステムに格納される仮想ディスクの数およびそれらの仮想ディスクが割り当てられている仮想マシンの情報処理装置上での動作数を限定するものではない。
例えば、ストレージシステム91aに格納される仮想ディスクおよび重複データ情報の一例を図9に模式的に示す。ここでは、ストレージシステム91aは、仮想ディスク101および102を格納する。仮想ディスク101は、データA1,B1,C1,D1,E1,F1,G1,H1を保持する。また、仮想ディスク102は、データI2,B2,C2,J2,K2,F2,L2,H2を保持する。ここで、B1およびB2、C1およびC2、F1およびF2、ならびに、H1およびH2は、それぞれ同一のデータであるとする。この場合、ストレージシステム91aは、データA1,B1,C1,D1,E1,F1,G1,H1,I2,J2,K2,L2の実データA,B,C,D,E,F,G,H,I,J,K,Lを、記憶装置内における図示の格納位置にそれぞれ保持する。そして、ストレージシステム91aは、仮想ディスク101および102の各データをそれぞれ実データにマッピングする。そして、ストレージシステム91aは、重複データ情報として、データB,C,F,Hを表す情報を保持している。
次に、重複データ管理装置30およびデータ転送制御装置40の機能ブロックの詳細について説明する。
重複データ管理情報生成部31は、ストレージシステム91aにおける重複データ情報と、ストレージシステム91bにおける重複データ情報とを用いて、ストレージシステム91aおよび91b間の重複データ管理情報を生成する。具体的には、重複データ管理情報生成部31は、ストレージシステム91aの重複データ情報が示す各データのハッシュ値と、ストレージシステム91bの重複データ情報が示す各データのハッシュ値とを比較し、一致するものを重複候補ペアとする。そして、重複データ管理情報生成部31は、重複候補ペアについてデータ比較を行い、一致すれば重複データとする。
また、重複データ管理情報生成部31は、ストレージシステム91間の重複データについて、そのハッシュ値と、各ストレージシステム91における格納位置を示す情報とを含む重複データ管理情報を生成する。また、データが異なる場合でもハッシュ値が同一となる(衝突する)場合もあり得る。このような場合を考慮して、重複データ管理情報生成部31は、重複データにIDを付与し、重複データ管理情報にIDを含めて保持してもよい。また、この場合、重複データ管理情報生成部31は、同一のハッシュ値を有する異なる重複データについて、異なるIDを付与するようにしてもよい。この場合、ハッシュ値およびIDの組み合わせによって、重複データは識別可能となる。
データ転送制御部41は、ストレージシステム91の一方から他方へ、仮想ディスクのデータを転送する。例えば、データ転送制御部41は、仮想ディスクの移動に伴う転送を行ってもよいし、仮想ディスクの複製に伴う転送を行ってもよい。このとき、データ転送制御部41は、重複データ管理装置30の重複データ管理情報を参照することにより、転送対象の仮想ディスクに含まれるデータのうち、重複データ管理情報の示す重複データを除外してデータを転送する。そして、データ転送制御部41は、転送しなかった重複データについては、転送先のストレージシステム91において実データにマッピングさせる処理を行えばよい。
以上のように構成されたデータ転送制御システム3の動作について、図面を参照して説明する。
まず、重複データ管理装置30の動作を図10に示す。
図10において、まず、重複データ管理情報生成部31は、ストレージシステム91aにおける重複データ情報の示す各データのハッシュ値を取得する(ステップS11)。
次に、重複データ管理情報生成部31は、ストレージシステム91bにおける重複データ情報の示す各データのハッシュ値を取得する(ステップS12)。なお、ステップS11およびS12の実行順序は順不同である。
次に、重複データ管理情報生成部31は、ストレージシステム91aにおける重複データ情報の示す各データおよびストレージシステム91bにおける重複データ情報の示す各データの各組み合わせについて、ステップS13〜S17を実行する。
ここでは、まず、重複データ管理情報生成部31は、この組み合わせについて、ステップS11およびS12で取得したハッシュ値を比較する(ステップS13)。
ここで、ハッシュ値が一致した場合、重複データ管理情報生成部31は、この組み合わせを重複候補ペアとして、一方のデータ本体をストレージシステム91aから取得する(ステップS14)。
次に、重複データ管理情報生成部31は、重複候補ペアの他方のデータ本体を、ストレージシステム91bから取得する(ステップS15)。なお、ステップS14およびS15の実行順序は順不同である。
このように、重複データ管理情報生成部31は、ステップS13でハッシュ値が一致したデータについてステップS14〜S15を実行してデータ本体を取得し、ハッシュ値が一致しないデータについてはデータ本体を取得しないことにより、効率性を高めている。
次に、重複データ管理情報生成部31は、ステップS14およびS15で取得した重複候補ペアのデータ本体を比較する(ステップS16)。
ここで、重複候補ペアのデータが一致した場合、重複データ管理情報生成部31は、これらのデータをストレージシステム91間の重複データとして、重複データ管理情報を生成する(ステップS17)。具体的には、重複データ管理情報生成部31は、重複データに付与したIDと、ハッシュ値と、ストレージシステム91aにおける格納位置と、ストレージシステム91bにおける格納位置とを対応付けた重複データ管理情報を生成すればよい。
一方、ステップS13でハッシュ値が一致しない場合や、ステップS16でデータが一致しない場合、重複データ管理情報生成部31は、この組み合わせについての処理を終了する。
そして、重複データ管理情報生成部31は、他のデータの組み合わせについて、ステップS13〜S17を繰り返す。ストレージシステム91aおよび91bの重複データ情報の示す各データ間の全ての組み合わせについてステップS13〜S17を実行すると、重複データ管理装置30は動作を終了する。
次に、このような重複データ管理情報生成動作により生成される重複データ管理情報の一例について、図11〜図12を参照して説明する。ここでは、図11に示すように、ストレージシステム91aは、記憶装置における図示の格納位置に実データA,B,C,D,E,F,G,H,I,J,K,Lを保持し、そのうちの重複データ情報として「B,C,F,H」を保持している。また、ストレージシステム91bは、記憶装置上における図示の格納位置に実データO,P,Q,R,S,T,U,V,W,X,Y,Zを保持し、そのうちの重複データ情報として「Q,S,W,Y」を保持している。そこで、重複データ管理情報生成部31は、各ストレージシステム91から、それぞれの重複データ情報が示す各データのハッシュ値を取得する(ステップS11、S12)。
次に、重複データ管理情報生成部31は、ストレージシステム91aにおけるデータB,C,F,Hと、ストレージシステム91bにおけるデータQ,S,W,Yの各組み合わせについてステップS13〜S17の処理を行う。
まず、重複データ管理情報生成部31は、データBおよびQのハッシュ値を比較し、一致したとする(ステップS13でYes)。ここでは、一致したハッシュ値を「hash1」と記載する。
次に、重複データ管理情報生成部31は、これらのデータ本体をストレージシステム91aおよび91bから取得し(ステップS14、S15)、比較の結果、一致したとする(ステップS16でYes)。
次に、重複データ管理情報生成部31は、この重複データ情報にIDとして1を付与する。そして、重複データ管理情報生成部31は、ハッシュ値「hash1」と、ID「1」と、データBのストレージシステム91aにおける格納位置「2」と、データQのストレージシステム91bにおける格納位置「3」とを対応付けて重複データ管理情報として生成する(ステップS17)。これにより、図12に示す1行目の重複データ管理情報が生成された。
同様に、重複データ管理情報生成部31は、データCおよびSのハッシュ値およびそのデータが一致すると判断したとする(ステップS13でYes、S14、S15、S16でYes)。ここで、データCおよびSのハッシュ値として、データBおよびQのハッシュ値と衝突する「hash1」が得られたことを想定する。この場合、重複データ管理情報生成部31は、データCおよびSを表す重複データ情報に、データBおよびQを表す重複データ情報に付与したID「1」とは異なるID「2」を付与する。そして、重複データ管理情報生成部31は、ハッシュ値「hash1」と、ID「2」と、データCのストレージシステム91aにおける格納位置「3」と、データSのストレージシステム91bにおける格納位置「5」とを対応付けて重複データ管理情報として生成する(ステップS17)。これにより、図12に示す2行目の重複データ管理情報が生成された。
同様に、重複データ管理情報生成部31は、データFおよびWのハッシュ値およびそのデータが一致すると判断したとする(ステップS13でYes、S14、S15、S16でYes)。ここでは、データFおよびWのハッシュ値として、それまでに得られた重複データのハッシュ値とは異なる「hash2」が得られたものとする。この場合、重複データ管理情報生成部31は、この重複データ情報にIDとして1を付与する。そして、重複データ管理情報生成部31は、ハッシュ値「hash2」と、ID「1」と、データFのストレージシステム91aにおける格納位置「9」と、データWのストレージシステム91bにおける格納位置「5」とを対応付けて重複データ管理情報として生成する(ステップS17)。これにより、図12に示す3行目の重複データ管理情報が生成された。
以上で、具体例の説明を終了する。
重複データ管理装置30は、以上の動作を、あらかじめ定められたタイミングで繰り返し実行してもよい。その場合、重複データ管理装置30は、各ストレージシステム91に格納された重複データ情報の示すデータのうち前回以降に更新のないものについては、ハッシュ値の取得を省略可能である。また、重複データ管理装置30は、各ストレージシステム91に格納された重複データ情報の示すデータのうち前回以降に更新のないデータ同士の組み合わせについては、ハッシュ値およびデータの比較を省略可能である。
次に、データ転送制御装置40の動作を図13に示す。
図13において、まず、データ転送制御部41は、ストレージシステム91の一方に格納される仮想ディスクを他方のストレージシステム91へ転送する指示を表す情報を取得する(ステップS21)。このような指示情報は、管理者によって入力装置を介して入力されるものであってもよいし、同一の装置上の他の機能ブロックまたは他の装置から入力されるものであってもよい。
次に、データ転送制御部41は、重複データ管理装置30の重複データ管理情報を参照することにより、転送対象の仮想ディスクに含まれるデータのうち、転送先のストレージシステム91との重複データを特定する(ステップS22)。
次に、データ転送制御部41は、転送対象の仮想ディスクに含まれるデータのうち、ステップS22で特定したデータ以外のデータを転送先のストレージシステム91に転送する(ステップS23)。
次に、データ転送制御部41は、転送先のストレージシステム91に転送された仮想ディスクにおいて、転送しなかった該当するデータに、実データの格納位置をマッピングする(ステップS24)。このとき、データ転送制御部41は、重複データ管理装置30の重複データ管理情報を参照することにより、該当する実データの格納位置を特定すればよい。
以上で、データ転送制御装置40は動作を終了する。
次に、上述のように動作するデータ転送制御装置40によって転送される仮想ディスクの一例を図14に示す。ここでは、ストレージシステム91aには、図9に示した仮想ディスク101および102が格納されているものとする。また、ストレージシステム91aおよび91b間では、図11〜図12に示したように重複データ管理情報が生成されているものとする。このとき、仮想ディスク101をストレージシステム91aから91bに転送する指示情報が入力されたことを想定する(ステップS21)。
この場合、データ転送制御部41は、図12に示した重複データ管理情報を参照することにより、仮想ディスク101に含まれるデータのうち、ストレージシステム91bと重複する実データ「B,C,F」に対応するデータ「B1,C1,F1」を特定する(ステップS22)。
次に、データ転送制御部41は、仮想ディスク101に含まれるデータのうち、ステップS22で特定したデータ以外のデータA1,D1,E1,G1,H1を実データと共にストレージシステム91bに転送する(ステップS23)。
次に、データ転送制御部41は、ストレージシステム91bに転送された仮想ディスク101において、実データを転送しなかったデータ「B1,C1,F1」に、実データ「Q,S,W」をマッピングする(ステップS24)。
このように、データ転送制御システム3は、仮想ディスク101を転送する際の実データの転送量を減らしている。
次に、本発明の第3の実施の形態の効果について述べる。
本発明の第3の実施の形態としてのデータ転送制御システムは、ストレージシステム間の重複データ管理情報を用いて、ストレージシステム間のデータ転送をより効率的に行うことができる。
その理由は、重複データ管理装置の重複データ管理情報生成部が、一方のストレージシステムにおける重複データ情報の示すデータと、他方のストレージシステムにおける重複データ情報の示すデータとの間で重複データを検出することにより、ストレージシステム間の重複データ管理情報を生成するからである。そして、データ転送制御装置のデータ転送制御部が、ストレージシステムの一方から他方にデータを転送する際に、上述のようにして生成された重複データ管理情報を参照することにより、転送対象のデータのうち、ストレージシステム間で重複するデータ以外のデータを転送するからである。
これにより、例えば、本実施の形態は、仮想マシンのストレージシステムに格納される仮想ディスクを他のストレージシステムにマイグレーションする処理をより効率化することができる。
一般に、仮想マシンの仮想ディスクに格納されるデータには、オペレーティングシステムを構成するシステムファイルなどのデータが多く含まれる。このようなデータは、他の仮想マシンの仮想ディスクに格納されるデータと共通であることが多い。もし、マイグレーション先のストレージシステムにも他の仮想マシンの仮想ディスクが格納されている場合、マイグレーション対象の仮想ディスクに含まれるデータの一部は既に転送先に存在している可能性が高い。
そこで、本実施の形態は、データの重複排除機能を有するストレージシステムを用いることによりストレージシステム間の重複データ生成処理を効率化している。データの重複排除機能を有するストレージシステムは、異なる仮想ディスク間でのデータの重複を解消して統合して管理しており、重複データ情報を有している。そのような重複データは、オペレーティングシステムを構成するデータなどである可能性が高く、同様に複数の仮想ディスクを格納する他のストレージシステムでも同様に重複データとされて統合されている可能性が高い。
したがって、本実施の形態は、各ストレージシステムの重複データ情報の示すデータ同士を比較するだけで、ストレージシステム間で重複するデータの多くを効率的に検出して重複データ管理情報を生成することができる。このようにして効率的に生成した重複データ管理情報を用いることにより、本実施の形態は、マイグレーションの際の転送データ量を削減するとともに、マイグレーションの所要時間も短縮できる。
また、一般に、仮想マシンを管理する技術として、ある仮想マシンをテンプレートとして複製することにより新たな仮想マシンを作成する技術がよく知られている。本実施の形態は、そのようなテンプレートの複製による仮想マシン作成時にも適用可能である。例えば、本実施の形態は、テンプレートが格納されるストレージシステムおよび仮想マシン作成先のストレージシステム間の重複データ管理情報を作成することにより、テンプレート複製時のストレージシステム間のデータ転送量を削減でき、効率的である。
(第4の実施の形態)
次に、本発明の第4の実施の形態について図面を参照して詳細に説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第4の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。
まず、本発明の第4の実施の形態としてのデータ転送制御システム4の構成を図15に示す。図15において、データ転送制御システム4は、本発明の第3の実施の形態としてのデータ転送制御システム3に対して、データ転送制御装置40に替えてデータ転送制御装置50を備える点が異なる。また、データ転送制御装置50は、本発明の第4の実施の形態としてのデータ転送制御装置40に対して、データ転送制御部41に替えてデータ転送制御部51を備える点が異なる。
また、図15において、重複データ管理装置30およびデータ転送制御装置50は、ストレージシステム91a、91b、91cとそれぞれ通信可能に接続されている。また、データ転送制御装置50は、ストレージシステム91a、91b、91cとそれぞれ通信可能に接続されている。以降、ストレージシステム91a、91b、91cを総称してストレージシステム91とも記載する。
ストレージシステム91は、本発明の第3の実施の形態において説明したストレージシステム91と同様に構成され、それぞれ、自装置におけるデータのうち重複するデータに関する重複データ情報を保持している。
重複データ管理装置30は、ストレージシステム91aおよび91b間、91aおよび91c間、ならびに、91bおよび91c間についてそれぞれ重複データ管理情報を生成し、保持している。
データ転送制御部51は、ストレージシステム91の一方から他方へ、仮想ディスクのデータを転送する際に、転送先となるストレージシステム91を選択する。具体的には、データ転送制御部51は、転送元のストレージシステム91と他のストレージシステム91との間の重複データ情報に基づいて、転送先のストレージシステム91を選択すればよい。例えば、データ転送制御部51は、転送対象の仮想ディスクに含まれるデータとの重複データ量が最も多いストレージシステム91を転送先として選択してもよい。
そして、データ転送制御部51は、選択したストレージシステム91に対して、本発明の第3の実施の形態におけるデータ転送制御部41と同様に動作することにより仮想ディスクを転送する。
以上のように構成されたデータ転送制御システム4の動作について、図面を参照して説明する。
まず、重複データ管理装置30は、図10に示した重複データ管理情報生成動作を本発明の第3の実施の形態と同様に実行することにより、ストレージシステム91aおよび91b間の重複データ管理情報を生成する。また、重複データ管理装置30は、ストレージシステム91aおよび91c間、91bおよび91c間についても同様にして重複データ管理情報を生成する。
次に、データ転送制御装置50の転送先選択動作を図16に示す。
図16では、まず、データ転送制御部51は、ストレージシステム91の一方に格納される仮想ディスクを他のストレージシステム91へ転送する指示を表す情報を取得する(ステップS31)。
次に、データ転送制御部51は、転送元のストレージシステム91と、他の各ストレージシステム91との間の重複データ管理情報に基づいて、転送先となるストレージシステム91を選択する(ステップS32)。例えば、転送元がストレージシステム91aである場合、データ転送制御部51は、ストレージシステム91aおよび91b間の重複データ管理情報と、91aおよび91c間の重複データ管理情報とを参照する。そして、データ転送制御部51は、ストレージシステム91bおよび91cのうち、91aの転送対象の仮想ディスクに含まれるデータとの重複データ量が最も多いストレージシステム91を、転送先として選択すればよい。
以上で、データ転送制御装置50は、転送先選択動作を終了する。
以降、データ転送制御システム4は、図13に示したデータ転送動作のステップS22〜S24を本発明の第3の実施の形態と同様に実行することにより、データ転送を実行する。
次に、本発明の第4の実施の形態の効果について述べる。
本発明の第4の実施の形態としてのデータ転送制御システムは、ストレージシステム間のデータ転送をさらに効率的に行うことができる。
その理由は、重複データ管理装置が、複数のストレージシステム間の重複データ管理情報を生成して記憶しておき、データ転送制御装置が、転送元のストレージシステムと、他のストレージシステムとの間の重複データ管理情報に基づいて、転送先のストレージシステムを選択するからである。これにより、本実施の形態は、例えば、転送対象データとの重複データ量がより多いストレージシステムを転送先として選択することにより、より多くの重複データについてデータ転送を省略できることになる。したがって、本実施の形態は、データ転送量をより削減し、転送時間を短縮することにより、効率化を図ることができる。
また、上述した本発明の第3および第4の実施の形態において、重複データ管理装置として本発明の第2の実施の形態における重複データ管理装置を適用してもよい。これにより、各実施の形態は、ノード間のデータ転送をより効率化することができる。
その理由は、データ転送制御装置が、異なるノード間でデータ転送を行う際に、ノード間の重複データ管理情報に基づいて、転送対象となるデータのうちノード間で重複するデータを除いたデータを転送するからである。
なお、上述した本発明の第3および第4の実施の形態では、ストレージシステム間で仮想ディスクの転送を行う例を中心に説明した。その他、各実施の形態は、仮想ディスクに限らず、格納されるデータの重複データ情報をあらかじめ有するストレージシステム間で任意のデータ転送を制御する場合にも適用可能である。
また、上述した本発明の第3および第4の形態において、重複データ管理装置の動作は、データ転送制御装置の動作とは独立して実行可能である。したがって、各実施の形態は、データ転送の度に重複データ管理情報の生成処理を行う必要がなく、データ転送を行う時点で作成済みの重複データ管理情報を用いてデータ転送量を削減することができ、効率的である。また、各実施の形態は、ストレージシステム間の重複データに変更がない間は、一旦生成された重複データ管理情報を用いて何度でもデータ転送の際のデータ転送量を削減することができ、効率的である。
また、上述した本発明の各実施の形態において、重複データ管理装置は、ネットワークを介して各装置(または各ストレージシステム)と接続される例を中心に説明した。その他、各実施の形態における重複データ管理装置は、各装置(または各ストレージシステム)と接続ケーブルを介して直接接続されていてもよい。また、各実施の形態において、重複データ管理装置および一方の装置(またはストレージシステム)の接続形態と、重複データ管理装置および他方の装置(またはストレージシステム)の接続形態とは、異なるものであってもよい。また、重複データ管理装置は、各装置(または各ストレージシステム)のいずれかと同一の装置上に実現されていてもよい。
また、上述した本発明の第3および第4の実施の形態において、データ転送制御装置は、ネットワークを介して各ストレージシステムと接続される例を中心に説明した。その他、各実施の形態におけるデータ転送制御装置は、接続ケーブルを介して各ストレージシステムと直接接続されていてもよい。また、各実施の形態において、データ転送制御装置および一方のストレージシステムの接続形態と、データ転送制御装置および他方のストレージシステムの接続形態とは、異なるものであってもよい。また、データ転送制御装置は、各ストレージシステムのいずれかと同一の装置上に実現されていてもよい。また、データ転送制御装置は、各ストレージシステムに格納される仮想ディスクが動作する情報処理装置のいずれかと同一の装置上に実現されていてもよい。
また、上述した本発明の各実施の形態において、各フローチャートを参照して説明した重複データ管理装置およびデータ転送制御装置の動作を、本発明のコンピュータ・プログラムとしてコンピュータ装置の記憶装置(記憶媒体)に格納しておき、係るコンピュータ・プログラムを当該CPUが読み出して実行するようにしてもよい。そして、このような場合において、本発明は、係るコンピュータ・プログラムのコードあるいは記憶媒体によって構成される。
また、上述した各実施の形態は、適宜組み合わせて実施されることが可能である。
また、本発明は、上述した各実施の形態に限定されず、様々な態様で実施されることが可能である。
また、上述した各実施の形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
一方の装置において重複する複数のデータ(重複データ)を表す重複データ情報と、他方の装置における重複データ情報とを用いて、前記一方の装置の重複データおよび前記他方の装置の重複データ間で重複するものを検出することにより、前記一方の装置および前記他方の装置間の重複データを表す重複データ管理情報を生成する重複データ管理情報生成部を備えた重複データ管理装置。
(付記2)
前記重複データ管理情報生成部は、前記一方の装置の重複データのハッシュ値と、前記他方の装置の重複データのハッシュ値とが一致するものについてデータ比較を行い、一致したものを前記装置間の重複データとして検出することを特徴とする付記1に記載の重複データ管理装置。
(付記3)
前記重複データ管理情報生成部は、前記装置間の重複データについて、ハッシュ値と、前記一方の装置における該重複データの格納位置を表す情報と、前記他方の装置における該重複データの格納位置を表す情報とを対応付けた情報を、前記重複データ管理情報として生成することを特徴とする付記2に記載の重複データ管理装置。
(付記4)
前記重複データ管理情報生成部は、前記装置間の重複データ管理情報が示す重複データと、他の装置間の前記重複データ管理情報が示す重複データとの間で重複するものを検出することにより、階層的な重複データ管理情報を生成することを特徴とする付記1から付記3のいずれか1つに記載の重複データ管理装置。
(付記5)
前記一方の装置から前記他方の装置にデータを転送する際に、付記1から付記4のいずれか1つに記載の重複データ管理装置によって生成された前記重複データ管理情報を参照することにより、前記装置間の重複データを除いて前記一方の装置から前記他方の装置にデータを転送するデータ転送制御部を備えたデータ転送制御装置。
(付記6)
前記データ転送制御部は、前記一方の装置と、1つ以上の前記他方の装置との間でそれぞれ生成された前記重複データ管理情報に基づいて、前記一方の装置のデータの転送先となる他方の装置を選択することを特徴とする付記5に記載のデータ転送制御装置。
(付記7)
付記1から付記4のいずれか1つに記載の重複データ管理装置と、
付記5または付記6に記載のデータ転送制御装置と、
を備えたデータ転送制御システム。
(付記8)
一方の装置において重複する複数のデータ(重複データ)を表す重複データ情報と、他方の装置における重複データ情報とを用いて、前記一方の装置の重複データおよび前記他方の装置の重複データ間で重複するものを検出することにより、前記一方の装置および前記他方の装置間の重複データを表す重複データ管理情報を生成する、重複データ管理方法。
(付記9)
前記一方の装置から前記他方の装置にデータを転送する際に、付記8に記載の重複データ管理方法によって生成された前記重複データ管理情報を参照することにより、前記装置間の重複データを除いて前記一方の装置から前記他方の装置にデータを転送する、データ転送制御方法。
(付記10)
一方の装置において重複する複数のデータ(重複データ)を表す重複データ情報と、他方の装置における重複データ情報とを用いて、前記一方の装置の重複データおよび前記他方の装置の重複データ間で重複するものを検出することにより、前記一方の装置および前記他方の装置間の重複データを表す重複データ管理情報を生成する重複データ管理情報生成ステップをコンピュータ装置に実行させるコンピュータ・プログラム。
(付記11)
前記一方の装置から前記他方の装置にデータを転送する際に、付記10に記載のコンピュータ・プログラムが実行されることによって生成された前記重複データ管理情報を参照することにより、前記装置間の重複データを除いて前記一方の装置から前記他方の装置にデータを転送するデータ転送制御ステップをコンピュータ装置に実行させるコンピュータ・プログラム。