(57)【要約】【課題】ストレージ装置間の差分データの転送順序を制御し、ネットワーク帯域を十分利用できる時間を最大化して、転送時間を短縮する。【解決手段】本発明の一態様に係るストレージシステム１は、ローカルストレージ１０と、ローカルストレージ１０とネットワークを介して接続されたリモートストレージ２０とを有し、ローカルストレージ１０とリモートストレージ２０との間で複数の磁気ディスクの差分データを転送するストレージシステムであって、差分データの転送時間を試算し、同時に転送を行う磁気ディスクの数と組み合わせを変更する制御部１３を有する。【選択図】図１
2009176048.tif 000002
【特許請求の範囲】
【請求項１】
第１ストレージ装置と、前記第１ストレージ装置とネットワークを介して接続された第２ストレージ装置とを有し、前記第１ストレージ装置と前記第２ストレージ装置との間で複数の磁気ディスクの差分データを転送するストレージシステムであって、
前記差分データの転送時間を試算し、同時に転送を行う磁気ディスクの数と組み合わせを変更する制御部を有するストレージシステム。
【請求項２】
前記制御部は、
転送すべき前記複数の磁気ディスクのそれぞれの差分データ量を取得して、差分データ転送時間が最小となるように磁気ディスクを分けるグループ数を決定し、
差分データ量が大きい前記磁気ディスクから順に、総差分データ量が小さいグループに振り分ける請求項１に記載のストレージシステム。
【請求項３】
前記制御部は、前記グループごとに、差分データ量が小さい順に転送処理を実行する請求項２に記載のストレージシステム。
【請求項４】
第１ストレージ装置と第２ストレージ装置との間で複数の磁気ディスクの差分データを転送するデータ転送制御方法であって、
前記差分データの転送時間を試算し、同時に転送を行う磁気ディスクの数と組み合わせを変更するデータ転送制御方法。
【請求項５】
転送すべき前記複数の磁気ディスクのそれぞれの差分データ量を取得し、差分データ転送時間が最小となるように磁気ディスクのグループ数を決定し、
差分データ量が大きい前記磁気ディスクから順に、総差分データ量が小さいグループに振り分け、
前記グループごとに、差分データ量が小さい順に転送処理を実行する請求項４に記載のデータ転送制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステム及びデータ転送制御方法に関し、特に、ストレージ装置間で差分データをネットワーク転送するストレージシステム及びデータ転送制御方法に関する。
【背景技術】
【０００２】
近年、記録すべき情報の増加に伴い、業務用ストレージの容量も増大の一途である。また、災害対策としてデータセンターのミラーサイトを遠隔地に設け、差分データをネットワーク転送するシステムが増えている（例えば、特許文献１〜３参照）。
【０００３】
ストレージ装置、ネットワーク、及びストレージ装置に搭載されている磁気ディスク単体のデータの転送速度を比較すると、以下の式の関係にある。
ストレージ装置のＩ／Ｏ性能（ストレージ装置の転送速度）＞ネットワーク帯域（ネットワークの転送速度）＞磁気ディスク単体のＩ／Ｏ性能（磁気ディスク単体の転送速度）
【０００４】
図６に従来の転送処理に係る転送時間と転送量の関係を示す。図６に示すように、磁気ディスク毎の差分データ量にばらつきがある場合、転送処理の後半ではネットワーク帯域を十分活用できず、結果として転送処理時間が長くなる。
【特許文献１】特開２００５−１９００５７号公報
【特許文献２】特開２００６−１１９７４１号公報
【特許文献３】特開２００６−１３４２０４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
このように、遠隔地のストレージ装置間の差分データ転送において、個々の磁気ディスクで差分データ量にばらつきがある場合、転送処理の後半にネットワーク帯域を十分利用出来ない期間があり、均一な場合と比較して総転送時間が長くなるという問題がある。
【０００６】
本発明は、このような事情を背景としてなされたものであり、本発明の目的は、ストレージ装置間の差分データの転送時間を短縮することができるストレージシステム及びデータ転送制御方法を提供することである。
【課題を解決するための手段】
【０００７】
本発明の一態様に係るストレージシステムは、第１ストレージ装置と、前記第１ストレージ装置とネットワークを介して接続された第２ストレージ装置とを有し、前記第１ストレージ装置と前記第２ストレージ装置との間で複数の磁気ディスクの差分データを転送するストレージシステムであって、前記差分データの転送時間を試算し、同時に転送を行う磁気ディスクの数と組み合わせを変更する制御部を有するものである。
【０００８】
本発明の一態様に係るデータ転送制御方法は、第１ストレージ装置と第２ストレージ装置との間で複数の磁気ディスクの差分データを転送するデータ転送制御方法であって、前記差分データの転送時間を試算し、同時に転送を行う磁気ディスクの数と組み合わせを変更する。
【発明の効果】
【０００９】
本発明によれば、ストレージ装置間の差分データの転送時間を短縮することができるストレージシステム及びデータ転送制御方法を提供することができる。
【発明を実施するための最良の形態】
【００１０】
本発明の実施の形態に係るストレージシステムの構成について、図１を参照して説明する。図１は、本実施の形態に係るストレージシステム１の構成を示す図である。図１に示すように、本実施の形態に係るストレージシステム１は、ローカルストレージ１０、リモートストレージ２０とを備えている。ローカルストレージ１０は、処理部１１、磁気ディスク群１２、制御部１３を有する。リモートストレージ２０は、処理部２１、磁気ディスク群２２を有する。
【００１１】
本発明は、遠隔地に配置したディスクストレージ装置間でリモートデータ転送を行うストレージシステムである。本実施の形態では、磁気ディスク群１２が更新され、磁気ディスク群２２のデータとの違いがある領域のデータである差分データが、ローカルストレージ１０からリモートストレージ２０へネットワークを介して転送される。本発明では、磁気ディスク群１２を構成する複数の磁気ディスクのそれぞれの差分データの転送順序を制御することにより、ネットワーク帯域を十分利用できる時間を最大化して、差分データの転送時間の短縮を図る。
【００１２】
制御部１３は、差分データの転送時間を試算し、同時に転送を行う磁気ディスクの数と組み合わせを変更する。具体的には、制御部１３は、転送すべき複数の磁気ディスクのそれぞれの差分データ量を取得し、差分データ転送時間が最小となるように磁気ディスクのグループ数を決定する。そして、転送すべき複数の磁気ディスクを、決定されたグループに振り分ける。磁気ディスクの振り分け方法としては、差分データ量が大きい磁気ディスクから順に、総差分データ量が小さいグループに振り分ける。そして、グループごとに、差分データ量が小さい順に転送処理を実行する。
【００１３】
ここで、図２、３、４を参照して、本実施の形態に係るデータ転送制御方法について説明する。図２は、本実施の形態に係るストレージシステムを構成する制御部１３に実装されたメモリの構成を示す図である。図３、４は、本実施の形態に係るデータ転送制御方法を説明するためのフロー図である。なお、図２における、メモリ、メモリ配列、メモリテーブルは一例であり、これに限定されるものではない。また、メモリ配列、メモリテーブルは、ストレージ装置に実装される磁気ディスクの個数分のエントリを登録可能なサイズとする。
【００１４】
図３に示すように、まず、差分データ転送処理を行う前の事前準備について説明する。図３に示すように、まず、ネットワーク帯域の転送速度（ＭＢ／ｓ）を実測する。このネットワーク帯域の転送速度の実測値は、図２のメモリＡに記録される（ステップＪ１）。次に、それぞれの磁気ディスクのＩ／Ｏ性能（転送速度（ＭＢ／ｓ））を実測する。この磁気ディスクの転送速度は、それぞれメモリ配列Ｂに記録される（ステップＪ２）。そして、メモリ配列Ｂに記録した磁気ディスクの転送速度の中で最小の値を、メモリＣに記録する（ステップＪ３）。
【００１５】
そして、図４に示すように、実際に差分データ転送処理がなされる。図４に示すように、差分データの転送指示を待ち受け状態とする（ステップＡ１）。転送指示待ち受け状態で差分データの転送指示がなされた場合、転送指示のあった磁気ディスクの識別番号をメモリテーブルＤに記録する（ステップＡ２）。そして、メモリテーブルＤに記録された転送指示のあった磁気ディスクのそれぞれの差分データ量（ＭＢ）を検索し、メモリテーブルＤに記録する（ステップＡ３）。
【００１６】
なお、メモリテーブルＤに記録される各磁気ディスクの差分データ量としては、それぞれの磁気ディスクのＩ／Ｏ性能の個体差（転送速度の差）を考慮して、メモリ配列Ｂ、メモリＣを参照して、以下の計算式による演算を行った結果を記録する。
Ｄ＝ｄ×（Ｖｍｉｎ／Ｖ）
【００１７】
ここで、ＤはメモリテーブルＤに記録される差分データ量、ｄは実際の差分データ量、Ｖｍｉｎは磁気ディスクの転送速度の中で最小の転送速度、Ｖはそれぞれの磁気ディスクの転送速度である。なお、転送速度の最小値ＶｍｉｎはメモリＣに記録されており、また、それぞれの磁気ディスクの転送速度Ｖはメモリ配列Ｂに記録されている。
【００１８】
その後、転送指示がなされた磁気ディスクをグループ分けするための最適グループ数を決定する。具体的には、まず、メモリテーブルＤの差分データ量が降順となるようにソートする（ステップＡ４）。すなわち、メモリテーブルＤの差分データ量が、大きいものから小さいものに並ぶように、並び替えが行われる。また、メモリテーブルＤに登録されている磁気ディスクの数をメモリＥに登録する。
【００１９】
そして、メモリテーブルＤに登録された磁気ディスクを、１からメモリＥに登録された数（転送指示がなされた磁気ディスク数）までの任意の個数のグループ数Ｎに分けて、それぞれのデータ転送処理に係る時間を試算し、最適グループ数を決定する（ステップＡ５）。最適グループ数は、データ転送処理に係る時間が最小となるグループ数である。
【００２０】
データ転送処理に係る時間は、以下の処理（ステップＢ１〜Ｂ５）を行うことにより試算される。なお、データ転送処理時間の試算は、各グループをパラレルに、グループ内では磁気ディスク毎にシリアルに差分データの転送を実施する前提で行う。Ｎグループに分ける場合、まず、メモリテーブルＦにグループ１からＮまでのエントリを登録する（ステップＢ１）。なお、総差分データ量は０で初期化されている。
【００２１】
そして、各グループにグループ分けした磁気ディスクの差分データ量の合計値（総差分データ量）を記録する（ステップＢ２）。具体的には、降順にソートされたメモリテーブルＤの１行目から順に、以下の（１）、（２）の手順を繰り返して、各行の差分データ量をメモリテーブルＦの総差分データ量に加算する。
（１）メモリテーブルＦを総差分データ量の昇順にソートする。すなわち、メモリテーブルＦの総差分データ量が、小さいものから大きいものに並ぶように、並び替えが行われる。
（２）メモリテーブルＦの１行目の総差分データ量に、メモリテーブルＤの差分データ量を加算する。
つまり、各グループに、差分データ量が大きい磁気ディスクから順に、総差分データ量が小さいグループに振り分ける。
【００２２】
その後、メモリテーブルＦを総差分データの降順にソートする。なお、メモリＧは０で初期化されている。次に、メモリテーブルＦのエントリ数が０になるまで、以下の（１）〜（４）の手順を繰り返して、グループ数Ｎの場合の転送時間を試算する（ステップＢ４）。
（１）メモリテーブルＦのエントリ数で、メモリＡの数値（ネットワーク帯域の転送速度（ＭＢ／ｓ）を割った値と、メモリＣの数値（磁気ディスクの転送速度の中で最小の値）の小さいほうをメモリＨに記録する。
（２）メモリテーブルＦの最下エントリの総差分データ量をメモリＨの数値で割った値をメモリＧに足しこむ。なお、メモリテーブルＦの最下エントリとは、総差分データ量が最も小さいものである。
（３）メモリテーブルＦの最下エントリの総差分データ量を、全エントリの総差分データ量から減算する。
（４）総差分データ量が０になったエントリを削除する。
このような演算により、グループ数Ｎの場合の転送時間が算出され、メモリＧに記録される。
【００２３】
メモリＩには、最短データ転送時間（ｓｅｃ）が記録されている。メモリＩは、十分大きな数値で初期化されているものとする。その後、グループ数Ｎの場合の転送時関の試算値（メモリＧ）とメモリＩの数値とを比較する（ステップＢ５）。グループ数Ｎの場合の転送時関の試算値（メモリＧ）がメモリＩの数値よりも小さい場合には、メモリＧの数値をメモリＩに記録し、メモリＪにグループ数Ｎを記録する。
【００２４】
そして、１からメモリＥの数値までのそれぞれのグループ数で、ステップＢ１〜Ｂ５を繰り返し、差分データの転送時間の試算を行い、最短転送時間となる最適グループ数が決定される。
【００２５】
最適グループ数が決定された後、このグループに磁気ディスクを振り分ける。具体的には、まず、メモリテーブルＦにメモリＪに記録された最適グループ数のグループのエントリを登録する（ステップＡ６）。なお、このとき各エントリの総差分データ量は０で初期化されている。
【００２６】
上述したように、降順にソートされたメモリテーブルＤの１行目から順に、以下の（１）〜（３）の手順を繰り返して、各行の差分データ量をメモリテーブルＦの総差分データ量に可算する。
（１）メモリテーブルＦを総差分データ量の昇順にソートする。
（２）メモリテーブルＦの１行目の総差分データ量に、メモリテーブルＤの差分データ量を加算する。
（３）メモリテーブルＤのカレント行の所属グループに、メモリテーブルＦの１行目のグループ番号を記録する。
すなわち、差分データ量が大きい磁気ディスクから順に、グループに所属する磁気ディスクの差分データ量の合計値（総差分データ量）が小さいグループに振り分ける。
【００２７】
その後、メモリテーブルＤのエントリ数が０になるまで、以下の処理（ステップＣ１〜Ｃ３）を行うことにより、差分データの転送を実行する（ステップＡ８）。具体的には、まず、メモリテーブルＤの１行目から順に、各行の磁気ディスク識別番号を、所属グループ項目に記録されたグループ数と一致するメモリテーブルＦのエントリの磁気ディスク項目に記録する（ステップＣ１）。すなわち、各グループについて、メモリテーブルＤの差分データ量が小さい磁気ディスクから順に、当該磁気ディスクの識別番号がメモリテーブルＦに記録される。
【００２８】
そして、メモリテーブルＦの各エントリの磁気ディスク項目に記録された識別番号の磁気ディスクの差分データの転送を開始する（ステップＣ２）。なお、既に転送中の磁気ディスクはスキップする。その後、Ｃ２で差分データの転送を開始した、いずれかの磁気ディスクの転送処理が終了するまで待ち合わせ、差分データ量が０になった磁気ディスクのエントリをメモリテーブルＤから削除する（ステップＣ３）。これをメモリテーブルＤのエントリ数が０になるまで繰り返すことにより、グループごとに、差分データ量が小さい順に転送処理を実行することができる。
【００２９】
例えば、図５に示すように、差分データ量がそれぞれ１ＧＢ、２ＢＧ、３ＧＢ、４ＧＢの磁気ディスクを２つのグループに分ける場合、まず、グループ１に、差分データ量が最も大きい４ＧＢの磁気ディスクを振り分け、その後、総差分データ量が小さいグループ２に次に差分データ量が大きい３ＧＢの磁気ディスクを振り分ける。このとき、グループ１の総差分データ量は４ＧＢ、グループ２の総差分データ量３ＧＢであり、グループ２のほうがグループ１よりも総差分データ量が小さい。
【００３０】
そして、総差分データ量が小さいグループ２に次に差分データ量が大きい２ＧＢの磁気ディスクを振り分ける。その後、グループ１に１ＧＢの磁気ディスクを振り分ける。そして、各グループについて、差分データ量が小さい順に転送処理を実行する。すなわち、グループ１については、１ＧＢの差分データが転送され、その後、４ＧＢの差分データが転送される。また、グループ２については、２ＧＢの差分データが転送され、その後、３ＧＢの差分データが転送される。また、グループ１の転送処理とグループ２の転送処理は、パラレルに行われる。
【００３１】
このように、本発明によれば、同時にデータ転送を行う磁気ディスクの数と組み合わせとを動的に変更して常にネットワーク帯域を十分に利用するように制御することができる。これにより、転送処理期間を通して、常にネットワーク帯域を十分に利用することができ、差分データの転送時間を短縮することができる。
【図面の簡単な説明】
【００３２】
【図１】実施の形態に係るストレージシステムの構成を示す図である。
【図２】実施の形態に係るデータ転送制御方法を説明するための図である。
【図３】実施の形態に係るデータ転送制御方法を説明するためのフロー図である。
【図４】実施の形態に係るデータ転送制御方法を説明するためのフロー図である。
【図５】実施の形態の転送処理に係る転送時間と転送量の関係を示す図である。
【図６】従来の転送処理に係る転送時間と転送量の関係を示す図である。
【符号の説明】
【００３３】
１  ストレージシステム
１０  ローカルストレージ
１１  処理部
１２  磁気ディスク群
１３  制御部
２０  リモートストレージ
２１  処理部
２２  磁気ディスク群
【図１】
2009176048.tif 000003
【図２】
2009176048.tif 000004
【図３】
2009176048.tif 000005
【図４】
2009176048.tif 000006
【図５】
2009176048.tif 000007
【図６】
2009176048.tif 000008