(57)【特許請求の範囲】
【請求項１】
複数のコントローラモジュールを有する第１のストレージ装置から第２のストレージ装置へのデータコピーを制御し、前記複数のコントローラモジュールの１つとして実現されるストレージ制御装置であって、
前記複数のコントローラモジュールがそれぞれ有する送信用バッファのうち、更新順序に対応する世代単位で利用されるバッファセットを構成する前記送信用バッファの数を示すバッファ数と、前記バッファセットを構成する前記送信用バッファを示す情報とを含む構成情報を記憶する記憶部と、
前記複数のコントローラモジュールがそれぞれ有する前記送信用バッファの中から重複しないように前記バッファ数ずつ選択された前記送信用バッファによりそれぞれ構成される複数の送信用バッファ群が、それぞれ異なる世代の前記バッファセットとして前記構成情報に設定されている場合において、前記構成情報にもとづき、前記複数のコントローラモジュールのうち前記ストレージ制御装置を実現する第１のコントローラモジュールが有する第１の送信用バッファが現世代の前記バッファセットに含まれるかによって、前記第１のコントローラモジュールが管理するコピー対象データの格納先を判定し、
前記第１の送信用バッファが現世代の前記バッファセットに含まれる場合、前記コピー対象データを前記第１の送信用バッファに格納し、
前記第１の送信用バッファが現世代の前記バッファセットに含まれない場合、現世代の前記バッファセットに含まれる、前記複数のコントローラモジュールのうち第２のコントローラモジュールが有する第２の送信用バッファに対して、前記第２のコントローラモジュールを介して前記コピー対象データを格納する、制御部と、
を備え、
前記制御部は、前記バッファ数の変更によって前記バッファセットの大きさを可変に設定する、
ストレージ制御装置。
【請求項２】
前記制御部は、
前記バッファセットを構成する前記送信用バッファごとのデータ充填率にもとづいて前記バッファ数を変更することで前記バッファセットの大きさを縮小する、
請求項１記載のストレージ制御装置。
【請求項３】
前記制御部は、
前記複数のコントローラモジュールのうち前記バッファセットを構成する前記送信用バッファを有するコントローラモジュールにかかる負荷にもとづいて前記バッファ数を変更することで、前記バッファセットの大きさを拡大する、
請求項１または請求項２記載のストレージ制御装置。
【請求項４】
複数のコントローラモジュールを有する第１のストレージ装置から第２のストレージ装置へのデータコピーを制御するためのストレージ制御プログラムであって、
前記複数のコントローラモジュールのうち第１のコントローラモジュールに、
前記複数のコントローラモジュールがそれぞれ有する送信用バッファのうち、更新順序に対応する世代単位で利用されるバッファセットを構成する前記送信用バッファの数を示すバッファ数と、前記バッファセットを構成する前記送信用バッファを示す情報とを含む構成情報にもとづいて、前記第１のコントローラモジュールが管理するコピー対象データの格納先を決定する決定処理であって、前記複数のコントローラモジュールがそれぞれ有する前記送信用バッファの中から重複しないように前記バッファ数ずつ選択された前記送信用バッファによりそれぞれ構成される複数の送信用バッファ群が、それぞれ異なる世代の前記バッファセットとして前記構成情報に設定されている場合において、前記構成情報にもとづき、前記第１のコントローラモジュールが有する第１の送信用バッファが現世代の前記バッファセットに含まれるかによって、前記コピー対象データの格納先を判定する前記決定処理を実行し、
前記第１の送信用バッファが現世代の前記バッファセットに含まれる場合、前記コピー対象データを前記第１の送信用バッファに格納し、
前記第１の送信用バッファが現世代の前記バッファセットに含まれない場合、現世代の前記バッファセットに含まれる、前記複数のコントローラモジュールのうち第２のコントローラモジュールが有する第２の送信用バッファに対して、前記第２のコントローラモジュールを介して前記コピー対象データを格納する、
処理を実行させ、
前記バッファ数の変更によって前記バッファセットの大きさが可変に設定される、
ストレージ制御プログラム。
【請求項５】
前記第１のコントローラモジュールに、
前記バッファセットを構成する前記送信用バッファごとのデータ充填率にもとづいて前記バッファ数を変更することで前記バッファセットの大きさを縮小する、
処理をさらに実行させる請求項４記載のストレージ制御プログラム。
【請求項６】
複数のコントローラモジュールを有する第１のストレージ装置と、第２のストレージ装置とを含むストレージシステムであって、
前記複数のコントローラモジュールのうち前記第１のストレージ装置から前記第２のストレージ装置へのデータコピーを制御する第１のコントローラモジュールは、
前記複数のコントローラモジュールがそれぞれ有する送信用バッファのうち、更新順序に対応する世代単位で利用されるバッファセットを構成する前記送信用バッファの数を示すバッファ数と、前記バッファセットを構成する前記送信用バッファを示す情報とを含む構成情報を記憶する記憶部と、
前記複数のコントローラモジュールがそれぞれ有する前記送信用バッファの中から重複しないように前記バッファ数ずつ選択された前記送信用バッファによりそれぞれ構成される複数の送信用バッファ群が、それぞれ異なる世代の前記バッファセットとして前記構成情報に設定されている場合において、前記構成情報にもとづき、前記第１のコントローラモジュールが有する第１の送信用バッファが現世代の前記バッファセットに含まれるかによって、前記第１のコントローラモジュールが管理するコピー対象データの格納先を判定し、
前記第１の送信用バッファが現世代の前記バッファセットに含まれる場合、前記コピー対象データを前記第１の送信用バッファに格納し、
前記第１の送信用バッファが現世代の前記バッファセットに含まれない場合、現世代の前記バッファセットに含まれる、前記複数のコントローラモジュールのうち第２のコントローラモジュールが有する第２の送信用バッファに対して、前記第２のコントローラモジュールを介して前記コピー対象データを格納する、制御部と、
を備え、
前記制御部は、前記バッファ数の変更によって前記バッファセットの大きさを可変に設定する、
ストレージシステム。
【請求項７】
前記制御部は、
前記バッファセットを構成する前記送信用バッファごとのデータ充填率にもとづいて前記バッファ数を変更することで前記バッファセットの大きさを縮小する、
請求項６記載のストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ制御装置、ストレージ制御プログラム、およびストレージシステムに関する。
【背景技術】
【０００２】
災害等からデータを保護するためにリモートコピーにより遠隔地にデータをバックアップすることがおこなわれる。たとえば、リモートコピーには、同期方式と非同期方式とがあり、非同期方式は、コピー元ストレージ装置のデータ更新と非同期に、コピー先ストレージ装置にリモートコピーをおこなう。非同期方式のリモートコピーには、さらに、データ更新の順序性を保証しないリモートコピーと、データ更新の順序性を保証するリモートコピー（順序性保証リモートコピー）とがある。
【０００３】
順序性保証リモートコピーにおいて、コピー元ストレージ装置は、各コントローラが備えるキャッシュメモリの一部をバッファとして使用し、コピーセッションへのＩ／Ｏをバッファに蓄積する。コピー元ストレージ装置は、コピー元ストレージ装置が備える複数のコントローラがそれぞれのバッファに蓄積したデータをまとめて、すなわちバッファセット単位でコピー先ストレージ装置へのデータコピーをおこなう。
【０００４】
これにより、コピー元ストレージ装置は、ホストから運用ボリューム（コピー元ストレージ装置）へのＷｒｉｔｅ Ｉ／Ｏによるデータ更新順序を保証しつつ、遠隔地に設置された待機ボリューム（コピー先ストレージ装置）へデータコピーをおこなうことができる。また、コピー元ストレージ装置は、バッファを介してデータを転送することにより、データ更新容量に対して低帯域の回線を使用することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−１５８９４８号公報
【特許文献２】特開２００５−２２２２７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
近年のストレージ装置は、データ容量の大規模化が図られ、ストレージ装置が備えるディスク数が増大する傾向にある。また、ストレージ装置は、大量のデータを処理するためにコントローラの数が増大する傾向にあり、順序性保証リモートコピーに用いられるバッファは、コントローラごとに備えられることから、順序性保証リモートコピーに用いられるバッファの数も増大する。
【０００７】
しかしながら、コピー元ストレージ装置は、いずれかのバッファの充填率が閾値を超えた場合にバッファセット単位のデータ転送をおこなうことで、リモートコピーの順序性を保証する。すなわち、バッファの数の増大は、バッファ間のデータの充填率にばらつきを生じさせることとなり、バッファセット単位のデータ充填率を低下させる。
【０００８】
１つの側面では、本発明は、順序性保証リモートコピーにおけるバッファセット単位のデータ充填率の低下を抑制可能なストレージ制御装置、ストレージ制御プログラム、およびストレージシステムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、以下に示すような、ストレージ制御装置が提供される。ストレージ制御装置は、複数のコントローラモジュールを有する第１のストレージ装置から第２のストレージ装置へのデータコピーを制御する。ストレージ制御装置は、記憶部と、制御部とを備える。記憶部は、コントローラモジュールが有する送信用バッファからなる、更新順序に対応する世代単位のバッファセットの構成情報を記憶する。制御部は、複数のコントローラモジュールのうち第１のコントローラモジュールが管理するコピー対象データの格納先を構成情報にもとづいて決定し、第１のコントローラモジュールが有する第１の送信用バッファがコピー対象データの格納先である場合に、コピー対象データを第１の送信用バッファに格納し、複数のコントローラモジュールのうち第１のコントローラモジュールと異なる第２のコントローラモジュールが有する第２の送信用バッファがコピー対象データの格納先である場合に、第２のコントローラモジュールを介してコピー対象データを第２の送信用バッファに格納する。
【００１０】
また、１つの態様では、コンピュータに処理を実行させるストレージ制御プログラムが提供される。また、１つの態様では、ストレージシステムが提供される。
【発明の効果】
【００１１】
１態様によれば、ストレージ制御装置、ストレージ制御プログラム、およびストレージシステムにおいて、順序性保証リモートコピーにおけるバッファセット単位のデータ充填率の低下を抑制できる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施形態のストレージシステムの構成の一例を示す図である。
【図２】第２の実施形態のストレージシステムの構成の一例を示す図である。
【図３】第２の実施形態のＣＥおよびＤＥの構成の一例を示す図である。
【図４】第２の実施形態のＲＥＣバッファの一例を示す図である。
【図５】第２の実施形態のバッファセットの一例を示す図である。
【図６】第２の実施形態のバッファセットサイズ設定処理のフローチャートを示す図である。
【図７】第２の実施形態のバッファセットサイズが縮小されたバッファセットの一例を示す図である。
【図８】第２の実施形態の受信用バッファの一例を示す図である。
【図９】第２の実施形態のＷｒｉｔｅ Ｉ／Ｏ受付処理のフローチャートを示す図である。
【図１０】第２の実施形態のＲＥＣバッファ担当ＣＭ一覧テーブルの一例を示す図である。
【図１１】第３の実施形態の稼働情報報告処理のフローチャートを示す図である。
【図１２】第３の実施形態のバッファセット分割処理のフローチャートを示す図である。
【図１３】第３の実施形態のバッファセットサイズが縮小されたバッファセットの一例を示す図である。
【図１４】第３の実施形態の受信用バッファの一例を示す図である。
【図１５】第４の実施形態の負荷監視処理のフローチャートを示す図である。
【図１６】第４の実施形態のバッファセットサイズが縮小されたバッファセットの一例を示す図である。
【図１７】第４の実施形態の受信用バッファの一例を示す図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照して実施の形態を詳細に説明する。
［第１の実施形態］
まず、第１の実施形態のストレージシステムについて図１を用いて説明する。図１は、第１の実施形態のストレージシステムの構成の一例を示す図である。
【００１４】
ストレージシステムは、ストレージ装置１，２とホスト３を含む。ストレージ装置１は、ストレージ装置２に対して遠隔地に配置されてストレージ装置２とネットワークで接続する。ストレージシステムは、ストレージ装置（第１のストレージ装置）１をコピー元ストレージ装置とし、ストレージ装置（第２のストレージ装置）２をコピー先ストレージ装置とするリモートコピーを実行可能である。
【００１５】
ストレージ装置１は、複数のコントローラモジュール１ａ，１ｂ，１ｃ，１ｄを有し、ストレージデバイスを制御する。ストレージ装置２は、複数のコントローラモジュール２ａ，２ｂを有し、ストレージデバイスを制御する。ストレージデバイスは、たとえばＳＳＤ（Solid State Drive）やＨＤＤ（Hard Disk Drive）などがある。
【００１６】
コントローラモジュール１ａ，１ｂ，１ｃ，１ｄは、ストレージ装置１を分担して制御する。コントローラモジュール１ａ，１ｂ，１ｃ，１ｄは、コピー先ストレージ装置へのデータコピーを制御するストレージ制御装置の一形態である。コントローラモジュール１ａ，１ｂ，１ｃ，１ｄは、それぞれ送信用バッファ５ａ，５ｂ，５ｃ，５ｄを有する。コントローラモジュール２ａ，２ｂは、コピー先ストレージ装置におけるデータコピーを制御するストレージ制御装置の一形態である。コントローラモジュール２ａ，２ｂは、それぞれ受信用バッファ７ａ，７ｂを有する。
【００１７】
以下、コントローラモジュール１ａ，１ｂ，１ｃ，１ｄは、同様の構成を有するため、代表してコントローラモジュール１ａについて説明する。コントローラモジュール１ａは、記憶部４ａと制御部４ｃを含む。
【００１８】
記憶部４ａは、構成情報４ｂを記憶する。構成情報４ｂは、バッファセットの構成に関する情報である。構成情報４ｂは、たとえば、バッファセットを構成する個別バッファの数、バッファセットを構成する送信用バッファの組み合わせなどの情報を含む。また、構成情報４ｂは、コピー先ストレージ装置のコントローラモジュールの数や、コピー元ストレージ装置のコントローラモジュールの数などを含むものであってもよい。たとえば、バッファセットを構成する個別バッファの数、バッファセットを構成する送信用バッファの組み合わせなどは、コピー先ストレージ装置のコントローラモジュールの数や、コピー元ストレージ装置のコントローラモジュールの数などから決定可能な情報である。
【００１９】
送信用バッファ５ａ，５ｂ，５ｃ，５ｄは、それぞれ個別バッファに区分されており、バッファセットは、送信用バッファ５ａ，５ｂ，５ｃ，５ｄから重複を排除して選択された１以上の個別バッファからなるバッファ群である。たとえば、バッファセット６ａは、送信用バッファ５ａから選択された１つの個別バッファと、送信用バッファ５ｂから選択された１つの個別バッファを含む。また、バッファセット６ｂは、送信用バッファ５ｃから選択された１つの個別バッファと、送信用バッファ５ｄから選択された１つの個別バッファを含む。
【００２０】
バッファセットは、更新順序に対応する世代単位のバッファ群であり、たとえば、バッファセット６ａ，６ｂは、それぞれ１世代のバッファ群に相当する。ストレージ装置１は、１つのバッファセットに所定量のデータが蓄積されると、データの蓄積先を別のバッファセットに切り替える。そして、ストレージ装置１は、世代管理されたバッファセットを用いることで、データ更新の順序性を保証した非同期リモートコピーを実現可能にしている。
【００２１】
制御部４ｃは、コントローラモジュール１ａ（第１のコントローラモジュール）が管理するコピー対象データの格納先を構成情報４ｂにもとづいて決定する。コントローラモジュール１ａが管理するコピー対象データは、コントローラモジュール１ａがホスト３から受け付けたＷｒｉｔｅ Ｉ／Ｏに対応するデータであり、ストレージ装置２へのコピー対象となるデータである。
【００２２】
コピー対象データの格納先は、データの書込対象となるバッファセットに含まれるいずれかの個別バッファであり、構成情報４ｂにもとづいて決定される。制御部４ｃは、構成情報４ｂから現在のデータの書込対象となるバッファセットを特定することができる。また、制御部４ｃは、バッファセットに含まれる個別バッファ（送信用バッファ）を特定することができる。
【００２３】
制御部４ｃは、コントローラモジュール１ａが有する送信用バッファ５ａ（第１の送信用バッファ）がコピー対象データの格納先である場合に、コピー対象データを送信用バッファ５ａに格納する。
【００２４】
制御部４ｃは、送信用バッファ５ａと異なる送信用バッファ（第２の送信用バッファ）がコピー対象データの格納先である場合に、対応するコントローラモジュール（第２のコントローラモジュール）を介してコピー対象データを送信用バッファに格納する。
【００２５】
たとえば、現在のデータの書込対象となるバッファセットがバッファセット６ａであるとき、コピー対象データの格納先は、送信用バッファ５ａの対応する個別バッファ、または送信用バッファ５ｂの対応する個別バッファである。このとき、制御部４ｃは、バッファセット６ａにコントローラモジュール１ａの送信用バッファ５ａが含まれることから、送信用バッファ５ａの対応する個別バッファをコピー対象データの格納先とする。
【００２６】
また、現在のデータの書込対象となるバッファセットがバッファセット６ｂであるとき、コピー対象データの格納先は、送信用バッファ５ｃの対応する個別バッファ、または送信用バッファ５ｄの対応する個別バッファである。このとき、制御部４ｃは、バッファセット６ｂにコントローラモジュール１ａの送信用バッファ５ａが含まれないことから、送信用バッファ５ｃまたは送信用バッファ５ｄのいずれかに対応する個別バッファをコピー対象データの格納先とする。
【００２７】
これにより、コントローラモジュール１ａは、バッファセットに送信用バッファ５ａが含まれるか否かにかかわらず、コピー対象データを送信用バッファに格納することができる。したがって、ストレージ装置１は、バッファセットの大きさを任意に設定することができる。このようなバッファセットの大きさの設定は、ストレージ装置１とストレージ装置２の装置規模の大きさに応じておこなうことができる。
【００２８】
たとえば、ストレージ装置１の装置規模と比較してストレージ装置２の装置規模が小さい場合、ストレージ装置１は、バッファセットにあるデータをストレージ装置２に送信すると、ストレージ装置２の受信用バッファ７ａ，７ｂの記憶容量を逼迫させることがある。ストレージ装置１は、バッファセットの大きさを任意に設定して、ストレージ装置２の受信用バッファ７ａ，７ｂの記憶容量の逼迫を回避することができる。
【００２９】
また、ストレージ装置１の装置規模が大きい場合、ストレージ装置１は、バッファセットにおける送信用バッファの容量が過大となりデータの充填率が低下するという問題がある。ストレージ装置１は、バッファセットの大きさを任意に設定して、バッファセットにおける送信用バッファのデータの充填率を改善できる。
【００３０】
このように、ストレージ装置１は、順序性保証リモートコピーにおけるバッファセット単位のデータ充填率の低下を抑制できる。
なお、ストレージ制御装置は、コントローラモジュール１ａ，１ｂ，１ｃ，１ｄであるとしたが、コントローラモジュール１ａ，１ｂ，１ｃ，１ｄと独立して設けられるものであってもよい。
【００３１】
［第２の実施形態］
次に、第２の実施形態のストレージシステムについて図２を用いて説明する。図２は、第２の実施形態のストレージシステムの構成の一例を示す図である。
【００３２】
ストレージシステム１０は、ＷＤＭ（Wavelength Division Multiplexing）１１と、ＷＤＭ１１と接続するＦＥ（Front-end Expander）２０，２１を含む。さらに、ストレージシステム１０は、ＦＥ２０と接続するＣＥ（Controller Enclosure）３０，３１と、ＣＥ３０と接続するＤＥ（Disk Enclosure）４０と、ＣＥ３１と接続するＤＥ４１を含む。さらに、ストレージシステム１０は、ＦＥ２１と接続するＣＥ３２，３３と、ＣＥ３２と接続するＤＥ４２と、ＣＥ３３と接続するＤＥ４３を含む。さらに、ストレージシステム１０は、ネットワーク１２を介してＣＥ３０，３１と接続するホスト５０と、ネットワーク１３を介してＣＥ３２，３３と接続するホスト５１を含む。
【００３３】
ＷＤＭ１１は、高速かつ大容量のネットワークである。ＦＥ２０，２１は、ＣＥ３０，３１，３２，３３の間の通信経路を制御する。ＣＥ３０，３１，３２，３３は、ＣＭ（Controller Module）を含む。ＤＥ４０，４１，４２，４３は、ＨＤＤやＳＳＤなどのストレージデバイスを含む。ホスト５０は、ＣＥ３０，３１にＩ／Ｏ要求（Ｗｒｉｔｅ Ｉ／ＯやＲｅａｄ Ｉ／Ｏを含む）を発行できる。ホスト５１は、ＣＥ３２，３３にＩ／Ｏ要求を発行できる。
【００３４】
ＦＥ２０とＣＥ３０，３１とＤＥ４０，４１は、コピー元ストレージ装置の構成要素である。ＦＥ２１とＣＥ３２，３３とＤＥ４２，４３は、コピー先ストレージ装置の構成要素である。コピー元ストレージ装置とコピー先ストレージ装置とは、地理的に離れた位置に設けられ、コピー元ストレージ装置からコピー先ストレージ装置への順序性保証リモートコピーを実行可能である。
【００３５】
次に、第２の実施形態のストレージ装置について図３を用いて説明する。図３は、第２の実施形態のＣＥおよびＤＥの構成の一例を示す図である。
ＣＥ３０は、１以上のＤＥ４０と接続する。たとえば、ＣＥ３０は、ＤＥ４０ａ，４０ｂ，４０ｃと接続する。ＤＥ４０ａ，４０ｂ，４０ｃは、それぞれ１以上のストレージデバイスを含む。たとえば、ＤＥ４０ａは、ＨＤＤ４００，４０１，４０２，４０３を含む。
【００３６】
ＣＥ３０は、ＣＭ３００，３１０と、ＣＡ（Channel Adapter）３２０から３２３と、ＣＡ３２４から３２７と、ＮＴＢ（Non Transparent Bridge）３３０，３３１を含む。ＣＭ３００，３１０は、相互に接続して負荷を分担することができる。なお、ＣＥ３０は、２つのＣＭ３００，３１０を含むが、これに限らず、３００，３１０のいずれか一方を含むものであってもよいし、３つ以上のＣＭを含むものであってもよく、たとえば、４つあるいは８つのＣＭを含むものであってもよい。
【００３７】
ＣＭ３００，３１０は、ストレージデバイスへのデータの書き込みや、ストレージデバイスからのデータの読み出しを制御するストレージ制御装置として機能する。また、ＣＭ３００，３１０は、コピー元ストレージ装置からコピー先ストレージ装置への順序性保証リモートコピーを制御するストレージ制御装置として機能する。
【００３８】
ＣＡ３２０から３２３は、ＣＭ３００と外部装置（たとえば、ホスト５０）との通信インタフェースとして機能する。ＣＡ３２４から３２７は、ＣＭ３１０と外部装置との通信インタフェースとして機能する。ＮＴＢ３３０は、ＣＭ３００からＦＥ２０へのＤＭＡ（Direct Memory Access）転送を担う。ＮＴＢ３３１は、ＣＭ３１０からＦＥ２０へのＤＭＡ転送を担う。
【００３９】
ＣＭ３００は、プロセッサ３０１と、メモリ３０２と、ＤＡ（Disk Adapter）３０３，３０４を含む。ＣＭ３１０は、プロセッサ３１１と、メモリ３１２と、ＤＡ３１３，３１４を含む。なお、ＣＭ３１０はＣＭ３００と同様の構成を有するため、以下、ＣＭ３００の説明をもってＣＭ３１０の説明に代える。
【００４０】
プロセッサ３０１、メモリ３０２、およびＤＡ３０３，３０４は、図示しないバスを介して接続されている。プロセッサ３０１は、ＣＭ３００全体を制御する。なお、プロセッサ３０１は、マルチプロセッサであってもよい。プロセッサ３０１は、たとえばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＰＬＤ（Programmable Logic Device）である。またプロセッサ３０１は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００４１】
メモリ３０２は、ＤＥ４０ａ，４０ｂ，４０ｃに含まれるストレージデバイスからデータを読み出したときにデータを保持するほか、ストレージデバイスにデータを書き込むときのバッファとなる。また、メモリ３０２は、順序性保証リモートコピーにおけるコピー元ストレージ装置の送信用バッファ（後述するＲＥＣ（Remote Equivalent Copy）バッファ）となる。また、メモリ３０２は、ユーザデータや制御情報を格納する。
【００４２】
たとえば、メモリ３０２は、ＲＡＭ（Random Access Memory）や不揮発性メモリを含む。ＲＡＭは、ＣＭ３００の主記憶装置として使用される。ＲＡＭには、プロセッサ３０１に実行させるオペレーティングシステム（Operating System）のプログラムやファームウェア、アプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭには、プロセッサ３０１による処理に必要な各種データが格納される。また、ＲＡＭは、各種データの格納に用いるメモリと別体にキャッシュメモリを含む。
【００４３】
不揮発性メモリは、ＣＭ３００の電源遮断時においても記憶内容を保持する。不揮発性メモリは、たとえば、ＥＥＰＲＯＭ（Electrically Erasable and Programmable Read Only Memory）やフラッシュメモリなどの半導体記憶装置や、ＨＤＤなどである。また、不揮発性メモリは、ＣＭ３００の補助記憶装置として使用される。不揮発性メモリには、オペレーティングシステムのプログラムやファームウェア、アプリケーションプログラム、および各種データが格納される。
【００４４】
バスに接続される周辺機器としては、入出力インタフェース、および通信インタフェースがある。入出力インタフェースは、入出力装置と接続して入出力をおこなう。入出力インタフェースは、ＨＤＤなどの記憶装置から送られてくる信号やデータをプロセッサ３０１やメモリ３０２に送信する。また、入出力インタフェースは、たとえば、プロセッサ３０１から受信した信号を、他の制御部や、ＣＭ３００と接続する出力装置に出力する。通信インタフェースは、ＣＥ３０内の他のＣＭ（ＣＭ３１０）との間でデータの送受信をおこなう。
【００４５】
ＤＡ３０３，３０４は、ＤＥ４０ａ，４０ｂ，４０ｃに含まれるストレージデバイスとのインタフェース制御（アクセス制御）をおこなう。
以上のようなハードウェア構成によって、ＣＭ３００，３１０の処理機能を実現することができる。なお、第１の実施形態に示したコントローラモジュール１ａも、ＣＭ３００，３１０と同様のハードウェアにより実現することができる。
【００４６】
なお、ＣＥ３０について説明したが、ＣＥ３１，３２，３３についても同様である。
次に、送信用バッファについて図４を用いて説明する。図４は、第２の実施形態のＲＥＣバッファの一例を示す図である。
【００４７】
ＲＥＣバッファは、ＣＭ３００における送信用バッファである。ＲＥＣバッファは、所定サイズ（たとえば、８ＭＢ）の１以上の個別バッファを含む。たとえば、図示するＲＥＣバッファは、８つの個別バッファを含み、オフセットにより各個別バッファを識別可能にしている。オフセット「０」の個別バッファは、第１世代のコピーデータを格納し、オフセット「１」の個別バッファは、第１世代のコピーデータより新しい第２世代のコピーデータを格納する。同様に、オフセット「２」，「３」の個別バッファは、それぞれ第３世代のコピーデータ、第４世代のコピーデータを格納する。オフセット「４」から「７」の個別バッファは、コピーデータを格納しない未使用状態である。新しい世代のコピーデータは、未使用状態のうちから選択される。また、データ転送は、古い世代から順におこなわれ、データ転送後の個別バッファは、解放されて未使用状態となる。
【００４８】
なお、個別バッファの数は、一例であって、たとえば、２５６個などであってもよい。
次に、バッファセットについて図５を用いて説明する。図５は、第２の実施形態のバッファセットの一例を示す図である。
【００４９】
各個別バッファは、他のＣＭの個別バッファとともにバッファセットを構成して世代管理される。たとえば、バッファセット６００は、各ＣＭの１つの個別バッファ（図中、ハッチングで示すオフセット「７」の個別バッファ）をＣＭ＃００からＣＭ＃２３までの２４台のＣＭでグループ化したバッファセットである。なお、ＣＭの後の＃ｎｎは、ＣＭを一意に識別する識別情報である。バッファセット６００の個別バッファの数は、コピー元ストレージ装置のＣＭの数に対応して「２４」である。
【００５０】
バッファセットは、更新順序に対応する世代単位のバッファ群であり、たとえば、バッファセット６００は、１世代のバッファ群に相当する。コピー元ストレージ装置は、１つのバッファセットに所定量のデータが蓄積されると、データの蓄積先を別のバッファセットに切り替える。そして、コピー元ストレージ装置は、世代管理されたバッファセットを用いることで、データ更新の順序性を保証した非同期リモートコピーを実現可能にしている。
【００５１】
このようなバッファセット６００は、一回に転送するデータ量が大きくなり、コピー先ストレージ装置のＣＭの数が少ない場合に、コピー先ストレージ装置の受信用バッファを逼迫させる恐れがある。また、バッファセットの世代交代契機は、所定時間経過のほかに、特定の個別バッファのデータ蓄積量が閾値を超えた場合などがあり、個別バッファ間でデータ蓄積量にばらつきが生じる。そのため、このようなバッファセット６００は、データ充填率が上がらない。
【００５２】
そのため、バッファセット６００に比べて小さなバッファセットを用意することが望ましい。
次に、バッファセットのサイズを設定するバッファセットサイズ設定処理について、図６を用いて説明する。図６は、第２の実施形態のバッファセットサイズ設定処理のフローチャートを示す図である。
【００５３】
バッファセットサイズ設定処理は、バッファセットのサイズを設定する処理である。バッファセットサイズ設定処理は、順序性保証リモートコピーの設定時など所要の契機に、コピーマスタ制御部によって実行される。なお、コピーマスタ制御部は、コピーマスタＣＭの制御部であり、コピーマスタＣＭは、コピー元ストレージ装置のＣＭのうちの１つであり、あらかじめ設定される。たとえば、コピーマスタＣＭは、ＣＭ＃００からＣＭ＃２３のうちのＣＭ＃００である。以下、ＣＭ３００がコピーマスタＣＭであるとして説明をおこなう。プロセッサ３０１は、メモリ３０２が格納する所要のプログラムを実行することにより、コピーマスタ制御部を実現する。
【００５４】
［ステップＳ１１］コピーマスタ制御部は、ＲＥＣ Ｃｏｎｓｉｓｔｅｎｃｙ（順序性保証リモートコピー）を開通するためのネゴシエーションをコピー元ストレージ装置との間でおこなう。
【００５５】
［ステップＳ１２］コピーマスタ制御部は、コピー元ストレージ装置の構成情報を取得する。たとえば、コピー元ストレージ装置の構成情報は、コピー元ストレージ装置のＣＭの数を含む。
【００５６】
［ステップＳ１３］コピーマスタ制御部は、コピー先ストレージ装置の構成情報を取得する。たとえば、コピー先ストレージ装置の構成情報は、コピー先ストレージ装置のＣＭの数を含む。
【００５７】
［ステップＳ１４］コピーマスタ制御部は、コピー元ストレージ装置のバッファセットのサイズを取得する。バッファセットのサイズは、コピー元ストレージ装置の構成情報にもとづいて算出されるものであってもよいし、あらかじめ設定されているものであってもよい。
【００５８】
［ステップＳ１５］コピーマスタ制御部は、バッファセットの分割の是非を判定する。たとえば、コピーマスタ制御部は、バッファセットのサイズを評価することによってバッファセットの分割の是非を判定する。より具体的には、受信用バッファの逼迫防止の観点から、コピーマスタ制御部は、バッファセットのサイズが受信用バッファのサイズと比較して過大である場合にバッファセットの分割を是とする。ただし、バッファセットのサイズが最小値（個別バッファが１つ）の場合は、この限りでない。なお、受信用バッファのサイズは、コピー先ストレージ装置の構成情報として取得されるものであってもよいし、コピー先ストレージ装置の構成情報にもとづいて算出されるものであってもよい。また、バッファセットのデータ充填率向上の観点から、バッファセットに含まれる個別バッファごとのデータ充填率を比較してばらつきが大きい場合にバッファセットの分割を是とする。
【００５９】
［ステップＳ１６］コピーマスタ制御部は、バッファセットの分割を是とする場合にステップＳ１７にすすみ、バッファセットの分割を是としない場合にステップＳ１８にすすむ。
【００６０】
［ステップＳ１７］コピーマスタ制御部は、バッファセットを分割してバッファセットサイズを縮小する。たとえば、ＣＭ数「２４」であり、バッファセットサイズ「２４」のとき、コピーマスタ制御部は、バッファセットを２分割することによってバッファセットサイズを「１２」に縮小する。同様に、コピーマスタ制御部は、バッファセットを３分割することによってバッファセットサイズを「８」に縮小することができるし、バッファセットを４分割することによってバッファセットサイズを「６」に縮小することができる。このようなバッファセットの分割数は、コピー元ストレージ装置の構成情報とコピー先ストレージ装置の構成情報とから参照可能な情報として、あらかじめテーブルデータとして設定されているものであってもよい。
【００６１】
［ステップＳ１８］コピーマスタ制御部は、縮小したバッファセットサイズを、コピー元ストレージ装置のバッファセットサイズとして設定し、バッファセットサイズ設定処理を終了する。
【００６２】
次に、バッファセットサイズ設定処理によってバッファセットサイズが縮小されたバッファセットについて図７を用いて説明する。図７は、第２の実施形態のバッファセットサイズが縮小されたバッファセットの一例を示す図である。
【００６３】
バッファセット６０１は、各ＣＭの１つの個別バッファ（図中、ハッチングで示すオフセット「７」の個別バッファ）のうち、ＣＭ＃００からＣＭ＃０７までの８台のＣＭでグループ化したバッファセットである。したがって、バッファセット６０１の個別バッファの数は、ＣＭ＃００からＣＭ＃０７に対応して「８」である。バッファセット６０２，６０３についても同様である。
【００６４】
なお、バッファセット６０１，６０２，６０３は、それぞれ異なる世代のバッファセットとなる。したがって、ＣＭ＃００からＣＭ＃２３までのＲＥＣバッファは、分割数「３」、オフセット数「８」であるから、２４世代分のバッファセットを用意できる。
【００６５】
このようなバッファセット６０１，６０２，６０３は、一回に転送するデータ量を抑制可能であり、コピー先ストレージ装置の受信用バッファを逼迫させる恐れを軽減する。また、バッファセット６０１，６０２，６０３は、バッファセット６００と比較して、データ充填率を向上できる。
【００６６】
次に、バッファセットに格納されたコピーデータを、転送先で格納する受信用バッファについて図８を用いて説明する。図８は、第２の実施形態の受信用バッファの一例を示す図である。
【００６７】
図示する受信用バッファは、コピー先ストレージ装置が備えるＣＭが４台構成の場合を示す。受信用バッファは、各ＣＭのＲＥＣバッファに設定される。受信用バッファの大きさは、オフセット数「８」かつＣＭ数「４」なので「３２（＝８×４）」である。
【００６８】
したがって、図７に示したバッファセット６０１からバッファセットサイズ「８」のデータ転送があっても、４（＝３２／８）回分のデータ転送に対応できる。すなわち、受信用バッファは、バッファセットサイズが縮小されることによって、受信用バッファの逼迫の危険が軽減されている。
【００６９】
次に、Ｗｒｉｔｅ Ｉ／Ｏ受付処理について図９を用いて説明する。図９は、第２の実施形態のＷｒｉｔｅ Ｉ／Ｏ受付処理のフローチャートを示す図である。
Ｗｒｉｔｅ Ｉ／Ｏ受付処理は、ホスト５０からＷｒｉｔｅ Ｉ／Ｏを受け付けたＣＭが、Ｗｒｉｔｅ Ｉ／Ｏの受付を契機に実行する処理である。Ｗｒｉｔｅ Ｉ／Ｏ受付処理は、制御部によって実行される。なお、以下、ＣＭ３００がＷｒｉｔｅ Ｉ／Ｏを受け付けたＣＭであるとして説明をおこなう。プロセッサ３０１は、メモリ３０２が格納する所要のプログラムを実行することにより、制御部を実現する。
【００７０】
［ステップＳ２１］制御部は、ＤＩＭＭ（Dual Inline Memory Module）キャッシュを獲得する。ＤＩＭＭキャッシュは、メモリ３０２に含まれる。
［ステップＳ２２］制御部は、最新世代のバッファセットにおけるコピーデータを格納可能なＲＥＣバッファを担当するＣＭ（ＲＥＣバッファ担当ＣＭ）を判定する。たとえば、バッファセットに自ＣＭのＲＥＣバッファが含まれるとき、ＲＥＣバッファ担当ＣＭは、自ＣＭである。一方、バッファセットに自ＣＭのＲＥＣバッファが含まれないとき、ＲＥＣバッファ担当ＣＭは、他ＣＭである。具体的には、自ＣＭがＣＭ＃００、かつバッファセット６０１が最新世代のとき、ＣＭ＃００はＲＥＣバッファ担当ＣＭである（図７参照）。一方、自ＣＭがＣＭ＃００、かつバッファセット６０２が最新世代のとき、ＣＭ＃００はＲＥＣバッファ担当ＣＭでない。このとき、ＲＥＣバッファ担当ＣＭは、ＣＭ＃０８からＣＭ＃１５のいずれかである。
【００７１】
［ステップＳ２３］制御部は、ＲＥＣバッファ担当ＣＭが他ＣＭである場合にステップＳ２４にすすみ、ＲＥＣバッファ担当ＣＭが他ＣＭでない場合にステップＳ２５にすすむ。
【００７２】
［ステップＳ２４］制御部は、ＲＥＣバッファ担当ＣＭにＲＥＣバッファ（個別バッファ）の獲得を依頼する。
［ステップＳ２５］制御部は、ＲＥＣバッファ担当ＣＭとして自ＣＭのＲＥＣバッファ（個別バッファ）を獲得する。
【００７３】
［ステップＳ２６］制御部は、Ｗｒｉｔｅ Ｉ／Ｏの受入準備完了通知をホスト５０に応答する。
［ステップＳ２７］制御部は、ホスト５０からユーザデータを取得する。なお、ユーザデータは、コピー先ストレージ装置への転送対象となるコピーデータに相当する。
【００７４】
［ステップＳ２８］制御部は、ＤＩＭＭキャッシュにユーザデータを格納する。
［ステップＳ２９］制御部は、Ｗｒｉｔｅ正常完了通知をホスト５０に応答し、Ｗｒｉｔｅ Ｉ／Ｏ受付処理を終了する。
【００７５】
制御部は、Ｗｒｉｔｅ Ｉ／Ｏ受付処理を終了後に、ＤＩＭＭキャッシュに格納したユーザデータをＷｒｉｔｅ正常完了通知と非同期にストレージデバイスに書き込む。また、制御部は、Ｗｒｉｔｅ Ｉ／Ｏ受付処理を終了後に、ＤＩＭＭキャッシュに格納したユーザデータをＷｒｉｔｅ正常完了通知と非同期にＲＥＣバッファに転送する。
【００７６】
なお、ＲＥＣバッファ担当ＣＭは、ＲＥＣバッファ担当ＣＭの一覧を記録するテーブル（ＲＥＣバッファ担当ＣＭ一覧テーブル）を参照することによって決定することができる。たとえば、ＲＥＣバッファ担当ＣＭ一覧テーブルは、あらかじめ用意されるものであってもよいし、バッファセット分割時に生成されるものであってもよい。ＲＥＣバッファ担当ＣＭ一覧テーブルについて図１０を用いて説明する。図１０は、第２の実施形態のＲＥＣバッファ担当ＣＭ一覧テーブルの一例を示す図である。
【００７７】
ＲＥＣバッファ担当ＣＭ一覧テーブルは、最新世代のバッファセットごとに、各ＣＭのＲＥＣバッファ担当ＣＭを記録する。たとえば、ＣＭ＃００のＲＥＣバッファ担当ＣＭは、バッファセット＃０のときにＣＭ＃００（自ＣＭ）であり、バッファセット＃１のときにＣＭ＃０８（他ＣＭ）であり、バッファセット＃２のときにＣＭ＃１６（他ＣＭ）である。なお、バッファセットの後の＃ｎは、バッファセットを一意に識別する識別情報である。
【００７８】
制御部は、ＲＥＣバッファ担当ＣＭ一覧テーブルを参照することで、Ｗｒｉｔｅ Ｉ／Ｏ受付処理のステップＳ２２においてＲＥＣバッファ担当ＣＭを決定することができる。
このようにして、ストレージシステム１０は、バッファセットサイズを縮小することで、順序性保証リモートコピーにおけるバッファセット単位のデータ充填率の低下を抑制できる。
【００７９】
たとえば、バッファセットサイズが過大な場合、個別バッファの一つがフル（充填率が閾値を超える）のときに他の個別バッファが空もしくはきわめて少ないというケースが頻回に発生し得る。また、個別バッファの充填率のばらつきは、ＣＭの負荷のばらつきとなり、ロードバランスが取れない不都合を生じる。また近時のストレージ装置は、拡張性が要求され、装置導入以降においても順次ＣＭ数が増大し得る。このような拡張性は、コピー元ストレージ装置の構成が大規模化し、ＣＭ数が増大するほどに個別バッファの充填率のばらつきを顕著にする。
【００８０】
しかしながら、ストレージシステム１０は、バッファセットサイズを縮小することによって、バッファセット単位のデータ充填率の低下によって惹起される課題を解決できる。
［第３の実施形態］
次に、第３の実施形態のストレージシステムについて図１１から図１４を用いて説明する。第２の実施形態のストレージシステムは一度だけバッファセットを縮小したが、第３の実施形態のストレージシステムは、バッファセットの縮小を２回以上おこなうことができる点で第２の実施形態のストレージシステムと相違する。第３の実施形態のストレージシステムは、バッファセットの縮小の是非の判定に稼働情報を用いる。
【００８１】
まず、稼働情報の収集をおこなう稼働情報報告処理について図１１を用いて説明する。図１１は、第３の実施形態の稼働情報報告処理のフローチャートを示す図である。稼働情報報告処理は、コピー元ストレージ装置が備える各ＣＭが、定期または不定期に実行する処理である。定期の実行契機は、所定周期（たとえば、１０ｍｓごと）の実行契機などがある。また、不定期の実行契機は、ホスト５０からのＷｒｉｔｅ Ｉ／Ｏの受付などがある。
【００８２】
稼働情報報告処理は、各ＣＭの制御部によって実行される。なお、ＣＭ３００が稼働情報報告処理を実行する場合、プロセッサ３０１は、メモリ３０２が格納する所要のプログラムを実行することにより制御部を実現する。
【００８３】
［ステップＳ３１］制御部は、ＲＥＣバッファ転送有無を編集する。ＲＥＣバッファ転送有無は、ＲＥＣバッファごとのデータ転送の有無を示す情報である。
［ステップＳ３２］制御部は、自ＣＭのＲＥＣバッファ（個別バッファ）の充填率を編集する。ＲＥＣバッファの充填率は、ＲＥＣバッファ（個別バッファ）の記憶容量に対して格納されているデータ量の割合を示す情報である。
【００８４】
［ステップＳ３３］制御部は、Ｗｒｉｔｅ Ｉ／Ｏレスポンスを編集する。Ｗｒｉｔｅ Ｉ／Ｏレスポンスは、Ｗｒｉｔｅ Ｉ／Ｏに対する平均応答時間を示す情報である。
［ステップＳ３４］制御部は、稼働情報を生成する。稼働情報は、ＲＥＣバッファ転送の有無と、自ＣＭのＲＥＣバッファ（個別バッファ）の充填率と、Ｗｒｉｔｅ Ｉ／Ｏレスポンスを含む。
【００８５】
［ステップＳ３５］制御部は、稼働情報をコピーマスタＣＭに報告して、稼働情報報告処理を終了する。
これにより、コピーマスタＣＭは、コピー元ストレージ装置が備える各ＣＭから稼働情報を収集できる。
【００８６】
次に、バッファセット分割処理について図１２を用いて説明する。図１２は、第３の実施形態のバッファセット分割処理のフローチャートを示す図である。バッファセット分割処理は、バッファセットを分割して小さくする処理である。バッファセット分割処理は、コピーマスタＣＭによって定期または不定期に実行される。定期の実行契機は、所定周期（たとえば、２４時間ごと）の実行契機、あるいはスケジュールされた実行契機（たとえば、５月２０日の午前零時）などがある。また、不定期の実行契機は、ホスト５０からの実行要求の受付や、コピー元ストレージ装置の構成変更検出、アイドル状態の検出などがある。
【００８７】
なお、ＣＭ３００がコピーマスタＣＭとしてバッファセット分割処理を実行する場合、プロセッサ３０１は、メモリ３０２が格納する所要のプログラムを実行することによりコピーマスタ制御部を実現する。
【００８８】
［ステップＳ４１］コピーマスタ制御部は、バッファセットが分割可能か否かを判定する。コピーマスタ制御部は、バッファセットを分割できると判定した場合にステップＳ４２にすすみ、バッファセットを分割できないと判定した場合にバッファセット分割処理を終了する。
【００８９】
たとえば、コピーマスタ制御部は、バッファセットサイズが「２」以上のときに分割可能と判定し、バッファセットサイズが「１」のときに分割不可能と判定する。なお、バッファセットサイズの最小値を設定して、設定値との比較でバッファセットの分割の可否を判定するものであってもよい。
【００９０】
［ステップＳ４２］コピーマスタ制御部は、各ＣＭから収集した稼働情報を取得する。
［ステップＳ４３］コピーマスタ制御部は、バッファセット単位のＣＭごとのＲＥＣバッファ充填率の偏りの有無を判定する。たとえば、コピーマスタ制御部は、ＣＭごとのＲＥＣバッファ充填率を統計的に評価し、評価結果を所定の閾値と比較することによってＲＥＣバッファ充填率の偏りの有無を判定できる。統計的評価は、たとえば、分散の算出などがある。
【００９１】
また、コピーマスタ制御部は、各ＣＭからＲＥＣバッファ転送有無と、自ＣＭのＲＥＣバッファ（個別バッファ）の充填率と、Ｗｒｉｔｅ Ｉ／Ｏレスポンスを含む稼働情報を収集している。コピーマスタ制御部は、すべてのパラメータを用いてＲＥＣバッファ充填率の偏りの有無を判定してもよいし、いずれかのパラメータを選択して判定してもよい。
【００９２】
なお、ＲＥＣバッファ充填率の偏り判定の対象となるバッファセットは、判定対象となり得るバッファセットのすべてとしてもよいし、所定基準（たとえば、最新世代の１世代前のバッファセット）で選択されるものであってもよい。
【００９３】
［ステップＳ４４］コピーマスタ制御部は、ＣＭごとのＲＥＣバッファ充填率の偏りがあると判定した場合にステップＳ４５にすすみ、ＣＭごとのＲＥＣバッファ充填率の偏りがないと判定した場合にバッファセット分割処理を終了する。
【００９４】
［ステップＳ４５］コピーマスタ制御部は、バッファセットを分割（たとえば、２分割または３分割）し、バッファセットサイズを小さくし、ステップＳ４１にすすむ。なお、分割数は、あらかじめ設定されていてもよい。たとえば、コピーマスタ制御部は、バッファセットサイズ「２４」について、１回目の分割は３分割、２回目の分割は２分割、３回目の分割は２分割、４回目の分割は２分割のように、分割数を定義した参照表を参照して分割数を決定できる。
【００９５】
ここで、分割されたバッファセットについて図１３を用いて説明する。図１３は、第３の実施形態のバッファセットサイズが縮小されたバッファセットの一例を示す図である。
バッファセット６１１は、各ＣＭの１つの個別バッファ（図中、ハッチングで示すオフセット「７」の個別バッファ）のうち、ＣＭ＃００だけからなるバッファセットである。したがって、バッファセット６１１の個別バッファの数は、ＣＭ＃００に対応して「１」である。バッファセット６１２，６１３，６１４についても同様である。
【００９６】
なお、バッファセット６１１，６１２，６１３，６１４は、それぞれ異なる世代のバッファセットとなる。したがって、ＣＭ＃００からＣＭ＃２３までのＲＥＣバッファは、分割数「２４」、オフセット数「８」であるから、１９２世代分のバッファセットを用意できる。
【００９７】
このようなバッファセット６１１，６１２，６１３，６１４は、一回に転送するデータ量を抑制可能であり、コピー先ストレージ装置の受信用バッファを逼迫させる恐れを軽減する。また、バッファセット６１１，６１２，６１３，６１４は、バッファセット６００やバッファセット６０１，６０２，６０３と比較して、データ充填率を向上できる。
【００９８】
次に、バッファセットに格納されたコピーデータを、転送先で格納する受信用バッファについて図１４を用いて説明する。図１４は、第３の実施形態の受信用バッファの一例を示す図である。
【００９９】
図示する受信用バッファは、コピー先ストレージ装置が備えるＣＭが４台構成の場合を示す。受信用バッファは、各ＣＭのＲＥＣバッファに設定される。受信用バッファの大きさは、オフセット数「８」かつＣＭ数「４」なので「３２（＝８×４）」である。
【０１００】
したがって、図１３に示したバッファセット６１１からバッファセットサイズ「１」のデータ転送があっても、３２（＝３２／１）回分のデータ転送に対応できる。すなわち、受信用バッファは、バッファセットサイズが縮小されることによって、受信用バッファの逼迫の危険が軽減されている。
【０１０１】
［第４の実施形態］
次に、第４の実施形態のストレージシステムについて図１５から図１７を用いて説明する。第３の実施形態のストレージシステムは、ＲＥＣバッファ充填率の偏り状態にもとづいてバッファセットを縮小した。バッファセットの縮小は、バッファセットの切替機会を増大させる。バッファセットの切り替え時にホストＩ／Ｏを一時停止させることから、バッファセットの切替機会の増大は、ホストＩ／Ｏのオーバヘッドを大きくする。そこで、第４の実施形態のストレージシステムは、ホストＩ／Ｏのオーバヘッドにもとづいてバッファセットを拡大する点で第３の実施形態のストレージシステムと相違する。
【０１０２】
まず、負荷監視処理について図１５を用いて説明する。図１５は、第４の実施形態の負荷監視処理のフローチャートを示す図である。負荷監視処理は、コピーマスタＣＭによって定期または不定期に実行される。定期の実行契機は、所定周期（たとえば、２４時間ごと）の実行契機、あるいはスケジュールされた実行契機（たとえば、５月２０日の午前零時）などがある。また、不定期の実行契機は、ホスト５０からの実行要求の受付や、コピー元ストレージ装置の構成変更検出、アイドル状態の検出などがある。また、負荷監視処理は、バッファセット分割処理の後に実行して、バッファセット分割処理で縮小したバッファセットサイズを是正するようにしてもよい。
【０１０３】
なお、ＣＭ３００がコピーマスタＣＭとして負荷監視処理を実行する場合、プロセッサ３０１は、メモリ３０２が格納する所要のプログラムを実行することによりコピーマスタ制御部を実現する。
【０１０４】
［ステップＳ５１］コピーマスタ制御部は、バッファセット分割の負荷としてホストＩ／Ｏのオーバヘッド（たとえば、レスポンス時間）を算出する。ホストＩ／Ｏのオーバヘッドは、第３の実施形態で説明した稼働情報報告処理により各ＣＭから収集した稼働情報から算出されてもよいし、コピーマスタＣＭの稼働情報を代表値として算出されてもよい。
【０１０５】
［ステップＳ５２］コピーマスタ制御部は、ホストＩ／Ｏのオーバヘッドがあらかじめ設定する閾値より大きいか否かを判定する。コピーマスタ制御部は、ホストＩ／Ｏのオーバヘッドが閾値より大きい場合にステップＳ５３にすすみ、ホストＩ／Ｏのオーバヘッドが閾値より大きくない場合に負荷監視処理を終了する。
【０１０６】
［ステップＳ５３］コピーマスタ制御部は、２以上のバッファセットを併合した場合のバッファセットサイズを取得する。
［ステップＳ５４］コピーマスタ制御部は、併合後のバッファセットサイズがコピー先ストレージ装置で受信可能なサイズか否かを判定する。併合後のバッファセットサイズがコピー先ストレージ装置で受信可能なサイズか否かの判定は、併合後のバッファセットサイズとコピー先ストレージ装置の受信バッファのサイズとの比較によりおこなう。コピーマスタ制御部は、併合後のバッファセットサイズがコピー先ストレージ装置で受信可能なサイズである場合にステップＳ５５にすすみ、コピー先ストレージ装置で受信可能なサイズでない場合に負荷監視処理を終了する。
【０１０７】
［ステップＳ５５］コピーマスタ制御部は、バッファセットサイズを併合後のバッファセットサイズで更新し、負荷監視処理を終了する。
ここで、併合されたバッファセットについて図１６を用いて説明する。図１６は、第４の実施形態のバッファセットサイズが縮小されたバッファセットの一例を示す図である。
【０１０８】
バッファセット６２１は、各ＣＭの１つの個別バッファ（図中、ハッチングで示すオフセット「７」の個別バッファ）のうち、ＣＭ＃００からＣＭ＃０３までの４台のＣＭでグループ化したバッファセットである。したがって、バッファセット６２１の個別バッファの数は、ＣＭ＃００からＣＭ＃０３に対応して「４」である。バッファセット６２２からバッファセット６２６についても同様である。
【０１０９】
なお、バッファセット６２１からバッファセット６２６は、それぞれ異なる世代のバッファセットとなる。したがって、ＣＭ＃００からＣＭ＃２３までのＲＥＣバッファは、分割数「６」、オフセット数「８」であるから、４８世代分のバッファセットを用意できる。
【０１１０】
このようなバッファセット６２１からバッファセット６２６は、一回に転送するデータ量の抑制と、ホストＩ／Ｏのオーバヘッドの軽減とを両立できる。これにより、バッファセット６２１からバッファセット６２６は、コピー先ストレージ装置の受信用バッファを逼迫させる恐れを軽減する。また、バッファセット６２１からバッファセット６２６は、バッファセット６００と比較して、データ充填率を向上できる。さらに、バッファセット６２１からバッファセット６２６は、コピー元ストレージ装置におけるホストＩ／Ｏのレスポンスを改善する。
【０１１１】
次に、バッファセットに格納されたコピーデータを、転送先で格納する受信用バッファについて図１７を用いて説明する。図１７は、第４の実施形態の受信用バッファの一例を示す図である。
【０１１２】
図示する受信用バッファは、コピー先ストレージ装置が備えるＣＭが４台構成の場合を示す。受信用バッファは、各ＣＭのＲＥＣバッファに設定される。受信用バッファの大きさは、オフセット数「８」かつＣＭ数「４」なので「３２（＝８×４）」である。
【０１１３】
したがって、図１６に示したバッファセット６２１からバッファセットサイズ「４」のデータ転送があっても、８（＝３２／４）回分のデータ転送に対応できる。すなわち、受信用バッファは、コピー元ストレージ装置におけるホストＩ／Ｏのオーバヘッドの軽減に対応しながらも、受信用バッファの逼迫の危険が軽減されている。
【０１１４】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、ストレージ装置１、ストレージ制御装置１ａ、ＣＭ３００，３１０が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disk）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ／ＲＷなどがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１１５】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１１６】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１１７】
また、上記の処理機能の少なくとも一部を、ＤＳＰ、ＡＳＩＣ、ＰＬＤなどの電子回路で実現することもできる。
【符号の説明】
【０１１８】
１，２  ストレージ装置
１ａ，１ｂ，１ｃ，１ｄ，２ａ，２ｂ，３００，３１０  コントローラモジュール（ＣＭ）
３，５０，５１  ホスト
４ａ  記憶部
４ｃ  制御部
５ａ，５ｂ，５ｃ，５ｄ  送信用バッファ
６ａ，６ｂ，６０１，６０２，６０３，６１１，６１２，６１３，６１４，６２１，６２２，６２３，６２４，６２５，６２６  バッファセット
７ａ，７ｂ  受信用バッファ
１０  ストレージシステム
１１  ＷＤＭ
１２，１３  ネットワーク
２０，２１  ＦＥ
３０，３１，３２，３３  ＣＥ
４０，４０ａ，４０ｂ，４０ｃ，４１，４２，４３  ＤＥ
３０１，３１１  プロセッサ
３０２，３１２  メモリ
【図１】
0006613603.tif 000002
【図２】
0006613603.tif 000003
【図３】
0006613603.tif 000004
【図４】
0006613603.tif 000005
【図５】
0006613603.tif 000006
【図６】
0006613603.tif 000007
【図７】
0006613603.tif 000008
【図８】
0006613603.tif 000009
【図９】
0006613603.tif 000010
【図１０】
0006613603.tif 000011
【図１１】
0006613603.tif 000012
【図１２】
0006613603.tif 000013
【図１３】
0006613603.tif 000014
【図１４】
0006613603.tif 000015
【図１５】
0006613603.tif 000016
【図１６】
0006613603.tif 000017
【図１７】
0006613603.tif 000018