(57)【特許請求の範囲】
【請求項１】
上位装置と第１の記憶装置と第２の記憶装置と中継装置とを含む情報処理システムにおいて、
前記中継装置が、前記上位装置から前記第１の記憶装置へのデータの書き込み及びデータの読み出しを中継し、前記中継する情報の複製である観測に関する情報を前記第２の記憶装置に送信し、
前記第１の記憶装置が、
データを書き込むブロックにおける情報を保持する第１のマップを記憶する第１の記憶手段と、
前記上位装置から受信したデータを書き込んだ場合に前記第１のマップの情報を複製が必要なことを示す情報に更新する第１の管理手段と
を含み、
前記第２の記憶装置が、
データを複製するブロックにおける情報を保持する第２のマップを記憶する第２の記憶手段と、
前記中継装置から受信した観測に関する情報を基に前記第１の記憶装置がデータを書き込んだ場合に前記第２のマップの情報を複製が必要なことを示す情報に更新し、前記第１の記憶装置から受信した複製のためのデータを保存した場合に前記第２のマップの情報を複製が不要なことを示す情報に更新する第２の管理手段と、
前記第１の記憶装置から前記第１のマップを取得し、取得した前記第１のマップと前記第２のマップとを基に前記第１の記憶装置における複製するブロックのデータを取得し、前記第１のマップの情報を複製が不要なことを示す情報に更新し、前記第２の管理手段に複製のためのデータの保存を依頼する複製制御手段と
を含む
情報処理システム。
【請求項２】
前記第２の記憶装置が、
前記観測に関する情報を受信して保存する入出力解析手段と、
前記観測に関する情報を基に前記第１の記憶装置におけるデータの書き込み及び読み出しを計測して累計入出力数を算出する累計入出力数計測手段と
を含み、
前記複製制御手段が、
前記累計入出力数を基に、前記第１の記憶装置においてデータの書き込み及び読み出しされていない範囲のブロックを複製に用いるブロックとする
請求項１に記載の情報処理システム。
【請求項３】
前記複製制御手段が、
複製のためのデータを取得中に、取得中のデータに対応ブロックへの前記第１の記憶装置への書き込みを観測した場合に、取得した複製用データを破棄する
請求項１又は２に記載の情報処理システム。
【請求項４】
前記複製制御手段が、
前記第１のマップを更新している間に前記第１の記憶装置への書き込みを観測した場合に、前記第２の管理手段に前記第２のマップを更新しないことを依頼する
請求項１ないし３のいずれか１項に記載の情報処理システム。
【請求項５】
上位装置と第１の記憶装置と第２の記憶装置と中継装置とを含む情報処理システムにおいて、
前記中継装置が、前記上位装置から前記第１の記憶装置へのデータの書き込み及びデータの読み出しを中継し、前記中継する情報の複製である観測に関する情報を前記第２の記憶装置に送信し、
前記第１の記憶装置が、
データを書き込むブロックにおける情報を保持する第１のマップを記憶し、
前記上位装置から受信したデータを書き込んだ場合に前記第１のマップの情報を複製が必要なことを示す情報に更新し、
前記第２の記憶装置が、
データを複製するブロックにおける情報を保持する第２のマップを記憶し、
前記中継装置から受信した観測に関する情報を基に前記第１の記憶装置がデータを書き込んだ場合に前記第２のマップの情報を複製が必要なことを示す情報に更新し、前記第１の記憶装置から受信した複製のためのデータを保存した場合に前記第２のマップの情報を複製が不要なことを示す情報に更新し、
前記第１の記憶装置から前記第１のマップを取得し、取得した前記第１のマップと前記第２のマップとを基に前記第１の記憶装置における複製するブロックのデータを取得し、前記第１のマップの情報を複製が不要なことを示す情報に更新し、前記複製のためのデータを保存する
情報処理方法。
【請求項６】
上位装置と、
前記上位装置から第１の記憶装置へのデータの書き込み及びデータの読み出しを中継し、前記中継する情報の複製である観測に関する情報を第２の記憶装置に送信する中継装置と
データを書き込むブロックにおける情報を保持する第１のマップを記憶する第１の記憶手段と、
前記上位装置から受信したデータを書き込んだ場合に前記第１のマップの情報を複製が必要なことを示す情報に更新する第１の管理手段と
を含む前記第１の記憶装置と
を含む情報処理システムに含まれる前記第２の記憶装置であって、
データを複製するブロックにおける情報を保持する第２のマップを記憶する第２の記憶手段と、
前記中継装置から受信した観測に関する情報を基に前記第１の記憶装置がデータを書き込んだ場合に前記第２のマップの情報を複製が必要なことを示す情報に更新し、前記第１の記憶装置から受信した複製のためのデータを保存した場合に前記第２のマップの情報を複製が不要なことを示す情報に更新する第２の管理手段と、
前記第１の記憶装置から前記第１のマップを取得し、取得した前記第１のマップと前記第２のマップとを基に前記第１の記憶装置における複製するブロックのデータを取得し、前記第１のマップの情報を複製が不要なことを示す情報に更新し、前記第２の管理手段に前記複製のためのデータの保存を依頼する複製制御手段と
を含む
前記第２の記憶装置。
【請求項７】
上位装置と、
前記上位装置から第１の記憶装置へのデータの書き込み及びデータの読み出しを中継し、前記中継する情報の複製である観測に関する情報を第２の記憶装置に送信する中継装置と
データを書き込むブロックにおける情報を保持する第１のマップを記憶する第１の記憶手段と、
前記上位装置から受信したデータを書き込んだ場合に前記第１のマップの情報を複製が必要なことを示す情報に更新する第１の管理手段と
を含む前記第１の記憶装置と
前記第２の記憶装置と
を含む情報処理システムにおいて、
前記第２の記憶装置が、
データを複製するブロックにおける情報を保持する第２のマップを記憶し、
前記中継装置から受信した観測に関する情報を基に前記第１の記憶装置がデータを書き込んだ場合に前記第２のマップの情報を複製が必要なことを示す情報に更新し、前記第１の記憶装置から受信した複製のためのデータを保存した場合に前記第２のマップの情報を複製が不要なことを示す情報に更新し、
前記第１の記憶装置から前記第１のマップを取得し、取得した前記第１のマップと前記第２のマップとを基に前記第１の記憶装置における複製するブロックのデータを取得し、前記第１のマップの情報を複製が不要なことを示す情報に更新し、前記複製のためのデータを保存する
情報処理方法。
【請求項８】
上位装置と、
前記上位装置から第１の記憶装置へのデータの書き込み及びデータの読み出しを中継し、前記中継する情報の複製である観測に関する情報を第２の記憶装置に送信する中継装置と
データを書き込むブロックにおける情報を保持する第１のマップを記憶する第１の記憶手段と、
前記上位装置から受信したデータを書き込んだ場合に前記第１のマップの情報を複製が必要なことを示す情報に更新する第１の管理手段と
を含む前記第１の記憶装置と
前記第２の記憶装置と
を含む情報処理システムにおいて、
前記第２の記憶装置のコンピュータに、
データを複製するブロックにおける情報を保持する第２のマップを記憶する処理と、
前記中継装置から受信した観測に関する情報を基に前記第１の記憶装置がデータを書き込んだ場合に前記第２のマップの情報を複製が必要なことを示す情報に更新し、前記第１の記憶装置から受信した複製のためのデータを保存した場合に前記第２のマップの情報を複製が不要なことを示す情報に更新する処理と、
前記第１の記憶装置から前記第１のマップを取得し、取得した前記第１のマップと前記第２のマップとを基に前記第１の記憶装置における複製するブロックのデータを取得し、前記第１のマップの情報を複製が不要なことを示す情報に更新し、前記複製のためのデータを保存する処理と
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報の処理に関し、特に、情報を複製する情報処理システム、記憶装置、情報処理方法、及び、プログラムに関する。
【背景技術】
【０００２】
近年、業務用のサーバの運用形態として、業務用のデータを、サーバに直接的に接続されたストレージ装置にではなく、ネットワークを介して接続されているストレージ装置に保存する運用形態が用いられている。この運用形態の場合、サーバは、ネットワークを介して、ストレージ装置のデータをアクセスする。
【０００３】
また、業務用のデータは、データの保全が重要である。データを保全する手法の一つとして、マスターデータを保存するストレージ装置とは別のストレージ装置にデータの複製を保持させる方法がある（例えば、特許文献１及び２を参照）。この方法は、データの保全に対して、非常に有効である。具体的には、この方法は、マスターデータを保持しているストレージ装置（以下、マスター装置と呼ぶ）のデータを、複製データを保持するストレージ装置（以下、スレーブ装置と呼ぶ）に複製として保持させる方法である。
【０００４】
データ量が少ない場合、業務を停止してデータの複製作業を実施することが可能である。しかし、データ量は、増加の一途をたどっている。そのため、データの複製のために業務を停止したのでは、停止時間が、業務に影響を与えるようになっている。そのため、データの複製は、業務中に実施されている。
【０００５】
ただし、業務におけるデータの更新量が多い場合、複製の対象となるマスターデータは、頻繁に更新される。つまり、複製対象となるデータが、多くなる。その結果、マスター装置から、スレーブ装置に送信されるデータ量が多くなる。そのため、データの複製のための時間が、長くなっている。
【０００６】
また、マスター装置において、業務におけるデータの入出力処理と、複製のため出力処理とが、並列に実行される。この状態は、マスター装置における負荷が、高い状態となる。
【０００７】
つまり、マスター装置において、負荷の高い状況が、長時間となっている。この状態は、マスター装置における通常の動作に性能に影響を与える。
【０００８】
そのため、データ複製の動作の効率化が、望まれている。
【０００９】
通常の動作に対する複製動作の影響を低減する方法として、ストレージ装置が、通常の動作を実行していないときにデータの複製を実施する方法がある（例えば、特許文献２を参照）。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特表２０１３−５４３９９５号公報
【特許文献２】特開２０１３−０９７６３０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
特許文献２に記載の発明は、通常の動作に対する複製動作の影響を削減している。しかし、特許文献２に記載の発明は、マスター装置における動作の全体の負荷を削減してはいない。つまり、特許文献２に記載の発明は、通常の処理と複製処理とを合わせた全体の負荷を低減しているわけではない。例えば、特許文献２に記載の発明は、負荷が高いマスター装置、つまりアクセスが多いマスター装置において、複製に必要な期間を、確保できない可能性がある。つまり、特許文献２に記載の発明は、データの複製が完了できない可能性がある。
【００１２】
このように、特許文献２に記載の発明は、データの複製におけるマスター装置の負荷を低減できないという問題点があった。
【００１３】
特許文献１に記載の発明は、フラッシュコピーに関する発明であり、上記問題点を解決する発明ではない。
【００１４】
本発明の目的は、上記問題点を解決し、データの複製におけるマスター装置の負荷を低減する情報処理システム、記憶装置、情報処理方法、及び、プログラムを提供することにある。
【課題を解決するための手段】
【００１５】
本発明の一形態における情報処理システムは、上位装置と第１の記憶装置と第２の記憶装置と中継装置とを含む情報処理システムにおいて、中継装置が、上位装置から第１の記憶装置へのデータの書き込み及びデータの読み出しを中継し、中継する情報の複製である観測に関する情報を第２の記憶装置に送信し、第１の記憶装置が、データを書き込むブロックにおける情報を保持する第１のマップを記憶する第１の記憶手段と、上位装置から受信したデータを書き込んだ場合に第１のマップの情報を複製が必要なことを示す情報に更新する第１の管理手段とを含み、第２の記憶装置が、データを複製するブロックにおける情報を保持する第２のマップを記憶する第２の記憶手段と、中継装置から受信した観測に関する情報を基に第１の記憶装置がデータを書き込んだ場合に第２のマップの情報を複製が必要なことを示す情報に更新し、第１の記憶装置から受信した複製のためのデータを保存した場合に第２のマップの情報を複製が不要なことを示す情報に更新する第２の管理手段と、第１のマップと第２のマップとを基に第１の記憶装置における複製するブロックのデータを取得し、第１のマップの情報を複製が不要なことを示す情報に更新し、第２の管理手段に複製のためのデータの保存を依頼する複製制御手段とを含む。
【００１６】
本発明の一形態における情報処理方法は、上位装置と第１の記憶装置と第２の記憶装置と中継装置とを含む情報処理システムにおいて、中継装置が、上位装置から第１の記憶装置へのデータの書き込み及びデータの読み出しを中継し、中継する情報の複製である観測に関する情報を第２の記憶装置に送信し、第１の記憶装置が、データを書き込むブロックにおける情報を保持する第１のマップを記憶し、上位装置から受信したデータを書き込んだ場合に第１のマップの情報を複製が必要なことを示す情報に更新し、第２の記憶装置が、データを複製するブロックにおける情報を保持する第２のマップを記憶し、中継装置から受信した観測に関する情報
を基に第１の記憶装置がデータを書き込んだ場合に第２のマップの情報を複製が必要なことを示す情報に更新し、第１の記憶装置から受信した複製のためのデータを保存した場合に第２のマップの情報を複製が不要なことを示す情報に更新し、第１のマップと第２のマップとを基に第１の記憶装置における複製するブロックのデータを取得し、第１のマップの情報を複製が不要なことを示す情報に更新し、複製のためのデータを保存する。
【００１７】
本発明の一形態における記憶装置は、上位装置と、上位装置から他の記憶装置へのデータの書き込み及びデータの読み出しを中継し、中継する情報の複製である観測に関する情報を記憶装置に送信する中継装置とデータを書き込むブロックにおける情報を保持する第１のマップを記憶する第１の記憶手段と、上位装置から受信したデータを書き込んだ場合に第１のマップの情報を複製が必要なことを示す情報に更新する第１の管理手段とを含む他の記憶装置とを含む情報処理システムにおいて、データを複製するブロックにおける情報を保持する第２のマップを記憶する第２の記憶手段と、中継装置から受信した観測に関する情報を基に第１の記憶装置がデータを書き込んだ場合に第２のマップの情報を複製が必要なことを示す情報に更新し、第１の記憶装置から受信した複製のためのデータを保存した場合に第２のマップの情報を複製が不要なことを示す情報に更新する第２の管理手段と、第１のマップと第２のマップとを基に第１の記憶装置における複製するブロックのデータを取得し、第１のマップの情報を複製が不要なことを示す情報に更新し、第２の管理手段に複製のためのデータの保存を依頼する複製制御手段とを含む。
【００１８】
本発明の一形態における情報処理方法は、上位装置と、上位装置から他の記憶装置へのデータの書き込み及びデータの読み出しを中継し、中継する情報の複製である観測に関する情報を記憶装置に送信する中継装置とデータを書き込むブロックにおける情報を保持する第１のマップを記憶する第１の記憶手段と、上位装置から受信したデータを書き込んだ場合に第１のマップの情報を複製が必要なことを示す情報に更新する第１の管理手段とを含む他の記憶装置とを含む情報処理システムにおいて、記憶装置が、データを複製するブロックにおける情報を保持する第２のマップを記憶し、中継装置から受信した観測に関する情報を基に第１の記憶装置がデータを書き込んだ場合に第２のマップの情報を複製が必要なことを示す情報に更新し、第１の記憶装置から受信した複製のためのデータを保存した場合に第２のマップの情報を複製が不要なことを示す情報に更新し、第１のマップと第２のマップとを基に第１の記憶装置における複製するブロックのデータを取得し、第１のマップの情報を複製が不要なことを示す情報に更新し、複製のためのデータを保存する。
【００１９】
本発明の一形態におけるプログラムは、上位装置と、上位装置から他の記憶装置へのデータの書き込み及びデータの読み出しを中継し、中継する情報の複製である観測に関する情報を第２の記憶装置に送信する中継装置とデータを書き込むブロックにおける情報を保持する第１のマップを記憶する第１の記憶手段と、上位装置から受信したデータを書き込んだ場合に第１のマップの情報を複製が必要なことを示す情報に更新する第１の管理手段とを含む他の記憶装置とを含む情報処理システムにおいて、記憶装置のコンピュータに、データを複製するブロックにおける情報を保持する第２のマップを記憶する処理と、中継装置から受信した観測に関する情報を基に第１の記憶装置がデータを書き込んだ場合に第２のマップの情報を複製が必要なことを示す情報に更新し、第１の記憶装置から受信した複製のためのデータを保存した場合に第２のマップの情報を複製が不要なことを示す情報に更新する処理と、第１のマップと第２のマップとを基に第１の記憶装置における複製するブロックのデータを取得し、第１のマップの情報を複製が不要なことを示す情報に更新し、複製のためのデータを保存する処理とを実行させる。
【発明の効果】
【００２０】
本発明に基づけば、データの複製におけるマスター装置の負荷を低減する効果を奏することができる。
【図面の簡単な説明】
【００２１】
【図１】図１は、本発明における第１の実施形態に係る情報処理装置の構成の一例を示すブロック図である。
【図２】図２は、第１の実施形態に係る記憶装置の構成の一例を示すブロック図である。
【図３】図３は、複製状況ブロックマップの一例を示す図である。
【図４】図４は、第１の実施形態に係るデータの流れの一例を示す図である。
【図５】図５は、記憶装置と上位装置との間でエラーが発生した場合を示す図である。
【図６】図６は、マスター装置である記憶装置においてエラーが発生した場合を示す図である。
【図７】図７は、中継装置と記憶装置との間でエラーが発生した場合を示す図である。
【図８】図８は、スレーブ装置である記憶装置においてエラーが発生した場合を示す図である。
【図９】図９は、第１の遅延状態を示す図である。
【図１０】図１０は、第２の遅延状態を示す図である。
【図１１】図１１は、第３の遅延状態を示す図である。
【図１２】図１２は、第４の遅延状態を示す図である。
【図１３】図１３は、第１の実施形態の概要を示すブロック図である。
【図１４】図１４は、上位装置のハードウェア構成の一例を示すブロック図である。
【図１５】図１５は、中継装置のハードウェア構成の一例を示すブロック図である。
【図１６】図１６は、記憶装置のハードウェア構成の一例を示すブロック図である。
【発明を実施するための形態】
【００２２】
次に、本発明の実施形態について図面を参照して説明する。
【００２３】
各図面は、本発明の実施形態を説明するためのものである。ただし、本発明は、各図面の記載に限られるわけではない。また、各図面の同様の構成には、同じ番号を付し、その繰り返しの説明を、省略する場合がある。また、以下の説明に用いる図面において、本発明の説明に関係しない部分の構成については、記載を省略し、図示しない場合もある。また、図面中の矢印の方向は、一例を示すものであり、ブロック間の信号の向きを限定するものではない。
【００２４】
＜関連する発明＞
本発明における実施形態の説明の前に、本発明に関連する発明（以下、関連発明と呼ぶ）を説明する。
【００２５】
関連発明は、マスター装置における負荷の低減として、スレーブ装置が、マスター装置に入力されるデータとマスター装置から出力されるデータとを観測して、データを複製する。関連発明は、マスター装置において、複製のための動作を不要とする。つまり、関連発明は、マスター装置におけるデータを複製するための負荷を削減する。
【００２６】
しかし、スレーブ装置は、データを保存する装置であり、データを中継する装置ではない。そのため、スレーブ装置は、マスター装置のデータ経路上に存在するわけではない。つまり、スレーブ装置は、マスター装置に対するデータを全て観測できるように構成されるとは限らない。そのため、スレーブ装置における観測は、必ずしも成功するとは限らない。データを観測できない場合、つまり、観測におけるエラーが発生する場合が想定される。
【００２７】
そして、スレーブ装置における観測は、スレーブ装置側の動作である。つまり、観測は、マスター装置が関与しない動作である。そのため、観測が失敗した場合でも、マスター装置におけるリトライなどの回復動作は、実行されない。つまり、スレーブ装置が、データの観測が失敗した場合、スレーブ装置は、そのデータを取得できない。
【００２８】
さらに、関連発明において、スレーブ装置が観測したデータの順序がマスター装置におけるデータの順序と同じであることは、保証されていない。
【００２９】
このように、関連発明は、データを取得でない場合があり、データの順序を保証できないという問題点があった。
【００３０】
本発明における実施形態は、特許文献１及び２の課題に加え、関連発明の課題を解決する。
【００３１】
＜第１の実施形態＞
以下、図面を参照して、第１の実施形態について説明する。
【００３２】
［構成の説明］
まず、第１の実施形態に係る情報処理システム１００の構成について、図面を参照して説明する。
【００３３】
図１は、第１の実施形態に係る情報処理システム１００の構成の一例を示すブロック図である。情報処理システム１００は、中継装置２００と、記憶装置３００と、記憶装置３１０と、上位装置４００とを含む。
【００３４】
記憶装置３００及び記憶装置３１０は、データを記憶する装置である。記憶装置３００及び記憶装置３１０は、実際には、同様の構成を含む。ただし、以下の説明では、説明の便宜のため、記憶装置３００及び記憶装置３１０は、異なる符号を付している。具体的には、記憶装置３００は、データの複製において、マスター装置となる。一方、記憶装置３１０は、データの複製において、スレーブ装置となる。そのため、以下の説明では、記憶装置３００及び記憶装置３１０は、本実施形態に関連する構成を含むとして説明し、説明に関連しない構成の説明を省略する。したがって、記憶装置３００及び記憶装置３１０は、以下の説明に用いる構成以外の構成を含んでもよい。
【００３５】
また、以下の説明に用いる図面において、記憶装置３００及び記憶装置３１０に含まれる実際のデータを記憶する媒体の図示を省略する。つまり、以下の説明における記憶装置３００及び記憶装置３１０の媒体は、「図示していない媒体」である。ただし、説明の便宜のため、「図示していない媒体」を、単に「媒体」として説明する。
【００３６】
また、記憶装置３００及び記憶装置３１０は、媒体にデータを記憶する場合、所定の処理単位を用いて、データを記憶する。以下、この処理単位を「ブロック」と呼ぶ。
【００３７】
なお、媒体は、例えば、ハードディスク、光磁気ディスク、又は、半導体メモリである。
【００３８】
上位装置４００は、記憶装置３００のデータを用いて処理を実行する。そのため、上位装置４００は、記憶装置３００にデータを書き込み、記憶装置３００からデータを読み出す。
【００３９】
記憶装置３００は、上位装置４００から受信したデータを記憶する。また、記憶装置３００は、記憶しているデータを上位装置４００に送信する。
【００４０】
記憶装置３１０は、記憶装置３００に記憶されているデータの複製を記憶する。そのため、記憶装置３１０は、中継装置２００を介して上位装置４００と記憶装置３００とデータのやり取りを観測する。さらに、記憶装置３１０は、記憶装置３００から複製用のデータを取得する。
【００４１】
そのため、記憶装置３００は、記憶装置３１０と、データの複製に用いる接続路を介して接続されている。この接続路は、特に制限はない。例えば、記憶装置３００と記憶装置３１０とは、ＳＡＳ（Serial Attached SCSI (Small Computer System Interface)）を介して接続されている。
【００４２】
中継装置２００は、上位装置４００と記憶装置３００とのデータを中継する。さらに、中継装置２００は、上位装置４００から記憶装置３００へのデータの書き込み及び記憶装置３００から上位装置４００へのデータの読み出しに関する情報を、観測に関する情報として、記憶装置３１０に送信する。具体的には、中継装置２００は、記憶装置３００と上位装置４００との間において仲介する情報の複製を作成し、記憶装置３１０に転送する。つまり、観測とは、上位装置４００と記憶装置３００との間でやり取りされる情報の少なくとも一部の情報の複製を取得することである。
【００４３】
なお、中継装置２００は、上位装置４００と記憶装置３００との間のデータを中継できれば、その構成及び使用するプロトコルなどは限定されない。中継装置２００の一例は、ファイバーチャネル（ＦＣ：Fiber Channel）スイッチである。この場合、中継装置２００は、観測として、ＦＣポートミラーリングを用いてもよい。
【００４４】
以下、中継装置２００の動作の一例について説明する。
【００４５】
中継装置２００は、上位装置４００から記憶装置３００への通信内容（例えば、データの書き込みに関連する情報）を受信すると、通信内容の複製を作成する。複製を作成後、中継装置２００は、上位装置４００から受信した通信内容を記憶装置３００に送信する。そして、中継装置２００は、複製した通信内容を記憶装置３１０に送信する。
【００４６】
また、中継装置２００は、記憶装置３００から上位装置４００への通信内容（例えば、リードしたデータに関連する情報）を受信すると、通信内容の複製を作成する。複製を作成後、中継装置２００は、記憶装置３００から受信した通信内容を上位装置４００に送信する。そして、中継装置２００は、複製した通信内容を記憶装置３１０に送信する。
【００４７】
このように、中継装置２００は、上位装置４００と記憶装置３００との通信内容を複製し、記憶装置３１０に送信する。この動作が、観測に相当する。
【００４８】
なお、複製する情報は、コマンド、ステータス、及び、データに限られず、コマンドの成功及び失敗など、その他の情報を含んでもよい。
【００４９】
このように、中継装置２００は、通常のデータの中継動作に加え、記憶装置３１０における観測に関する動作を実行する。しかし、この動作は、中継装置２００において、複製を作成して送信するという、処理量の少ない動作である。そのため、中継装置２００は、他の動作に影響させずに、この動作を実行できる。つまり、中継装置２００における観測は、記憶装置３００の動作に影響を与えない。
【００５０】
なお、上記の手法は、あくまで一例である。中継装置２００が記憶装置３１０に、観測として、情報を送信する方法は、上記とは異なっていてもよい。
【００５１】
次に、記憶装置３００及び記憶装置３１０の詳細な構成について説明する。
【００５２】
図２は、第１の実施形態に係る記憶装置３００及び記憶装置３１０の構成の一例を示すブロック図である。ただし、既に説明したとおり、図２は、以下の説明に関連する構成を示している。図２は、記憶装置３００と記憶装置３１０との構成を制限するものではない。例えば、記憶装置３００は、記憶装置３１０と同様の構成を含んでもよい。
【００５３】
記憶装置３００は、ブロック管理部３０４と、複製状況ブロックマップ記憶部３０６とを含む。複製状況ブロックマップ記憶部３０６は、複製状況ブロックマップ３０７を含む。
【００５４】
記憶装置３１０は、入出力解析部３１１と、入出力管理表記憶部３１２と、累計入出力数計測部３１３と、ブロック管理部３１４と、複製スケジューラー３１５と、複製状況ブロックマップ記憶部３１６とを含む。複製状況ブロックマップ記憶部３１６は、複製状況ブロックマップ３１７を含む。
【００５５】
まず、記憶装置３００の構成について説明する。
【００５６】
複製状況ブロックマップ３０７は、記憶装置３００の媒体におけるブロックの複製状況に関連する情報を保存する。
【００５７】
ブロック管理部３０４は、記憶装置３００におけるデータを記憶するブロックを管理する。より具体的には、ブロック管理部３０４は、記憶装置３００に含まれる媒体にデータを書き込んだ場合、そのブロックに対応する複製状況ブロックマップ３０７のデータを更新する。
【００５８】
なお、後ほど説明するが、記憶装置３１０が記憶装置３００のブロックのデータを複製した場合、記憶装置３１０の複製スケジューラー３１５が、複製状況ブロックマップ３０７のデータを更新する。
【００５９】
このように、複製状況ブロックマップ３０７は、複数の構成からアクセスされる。そのため、複製状況ブロックマップ３０７には、排他処理が、実施されている。つまり、複製状況ブロックマップ３０７のデータは、同時に１つの操作者からしか更新されない。
【００６０】
なお、記憶装置３００における媒体へのデータ書き込みの動作と、書き込み結果を複製状況ブロックマップ３０７に反映する動作とは、アトミック（不可分）に実施される。
【００６１】
次に、記憶装置３１０の構成を説明する。
【００６２】
複製状況ブロックマップ３１７は、記憶装置３１０におけるブロックの複製状況に関連する情報を保存する。
【００６３】
ブロック管理部３１４は、記憶装置３１０におけるデータを記憶するブロックを管理する。より具体的には、ブロック管理部３１４は、記憶装置３１０に含まれる媒体にデータが書き込まれた場合に、そのブロックに対応する複製状況ブロックマップ３１７のデータを更新する。例えば、ブロック管理部３１４は、複製スケジューラー３１５におけるデータの複製に対応して、複製状況ブロックマップ３１７のデータを更新する。さらに、ブロック管理部３１４は、入出力解析部３１１からの観測に関する情報を基に、記憶装置３００への書き込みに対応して、複製状況ブロックマップ３１７のデータを更新する。
【００６４】
記憶装置３１０における媒体へのデータの複製の動作と、複製の結果を複製状況ブロックマップ３１７に反映する動作とは、アトミック（不可分）に実施される。
【００６５】
図３は、複製状況ブロックマップ３０７及び複製状況ブロックマップ３１７の一例を示す図である。なお、複製状況ブロックマップ３０７と複製状況ブロックマップ３１７とにおいて、対応するブロックの数が一致していれば、その形式及びデータ構造は、異なっていてもよい。つまり、図３は、複製状況ブロックマップ３０７と複製状況ブロックマップ３１７とを限定するものではない。
【００６６】
図３の左側が、記憶装置３００の複製状況ブロックマップ３０７の一例である。図３の右側が、記憶装置３１０の複製状況ブロックマップ３１７の一例である。図３における各欄が、各ブロックの情報を表している。なお、「１」は、複製が必要であることを示し、「０」は、複製が不要であることを示す。
【００６７】
図３に示されているように、複製状況ブロックマップ３０７の情報と、複製状況ブロックマップ３１７との情報は、異なる値を保持する場合がある。
【００６８】
なお、複製状況ブロックマップ３０７及び複製状況ブロックマップ３１７とは、一つのマップに限られる必要はない。例えば、複製状況ブロックマップ３０７及び複製状況ブロックマップ３１７は、論理ディスク毎に作成されてもよい。あるいは、複製状況ブロックマップ３０７及び複製状況ブロックマップ３１７は、物理ディスクごとに作成されてもよい。
【００６９】
さらに、複製状況ブロックマップ３０７及び複製状況ブロックマップ３１７に保存されるブロックに関連するデータの形式は、特に制限されない。例えば、複製状況ブロックマップ３０７及び複製状況ブロックマップ３１７は、複製が必要なことを示す情報（以下、「複製必要（１）」とする）と、複製が不要であることを示す情報（以下、「複製不要（０）」とする）とを保持してもよい。
【００７０】
例えば、ブロック管理部３０４は、記憶装置３００にデータが書き込まれると複製状況ブロックマップ３０７を「複製必要（１）」に更新してもよい。例えば、複製スケジューラー３１５は、記憶装置３００から記憶装置３１０へデータを取得した場合、複製状況ブロックマップ３０７を「複製不要（０）」に更新してもよい。
【００７１】
あるいは、ブロック管理部３１４は、記憶装置３００への書き込みを観測すると複製状況ブロックマップ３１７を「複製必要（１）」に更新してもよい。さらに、ブロック管理部３１４は、記憶装置３１０への複製が完了すると、複製状況ブロックマップ３１７を「複製不要（０）」に更新してもよい。
【００７２】
図２を参照した説明に戻る。
【００７３】
入出力解析部３１１は、中継装置２００から受信した上位装置４００と記憶装置３００との観測に関する情報（例えば、通信内容）を解析する。具体的な入出力解析部３１１における解析内容は、上位装置４００及び記憶装置３００との動作に基づいて決定される。例えば、入出力解析部３１１は、上位装置４００から記憶装置３００に送信された情報の入力及び出力に関するコマンドを解析し、対応するブロックの特定及びデータ量などを算出してもよい。あるいは、入出力解析部３１１は、入力及び出力における成功数及び失敗数のような統計的な情報を算出してもよい。
【００７４】
入出力解析部３１１は、受信した情報及び解析結果を入出力管理表記憶部３１２に保存する。入出力解析部３１１は、入出力管理表記憶部３１２に記憶した情報を用いて、統計的な情報を算出してもよい。
【００７５】
さらに、入出力解析部３１１は、解析結果を、ブロック管理部３１４と、累計入出力数計測部３１３とに送信する。
【００７６】
入出力管理表記憶部３１２は、入出力解析部３１１から受信した情報を保持する。
【００７７】
累計入出力数計測部３１３は、入出力解析部３１１の解析結果を基に、上位装置４００及び記憶装置３００との間での入力数及び出力数を計測し、累計入出力数を算出する。例えば、累計入出力数計測部３１３は、ブロックを単位として、上記の累計入出力数を算出する。
【００７８】
複製スケジューラー３１５は、所定の手法を用いて、記憶装置３００のデータを記憶装置３１０に複製する。具体的には、複製スケジューラー３１５は、複製するブロックのデータを記憶装置３００から取得する。そして、複製スケジューラー３１５は、複製状況ブロックマップ３０７の情報を更新する。そして、複製スケジューラー３１５は、データをブロック管理部３１４に送る。なお、複製スケジューラー３１５は、複製の手法として、各種の手法を用いてもよい。所定の手法の一例については、後ほど説明する。
【００７９】
なお、データを受信したブロック管理部３１４は、複製データとして受信したデータを記憶媒体に保存後、複製状況ブロックマップ３１７を更新する。
【００８０】
［動作の説明］
次に、図面を参照して、情報処理システム１００の動作を説明する。
【００８１】
（１）準備段階の動作
まず、以下で説明する動作の準備段階の動作を説明する。
【００８２】
中継装置２００は、上位装置４００と記憶装置３００との間の情報を観測（例えば、やり取りされる情報を複製して記憶装置３１０に転送）するように設定されているとする。例えば、中継装置２００は、上記のＦＣポートミラーリング機能が設定される。つまり、中継装置２００は、観測可能な状態である。
【００８３】
さらに、複製状況ブロックマップ３０７及び複製状況ブロックマップ３１７は、予め、複製状況ブロックマップ記憶部３０６及び複製状況ブロックマップ記憶部３１６に作成されている。複製状況ブロックマップ３０７及び複製状況ブロックマップ３１７の初期状態は、すべてのブロックに対応する情報が「複製必要（１）」に設定されている。
【００８４】
（２）複製の動作
図４は、以下で説明する動作におけるデータの流れの一例を示す図である。
【００８５】
まず、記憶装置３１０の動作を説明する。
【００８６】
記憶装置３１０の入出力解析部３１１は、中継装置２００からの観測に関する情報を基に、上位装置４００と、記憶装置３００との間のデータの書き込み及び読み出しを解析する。
【００８７】
入出力解析部３１１は、入力情報として、観測に関する情報及び／又は解析結果を入出力管理表記憶部３１２に保存する。
【００８８】
入出力解析部３１１は、ブロック管理部３１４に、観測に関する情報、つまり、上位装置４００と記憶装置３００との間の情報の転送に関する情報を送信する。送信する内容は、例えば、以下のデータを含む。
情報１：上位装置４００から記憶装置３００への書き込みに関する情報（書き込みに関する情報で、データ以外を指す。例えば、書き込みブロックの位置及び書き込みサイズ等である。以下、メタデータと呼ぶ）
情報２：記憶装置３００から上位装置４００への読み込みに対応する応答データ
また、入出力解析部３１１は、観測に関する情報を基に、累計入出力数計測部３１３に入力数及び出力数に関する情報を送信する。
【００８９】
累計入出力数計測部３１３は、受信した情報を用いて、累計入出力数を算出する。累計入出力数計測部３１３は、累計として、読み込み及び書き込みの両方を計測する。さらに、累計入出力数計測部３１３は、累計として、失敗した場合の読み込み及び書き込みも計測する。ただし、累計入出力数計測部３１３は、これらを分けて計測してもよい。
【００９０】
複製スケジューラー３１５は、累計入出力数計測部３１３の計測数を参照する。そして、複製スケジューラー３１５は、記憶装置３００における上位装置４００からの読み書きが多いデータの範囲及び現在動作しているデータの範囲を避け、読み書きが少ないデータの範囲又は現在動作していないデータ範囲を選択する。この範囲を、以下、「複製対象範囲」と呼ぶ。そして、複製スケジューラー３１５は、複製対象範囲のブロックに対して、記憶装置３００から記憶装置３１０へのデータの複製のスケジュールを作成する（スケジューリングする）。
【００９１】
なお、複製スケジューラー３１５は、複製の単位として、各種の単位を用いることできる。例えば、複製スケジューラー３１５は、ブロック単位に複製を実行してもよい。あるいは、複製スケジューラー３１５は、論理ディスク単位に複製を実行してもよい。あるいは、複製スケジューラー３１５は、物理ブロック単位に複製を実行してもよい。
【００９２】
累計入出力数計測部３１３は、常に、計測数を更新している。そのため、複製スケジューラー３１５は、累計入出力数の更新に伴い、スケジュールを更新する。
【００９３】
さらに、複製スケジューラー３１５は、複製状況ブロックマップ３０７と複製状況ブロックマップ３１７の状態を参照し、複製するブロックを決定する。詳細は、後ほど説明する。
【００９４】
そして、複製スケジューラー３１５は、作成したスケジュールにしたがい、記憶装置３００のブロック管理部３０４に依頼し、複製対象のブロックのデータを取得する。そして、複製スケジューラー３１５は、データを取得したブロックに対応する複製状況ブロックマップ３０７のデータの状態を更新する。具体的には、複製スケジューラー３１５は、対応するデータを「複製不要（０）」に更新する。
【００９５】
そして、複製スケジューラー３１５は、取得したデータをブロック管理部３１４に渡す。
【００９６】
ブロック管理部３１４は、複製スケジューラー３１５から渡されたデータに媒体に記録し、データを記録したブロックに対応する複製状況ブロックマップ３１７のデータを「複製不要（０）」に更新する。
【００９７】
また、ブロック管理部３１４は、入出力解析部３１１から取得した観測に関する情報（具体的には記憶装置３００への書き込み）に基づき、複製状況ブロックマップ３１７を更新する。すなわち、ブロック管理部３１４は、記憶装置３００においてデータの書き込み対象となったブロックに対応する複製状況ブロックマップ３１７のデータを「複製必要（１）」に更新する。
【００９８】
次に、記憶装置３００の動作について説明する。
【００９９】
ブロック管理部３０４は、上位装置４００とのデータの入力及び出力にともなってデータが更新された場合、複製状況ブロックマップ３０７における対応するブロックのデータを「複製必要（１）」に更新する。
【０１００】
（３）同期の動作
なお、複製スケジューラー３１５は、所定のタイミング、又は、所定の指示を基に、次に説明する同期の動作を実行してもよい。この同期の動作は、記憶装置３００及び記憶装置３１０が保持するデータを同期する動作である。複製スケジューラー３１５における同期動作は、次の２つの動作となる。
動作１：複製スケジューラー３１５は、記憶装置３００において、新規のデータの入力及び出力を反映しないようにする。ここで、反映しないとは、例えば、次のような動作を想定している。（ａ）上位装置４００で新規入出力を止める。（ｂ）記憶装置３００で上位装置４００から受け取った入出力コマンドの処理を遅らせる（ただし、遅らせる時間は無応答と判断されない時間とする）。（ｃ）記憶装置３００で上位装置４００から受け取った入出力コマンドにＢＵＳＹ応答を返す。
動作２：複製スケジューラー３１５は、複製状況ブロックマップ３０７と、複製状況ブロックマップ３１７とを用いて、複製対象のブロックを判定する。具体的には、複製スケジューラー３１５は、少なくとも複製状況ブロックマップ３０７及び複製状況ブロックマップ３１７のいずれかにおいて「複製必要（１）」となっているブロックのデータを複製（ここでは同期）の対象とする。そして、複製スケジューラー３１５は、複製対象のブロックデータの同期を実行する。なお、複製スケジューラー３１５は、この段階では、複製状況ブロックマップ３１７は用いず、複製状況ブロックマップ３０７のみを参照してスケジューリングしてもよい。
【０１０１】
複製スケジューラー３１５は、複製対象範囲における複製対象のブロックに対して、上記の動作を用いて同期を実現する。
【０１０２】
（４）エラー発生時の動作
次に、エラーが発生した場合の動作について、図面を参照して説明する。
【０１０３】
図５は、記憶装置３００と中継装置２００との間でエラーが発生した場合を示す図である。
【０１０４】
この場合、上位装置４００は、エラーの発生を検知できる。そのため、上位装置４００は、リトライを実行して、記憶装置３００との入出力を実行する。
【０１０５】
例えば、情報処理システム１００が、図示しない冗長経路を含み、そのいずれかの経路のエラーの場合、上位装置４００は、別経路を用いて、つまり経路のフェイルオーバーを用いて、リトライしてもよい。
【０１０６】
あるいは、ＣＲＣ（Cyclic Redundancy Code）のエラーのためデータが消失した場合、上位装置４００は、例えば、タイムアウトに基づいてリトライを実行する。その結果、上位装置４００は、記憶装置３００との入出力を実行できる。
【０１０７】
上記のいずれの場合も、上位装置４００は、記憶装置３００と、入出力に関するステータスをやり取りする。そのため、記憶装置３１０は、観測に関する情報を基にステータス情報を取得できる。つまり、記憶装置３１０は、観測に関する情報を基に、記憶装置３００でのエラーを知ることができる。この動作は、データの書き込み、及び、読み込みの両方において問題なく動作する。記憶装置３１０は、観測に関する情報を基に複製するブロックを判定できる。
【０１０８】
図６は、マスター装置である記憶装置３００においてエラーが発生した場合を示す図である。この場合は、例えば、記憶装置３００において、記憶装置３００の内部の冗長機能を用いてもエラーを修復できない場合である。例えば、記憶装置３００が、ＲＡＩＤ（Redundant Array Inexpensive Disks）の機構を備えていた場合に、データが、ＲＡＩＤの機能を用いても救えなかった場合である。
【０１０９】
この場合でも、上位装置４００は、記憶装置３００とステータス情報をやり取りする。そのため、記憶装置３１０は、ステータス情報を観測できる。つまり、記憶装置３１０は、記憶装置３００でエラーが発生したことを知ることができる。
【０１１０】
なお、この場合、記憶装置３００がエラーとなっているため、記憶装置３１０は、データの複製を実行しない。
【０１１１】
図７は、中継装置２００と記憶装置３１０との間でエラーが発生した場合を示す図である。つまり、記憶装置３１０は、観測を実行できない。
【０１１２】
この場合、上位装置４００と記憶装置３００とは、記憶装置３１０のエラーからの影響を受けない。つまり、上位装置４００は、記憶装置３１０のエラーを知らない。そのため、上位装置４００は、リトライなどを実施しない。その結果、正常ならば記憶装置３１０が取得する観測に関する情報は、失われる。
【０１１３】
ただし、情報処理システム１００は、以下のような動作を基に、この場合のエラーに対応できる。
【０１１４】
上位装置４００から記憶装置３００へのデータの書き込みの場合、記憶装置３００のブロック管理部３０４は、複製状況ブロックマップ３０７における対応するブロックを「複製必要（１）」に更新する。つまり、そのブロックは、複製スケジューラー３１５における複製の対象となる。そのため、記憶装置３１０は、データを複製する。
【０１１５】
このように、記憶装置３１０における複製動作は、記憶装置３００の複製状況ブロックマップ３０７を必要とする。
【０１１６】
なお、記憶装置３１０が、観測に関する情報として、データ部分を取得できないが、書き込みのコマンド部分が取得できた場合、入出力解析部３１１は、コマンド部分などのメタデータを、ブロック管理部３１４に送信してもよい。そして、ブロック管理部３１４は、メタデータを基に、複製状況ブロックマップ３１７における対応するブロックを「複製必要（１）」と更新してもよい。この場合、そのブロックは、複製状況ブロックマップ３１７においても、複製スケジューラー３１５における複製の対象となる。
【０１１７】
図８は、スレーブ装置である記憶装置３１０においてエラーが発生した場合を示す図である。記憶装置３１０が障害となっているため、複製は、続行不可能である。この場合は、記憶装置３１０での障害を取り除いた後で、情報処理システム１００は、複製をやり直す。
【０１１８】
（５）遅延発生時の動作
データ通信においては、遅延が発生する。そのため、記憶装置３１０が観測として情報を取得する時点は、記憶装置３００が上位装置４００から書き込み及び読み出しの情報を受信する時間に対して、前後する可能性がある。しかし、本実施形態に係る情報処理システム１００は、通信における遅延が発生した場合でも、正常に動作する。以下、同一のブロックに対する読み出し及び書き込みに関して遅延が発生した場合について説明する。以下、説明の対象となるブロックを「ブロックＡ」とする。
【０１１９】
図９は、第１の遅延状態を示す図である。図９に示されている動作を説明する。
【０１２０】
記憶装置３００は、上位装置４００からデータの書き込みを受信後、記憶装置３１０からデータの読み出しを受信する。
【０１２１】
一方、記憶装置３１０は、複製として記憶装置３００からデータの読み出した後、上位装置４００から記憶装置３００への書き込みを観測する。
【０１２２】
この場合、記憶装置３１０は、まず、複製としてデータを読みだした後、ブロックＡに対応する複製状況ブロックマップ３１７を複製不要（０）に更新する。そして、その後に、記憶装置３１０は、記憶装置３００へのデータの書き込みを観測する。その結果、記憶装置３１０は、観測に関する情報を基に、ブロックＡの複製状況ブロックマップ３１７を複製必要（１）に更新する。
【０１２３】
この場合、記憶装置３１０は、既に、記憶装置３００と同じデータを保持している。しかし、複製状況ブロックマップ３１７が複製必要（１）となっているため、複製スケジューラー３１５は、既に説明した複製動作を実行する。つまり、記憶装置３１０は、保存済みのデータの上書きを実行する。ただし、同じデータのため、この動作は、問題を発生しない。つまり、情報処理システム１００は、データの複製を、正しく実行する。
【０１２４】
また、この動作は、記憶装置３１０における動作のため、記憶装置３００における負荷を増加させない。
【０１２５】
図１０は、第２の遅延状態を示す図である。図１０に示されている動作を説明する。
【０１２６】
記憶装置３００は、記憶装置３１０からデータの読み出しを受信後、上位装置４００からデータの書き込みを受信する。
【０１２７】
記憶装置３１０は、上位装置４００から記憶装置３００への書き込みを観測後、記憶装置３００から複製データを取得する。
【０１２８】
この場合、記憶装置３１０は、複製のためのブロックＡの読み出しを依頼済みの状態において、記憶装置３００に対するブロックＡを含むデータの書き込みを観測する。そのため、記憶装置３１０は、依頼済みの読み出しが無効であると判断できる。そこで、記憶装置３１０は、依頼済みの読み出しに対応したデータを破棄する。また、記憶装置３１０は、読み出しに対応する複製状況ブロックマップ３１７に対する更新を実行しない。
【０１２９】
具体的には、複製スケジューラー３１５が、ブロック管理部３１４における観測を確認し、複製データを破棄すればよい。
【０１３０】
なお、記憶装置３００は、上位装置４００からの書き込みを基に複製状況ブロックマップ３０７を複製必要（１）更新する。その結果、記憶装置３００に書き込まれたデータは、複製スケジューラー３１５の複製対象となる。つまり、複製スケジューラー３１５は、複製を実行する。このように、情報処理システム１００は、データの複製を、正しく実行する。
【０１３１】
また、この動作は、記憶装置３１０における動作のため、記憶装置３００における負荷を増加させない。
【０１３２】
図１１は、第３の遅延状態を示す図である。図１１に示されている動作を説明する。
【０１３３】
記憶装置３００は、データの書き込みを２回受信後、記憶装置３１０からの複製状況ブロックマップ３０７の更新を受信する。
【０１３４】
記憶装置３１０は、第１のデータの書き込みの観測に基づいた記憶装置３００の複製状況ブロックマップ３０７の更新中に、第２のデータの書き込みを観測する。その後、記憶装置３１０は、複製状況ブロックマップ３０７の更新の結果を受信する。
【０１３５】
この場合、記憶装置３００において、第２のデータの書き込み後に、記憶装置３１０から複製状況ブロックマップ３０７が、更新される。そのため、複製状況ブロックマップ３０７のデータは、「複製不要（０）」となる。
【０１３６】
一方、記憶装置３１０は、第１のデータの書き込みの観測した場合、記憶装置３１０は、複製状況ブロックマップ３１７を「複製必要（１）」に更新する。そして、記憶装置３１０は、複製を基に、複製状況ブロックマップ３１７のデータを更新しようとする。しかし、複製に対応したデータの更新前に、記憶装置３１０は、同じブロックへの第２のデータの書き込みを観測する。この場合も、記憶装置３１０は、複製状況ブロックマップ３１７を「複製必要（１）」に設定する。そこで、記憶装置３１０は、第１のデータの書き込みに対応した複製を実行後、複製状況ブロックマップ３１７を更新しない。つまり、記憶装置３１０は、複製状況ブロックマップ３１７を、第２の書き込みの観測に対応した設定を保存する。つまり、記憶装置３１０は、第２のデータの書き込みの観測に基づく設定（今の場合「複製必要（１）」）を保存する。その結果、記憶装置３００に書き込まれたデータは、複製スケジューラー３１５の複製対象となる。つまり、複製スケジューラー３１５は、複製を実行する。このように、情報処理システム１００は、データの複製を、正しく実行する。
【０１３７】
具体的には、複製スケジューラー３１５が、ブロック管理部３１４における観測を基に、第１のデータの書き込み対して、ブロック管理部３１４に複製に対応した複製状況ブロックマップ３１７を更新しないことを依頼すればよい。
【０１３８】
あるいは、ブロック管理部３１４が、複製スケジューラー３１５の複製動作を確認して、複製状況ブロックマップ３１７の更新を切り替えてもよい。
【０１３９】
また、この動作は、記憶装置３１０における動作のため、記憶装置３００における負荷を増加させない。
【０１４０】
図１２は、第４の遅延状態を示す図である。図１２に示されている動作を説明する。
【０１４１】
記憶装置３００は、データの書き込みを２回受信する。
【０１４２】
記憶装置３１０は、第２のデータの書き込みを観測後、第１のデータの書き込みを観測する。
【０１４３】
この場合、記憶装置３００は、２回のデータの書き込みを実行後、複製状況ブロックマップ３０７を「複製必要（１）」に更新する。
【０１４４】
一方、記憶装置３１０は、第２のデータの書き込みの観測に基づいて複製状況ブロックマップ３１７を「複製必要（１）」に更新後、第１のデータの書き込みの観測に基づいて複製状況ブロックマップ３１７を「複製必要（１）」に再更新する。その結果、記憶装置３００に書き込まれたデータは、複製スケジューラー３１５の複製対象となる。つまり、複製スケジューラー３１５は、複製を実行する。このように、情報処理システム１００は、データの複製を、正しく実行する。
【０１４５】
また、この動作は、記憶装置３１０における動作のため、記憶装置３００における負荷を増加させない。
【０１４６】
［効果の説明］
次に、本実施形態の効果について説明する。
【０１４７】
第１の実施形態に係る情報処理システム１００は、データの複製において、マスター装置である記憶装置３００の負荷を低減するとの効果を奏することができる。
【０１４８】
その理由は、次のとおりである。
【０１４９】
中継装置２００は、上位装置４００と記憶装置３００とのデータの書き込み及び読み出しを中継する。さらに、中継装置２００は、上位装置４００と記憶装置３００とのデータの書き込み及び読み出しを観測する。
【０１５０】
記憶装置３００は、データの複製が必要か否かを示す情報を保持する複製状況ブロックマップ３０７を含む。そして、記憶装置３００のブロック管理部３０４は、データを記録した場合に、複製状況ブロックマップ３０７を「複製必要（１）」に更新する。この動作は、記憶装置３００の通常の書き込み動作において、情報を一つ追加する程度の動作のため、記憶装置３００の負荷は、ほとんど増加とならない。
【０１５１】
記憶装置３１０は、データの複製が必要か否かを示す情報を保持する複製状況ブロックマップ３１７を含む。さらに、記憶装置３１０の入出力解析部３１１は、中継装置２００から観測に関する情報を受信する。そして、入出力解析部３１１は、観測に関する情報を基に、記憶装置３００へのデータの書き込みに関する情報をブロック管理部３１４に送信する。
【０１５２】
複製スケジューラー３１５は、複製状況ブロックマップ３０７及び複製状況ブロックマップ３１７のいずれかが「複製必要（１）」となっているブロックを複製する。複製スケジューラー３１５は、記憶装置３００から複製用のデータを受信すると、複製状況ブロックマップ３０７を「複製不要（０）」に更新する。そして、複製スケジューラー３１５は、複製用のデータをブロック管理部３１４に渡す。
【０１５３】
ブロック管理部３１４は、複製用のデータを受信すると媒体の保存後、複製状況ブロックマップ３１７を「複製不要（０）」に更新する。また、ブロック管理部３１４は、記憶装置３００へのデータの書き込みを入出力解析部３１１経由で観測した場合に、複製状況ブロックマップ３１７を「複製必要（１）」に更新する。
【０１５４】
これらの動作は、記憶装置３１０が実行する動作である。そのため、記憶装置３００は、複製のための動作として、依頼されたデータを送信するという、処理量の少ない動作を実行する。つまり、記憶装置３００における負荷の増加は、小さいものである。
【０１５５】
さらに、記憶装置３１０の累計入出力数計測部３１３は、入出力解析部３１１の結果を基に、記憶装置３００における累計入出力数を算出する。
【０１５６】
複製スケジューラー３１５は、累計入出力数を基に、複製するブロックを設定する。
【０１５７】
そのため、記憶装置３１０は、記憶装置３００におけるデータの入出力に影響しないブロックを複製対象として選択できる。
【０１５８】
この動作を基に、記憶装置３１０は、記憶装置３００における負荷を増加しないように、複製を実現する。
【０１５９】
さらに、本実施形態の情報処理システム１００は、上位装置４００と記憶装置３００とやり取りの一部が、観測に関する情報として取得できない場合、及び、データの順番が保証されない場合でも、複製を実現できるとの効果を奏する。
【０１６０】
その理由は、記憶装置３１０の複製スケジューラー３１５が、記憶装置３００の複製状況ブロックマップ３０７を用いるためである。
【０１６１】
［その他の実施形態］
情報処理システム１００は、データを複製する装置（記憶装置３１０に相当する装置）を複数含んでもよい。
【０１６２】
［実施形態の概要］
図１３は、第１の実施形態の概要を示すブロック図である。
【０１６３】
情報処理システム１０１は、上位装置４００と、中継装置２００と、記憶装置３５０と、記憶装置３６０とを含む。
【０１６４】
記憶装置３５０は、管理部３５４と、記憶部３５６とを含む。記憶部３５６は、マップ３５７を含む。
【０１６５】
記憶装置３６０は、管理部３５４と、複製制御部３６５と、記憶部３６６とを含む。記憶部３６６は、マップ３６７を含む。
【０１６６】
中継装置２００は、上位装置４００から記憶装置３００へのデータの書き込み及びデータの読み出しを中継し、中継する情報の複製である観測に関する情報を記憶装置３６０に送信する。
【０１６７】
マップ３５７は、データを書き込むブロックにおける情報を保持する。
【０１６８】
管理部３５４は、上位装置４００から受信したデータを書き込んだ場合にマップ３５７の情報を複製が必要なことを示す情報に更新する。
【０１６９】
マップ３６７は、データを複製するブロックにおける情報を保持する。
【０１７０】
管理部３６４は、中継装置２００から受信した観測に関する情報を基に記憶装置３５０がデータを書き込んだ場合にマップ３６７の情報を複製が必要なことを示す情報に更新する。さらに、管理部３６４は、記憶装置３５０から受信した複製のためのデータを保存した場合にマップ３６７の情報を複製が不要なことを示す情報に更新する。
【０１７１】
複製制御部３６５は、マップ３５７とマップ３６７とを基に記憶装置３５０における複製するブロックのデータを取得し、マップ３５７の情報を複製が不要なことを示す情報に更新する。さらに、複製制御部３６５は、管理部３６４に複製のためのデータの保存を依頼する。
【０１７２】
このように構成された情報処理システム１０１は、情報処理システム１００と同様に、データの複製において、マスター装置である記憶装置３００の負荷を低減するとの効果を奏することができる。
【０１７３】
その理由は、情報処理システム１０１の各構成が、情報処理システム１００の各構成と同様に動作し、記憶装置３５０の負荷を低減して、記憶装置３６０にデータを複製するためである。
【０１７４】
記憶装置３５０の一例は、記憶装置３００である。記憶装置３６０の一例は、記憶装置３１０である。管理部３５４の一例は、ブロック管理部３０４である。記憶部３５６の一例は、複製状況ブロックマップ記憶部３０６である。マップ３５７の一例は、複製状況ブロックマップ３０７である。管理部３６４の一例は、ブロック管理部３１４である。複製制御部３６５の一例は、複製スケジューラー３１５である。記憶部３６６の一例は、複製状況ブロックマップ記憶部３１６である。マップ３６７の一例は、複製状況ブロックマップ３１７である。
【０１７５】
なお、情報処理システム１０１は、本発明のおける実施形態の最小構成である。
【０１７６】
［ハードウェア構成］
以上の説明した上位装置４００、中継装置２００、記憶装置３００、及び、記憶装置３１０（以下、「各装置」と呼ぶ）は、次のように構成される。
【０１７７】
各装置の各構成部は、ハードウェア回路で構成されてもよい。
【０１７８】
また、各装置において、各構成部は、ネットワークを介して接続した複数の装置を用いて、構成されてもよい。
【０１７９】
また、各装置において、複数の構成部は、１つのハードウェアで構成されてもよい。
【０１８０】
また、各装置は、ＣＰＵ（Central Processing Unit）と、ＲＯＭ（Read Only Memory）と、ＲＡＭ（Random Access Memory）とを含むコンピュータ装置として実現されてもよい。各装置は、上記構成に加え、記憶媒体を含んでもよい。さらに、各装置は、上記構成に加え、さらに、入出力接続回路（ＩＯＣ：Input / Output Circuit）、又は、ネットワークインターフェース回路（ＮＩＣ：Network Interface Circuit）を含むコンピュータ装置として実現されてもよい。
【０１８１】
図１４は、上位装置４００の変形例に係る情報処理装置６００の構成の一例を示すブロック図である。
【０１８２】
情報処理装置６００は、ＣＰＵ６１０と、ＲＯＭ６２０と、ＲＡＭ６３０と、内部記憶装置６４０と、ＩＯＣ６５０と、ＮＩＣ６８０とを含み、コンピュータ装置を構成している。
【０１８３】
ＣＰＵ６１０は、ＲＯＭ６２０からプログラムを読み込む。そして、ＣＰＵ６１０は、読み込んだプログラムに基づいて、ＲＡＭ６３０と、内部記憶装置６４０と、ＩＯＣ６５０と、ＮＩＣ６８０とを制御する。そして、ＣＰＵ６１０を含むコンピュータは、これらの構成を制御し、上位装置４００としての各機能を実現する。
【０１８４】
ＣＰＵ６１０は、各機能を実現する際に、ＲＡＭ６３０又は内部記憶装置６４０を、プログラムの一時記憶媒体として使用してもよい。
【０１８５】
また、ＣＰＵ６１０は、コンピュータで読み取り可能にプログラムを記憶した記憶媒体７００が含むプログラムを、図示しない記憶媒体読み取り装置を用いて読み込んでもよい。あるいは、ＣＰＵ６１０は、ＮＩＣ６８０を介して、図示しない外部の装置からプログラムを受け取り、ＲＡＭ６３０に保存して、保存したプログラムを基に動作してもよい。
【０１８６】
ＲＯＭ６２０は、ＣＰＵ６１０が実行するプログラム及び固定的なデータを記憶する。ＲＯＭ６２０は、例えば、Ｐ−ＲＯＭ（Programmable-ROM）又はフラッシュＲＯＭである。
【０１８７】
ＲＡＭ６３０は、ＣＰＵ６１０が実行するプログラム及びデータを一時的に記憶する。ＲＡＭ６３０は、例えば、Ｄ−ＲＡＭ（Dynamic-RAM）である。
【０１８８】
内部記憶装置６４０は、情報処理装置６００が長期的に保存するデータ及びプログラムを記憶する。また、内部記憶装置６４０は、ＣＰＵ６１０の一時記憶装置として動作してもよい。内部記憶装置６４０は、例えば、ハードディスク装置、光磁気ディスク装置、ＳＳＤ（Solid State Drive）又はディスクアレイ装置である。
【０１８９】
ここで、ＲＯＭ６２０と内部記憶装置６４０は、不揮発性（non-transitory）の記憶媒体である。一方、ＲＡＭ６３０は、揮発性（transitory）の記憶媒体である。そして、ＣＰＵ６１０は、ＲＯＭ６２０、内部記憶装置６４０、又は、ＲＡＭ６３０に記憶されているプログラムを基に動作可能である。つまり、ＣＰＵ６１０は、不揮発性記憶媒体又は揮発性記憶媒体を用いて動作可能である。
【０１９０】
ＩＯＣ６５０は、ＣＰＵ６１０と、入力機器６６０及び表示機器６７０とのデータを仲介する。ＩＯＣ６５０は、例えば、ＩＯインターフェースカード又はＵＳＢ（Universal Serial Bus）カードである。さらに、ＩＯＣ６５０は、ＵＳＢのような有線に限らず、無線を用いてもよい。
【０１９１】
入力機器６６０は、情報処理装置６００の操作者からの入力指示を受け取る機器である。入力機器６６０は、例えば、キーボード、マウス又はタッチパネルである。
【０１９２】
表示機器６７０は、情報処理装置６００の操作者に情報を表示する機器である。表示機器６７０は、例えば、液晶ディスプレイである。
【０１９３】
ＮＩＣ６８０は、ネットワークを介して中継装置２００とのデータのやり取りを中継する。ＮＩＣ６８０は、例えば、ＬＡＮ（Local Area Network）カード又はＦＣカードである。さらに、ＮＩＣ６８０は、有線に限らず、無線を用いてもよい。
【０１９４】
このように構成された情報処理装置６００は、上位装置４００と同様の効果を得ることができる。
【０１９５】
その理由は、情報処理装置６００のＣＰＵ６１０が、プログラムに基づいて上位装置４００と同様の機能を実現できるためである。
【０１９６】
図１５は、中継装置２００の変形例に係る情報処理装置６０１の構成の一例を示すブロック図である。
【０１９７】
情報処理装置６０１は、ＣＰＵ６１１と、ＲＯＭ６２１と、ＲＡＭ６３１と、ＮＩＣ６８１とを含み、コンピュータ装置を構成している。
【０１９８】
ＣＰＵ６１１は、ＲＯＭ６２１からプログラムを読み込む。そして、ＣＰＵ６１１は、読み込んだプログラムに基づいて、ＲＡＭ６３１と、ＮＩＣ６８１とを制御する。そして、ＣＰＵ６１１を含むコンピュータは、これらの構成を制御し、中継装置２００としての各機能を実現する。
【０１９９】
ＣＰＵ６１１は、各機能を実現する際に、ＲＡＭ６３１を、プログラムの一時記憶媒体として使用してもよい。
【０２００】
また、ＣＰＵ６１１は、コンピュータで読み取り可能にプログラムを記憶した記憶媒体７０１が含むプログラムを、図示しない記憶媒体読み取り装置を用いて読み込んでもよい。あるいは、ＣＰＵ６１１は、ＮＩＣ６８１を介して、図示しない外部の装置からプログラムを受け取り、ＲＯＭ６２１又はＲＡＭ６３１に保存して、保存したプログラムを基に動作してもよい。
【０２０１】
ＲＯＭ６２１は、ＣＰＵ６１１が実行するプログラム及び固定的なデータを記憶する。ＲＯＭ６２１は、例えば、Ｐ−ＲＯＭ又はフラッシュＲＯＭである。
【０２０２】
ＲＡＭ６３１は、ＣＰＵ６１０が実行するプログラム及びデータを一時的に記憶する。ＲＡＭ６３１は、例えば、Ｄ−ＲＡＭである。
【０２０３】
ここで、ＲＯＭ６２１は、不揮発性の記憶媒体である。一方、ＲＡＭ６３１は、揮発性の記憶媒体である。そして、ＣＰＵ６１１は、ＲＯＭ６２１、又は、ＲＡＭ６３１に記憶されているプログラムを基に動作可能である。つまり、ＣＰＵ６１１は、不揮発性記憶媒体又は揮発性記憶媒体を用いて動作可能である。
【０２０４】
ＮＩＣ６８１は、ネットワークを介して上位装置４００、記憶装置３００、及び、記憶装置３１０とのデータのやり取りを中継する。ＮＩＣ６８１は、例えば、ＬＡＮカード又はＦＣカードである。さらに、ＮＩＣ６８１は、有線に限らず、無線を用いてもよい。
【０２０５】
このように構成された情報処理装置６０１は、中継装置２００と同様の効果を得ることができる。
【０２０６】
その理由は、情報処理装置６０１のＣＰＵ６１１が、プログラムに基づいて中継装置２００と同様の機能を実現できるためである。
【０２０７】
図１６は、記憶装置３００及び記憶装置３１０の変形例に係る記憶装置６０２の構成の一例を示すブロック図である。
【０２０８】
記憶装置６０２は、ＣＰＵ６１２と、ＲＯＭ６２２と、ＲＡＭ６３２と、記憶媒体６４２と、ＮＩＣ６８２とを含み、記憶装置を構成している。
【０２０９】
ＣＰＵ６１２は、ＲＯＭ６２２からプログラムを読み込む。そして、ＣＰＵ６１２は、読み込んだプログラムに基づいて、ＲＡＭ６３２と、記憶媒体６４２と、ＮＩＣ６８２とを制御する。そして、ＣＰＵ６１２を含むコンピュータは、これらの構成を制御し、記憶装置３００及び記憶装置３１０としての各機能を実現する。
【０２１０】
ＣＰＵ６１２は、各機能を実現する際に、ＲＡＭ６３２を、プログラムの一時記憶媒体として使用してもよい。
【０２１１】
また、ＣＰＵ６１２は、コンピュータで読み取り可能にプログラムを記憶した記憶媒体７０２が含むプログラムを、図示しない記憶媒体読み取り装置を用いて読み込んでもよい。あるいは、ＣＰＵ６１２は、ＮＩＣ６８２を介して、図示しない外部の装置からプログラムを受け取り、ＲＯＭ６２２又はＲＡＭ６３２に保存して、保存したプログラムを基に動作してもよい。
【０２１２】
ＲＯＭ６２２は、ＣＰＵ６１２が実行するプログラム及び固定的なデータを記憶する。ＲＯＭ６２２は、例えば、Ｐ−ＲＯＭ又はフラッシュＲＯＭである。
【０２１３】
ＲＡＭ６３２は、ＣＰＵ６１２が実行するプログラム及びデータを一時的に記憶する。ＲＡＭ６３２は、例えば、Ｄ−ＲＡＭである。
【０２１４】
記憶媒体６４２は、データを記憶する。記憶媒体６４２は、例えば、ハードディスク、光磁気ディスク、又は、半導体メモリである。
【０２１５】
ここで、ＲＯＭ６２２は、不揮発性の記憶媒体である。一方、ＲＡＭ６３２は、揮発性の記憶媒体である。そして、ＣＰＵ６１２は、ＲＯＭ６２２、又は、ＲＡＭ６３２に記憶されているプログラムを基に動作可能である。つまり、ＣＰＵ６１２は、不揮発性記憶媒体又は揮発性記憶媒体を用いて動作可能である。
【０２１６】
ＮＩＣ６８２は、ネットワークを介して中継装置２００と接続する。ＮＩＣ６８２は、例えば、ＬＡＮカード又はＦＣカードである。さらに、ＮＩＣ６８２は、有線に限らず、無線を用いてもよい。
【０２１７】
このように構成された記憶装置６０２は、記憶装置３００及び記憶装置３１０と同様の効果を得ることができる。
【０２１８】
その理由は、記憶装置６０２のＣＰＵ６１２が、プログラムに基づいて記憶装置３００及び記憶装置３１０と同様の機能を実現できるためである。
【０２１９】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成及び詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【０２２０】
１００    情報処理システム
１０１    情報処理システム
２００    中継装置
３００    記憶装置
３０４    ブロック管理部
３０６    複製状況ブロックマップ記憶部
３０７    複製状況ブロックマップ
３１０    記憶装置
３１１    入出力解析部
３１２    入出力管理表記憶部
３１３    累計入出力数計測部
３１４    ブロック管理部
３１５    複製スケジューラー
３１６    複製状況ブロックマップ記憶部
３１７    複製状況ブロックマップ
３５０    記憶装置
３５４    管理部
３５６    記憶部
３５７    マップ
３６０    記憶装置
３６４    管理部
３６５    複製制御部
３６６    記憶部
３６７    マップ
４００    上位装置
６００    情報処理装置
６１０    ＣＰＵ
６２０    ＲＯＭ
６３０    ＲＡＭ
６４０    内部記憶装置
６５０    ＩＯＣ
６６０    入力機器
６７０    表示機器
６８０    ＮＩＣ
６０１    情報処理装置
６１１    ＣＰＵ
６２１    ＲＯＭ
６３１    ＲＡＭ
６８１    ＮＩＣ
６０２    記憶装置
６１２    ＣＰＵ
６２２    ＲＯＭ
６３２    ＲＡＭ
６４２    記憶媒体
６８２    ＮＩＣ
７００    記憶媒体
７０１    記憶媒体
７０２    記憶媒体
【図１】
0006693224.tif 000002
【図２】
0006693224.tif 000003
【図３】
0006693224.tif 000004
【図４】
0006693224.tif 000005
【図５】
0006693224.tif 000006
【図６】
0006693224.tif 000007
【図７】
0006693224.tif 000008
【図８】
0006693224.tif 000009
【図９】
0006693224.tif 000010
【図１０】
0006693224.tif 000011
【図１１】
0006693224.tif 000012
【図１２】
0006693224.tif 000013
【図１３】
0006693224.tif 000014
【図１４】
0006693224.tif 000015
【図１５】
0006693224.tif 000016
【図１６】
0006693224.tif 000017