(57)【要約】      （修正有）【課題】ストレージシステムにおけるレプリケーションの利便性を高める。【解決手段】ネットワークを介して互いに接続された第１ストレージ装置、第２ストレージ装置及び第３ストレージ装置を用いたデータ格納方法であって、第１ストレージ装置から第２ストレージ装置へ、第２ストレージ装置宛ての第１データと第３ストレージ装置宛ての第２データをまとめて送信し、第２ストレージ装置から第３ストレージ装置へ、第２データを送信する。ストレージ装置間の複製データの送信をまとめて行うことにより、送信されるパケット数を削減してネットワーク負荷を緩和することができる。また、複製データを適切なストレージ装置に移動させることで、データの読出しを可能とする。【選択図】図２
2015156071.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して互いに接続された第１ストレージ装置、第２ストレージ装置及び第３ストレージ装置を用いたデータ格納方法において、
前記第１ストレージ装置から前記第２ストレージ装置へ、前記第２ストレージ装置宛ての第１データと前記第３ストレージ装置宛ての第２データをまとめて送信する第１送信工程と、
前記第１送信工程の後、前記第２ストレージ装置から前記第３ストレージ装置へ、前記第２データを送信する第２送信工程と
を有することを特徴とするデータ格納方法。
【請求項２】
前記第１送信工程は、前記ネットワークの通信負荷が第１閾値以上の場合に実行されることを特徴とする請求項１に記載のデータ格納方法。
【請求項３】
前記第２送信工程は、前記ネットワークの通信負荷が第２閾値以下の場合に実行されることを特徴とする請求項１又は２に記載のデータ格納方法。
【請求項４】
ネットワークを介して互いに接続された第１ストレージ装置、第２ストレージ装置及び第３ストレージ装置を有し、
前記第１ストレージ装置は、前記第２ストレージ装置宛ての第１データと前記第３ストレージ装置宛ての第２データをまとめて前記第２ストレージ装置へ送信し、
前記第２ストレージ装置は、前記第１ストレージ装置から受信した前記第２データを前記第３ストレージ装置へ送信する
ことを特徴とするストレージシステム。
【請求項５】
前記第１ストレージ装置は、前記ネットワークの通信負荷が第１閾値以上の場合に、前記第１データと前記第２データをまとめて前記第２ストレージ装置へ送信することを特徴とする請求項４に記載のストレージシステム。
【請求項６】
前記第２ストレージ装置は、前記ネットワークの通信負荷が第２閾値以下の場合に、前記第２データを前記第３ストレージ装置へ送信することを特徴とする請求項４又は５に記載のストレージシステム。
【請求項７】
コンピュータに、
第１ストレージ装置から第２ストレージ装置へ、ネットワークを介して前記第２ストレージ装置宛ての第１データと第３ストレージ装置宛ての第２データをまとめて送信する第１送信工程と、
前記第１送信工程の後、前記第２ストレージ装置から前記第３ストレージ装置へ、前記ネットワークを介して前記第２データを送信する第２送信工程と
を実行させることを特徴とするプログラム。
【請求項８】
ネットワークを介して第１ストレージ装置及び第２ストレージ装置に接続されるストレージ装置であって、
前記第１ストレージ装置からまとめて送信される、前記ストレージ装置宛ての第１データと前記第２ストレージ装置宛ての第２データとを受信するデータ受信部と、
前記第２データを受信した後、前記第２データを前記第２ストレージ装置に送信する送信部と
を有することを特徴とするストレージ装置。
【請求項９】
前記受信部は、前記ネットワークの通信負荷が第１閾値以上の場合に、前記第１データと前記第２データをまとめて受信することを特徴とする請求項８に記載のストレージ装置。
【請求項１０】
前記送信部は、前記ネットワークの通信負荷が第２閾値以下の場合に、前記第２データを前記第２ストレージ装置へ送信することを特徴とする請求項８又は９に記載のストレージ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、データ格納方法、ストレージシステム、プログラム及びストレージ装置に関する。
【背景技術】
【０００２】
データを格納するストレージシステムとして、格納されたデータの消失を避けるために、複数のストレージ装置が同一のデータを冗長的に格納するストレージシステムが開発されている。例えばインターネットを通じて利用者が特定のサーバにアクセスしてデータの書込みを行った場合には、書込みデータをあるストレージ装置に格納し、更に当該ストレージ装置に格納されたデータと同一のデータ（複製データ）を、他のストレージ装置にも格納する。このように複数のストレージ装置で同一データを保持することで、仮に片方のストレージ装置においてデータが誤って消去されたり、ストレージ装置の故障でデータの読出しが行えない場合でも、他方のストレージ装置にアクセスすることによってデータを読み出すことができる。複数のストレージ装置に同一のデータを保持させることをレプリケーションと呼ぶ。
【０００３】
レプリケーションの実現手法として、まず一つのストレージ装置にデータ書込みを行ない、更に当該ストレージ装置から他のストレージ装置に複製データを送信し、他のストレージ装置で複製データを格納する方法が考えられる。この場合、二つのストレージ装置間を接続するネットワークにおいて通信の混雑が発生していると、ストレージ装置間のデータ転送に時間を要する場合がある。また、複数の複製データについて個別に送信を行うと、データ送信の回数が増加し、ネットワーク上の通信混雑の原因、更なるデータ転送の遅延の原因となる。この問題について、複数のデータをまとめてストレージ装置間で送信して通信回数を圧縮し、通信処理に要するストレージ装置のプロセッサの負荷やネットワークの通信負荷を緩和させ、また複製データの格納に要する時間を短縮させる方法が知られている（例えば特許文献１）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−１３３５９８
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記の特許文献１においては、複製データを送信する一つのストレージ装置に対して、複製データを受信するストレージ装置が一つだけ存在するストレージシステムにおいて、複数の複製データをまとめて送信する方法が開示されている。しかし特許文献１には、複製データを格納し得るストレージ装置が複数存在するようなストレージシステムを用いた場合について、どのようなレプリケーションの処理を行うのかについては何ら開示がなされていない。例えば第１データを第１ストレージ装置に格納しつつ、第１データの複製データを第２ストレージ装置に格納し、その一方で、第２データについては第１ストレージ装置に格納しつつ、第２データの複製データは第３ストレージ装置に格納する、というストレージシステムを想定する。このようなストレージシステムを利用する場合には、複数の複製データをまとめて転送するという方法をどのように適用するのか、という点についての開示が特許文献１にはなされていない。よって、特許文献１に記載の方法は利便性が十分とは言えない。
【０００６】
本開示は、複製データの格納先が複数存在するストレージシステムにおけるレプリケーションの利便性を高めることを目的とするものである。
【課題を解決するための手段】
【０００７】
開示のデータ格納方法は、ネットワークを介して互いに接続された第１ストレージ装置、第２ストレージ装置及び第３ストレージ装置を用いたデータ格納方法であって、第１ストレージ装置から第２ストレージ装置へ、第２ストレージ装置宛ての第１データと第３ストレージ装置宛ての第２データをまとめて送信し、第２ストレージ装置から第３ストレージ装置へ、第２データを送信する。
【発明の効果】
【０００８】
本開示のデータ格納方法によれば、複製データの格納先が複数存在するストレージシステムにおけるレプリケーションの利便性を高めることができる。
【図面の簡単な説明】
【０００９】
【図１】実施例におけるストレージシステムの構成図である。
【図２】実施例におけるストレージシステムの動作手順を示す図である。
【図３】実施例における中継サーバのハードウェア構成図である。
【図４】実施例におけるストレージ装置のハードウェア構成図である。
【図５】実施例における中継サーバの機能ブロック図である。
【図６】実施例におけるデータＩＤのハッシュ値とデータの格納先ストレージ装置の対応関係を示す表である。
【図７】実施例において送信されるデータ構成を示す図である。
【図８】実施例におけるストレージ装置の機能ブロック図である。
【図９】実施例におけるレプリケーション部の詳細機能ブロック図である。
【図１０】実施例におけるレプリケーションリストの一例である。
【図１１】実施例におけるストレージ装置のレプリケーション処理のフローチャートである。
【図１２】実施例におけるストレージ装置の書込み処理のフローチャートである。
【図１３】実施例におけるストレージ装置のデータ移動処理のフローチャートである。
【図１４】実施例における移動リストの例である。
【図１５】実施例におけるストレージ装置のデータ読出し処理のフローチャートである。
【発明を実施するための形態】
【００１０】
本明細書においては、データの書込み要求を受けてデータを格納するストレージ装置を「マスターノード」と呼び、マスターノードが格納したデータと同一のデータであって、データの消失を防ぐために他のストレージ装置にも格納されるデータを「複製データ」と呼び、複製データを格納する他のストレージ装置を「スレーブノード」と呼ぶこととする。
【００１１】
実施例の説明に先立ち、本願発明者が見出した、スレーブノードとなり得るストレージ装置が複数存在するストレージシステムにおいて、複数の複製データをマスターノードからスレーブノードへ送信する際に生じる課題について説明する。例えばマスターノードに対して第１データ及び第２データの書込み要求がなされるとする。第１データは、複製データを第１のスレーブノードに格納すべきものであり、第２データは、複製データを第２のスレーブノードに格納すべきものであるとする。ストレージ装置間のネットワークの通信負荷が高い場合、複数の複製データを個別のパケットとして通信を行うと、ネットワークの通信負荷を更に高める怖れがある。そこで、上述の特許文献１に記載されているように、通信回数を削減するために２つの複製データをまとめて一つのパケットとし、当該パケットを第１のスレーブノードへ送信したとする。この場合、第２データの複製データは、本来格納されるべき第２のスレーブノードではなく、第１のスレーブノードに格納されることになる。この場合であっても、第２データとその複製データは、それぞれ異なるストレージ装置に格納されているため、データ消失に対する信頼性を高めることはできる。しかし第２データに対して読出し要求があった場合、本来なら第２データの複製データが格納されているべき第２のスレーブノードにアクセスしても所望のデータが格納されていないために、データを読み出すことができない場合がある。この問題を解決するために、第２データの複製データの格納先が第２のスレーブノードから第１のスレーブノードへ変更されたことを、データ毎に例えばデータＩＤに基づいてシステム内で記憶しておく手法が考えられる。しかしこのような管理方法は、膨大なデータを扱うクラウドコンピューティングの分野等においては実施困難である。
【００１２】
本開示は上記の課題を解決するためのものである。本開示では、ネットワークの通信負荷が所定値を超える状態においては、複数の複製データをまとめて、マスターノードから特定のスレーブノードに送信して格納する。これにより通信回数を削減し、ネットワークの通信負荷や通信処理を行うマスターノードのプロセッサの処理負荷を軽減することができる。またデータを複数のストレージ装置に格納することができ、データ消失等に対する信頼性を向上させることができる。更に、スレーブノードは、自身が格納した複製データのうち、本来なら他のスレーブノードが格納すべき複製データを抽出し、ネットワークの通信負荷が所定値以下の状態において、当該他のスレーブノードに転送する。このように、複製データを格納されるべきスレーブノードに移動させることにより、データの読出し要求があった場合にデータへのアクセスを可能とする。
【００１３】
図１はストレージシステム１を含むネットワーク網全体の構成図である。ネットワーク２には複数のクライアントの端末装置３−１、３−２、３−３（以下、特定の端末装置を指す意図がない場合は単に「端末装置３」と記載する）が接続されており、これらの端末装置３は、ストレージシステム１に対してデータの書込み要求やデータの読出し要求を行う。
【００１４】
ストレージシステム１は中継サーバ１０と、中継サーバに接続されたストレージ装置１００Ａ、１００Ｂ、１００Ｃを含む（以下、特定のストレージ装置を指す意図がない場合は単に「ストレージ装置１００」と記載する）。中継サーバ１０は、ネットワーク２に接続され、端末装置３から送信される書込みデータを受信する。中継サーバ１０は例えばゲートウェイやプロキシサーバ等である。中継サーバ１０は、ロードバランサーとして機能する。中継サーバ１０は、受信した書込みデータ毎に、そのデータを格納するマスターノードとなるストレージ装置１００と、そのデータの複製データを格納するスレーブノードとなるストレージ装置１００を特定する。マスターノードとスレーブノードの特定方法については後述する。中継サーバ１０は、端末装置３から受信したデータの格納場所をストレージ装置１００Ａに、複製データの格納場所をストレージ装置１００Ｂに特定した場合は、データをマスターノードであるストレージ装置１００Ａに送信する。ストレージ装置１００Ａは、受信したデータの複製データを、スレーブノードであるストレージ装置１００Ｂに送信する。
【００１５】
図２を用いて、ストレージシステム１全体の処理の流れを説明する。処理５００から処理５０５は、複製データ毎にマスターノードからスレーブノードに送信する場合を説明するものである。処理５００において端末装置３は、データＩＤを「Ｘ」とするデータ（以下、データＸと記載する）について書込み要求を行う。このデータＸは、ストレージ装置１００Ａをマスターノードとし、ストレージ装置１００Ｂをスレーブノードとするものとする。データＸは、中継サーバ１０によりマスターノードであるストレージ装置１００Ａに転送される。処理５０１においてストレージ装置１００Ａは、受信したデータＸを自身が有するデータ格納部に書込む。更に処理５０２において、ストレージ装置１００Ａは、データＸの複製データ（元のデータと同一の内容を有し、データＩＤも元のデータのデータＩＤと同じ「Ｘ」とする。以下複製データＸと記載する）をスレーブノードであるストレージ装置１００Ｂに送信する。処理５０３においてストレージ装置１００Ｂは、受信した複製データＸを自身の有するデータ格納部に格納し、レプリケーションの動作が完了する。その後、処理５０４においてスレーブノードであるストレージ装置１００Ｂは、複製データＸの書込みが完了したことをマスターノードであるストレージ装置１００Ａに通知する。処理５０５においてストレージ装置１００Ａは、ストレージ装置１００Ｂからの完了通知に基づき、書込み要求を行った端末装置３に対して、データＸの書込みが完了したことを通知し、一連の動作が完了する。
【００１６】
次に図２の処理５０６から処理５１７に基づいて、複数の複製データをまとめて特定のストレージ装置１００に送信する場合について説明する。処理５０６において端末装置３は、データＹについて書込み要求を行う。このデータＹは、ストレージ装置１００Ａをマスターノードとし、ストレージ装置１００Ｂをスレーブノードとするものとする。また、処理５０７において端末装置３は、データＺについて書込み要求を行う。このデータＺは、ストレージ装置１００Ａをマスターノードとし、ストレージ装置１００Ｃをスレーブノードとするものとする。データＹ及びＺは何れも、中継サーバ１０によりマスターノードであるストレージ装置１００Ａに転送される。処理５０８においてストレージ装置１００Ａは、受信したデータＹを自身が有するデータ格納部に書込む。また処理５０８においてストレージ装置１００Ａは、受信したデータＺを自身が有するデータ格納部に書込む。ここで、後述する所定の条件を満たす場合には、処理５１０においてストレージ装置１００Ａは、複製データＹと複製データＺをまとめて一つのパケットとし、ストレージ装置１００Ｂに送信する。「複製データＹと複製データＺをまとめて一つのパケットとし」とは、単一の宛先アドレスを有する単一のパケットのペイロード部に、複製データＹと複製データＺを含ませることをいう。処理５１１においてストレージ装置１００Ｂは、受信した二つの複製データを自身の有するデータ格納部に格納する。その後、処理５１２においてストレージ装置１００Ｂは、二つの複製データの書込みが完了したことをストレージ装置１００Ａに通知する。処理５１３においてストレージ装置１００Ａは、ストレージ装置１００Ｂからの完了通知に基づき、データＹおよびデータＺについての書込が完了したことを端末装置３に通知する。
【００１７】
複製データＺは、本来はストレージ装置１００Ｃに格納されるものであるので、ストレージ１００Ｂは、複製データＺを格納する正当なスレーブノードではない。そこで処理５１４においてストレージ装置１００Ｂは、データＺの複製データを、後述する所定の条件を満たす場合には、本来の格納先であるストレージ装置１００Ｃに移動させる（送信する）。処理５１５においてストレージ装置１００Ｃは、複製データＺを自身が有するデータ格納部に書込む。処理５１６においてストレージ装置１００Ｃは、ストレージ装置１００Ｂに対して書込み完了の通知を行う。ストレージ装置１００Ｂは、必要に応じて自身が有するデータ格納部から複製データＺを削除する。
【００１８】
図３は、中継サーバ１０のハードウェア構成を示す図である。中継サーバ１０は、バス１５と、バス１５によって互いに接続されたプロセッサ１１と、メモリ１２と、ネットワークインターフェース回路１３と、ストレージ装置インターフェース回路１４とを有する。
【００１９】
図４は、ストレージ装置１００のハードウェア構成を示す図である。ここで開示するストレージ装置１００の構成は、ストレージ装置１００Ａ、ストレージ装置１００Ｂ、ストレージ装置１００Ｃの何れにも適用され得るものである。ストレージ装置１００は、プロセッサ１０１、入出力装置インターフェース回路１０２、ＮＩＣ１０３、メモリ１０４、記憶媒体インターフェース回路１０５と、これらを互いに接続するバス１０６を有する。記憶媒体インターフェース回路１０５は、Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ（ＨＤＤ）３００に接続される。ＨＤＤ３００はデータ格納部の一例である。データ格納部は、ストレージ装置１００の内部に設けられても外部に設けられてもよい。
【００２０】
尚、図３及び図４にて示したプロセッサ１１及び１０１は、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ（ＣＰＵ）、Ｍｉｃｒｏ−Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ（ＭＰＵ）、Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ（ＤＳＰ）、Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ（ＦＰＧＡ）等の電子回路部品である。またメモリ１２及び１０４は、Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＤＲＡＭ）、Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＳＲＡＭ）、フラッシュメモリ等の電子回路部品である。
【００２１】
図５は、中継サーバ１０の有するプロセッサ１１の機能ブロック図である。プロセッサ１１は、メモリ１２または中継サーバ１０がアクセス可能な他のメモリに格納された所定のプログラムを実行することにより、図５に示す各ブロックの機能を実現する。プロセッサ１１は、データ送受信部１６、ハッシュ値算出部１７、通知送受信部１８、及びリクエスト送受信部１９として機能する。また、プロセッサ１１は、ハッシュ値対応表２０を保持する。
【００２２】
データ送受信部１６は、端末装置３からストレージシステム１に宛てて送信された書込みデータを受信し、ストレージ装置１００に対して書込みデータを送信する。またデータ送受信部１６は、ストレージシステム１に格納されたデータの読出し要求が端末装置３からなされた場合は、ストレージ装置１００から読み出されたデータを端末装置３に送信する。
【００２３】
ハッシュ値算出部１７は、書込みデータに付されたデータ名（データＩＤ）に対してハッシュ値の算出を行う。このハッシュ値は、そのデータをどのストレージ装置１００に格納するか、またそのデータの複製データをどのストレージ装置１００に格納するかを特定するために用いられる。ハッシュ値対応表２０は、算出されたハッシュ値に基づいてマスターノードとスレーブノードとを特定する際に参照される対応表である。ハッシュ値に基づいてマスターノードとスレーブノードを定める方法は種々考えられるが、その一例を図６に示す。
【００２４】
図６に示す例は、ハッシュ値の一番下の桁（１桁目）の値が「０」、「１」、「２」の何れかである場合はストレージ装置１００Ａをマスターノードとし、「３」、「４」、「５」、の何れかである場合はストレージ装置１００Ｂをマスターノードとし、「６」、「７」、「８」、「９」の何れかである場合はストレージ装置１００Ｃをマスターノードとするよう規定するものである。また、ハッシュ値の下から二番目の桁（２桁目）の値が「０」、「１」、「２」の何れかである場合はストレージ装置１００Ａをスレーブノードとし、「３」、「４」、「５」、の何れかである場合はストレージ装置１００Ｂをスレーブノードとし、「６」、「７」、「８」、「９」の何れかである場合はストレージ装置１００Ｃをスレーブノードとするよう規定するものである。尚、ハッシュ値の下２桁が例えば「００」であってマスターノードとスレーブノードが何れもストレージ装置１００Ａとなるような場合は、レプリケーションが実現できない。よってこのような場合は、スレーブノードとして、マスターノードとは異なる、例えばストレージ装置１００Ｂが選択されるような規定を設ける。尚、ここに示した規定はあくまでも一例であり、ハッシュ値に基づく手法に限らず、他の規定を作成してマスターノード及びスレーブノードを決定してもよい。
【００２５】
図５の説明に戻り、通知送受信部１８は、データをマスターノードであるストレージ装置１００に格納し、かつ複製データを他のストレージ装置１００に格納した時点で、書込み要求を行った端末装置３に対して書込み完了通知を行う。この書込み完了通知は、後述するように、複製データがハッシュ値対応表２０にて規定される正当なスレーブノードとは異なるストレージ装置１００に一時的に格納された場合であっても、その時点で発行される。
【００２６】
リクエスト送受信部１９は、端末装置３からのデータ読出し要求を受け付ける。またリクエスト送受信部１９は、受け付けたデータ読出し要求で要求されているデータのデータＩＤのハッシュ値に基づき、当該データがどのストレージ装置１００に格納されているかを特定し、特定されたストレージ装置１００に対してデータ読出し要求を転送する。尚、データの読出し要求の転送は、マスターノードに対して行ってもよく、またスレーブノードに対して行ってもよい。
【００２７】
尚、プロセッサ１１は、図５に示す機能を全て有する必要はない。例えばハッシュ値算出部１７を、専用のロジック回路としてプロセッサ１１とは別に設けてもよく、またハッシュ値対応表２０は、メモリ１２内に格納してもよい。
【００２８】
図７は、中継サーバ１０からストレージ装置１００に送信されるパケットのフォーマットを示す図である。端末装置３から送信されるパケットは、データＩＤとデータ本体（ペイロード）を含む。中継サーバ１０は、このデータＩＤに基づいてマスターノードとなるストレージ装置１００を特定し、特定されたストレージ装置１００を宛先とする宛先アドレスをパケットにヘッダーまたはテイラーとして付加して転送する。
【００２９】
図８は、ストレージ装置１００が有するプロセッサ１０１の機能ブロック図である。プロセッサ１０１は、メモリ１０４またはプロセッサ１０１がアクセス可能な他のメモリに格納された所定のプログラムを実行することにより、図８に示す各ブロックの機能を実現する。プロセッサ１０１は、データ送受信部１１０、データ書込み部１２０、データ読出し部１２５、レプリケーション部１３０、データ移動部１４０、リクエスト受信部１５０、判定部１６０、ハッシュ値算出部１７０、負荷モニタ部１８０、通知送受信部１９０、及びデータ消去部２００として機能する。また、ストレージ装置１００は、図６に示した中継サーバ１０が有するハッシュ値対応表２０と同内容のハッシュ値対応表２１０を保持する。尚、プロセッサ１０１は、図８に示す機能を全て有する必要はない。例えばハッシュ値算出部１７０や負荷モニタ１８０を、専用のロジック回路としてプロセッサ１０１とは別に設けてもよく、またハッシュ値対応表２１０は、メモリ１０４内に格納してもよい。
【００３０】
データ送受信部１１０は、端末装置３から送信された書込みデータを、中継サーバ１０を介して受信する。またデータ送受信部１１０は、端末装置３からデータの読出し要求があった場合には、ＨＤＤ３００等のデータ格納部に格納されているデータを端末装置３に対して送信する。
【００３１】
データ書込み部１２０は、端末装置３から受信したデータを、ＨＤＤ３００等のデータ格納部に書込む。またデータ書込み部１２０は、マスターノードから送信された複製データ、又は正当なスレーブノードではないストレージ装置１００から送信された複製データを、データ格納部に格納する。本実施例では、データ書込み部１２０がデータを受信した際、受信したデータがどのストレージ装置１００宛てのデータであるかを確認することなく書込みの処理を行ってもよい。例えばデータがマスターノードであるストレージ装置１００から送信された複製データであって、かつ複製データを受信したストレージ装置１００がその複製データの正当なスレーブノードではない場合であっても、当該ストレージ装置１００はその複製データを自身のデータ格納部に格納する。
【００３２】
データ読出し部１２５は、端末装置３からデータの読出し要求があった場合には、ＨＤＤ３００等のデータ格納部からデータを読出す。レプリケーション部１３０は、そのストレージ装置１００がマスターノードである場合は、受信したデータの複製データを、スレーブノードとなるストレージ装置１００に送信することにより、レプリケーションを行う。
【００３３】
データ移動部１４０は、受信した複製データが、他のストレージ装置１００を正当なスレーブノードとするものであった場合に、その複製データを正当なストレージ装置１００に移動させる。すなわち、自ストレージ装置１００を宛先とする複製データと、他のストレージ装置１００を宛先とする複製データとを含むパケットを受信したストレージ装置１００のデータ移動部１４０は、所定の条件を満たす場合には、その複製データを当該他のストレージ装置１００に送信する。
【００３４】
リクエスト受信部１５０は、例えば端末装置３からのデータ読出し要求を受信する。判定部１６０は、レプリケーション部１３０やデータ移動部１４０が行う処理において、必要な判定を行う。
【００３５】
ハッシュ値算出部１７０は、書込みデータのデータＩＤに対してハッシュ値の算出を行う。負荷モニタ部１８０は、ネットワークの通信負荷を監視する。例えばネットワーク上を単位時間あたりに通信されるパケットの数や、または自ストレージ装置１００と他のストレージ装置１００との間で送受信されるＰｉｎｇコマンドの応答時間等を算出する。Ｐｉｎｇコマンドは、ネットワーク疎通を確認したい相手ノードに対して特定のパケットを発行し、そのパケットが正しく届いて返答が行われるかを確認するためのコマンドをいう。
【００３６】
通知送受信部１９０は、他のストレージ装置１００や端末装置３との間で、データの書込みが完了した際に行う完了通知の送受信等を行う。例えば、ストレージ装置１００がマスターノードである場合は、マスターノードにてデータの格納が終了し、かつスレーブノードでの複製データの格納が終了した際に、通知送受信部１９０は端末装置３に書込みの完了を通知する。また通知送受信部１９０は、複製データの格納を指示したスレーブノードから、当該複製データの格納が完了した旨の通知を受信する。ストレージ装置１００がスレーブノードである場合は、通知送受信部１９０は、自ストレージ装置１００にて複製データの格納が終了したことを示す通知をマスターノードに対して送信する。
【００３７】
データ消去部２００は、データ移動部１４０によって他のストレージ装置１００に送信されたデータについて、当該他のストレージ装置１００から通知送受信部１９０に対して書込み完了の通知がなされた場合は、自ストレージ装置１００にて格納していた複製データを削除する。本開示において、このデータ削除の処理は必須ではないが、この処理によりデータ格納部の空き容量を確保することができる。
【００３８】
図９は、図８で示したレプリケーション部１３０の詳細な機能ブロック図である。レプリケーション部１３０は、受付バッファ１３１、処理部１３２、送信バッファ１３３、登録部１３４を有する。尚、受付バッファ１３１や送信バッファ１３３は、専用の回路としてプロセッサ１０１とは別個に設けてもよい。
【００３９】
受付バッファ１３１は、スレーブノードとなるストレージ装置１００に送信する複製データを、レプリケーション部１３０が受け付けた順に保持する保持部である。受付バッファ１３１としては、例えばＦｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ（ＦＩＦＯ）バッファが適用可能である。
【００４０】
処理部１３２は、受付バッファ１３１に保持された複製データを順に取り出し、所定の条件を満たす場合には、複数の複製データをまとめる処理を行う。まとめられた複数の複製データは、共通の宛先アドレスを有する単一のパケットを構成する。
【００４１】
送信バッファ１３３は、他のストレージ装置１００に送信される複製データを一時的に保持しておく保持部である。処理部１３２によってまとめられた複数の複製データを有するパケットは、送信バッファ１３３に保持される。
【００４２】
登録部１３４は、複製データをスレーブノードとなるストレージ装置１００に送信する際に、レプリーションリスト１３５を作成する。レプリケーションリスト１３５には、マスターノードが複製データを含むパケットをスレーブノードに送信する際に、パケット毎に生成されたレプリケーションＩＤと、そのパケットの送信先アドレスと、そのパケットに含まれる複製データの対応関係を記録するリストである。このリストは、どのデータについてレプリケーションの処理が終了したかを記録するために用いられる。例えば複製データを含むパケットをスレーブノードに送信する際にレプリケーションリスト１３５に登録を行い、スレーブノードから複製データの書込みが終了したことの通知を受けた時に、レプリケーションリスト１３５から対応するレプリケーションＩＤの欄を消去する。
【００４３】
図１０はレプリケーションリスト１３５の一例である。レプリケーションリスト１３５には、レプリケーションＩＤと、パケットに含まれるデータのデータＩＤと、送信先アドレスが対応付けられて記録される。例えば図２の処理５００から処理５０５にて示した例であれば、ストレージ装置１００Ａにて作成されるレプリケーションリスト１３５は、図１０に示す表の第１欄のように登録される。すなわち、レプリケーションＩＤ（ａａ）に対して宛先アドレス（Ｂ：ストレージ装置１００Ｂのアドレス）とデータＩＤ（Ｘ）が登録される。また、図２の処理５０６から処理５１７にて示した例であれば、ストレージ装置１００Ａにて作成されるレプリケーションリスト１３５は、図１０に示す表の第２欄のように登録される。すなわち、単一のレプリケーションＩＤ（ｂｂ）に対して単一の宛先アドレス（Ｂ）と複数のデータのデータＩＤ（Ｙ、Ｚ）が登録される。
【００４４】
次に、ストレージ装置１００の処理フローについて説明する。図１１は、ストレージ装置１００のデータの書込みに関する処理フローを示す。データの書込み処理は処理１０００により開始し、処理１００１においてデータ送受信部１１０がデータを受信する。処理１００２においてデータ書込み部１２０が、受信したデータを自身のデータ格納部に書込む。処理１００３においてハッシュ値算出部１７０が、データに付されたデータＩＤのハッシュ値を算出する。処理１００４において判定部１６０が、ハッシュ値とハッシュ値対応表２１０に基づき、自身が、受信したデータのマスターノードであるかどうかを判定する。処理１００４において自身がマスターノードであると判定された場合は、処理１００５において受付バッファ１３１が複製データを保持する。そして処理１００６においてレプリケーション部１３０が、受付バッファ１３１に保持された複製データについてレプリケーション処理を実行する。処理１００６の後、処理１００７において通知送受信部１９０が、データの送信元に対してデータの書込みが完了した旨を通知し、処理１００８で処理が終了する。処理１００４において自身がマスターノードではないと判定された場合は、処理１００７に進む。
【００４５】
尚、受付バッファ１３１に複製データに保持させる処理１００５は、受信したデータをＨＤＤ３００等のデータ格納部に格納した後に行ってもよく、またデータ格納部に受信データを格納する前、もしくはデータ格納部にデータを格納する処理と同時に並行して行ってもよい。またデータ送受信部１１０で受信したデータをそのまま受付バッファ１３１に保持させてもよく、また一度データ格納部に格納されたデータを読み出して受付バッファ１３１に保持させてもよい。更に、ストレージ装置１００が、受信したデータにエラーが含まれることを検出し、データの再送もしくはエラーデータの訂正を行ってもよい。この場合は、データの再送やエラーデータの訂正後に、データ格納部にデータを格納し、受付バッファ１３１に複製データを保持させてもよい。
【００４６】
図１２は、レプリケーション部１３０によるレプリケーションの処理フローであり、図１１の処理１００６の詳細に相当する。レプリケーションの処理は処理１１００により開始される。処理１１０１において処理部１３２が、受付バッファ１３１に保持された複製データを取り出す。処理１１０２において処理部１３２は、既に送信バッファ１３３に他の複製データが保持されているか否かを判定する。他の複製データが送信バッファ１３３に保持されていない場合は、処理１１０５へ進み、他の複製データが送信バッファ１３３に保持されている場合は、処理１１０３へ進む。
【００４７】
処理１１０５において送信バッファ１３３が複製データを保持する。処理１１０６において登録部１３４が、ハッシュ値算出部１７０が算出したハッシュ値とハッシュ値対応表２１０に基づいてスレーブノードを特定し、レプリケーションリスト１３５にレプリケーションＩＤ及びデータＩＤとともに宛先アドレスを登録する。処理１１０７において判定部１６０は、送信バッファ１３３に保持されたデータ量が、第１閾値に達しているか否かを判定する。ここで第１閾値とは、例えば送信バッファ１３３の全容量の８０％のように規定する。この時点で送信バッファ１３３に格納されたデータ量が第１閾値以上である場合は、次の複製データと合わせると、送信バッファ１３３の容量を超えてしまう恐れがある。そのため、送信バッファ１３３に保持されたデータ量が第１閾値以上と判定された場合は、処理１１１０へ進み、複製データの送信を行う。処理１１０７において送信バッファ１３３に保持されたデータ量が第１閾値を超えていないと判定された場合は、処理１１０８へ進む。処理１１０８において判定部１６０は、負荷モニタ部１８０のモニタ結果に基づき、ネットワークの通信負荷が第２閾値以上か否かを判定する。例えば負荷モニタ部１８０が単位時間当たりに通信されるパケット数をモニタする場合であれば、第２閾値は、パケット数に関する所定の値である。また負荷モニタ部１８０がＰｉｎｇコマンドの送受信に要する時間をモニタする場合であれば、第２閾値は、時間に関する所定の値である。処理１１０８において通信負荷が第２閾値以上であると判定された場合は処理１１０９へ進み、通信負荷が第２閾値以上でないと判定された場合は処理１１１０へ進む。処理１１０９において判定部１６０は、受付バッファ１３１に保持された次の複製データがあるか否かを判定する。次の複製データがないと判定された場合は、処理１１１０へ進み、次の複製データがあると判定された場合は、処理１１０１へ戻る。処理１１１０において処理部１３２は、送信バッファ１３３に保持された複製データに、レプリケーションリスト１３５に登録された宛先アドレスを含むヘッダーを付してパケットを作成し、スレーブノードとなるストレージ装置１００に送信する。
【００４８】
次に、処理１１０２において、送信バッファ１３３に既に他の複製データが保持されていると判定された場合について説明する。処理１１０３において判定部１６０は、既に送信バッファ１３３に保持されている複製データと、今回新しく受付バッファ１３１から取り出した複製データを合計したデータ量が、第３閾値以上か否かを判定する。ここで第３閾値は、例えば送信バッファ１３３の全容量の８０％（第１閾値と同じ値）としてもよく、もしくは第１閾値よりも高い値、例えば送信バッファ１３３の全容量値と同一の値に設定してもよい。第３閾値を送信バッファ１３３の全容量と同一の値とした場合は、既に送信バッファ１３３に格納されているデータに、新しく受付バッファ１３１から取り出したデータを加えると、送信バッファ１３３からデータが溢れるかどうかを判定することができる。処理１１０３で、複製データの合計のデータ量が第３閾値以上と判定された場合は処理１１０４へ進み、複製データの合計のデータ量が第３閾値を超えないと判定された場合は処理１１０５へ進む。処理１１０５に進んだ場合は、処理１１０５において送信バッファ１３３には複数の複製データが保持されることになる。一方、処理１１０４に進んだ場合は、処理部１３２は、新たに受付バッファ１３１から取り出した複製データを送信バッファ１３３に入力せず、先に送信バッファ１３３に格納されている複製データを送信する。これにより、送信バッファ１３３は空の状態となる。そして処理１１０５に進み、送信バッファ１３３は、新たに受付バッファ１３１から取得した複製データを保持する。
【００４９】
次に、ストレージ装置１００が受信したパケットに含まれる複製データの一部に、当該ストレージ装置１００とは異なる他のストレージ装置１００を正当なスレーブノードとする複製データが含まれていた場合の、データ移動部１４０の処理について説明する。
【００５０】
ストレージ装置１００は、マスターノードから受けた複製データについては、まずは自身のデータ格納部に格納した後に、データ格納部に格納されたデータに付されたデータＩＤを読出し、当該データＩＤについてハッシュ値の算出を行う。ハッシュ値に基づきハッシュ値対応表２１０を参照することにより、データ格納部に格納されているデータが、本来は他のストレージ装置１００がスレーブノードとして格納すべきデータであるかどうかを判断することができる。他のストレージ装置１００がスレーブノードとして格納すべきデータについては、当該データを、当該他のストレージ装置１００に送信する。
【００５１】
図１３は、複製データを他のストレージ装置１００に移動させる処理フローを示すものである。移動処理は処理１２００により開始される。処理１２０１において判定部１６０は、負荷モニタ部１８０によりモニタされるネットワークの通信負荷が第４閾値以下になったか否かを判定する。第４閾値は、図１２の処理１１０８で用いた第２閾値と同じ値を用いてもよい。処理１２０１においてネットワークの通信負荷が第４閾値以下でない場合は、通信負荷が第４閾値以下になるまで処理１２０１を繰り返す。処理１２０１において通信負荷が第４閾値以下になったと判定された場合は、処理１２０２においてデータ移動部１４０が、データ格納部に格納されているデータのうち、特定アドレス以降のアドレスに格納されているデータに付されたデータＩＤを読出す。処理１２０３においてハッシュ値算出部１７０がデータＩＤについてハッシュ値を算出する。処理１２０４において判定部１６０が、算出されたハッシュ値に基づいてハッシュ値対応表２１０を参照することにより、そのデータが他のストレージ装置１００で格納すべき複製データであるか否かを判定する。処理１２０４において、データが他のストレージ装置１００で格納すべき複製データではないと判定された場合は、ループ処理により他のデータについて同様にデータＩＤのハッシュ値算出を行う。一方、処理１２０４において、データが他のストレージ装置１００で格納すべき複製データと判定された場合は、処理１２０５において判定部１６０が、ネットワークの通信負荷が第５閾値以下となっているか否かを判定する。第５閾値は、処理１２０１にて用いた第４閾値と同じ値であってもよい。処理１２０１でも通信負荷の判定を行っているが、その後、通信負荷が上昇することも考えられる。そのような場合にデータの送信を中止させるために、処理１２０５において再度通信負荷の判定を行っている。処理１２０５において通信負荷が第５閾値以下ではないと判定された場合は、処理１２０６へ進む。処理１２０６において、処理途中のデータのアドレスを記録し、処理１２０９でデータ移動の処理を終了する。移動の処理が中断された複製データのアドレスは、次に通信負荷が閾値を下回った際に、どのアドレスのデータからデータ移動の処理を再開すればよいかを判断するために利用することができる。尚、アドレスでの管理が困難な場合は、当該データが書込まれた時刻を記録しておき、どの時刻に格納したデータまで移動処理を完了させたかを管理してもよい。またこれらの管理を行わずに、常に全てのデータに対して移動の要否の判定を行ってもよい。
【００５２】
処理１２０５において通信負荷が第５閾値以下であると判定された場合は、移動させるデータのデータＩＤに対して移動ＩＤを付し、データの移動先アドレスとともに、移動リストに登録する。処理１２０８においてデータ移動部１４０が、複製データを所定のストレージ装置１００へ送信し、ループ処理により他のデータに対しても同様の処理を繰り返す。
【００５３】
図１４は、データ移動部１４０が作成する移動リストの一例である。移動リストには、移動される複製データ毎に、移動処理ＩＤと宛先アドレスとデータＩＤとが対応付けられて登録される。例えば図２に示す例においては、ストレージ装置１００Ｂは、データＺの複製データをストレージ装置１００Ｂからストレージ装置１００Ｃに移動させるため、移動処理ＩＤを例えば「ｐｐ」とし、移動先アドレスを「Ｃ（ストレージ装置１００Ｃのアドレス）」、データＩＤを「Ｚ」とする登録がなされる。このデータ移動リストは、データを他のストレージ装置１００に送信した後、他のストレージ装置１００からデータ格納の完了通知を受けた際に利用される。例えばストレージ装置１００Ｂは、複製データをストレージ装置１００Ｃに転送した後に、通知送受信部１９０にて、データ書込み完了通知をストレージ装置１００Ｃから受信する。そして、どの移動データＩＤのデータ格納が完了したかを認識する。データ消去部２００は、移動処理リストを参照することにより、データ書込みの完了が通知された移動データＩＤに対応するデータＩＤを特定する。そしてデータ消去部２００は、データＩＤによって特定されるデータを、データ格納部から消去する。これによって、データ格納部の空き容量を確保することができる。
【００５４】
次に、端末装置３からストレージシステム１に対してデータの読出し要求があった際の処理について説明する。図１５は、データの読出し処理に関するストレージ装置１００の処理フローである。読出しの処理は処理１３００により開始される。処理１３０１においてリクエスト受信部１５０が、端末装置３から送信された読出し要求を、中継サーバ１０を経由して受信する。処理１３０２においてデータ読出し部１２５が、要求のあったデータＩＤについてデータ格納部に対象データが格納されているかを判定する。処理１３０２において対象データがデータ格納部に格納されていると判定された場合は、処理１３０３へ進み、対象データがデータ格納部に格納されていないと判定された場合は、処理１３０５へ進む。処理１３０３においてデータ読出し部１２５は、対象データを読み出す。処理１３０４においてデータ送受信部１１０は、読み出したデータを端末装置３に送信する。
【００５５】
処理１３０２において、読出しが要求されたデータがデータ格納部に格納されていないと判定された場合は、処理１３０５において、データ読出し部１２５は所定時間待機する。そして所定時間経過後に処理１３０６においてデータ格納部は、再度データがデータ格納部に格納されているか否かを判定する。これは、複製データが他のストレージ装置１００から移動されていない場合を考慮し、所定時間待ってから再度データ格納部へのアクセスを行うものである。処理１３０６においてデータが格納されていると判断された場合は、処理１３０３及び処理１３０４にてデータ読出しおよびデータ送信が行われる。また、処理１３０６においてもデータが格納されていない場合は、処理１３０７へ進む。処理１３０７において通知送受信部１９０は、要求されたデータが格納されていない旨を端末装置３に通知する。なお、処理１３０７の代わりに、もしくは処理１３０７と併せて、データＩＤに基づいてハッシュ値算出を行い、データが格納されている可能性のある他のストレージ装置１００に読出し要求を転送する処理を行ってもよい。
【００５６】
本実施例では、ネットワークの通信負荷が高い状態においては、ストレージ装置１００間の複製データの送信をまとめて行うことにより、送信されるパケット数を削減してネットワーク負荷を緩和する。また、ネットワーク負荷が低くなったタイミングにおいて複製データを適切なストレージ装置１００に移動させることで、データの読出しを可能とする。このように、ネットワークの負荷を時間的に分散させつつ、レプリケーションの利便性を高めることができる。
【００５７】
開示の実施例に基づき、更に以下の付記を開示する。
（付記１）
ネットワークを介して互いに接続された第１ストレージ装置、第２ストレージ装置及び第３ストレージ装置を用いたデータ格納方法において、
前記第１ストレージ装置から前記第２ストレージ装置へ、前記第２ストレージ装置宛ての第１データと前記第３ストレージ装置宛ての第２データをまとめて送信する第１送信工程と、
前記第１送信工程の後、前記第２ストレージ装置から前記第３ストレージ装置へ、前記第２データを送信する第２送信工程と
を有することを特徴とするデータ格納方法。
（付記２）
前記第１送信工程は、前記ネットワークの通信負荷が第１閾値以上の場合に実行されることを特徴とする付記１に記載のデータ格納方法。
（付記３）
前記第２送信工程は、前記ネットワークの通信負荷が第２閾値以下の場合に実行されることを特徴とする付記１又は２に記載のデータ格納方法。
（付記４）
前記第１送信工程の前に、前記第１ストレージ装置が前記第２データの書込み要求を端末装置から受信する工程と、
前記第２ストレージ装置への前記第２データの送信に基づき、前記端末装置に対して書込み完了通知を通知する工程と、
を更に有することを特徴とする付記１乃至３いずれかに記載のデータ格納方法。
（付記５）
前記第２ストレージ装置は、前記第１ストレージ装置から送信された前記第２データを保持し、前記第３ストレージ装置への前記第２データの送信の後に前記第２データを消去することを特徴とする付記１乃至４いずれかに記載のデータ格納方法。
（付記６）
前記第１データ及び前記第２データの宛先は、前記第１データに付された第１データＩＤ及び前記第２データに付された第２データＩＤに基づいて定められ、前記第２ストレージ装置は、前記第２データの前記データＩＤに基づいて、前記第２データが前記第３ストレージ装置宛てのデータであることを認識することを特徴とする付記１乃至５いずれかに記載のデータ格納方法。
（付記７）
前記ネットワークの通信負荷は、前記第１ストレージ装置、前記第２ストレージ装置及び前記第３ストレージ装置間の通信に要する時間もしくは、前記ネットワーク上を単位時間当たりに送信されるパケット数に基づいて定められることを特徴とする付記１乃至６いずれかに記載のデータ格納方法。
（付記８）
ネットワークを介して互いに接続された第１ストレージ装置、第２ストレージ装置及び第３ストレージ装置を有し、
前記第１ストレージ装置は、前記第２ストレージ装置宛ての第１データと前記第３ストレージ装置宛ての第２データをまとめて前記第２ストレージ装置へ送信し、
前記第２ストレージ装置は、前記第１ストレージ装置から受信した前記第２データを前記第３ストレージ装置へ送信する
ことを特徴とするストレージシステム。
（付記９）
前記第１ストレージ装置は、前記ネットワークの通信負荷が第１閾値以上の場合に、前記第１データと前記第２データをまとめて前記第２ストレージ装置へ送信することを特徴とする付記８に記載のストレージシステム。
（付記１０）
前記第２ストレージ装置は、前記ネットワークの通信負荷が第２閾値以下の場合に、前記第２データを前記第３ストレージ装置へ送信することを特徴とする付記８又は９に記載のストレージシステム。
（付記１１）
前記第２データの書込み要求を端末装置から受信する書込み要求受信部と、
前記第２ストレージ装置への前記第２データの送信の後、前記端末装置に対して書込み完了通知を通知する通知部と
を更に有することを特徴とする付記８乃至１０いずれかに記載のストレージシステム。
（付記１２）
前記第２ストレージ装置は、前記第１ストレージ装置から送信された前記第２データを保持し、前記第３ストレージ装置への前記第２データの送信の後に前記第２データを消去することを特徴とする付記８乃至１１いずれかに記載のストレージシステム。
（付記１３）
前記第１データ及び前記第２データの宛先は、前記第１データに付された第１データＩＤ及び前記第２データに付された第２データＩＤに基づいて定められ、前記第２ストレージ装置は、前記第２データの前記データＩＤに基づいて、前記第２データが前記第３ストレージ装置宛てのデータであることを認識することを特徴とする付記８乃至１２いずれかに記載のストレージシステム。
（付記１４）
前記ネットワークの通信負荷を、前記第１ストレージ装置、前記第２ストレージ装置及び前記第３ストレージ装置間の通信に要する時間もしくは、前記ネットワーク上を単位時間当たりに送信されるパケット数に基づいて定める負荷監視部を更に有することを特徴とする付記８乃至１３いずれかに記載のストレージシステム。
（付記１５）
コンピュータに、
第１ストレージ装置から第２ストレージ装置へ、ネットワークを介して前記第２ストレージ装置宛ての第１データと第３ストレージ装置宛ての第２データをまとめて送信する第１送信工程と、
前記第１送信工程の後、前記第２ストレージ装置から前記第３ストレージ装置へ、前記ネットワークを介して前記第２データを送信する第２送信工程と
を実行させることを特徴とするプログラム。
（付記１６）
ネットワークを介して第１ストレージ装置及び第２ストレージ装置に接続されるストレージ装置であって、
前記第１ストレージ装置からまとめて送信される、前記ストレージ装置宛ての第１データと前記第２ストレージ装置宛ての第２データとを受信するデータ受信部と、
前記第２データを受信した後、前記第２データを前記第２ストレージ装置に送信する送信部と
を有することを特徴とするストレージ装置。
（付記１７）
前記受信部は、前記ネットワークの通信負荷が第１閾値以上の場合に、前記第１データと前記第２データをまとめて受信することを特徴とする付記１６に記載のストレージ装置。
（付記１８）
前記送信部は、前記ネットワークの通信負荷が第２閾値以下の場合に、前記第２データを前記第２ストレージ装置へ送信することを特徴とする付記１６又は１７に記載のストレージ装置。
（付記１９）
前記第２ストレージ装置への前記第２データの送信後、前記第２データを消去することを特徴とする付記１６乃至１８何れか一項に記載のストレージ装置。
【符号の説明】
【００５８】
１  ストレージシステム
２  ネットワーク
３−１、３−２、３−３  端末装置
１０  中継サーバ
１００Ａ，１００Ｂ，１００Ｃ  ストレージ装置
１１、１０１  プロセッサ
１２、１０４  メモリ
１３  ネットワークインターフェース回路
１４  ストレージ装置インターフェース回路
１５、１０６  バス
１０２  入出力インターフェース回路
１０３  ＮＩＣ
１０５  記憶媒体インターフェース回路
３００  ＨＤＤ
１６  データ送受信部
１７、１７０  ハッシュ値算出部
１８、１９０  通知送受信部
１９  リクエスト送受信部
２０、２１０  ハッシュ値対応表
１１０  データ送受信部
１２０  データ書込み部
１２５  データ読出し部
１３０  レプリケーション部
１４０  データ移動部
１５０  リクエスト受信部
１６０  判定部
１８０  負荷モニタ部
２００  データ消去部
１３１  受付バッファ
１３２  処理部
１３３  送信バッファ
１３４  登録部
１３５  レプリケーションリスト
【図１】
2015156071.tif 000003
【図２】
2015156071.tif 000004
【図３】
2015156071.tif 000005
【図４】
2015156071.tif 000006
【図５】
2015156071.tif 000007
【図６】
2015156071.tif 000008
【図７】
2015156071.tif 000009
【図８】
2015156071.tif 000010
【図９】
2015156071.tif 000011
【図１０】
2015156071.tif 000012
【図１１】
2015156071.tif 000013
【図１２】
2015156071.tif 000014
【図１３】
2015156071.tif 000015
【図１４】
2015156071.tif 000016
【図１５】
2015156071.tif 000017