(57)【要約】【課題】バックアップ処理の負荷を軽減する。【解決手段】ストレージシステムは、それぞれが同一のデータを格納する複数のストレージノードと、複数のストレージノードと接続され、ストレージノードが格納するデータの複製であるバックアップデータを格納するバックアップノードと、を有する。ストレージノードは、自装置が格納するデータから複製対象のデータを抽出する抽出部と、複製対象のデータの更新時点が当該データに対応するバックアップデータの更新時点に比して新しいか否かを判定する判定部と、を備える。バックアップノードは、ストレージノードの判定部による判定結果に基づいて、ストレージノードが格納するデータを複製して自装置に格納するバックアップノード制御部、を備える。【選択図】図２
2015088109.tif 000002
【特許請求の範囲】
【請求項１】
それぞれが同一のデータを格納する複数のストレージノードと、前記複数のストレージノードと接続され、前記ストレージノードが格納するデータの複製であるバックアップデータを格納するバックアップノードと、を有するストレージシステムであって、
前記ストレージノードは、
自装置が格納するデータから複製対象のデータを抽出する抽出部と、
前記複製対象のデータの更新時点が当該データに対応するバックアップデータの更新時点に比して新しいか否かを判定する判定部と、
を備え、
前記バックアップノードは、
前記ストレージノードの判定部による判定結果に基づいて、前記ストレージノードが格納するデータを複製して自装置に格納するバックアップノード制御部、
を備えることを特徴とするストレージシステム。
【請求項２】
前記ストレージノードの抽出部は、所定の時点より後に更新されたデータを前記複製対象のデータとして抽出する、
ことを特徴とする請求項１に記載のストレージシステム。
【請求項３】
前記ストレージシステムは、バックアップ制御装置を備え、
前記バックアップ制御装置は、
前記所定の時点を指定する時点指定部、
を備えることを特徴とする請求項２に記載のストレージシステム。
【請求項４】
前記バックアップノードのバックアップノード制御部は、前記複数のストレージノードのうち、前記ストレージノードと前記バックアップノードとの間の回線速度に基づいて選択されたストレージノードが格納するデータを複製して自装置に格納する、
ことを特徴とする請求項１から３のいずれか一項に記載のストレージシステム。
【請求項５】
前記ストレージノードの抽出部は、データ各々に予め対応付けられた優先順位に基づいて前記複製対象のデータを抽出する、
ことを特徴とする請求項１から４のいずれか一項に記載のストレージシステム。
【請求項６】
それぞれが同一のデータを格納する複数のストレージノードと、前記複数のストレージノードと接続され、前記ストレージノードが格納するデータの複製であるバックアップデータを格納するバックアップノードと、前記バックアップデータを格納するための処理を制御するバックアップ制御装置と、を有するストレージシステムであって、
前記バックアップ制御装置は、
時点を指定する時点指定部と、
前記ストレージノードと前記バックアップノードとの間の回線速度に基づいて前記ストレージノードを選択する装置選択部と、
を備え、
前記バックアップ制御装置の装置選択部によって選択された前記ストレージノードは、
前記バックアップ制御装置の時点指定部が指定した時点より後に更新されたデータを抽出する抽出部と、
前記抽出部が抽出したデータの更新時点が当該データに対応するバックアップデータの更新時点に比して新しいか否かを判定する判定部と、
を備え、
前記バックアップノードは、
前記ストレージノードの判定部による判定結果に基づいて、前記ストレージノードが格納するデータを複製して自装置に格納するバックアップノード制御部、
を備えることを特徴とするストレージシステム。
【請求項７】
それぞれが同一のデータを格納する複数のストレージノードと、前記複数のストレージノードと接続され、前記ストレージノードが格納するデータの複製であるバックアップデータを格納するバックアップノードと、前記バックアップデータを格納するための処理を制御するバックアップ制御装置と、を有するストレージシステムであって、
前記バックアップ制御装置は、
時点を指定する時点指定部と、
優先順位を指定する順位指定部と、
を備え、
前記ストレージノードは、
自装置が格納するデータに予め対応付けられた優先順位が、前記順位指定部によって指定された優先順位である場合、前記バックアップ制御装置の時点指定部が指定した時点より後に更新されたデータを抽出する抽出部と、
前記抽出部が抽出したデータの更新時点が当該データに対応するバックアップデータの更新時点に比して新しいか否かを判定する判定部と、
を備え、
前記バックアップノードは、
前記ストレージノードの判定部による判定結果に基づいて、前記ストレージノードが格納するデータを複製して自装置に格納するバックアップノード制御部、
を備えることを特徴とするストレージシステム。
【請求項８】
それぞれが同一のデータを格納する複数のストレージノードと、前記複数のストレージノードと接続され、前記ストレージノードの格納するデータの複製であるバックアップデータを格納するバックアップノードと、前記バックアップデータを格納するための処理を制御するバックアップ制御装置と、を有するストレージシステムにおけるストレージ制御方法であって、
前記バックアップ制御装置が、時点を指定する時点指定過程と、
前記バックアップ制御装置が、前記ストレージノードと前記バックアップノードとの間の回線速度に基づいて前記ストレージノードを選択する装置選択過程と、
前記装置選択過程において選択された前記ストレージノードが、前記時点指定過程において指定された時点より後に更新されたデータを抽出する抽出過程と、
前記装置選択過程において選択された前記ストレージノードが、前記抽出過程において抽出されたデータの更新時点が当該データに対応するバックアップデータの更新時点に比して新しいか否かを判定する判定過程と、
前記バックアップノードが、前記判定過程における判定結果に基づいて、前記ストレージノードが格納するデータを複製して自装置に格納する格納過程と、
を有することを特徴とするストレージ制御方法。
【請求項９】
それぞれが同一のデータを格納する複数のストレージノードと、前記複数のストレージノードと接続され、前記ストレージノードの格納するデータの複製であるバックアップデータを格納するバックアップノードと、前記バックアップデータを格納するための処理を制御するバックアップ制御装置と、を有するストレージシステムにおけるストレージノードとしてのコンピュータに、
前記ストレージノードと前記バックアップノードとの間の回線速度に基づいて、前記バックアップ制御装置から選択された場合に、前記バックアップ制御装置から指定された時点より後に更新されたデータを抽出する抽出手順、
前記抽出手順において抽出されたデータの更新時点が当該データに対応するバックアップデータの更新時点に比して新しいか否かを判定する判定手順、
前記判定手順における判定結果に基づいて、自装置が格納するデータを複製してバックアップノードに送信する送信手順、
を実行させるためのストレージ制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステム、ストレージ制御方法、およびストレージ制御プログラムに関する。
【背景技術】
【０００２】
ネットワークを介したサービスにおいて、安価で信頼性の高いストレージに対する需要が高まっており、様々なストレージシステムが提案されている（例えば、特許文献１）。例えば、あるストレージシステムは、処理の受付及び振分を行うプロキシノード（Proxy  Node）と、データを格納するストレージノード（Storage  Node）とを備えており、信頼性を高めるための手段の一つとして、複数のストレージノードが同一のデータを格納することで冗長化を実行している。
【０００３】
冗長化の機能を有するストレージシステムにおける各装置の基本的な動作の一例を説明する。プロキシノードは、クライアントからデータの書き込み要求を受け付けると、上述の冗長化を実行するため、当該書き込み要求を複数のストレージノードに同時に送信する。書き込み要求を受信したストレージノード各々は、プロキシノードから受信したデータを自装置に格納する。プロキシノードは、クライアントからデータの読み出し要求を受け付けると、当該データを格納するストレージノードのうちの一つを選択し、当該ストレージノードに対して読み出し要求を送信する。当該読み出し要求を受け付けたストレージノードは、要求されたデータをクライアントに送信する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４８８７６１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
信頼性をより高めるためには、ストレージノードが格納するデータのバックアップ（障害対策用の複製）を、バックアップ用のストレージ装置（バックアップノード）に格納するバックアップ処理を行うことが望ましい。しかしながら、従来の技術では、バックアップ処理において、ストレージシステムにかかる負荷が大きかった。例えば、各ストレージノードがバックアップノードに直接データを送信する場合、冗長化された同一のデータを複数回複製するという重複した処理が発生するため、ストレージシステムにかかる負荷が大きかった。このような重複した処理を避けるため、例えば、プロキシノードがストレージノードからデータを読み出し、バックアップノードにデータを送信する方法が考えられるが、この場合には、プロキシノードが行う処理が増え、クライアントからの要求の処理に支障が出る可能性がある。このように、バックアップ処理において、ストレージシステムにかかる負荷は大きかった。
【０００６】
本発明は上記の点に鑑みてなされたものであり、バックアップ処理の負荷を軽減するためのストレージシステム、ストレージ制御方法、およびストレージ制御プログラムを提供する。
【課題を解決するための手段】
【０００７】
本発明は上記の課題を解決するためになされたものであり、本発明の一態様は、それぞれが同一のデータを格納する複数のストレージノードと、複数のストレージノードと接続され、ストレージノードが格納するデータの複製であるバックアップデータを格納するバックアップノードと、を有するストレージシステムであって、ストレージノードは、自装置が格納するデータから複製対象のデータを抽出する抽出部と、複製対象のデータの更新時点が当該データに対応するバックアップデータの更新時点に比して新しいか否かを判定する判定部と、を備え、バックアップノードは、ストレージノードの判定部による判定結果に基づいて、ストレージノードが格納するデータを複製して自装置に格納するバックアップノード制御部、を備えることを特徴とするストレージシステムである。
【０００８】
また、本発明の一態様は、上記のストレージシステムにおいて、ストレージノードの抽出部は、所定の時点より後に更新されたデータを複製対象のデータとして抽出する、ことを特徴とする。
【０００９】
また、本発明の一態様は、上記のストレージシステムは、バックアップ制御装置を備え、バックアップ制御装置は、所定の時点を指定する時点指定部、を備えることを特徴とする。
【００１０】
また、本発明の一態様は、上記のストレージシステムにおいて、バックアップノードのバックアップノード制御部は、複数のストレージノードのうち、ストレージノードとバックアップノードとの間の回線速度に基づいて選択されたストレージノードが格納するデータを複製して自装置に格納する、ことを特徴とする。
【００１１】
また、本発明の一態様は、上記のストレージシステムにおいて、ストレージノードの抽出部は、データ各々に予め対応付けられた優先順位に基づいて複製対象のデータを抽出する、ことを特徴とする。
【００１２】
また、本発明の一態様は、それぞれが同一のデータを格納する複数のストレージノードと、複数のストレージノードと接続され、ストレージノードが格納するデータの複製であるバックアップデータを格納するバックアップノードと、バックアップデータを格納するための処理を制御するバックアップ制御装置と、を有するストレージシステムであって、バックアップ制御装置は、時点を指定する時点指定部と、ストレージノードとバックアップノードとの間の回線速度に基づいてストレージノードを選択する装置選択部と、を備え、バックアップ制御装置の装置選択部によって選択されたストレージノードは、バックアップ制御装置の時点指定部が指定した時点より後に更新されたデータを抽出する抽出部と、抽出部が抽出したデータの更新時点が当該データに対応するバックアップデータの更新時点に比して新しいか否かを判定する判定部と、を備え、バックアップノードは、ストレージノードの判定部による判定結果に基づいて、ストレージノードが格納するデータを複製して自装置に格納するバックアップノード制御部、を備えることを特徴とするストレージシステムである。
【００１３】
また、本発明の一態様は、それぞれが同一のデータを格納する複数のストレージノードと、複数のストレージノードと接続され、ストレージノードが格納するデータの複製であるバックアップデータを格納するバックアップノードと、バックアップデータを格納するための処理を制御するバックアップ制御装置と、を有するストレージシステムであって、バックアップ制御装置は、時点を指定する時点指定部と、優先順位を指定する順位指定部と、を備え、ストレージノードは、自装置が格納するデータに予め対応付けられた優先順位が、順位指定部によって指定された優先順位である場合、バックアップ制御装置の時点指定部が指定した時点より後に更新されたデータを抽出する抽出部と、抽出部が抽出したデータの更新時点が当該データに対応するバックアップデータの更新時点に比して新しいか否かを判定する判定部と、を備え、バックアップノードは、ストレージノードの判定部による判定結果に基づいて、ストレージノードが格納するデータを複製して自装置に格納するバックアップノード制御部、を備えることを特徴とするストレージシステムである。
【００１４】
また、本発明の一態様は、それぞれが同一のデータを格納する複数のストレージノードと、複数のストレージノードと接続され、ストレージノードの格納するデータの複製であるバックアップデータを格納するバックアップノードと、バックアップデータを格納するための処理を制御するバックアップ制御装置と、を有するストレージシステムにおけるストレージ制御方法であって、バックアップ制御装置が、時点を指定する時点指定過程と、バックアップ制御装置が、ストレージノードとバックアップノードとの間の回線速度に基づいてストレージノードを選択する装置選択過程と、装置選択過程において選択されたストレージノードが、時点指定過程において指定された時点より後に更新されたデータを抽出する抽出過程と、装置選択過程において選択されたストレージノードが、抽出過程において抽出されたデータの更新時点が当該データに対応するバックアップデータの更新時点に比して新しいか否かを判定する判定過程と、バックアップノードが、判定過程における判定結果に基づいて、ストレージノードが格納するデータを複製して自装置に格納する格納過程と、を有することを特徴とするストレージ制御方法である。
【００１５】
また、本発明の一態様は、それぞれが同一のデータを格納する複数のストレージノードと、複数のストレージノードと接続され、ストレージノードの格納するデータの複製であるバックアップデータを格納するバックアップノードと、バックアップデータを格納するための処理を制御するバックアップ制御装置と、を有するストレージシステムにおけるストレージノードとしてのコンピュータに、ストレージノードとバックアップノードとの間の回線速度に基づいて、バックアップ制御装置から選択された場合に、バックアップ制御装置から指定された時点より後に更新されたデータを抽出する抽出手順、抽出手順において抽出されたデータの更新時点が当該データに対応するバックアップデータの更新時点に比して新しいか否かを判定する判定手順、判定手順における判定結果に基づいて、自装置が格納するデータを複製してバックアップノードに送信する送信手順、を実行させるためのストレージ制御プログラムである。
【発明の効果】
【００１６】
本発明によれば、バックアップ処理の負荷を軽減することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の第１の実施形態に係るストレージシステムの概要を説明するための図である。
【図２】本実施形態に係るストレージシステムの機能構成の一例を示す図である。
【図３】本実施形態に係るリングファイルの一例を示す表である。
【図４】本実施形態に係るパーティションを説明するための図である。
【図５】本実施形態に係るメタデータの一例を示す図である。
【図６】本実施形態に係るストレージシステムによる処理の流れの一例を示す図である。
【図７】本実施形態に係るストレージノードによる処理の流れの一例を示す図である。
【図８】従来の技術に係るストレージシステムの概要を説明するための図である。
【図９】本発明の第２の実施形態に係るストレージシステムの概要を説明するための図である。
【図１０】本実施形態に係るストレージシステムの機能構成の一例を示す図である。
【図１１】本実施形態に係る回線速度情報の一例を示す表である。
【図１２】本実施形態に係るストレージシステムによる処理の流れの一例を示す図である。
【図１３】本発明の第３の実施形態に係るストレージシステムの概要を説明するための図である。
【図１４】本実施形態に係るストレージシステムの機能構成の一例を示す図である。
【図１５】本実施形態に係るストレージシステムによる処理の流れの一例を示す図である。
【発明を実施するための形態】
【００１８】
＜第１の実施形態＞
以下、図面を参照しながら本発明の第１の実施形態について説明する。第１の実施形態に係るストレージシステムは、データを冗長化して複数のストレージノードに格納するとともに、当該オブジェクトのバックアップをバックアップノードに格納する。本明細書では、データのまとまりをオブジェクトと称する。また、本明細書では、オブジェクトのバックアップをバックアップノードに格納する処理をバックアップ処理と称する。
【００１９】
図１は、本発明の第１の実施形態に係るストレージシステムの概要を説明するための図である。ストレージシステム１は、いわゆるオブジェクトストレージシステムの構成を有し、オブジェクトの格納時には、冗長化計算などの数学的な演算処理を行わず、オブジェクトの複製であるバックアップオブジェクト（バックアップデータ）がそのまま記憶される。ストレージシステム１は、クライアント１０と、プロキシノード２０と、複数のストレージノード群３１と、バックアップ制御装置４０と、バックアップノード５０と、を備える。ストレージノード群３１各々は、複数のストレージノード３０を有する。
【００２０】
例えば、ストレージノード３０は、同一の施設などの拠点毎に複数まとめて設置され、拠点毎のストレージノード３０の集合が、ストレージノード群３１を構成する。クライアント１０は、プロキシノード２０と通信を行う。ストレージノード３０各々は、プロキシノード２０、バックアップ制御装置４０、及びバックアップノード５０と通信を行う。各装置の間の通信回線は、例えば、専用通信網、携帯電話網、ＶＰＮ（Virtual  Private  Network）網、ＷＡＮ（Wide  Area  Network）、ＬＡＮ（Local  Area  Network）などによって構成されてよく、これらの組み合わせによって構成されてもよい。
【００２１】
クライアント１０は、ストレージシステム１が備えるストレージにオブジェクトの書き込み要求や読み出し要求などを送信するコンピュータ装置であり、例えば、エンドユーザの端末装置やネットワークを介してリソースの提供などのサービスをエンドユーザに提供するサーバ装置である。クライアント１０は、オブジェクトの書き込みや読み出し、消去などをプロキシノード２０に要求する。
【００２２】
プロキシノード２０は、サーバ装置であり、クライアント１０からの要求に応じて、各ストレージノード３０に対して処理を振り分ける。例えば、プロキシノード２０は、クライアント１０からオブジェクトの書き込み要求を受け付けると、全てのストレージノード３０から所定の数のストレージノード３０を選択し、選択したストレージノード３０にオブジェクトの書き込み要求を送信する。ここで、本例では、所定の数は３つとするが、所定の数は２つであってもよいし、４つ以上の複数でもあってもよい。すなわち、この一例において、３つのストレージノード各々は、同一のオブジェクトを格納する。また、プロキシノード２０は、同一のストレージノード群３１に属するストレージノード３０は選択しない。このように、各オブジェクトは、異なる拠点の複数のストレージノード３０に格納される。
【００２３】
また、例えば、プロキシノード２０は、クライアント１０からオブジェクトの読み出し要求を受け付けると、当該オブジェクトを格納する複数のストレージノード３０から１つを選択し、オブジェクトの読み出し要求を送信する。各オブジェクトは、複数のストレージノード３０に冗長化されているため、仮にオブジェクトを格納するストレージノード３０のいずれかが破損したとしても、プロキシノード２０は、正常に稼働しているストレージノード３０からオブジェクトを読み出し、クライアント１０に送信することができる。
【００２４】
バックアップ制御装置は、ストレージノード３０の格納するオブジェクトのバックアップ処理を制御する。例えば、バックアップ制御装置４０は、定期的に全てのストレージノード３０に対して、バックアップ処理の開始を要求するバックアップ要求を送信する。
【００２５】
ストレージノード３０は、プロキシノード２０またはバックアップ制御装置４０から受信した要求に応じて処理を行う。プロキシノード２０からオブジェクトの書き込み要求や読み出し要求を受信した場合、ストレージノード３０は、当該オブジェクトを書き込んだり、読み出してプロキシノード２０に送信したりする。バックアップ制御装置４０からバックアップ要求を受信した場合、ストレージノード３０は、自装置の格納するオブジェクトの複製をバックアップノード５０に格納させるためのバックアップ処理を開始する。
【００２６】
バックアップ処理において、ストレージノード３０は、バックアップノード５０に対して、タイムスタンプ要求を送信する。タイムスタンプ要求とは、自装置が格納するオブジェクトに対応するバックアップオブジェクトの更新時点を示す更新時点情報の送信を要求するものである。次に、ストレージノード３０は、タイムスタンプ要求に応じて、バックアップノード５０から送信されたタイムスタンプ応答を取得する。次に、ストレージノード３０は、自装置に格納されているオブジェクトの更新時点と、バックアップオブジェクトの更新時点とを比較する。そして、自装置に格納されているオブジェクトの更新時点の方が新しい場合、ストレージノード３０は、当該オブジェクトをバックアップノード５０に送信することで、当該オブジェクトの複製を要求する。これに対し、自装置に格納されているオブジェクトの更新時点の方が新しくない場合、ストレージノード３０は、当該オブジェクトを、バックアップノード５０に送信しない。
【００２７】
バックアップノード５０は、いわゆるバックアップストレージであり、ストレージノード３０から受信したタイムスタンプ要求とオブジェクトの複製要求とに応じた処理を行う。ストレージノード３０から、タイムスタンプ要求を受信した場合、バックアップノード５０は、自装置に格納されているオブジェクトの更新時点を示すタイムスタンプを、タイムスタンプ要求の送信元のストレージノード３０に送信する。バックアップノード５０は、ストレージノード３０からオブジェクトを受信した場合、当該オブジェクトを自装置に格納する。
【００２８】
以上のように、ストレージシステム１は、バックアップ処理において、ストレージノード３０が格納するオブジェクトを送信する前に、タイムスタンプ要求とタイムスタンプ応答とを通信する。そして、ストレージノード３０が格納するオブジェクトの更新時点が新しい場合にのみ、ストレージノード３０は、当該オブジェクトをバックアップノード５０に送信する。これにより、冗長化されたオブジェクトが複数回バックアップノード５０に送信されることを避けることができる。その結果、ストレージシステム１は、ストレージノード３０とバックアップノード５０との間におけるオブジェクトの通信回数を低減し、回線にかかる負荷を軽減することができる。また、ストレージシステム１は、ストレージノード３０によるオブジェクトの送信処理およびバックアップノード５０におけるオブジェクトの書き込み処理の回数を低減し、ストレージノード３０およびバックアップノード５０にかかる負荷を軽減することができる。
【００２９】
次に、ストレージシステム１の各装置の構成について説明する。図２は、ストレージシステム１の機能構成の一例を示す図である。図２の例において、プロキシノード２０は１つであり、ストレージノード３０は３つであり、バックアップノード５０は１つであるとして説明する。
【００３０】
プロキシノード２０は、通信部２１０と、記憶部２２０と、プロキシノード制御部２３０と、を備える。
通信部２１０は、クライアント１０、ストレージノード３０−１〜３０−３と通信を行う。
【００３１】
記憶部２２０は、例えば、ＨＤＤ（Hard  Disc  Drive；ハードディスク記憶装置）、ＳＳＤ（Solid  State  Drive；半導体記憶装置）、ＥＥＰＲＯＭ（Electrically  Erasable  Programmable  Read  Only  Memory；書き換え可能不揮発性メモリ）、ＲＯＭ（Read  Only  Memory）、またはＲＡＭ（Random  Access  Memory）などを備え、プロキシノード２０の備えるＣＰＵ（Central  Processing  Unit；中央演算装置）が実行する各種プログラム（ファームウェアやアプリケーションプログラムなど）やＣＰＵが実行した処理の結果などを格納する。プロキシノード制御部２３０は、例えば、記憶部２２０に格納されたプログラムをＣＰＵが実行することにより機能する。
【００３２】
また、記憶部２２０は、リングファイル記憶部２２１を備える。リングファイル記憶部２２１は、オブジェクトを識別するためのオブジェクト識別情報とオブジェクトの格納先のストレージノード３０とを対応付けるためのリングファイルを格納する。リングファイルは、ストレージノード３０−１〜３０−３およびバックアップノード５０にも格納され、これらのリングファイルの内容は同一である。リングファイルは、システム構築時やシステムへの装置の追加時に、各装置に配布され、格納される。
【００３３】
オブジェクトの格納先を算出するためのパーティション番号は、オブジェクト識別情報から一意に決定される。本例では、オブジェクト識別情報に対するハッシュ値の上位ｍビットが、当該オブジェクトのパーティション番号である。図３は、リングファイルの一例を示す表Ｔ１である。リングファイルは、パーティション番号毎に、オブジェクトの格納先であるストレージノード３０の識別情報を対応させる。表Ｔ１は、オブジェクトの格納先として第１から第３の格納先ディスクＩＤを示すため、同一のオブジェクトを３つのストレージノード３０に格納することができる。また、表Ｔ１には、第１から第３の格納先ディスクに異常が生じている場合に、仮の格納先として、退避先ディスクＩＤが示されている。これらの格納先ディスクは、２ｎ個のパーティション番号を有し、そのいずれかがオブジェクトの格納先として、リングファイルにより指定される。
【００３４】
例えば、オブジェクト識別情報から算出されたパーティション番号が「１」の場合、当該オブジェクトの格納先は第１、第２、第３の格納先ディスクＩＤ各々に対応する「ａ」、「ｂ」、「ｃ」という識別情報が示すストレージノード３０各々である。これにより、パーティション番号が「１」であるオブジェクトは、「ａ」、「ｂ」、「ｃ」の識別情報が示すストレージノード３０各々のパーティション番号「１」に格納される。このようにリングファイルは、同一のオブジェクトの格納先が、同一のストレージノード群３１に属するストレージノード３０とならないようにパーティション番号と格納先ディスクＩＤとを対応付けることにより、オブジェクトの格納先を適切に振り分ける機能を有する。
【００３５】
図４は、パーティションを説明するための図である。図４において、リストＬ１は、パーティション番号「５２」に、「０２４１．ｄａｔａ」、「０４３２．ｄａｔａ」という名称のオブジェクトを格納していることを示す。リストＬ２は、パーティション番号「２０５」に、「０３１４．ｄａｔａ」、「０４３１．ｄａｔａ」という名称のオブジェクトを格納していることを示す。リストＬ３は、パーティション番号「７１２」に、「０３２４．ｄａｔａ」、「０５３１．ｄａｔａ」、「０６２１．ｄａｔａ」という名称のオブジェクトを格納していることを示す。このように、ストレージノード３０は、１つのパーティションに複数のオブジェクトを格納してよい。
【００３６】
プロキシノード２０の説明に戻る（図２）。プロキシノード制御部２３０は、通信部２１０がクライアント１０から受信した要求に基づいて、処理を行う。通信部２１０がクライアント１０からオブジェクトの書き込み要求を受信した場合、プロキシノード制御部２３０は、オブジェクト識別情報からハッシュ値を算出する。プロキシノード制御部２３０は、リングファイル記憶部２２１のリングファイルを参照し、算出したハッシュ値に基づくパーティション番号から、格納先ディスクＩＤを取得する。プロキシノード制御部２３０は、通信部２１０を介して、オブジェクトの書き込み要求を、取得した格納先ディスクＩＤが示すストレージノード３０各々に送信する。通信部２１０が、当該書き込み要求に応じてストレージノード３０から送信された書き込み完了応答を、例えば、２つのストレージノード３０から受信すると、プロキシノード制御部２３０は、書き込み完了応答をクライアント１０に送信する。このように、全ての格納先ディスクへの書き込みが完了する前に書き込み完了応答を送信することで、ストレージシステム１は、クライアント１０に対して速やかに応答を行うことができる。
【００３７】
通信部２１０がクライアント１０からオブジェクトの読み出し要求を受信した場合、プロキシノード制御部２３０は、オブジェクト識別情報からハッシュ値を算出する。プロキシノード制御部２３０は、リングファイル記憶部２２１のリングファイルを参照し、算出したハッシュ値に基づくパーティション番号から、例えば、第１の格納先ディスクＩＤを取得する。プロキシノード制御部２３０は、オブジェクトの読み出し要求を、取得した第１の格納先ディスクＩＤが示すストレージノード３０に送信する。通信部２１０が、当該読み出し要求に応じてストレージノード３０から送信されたオブジェクトを受信すると、プロキシノード制御部２３０は、当該オブジェクトをクライアント１０に送信する。
【００３８】
次に、バックアップ制御装置４０の構成について説明する。バックアップ制御装置４０は、通信部４１０と、記憶部４２０と、バックアップ制御部４３０と、を備える。
通信部４１０は、ストレージノード３０−１〜３０−３と通信を行う。
【００３９】
記憶部４２０は、例えば、ＨＤＤやＳＳＤ、ＥＥＰＲＯＭ、ＲＯＭ、ＲＡＭなどを備え、バックアップ制御装置４０のＣＰＵが実行する各種プログラム（ファームウェアやアプリケーションプログラムなど）やＣＰＵが実行した各種の処理の結果を格納する。バックアップ制御部４３０は、例えば、記憶部４２０に格納されたプログラムをＣＰＵが実行することにより機能する。また、記憶部４２０は、バックアップ制御装置４０がストレージノード３０に対して、バックアップ要求を送信した時点を示す前回処理時点情報を格納する。
【００４０】
バックアップ制御部４３０は、時点指定部４３１を備える。時点指定部４３１は、バックアップ処理の開始を制御する。時点指定部４３１は、現在の時点を監視し、予め定められたバックアップ処理の開始時点であるか否かを判定する。現在の時点がバックアップ処理の開始時点である場合、時点指定部４３１は、取得した前回処理時点情報を含むバックアップ要求を生成する。時点指定部４３１は、通信部４１０を介して、生成したバックアップ要求を、ストレージノード３０−１〜３０−３に送信する。すなわち、この一例において、時点指定部４３１は、前回処理時点情報が示す時点を所定の時点として指定する。時点指定部４３１は、バックアップ要求を送信すると、当該送信時点を示す情報を前回処理時点情報として記憶部４２０に格納する。バックアップ要求に応じてストレージノード３０−１〜３０−３から送信されたバックアップ処理の完了を示すバックアップ完了応答を通信部４１０が受信すると、時点指定部４３１は、処理を終了する。
【００４１】
次に、ストレージノード３０の構成について説明する。ストレージノード３０は、通信部３１０と、記憶部３２０と、ストレージノード制御部３３０と、を備える。
通信部３１０は、プロキシノード２０、バックアップ制御装置４０、およびバックアップノード５０と通信を行う。
【００４２】
記憶部３２０は、例えば、ＨＤＤやＳＳＤ、ＥＥＰＲＯＭ、ＲＯＭ、ＲＡＭなどを備え、ストレージノード３０のＣＰＵが実行する各種プログラム（ファームウェアやアプリケーションプログラムなど）やＣＰＵが実行した各種の処理の結果を格納する。ストレージノード制御部３３０は、例えば、記憶部３２０に格納されたプログラムをＣＰＵが実行することにより機能する。
【００４３】
また、記憶部３２０は、オブジェクト記憶部３２１と、メタデータ記憶部３２２と、リングファイル記憶部３２３と、を備える。オブジェクト記憶部３２１は、オブジェクトを格納する。メタデータ記憶部３２２は、オブジェクト記憶部３２１に格納されているオブジェクト各々の概要を示すメタデータを格納する。リングファイル記憶部３２３は、リングファイルを格納する。
【００４４】
図５は、メタデータの一例を示す図である。メタデータＬ４は、オブジェクト毎に存在する。メタデータＬ４には、「Ａｃｃｏｕｎｔ」、「Ｃｏｎｔａｉｎｅｒ」、「Ｏｂｊｅｃｔ」、「Ｃｏｎｔｅｎｔ  Ｔｙｐｅ」、「Ｃｏｎｔｅｎｔ  Ｌｅｎｇｔｈ」、「Ｌａｓｔ  Ｍｏｄｉｆｉｅｄ」、「Ａｃｃｅｐｔ−Ｒａｎｇｅｓ」、「Ｘ−Ｔｉｍｅｓｔａｍｐ」が記憶されている。「Ａｃｃｏｕｎｔ」は、例えば、オブジェクトを作成したクライアント１０の識別情報を示し、本例では「ＡＵＴＨ＿ｔｅｓｔ」である。「Ｃｏｎｔａｉｎｅｒ」は、「Ａｃｃｏｕｎｔ」の下位に属する項目であり、例えば、オブジェクトを整理するためにクライアント１０により設定される管理区分である。本例において、「Ｃｏｎｔａｉｎｅｒ」は、「ｆｏｌｄｅｒ１」である。「Ｏｂｊｅｃｔ」は、「Ｃｏｎｔａｉｎｅｒ」の下位に属する項目であり、オブジェクトに対して与えられた名称を示す。本例では、「ｔｅｓｔＯｂｊｅｃｔ．ｒｂ」である。本例において、「Ａｃｃｏｕｎｔ」、「Ｃｏｎｔａｉｎｅｒ」、「Ｏｂｊｅｃｔ」の３つがオブジェクトの識別するためのオブジェクト識別情報を構成し、当該オブジェクト識別情報のハッシュ値に基づいてオブジェクトが格納されるパーティション番号が一意に決定される。
【００４５】
「Ｃｏｎｔｅｎｔ  Ｔｙｐｅ」は、オブジェクトの内容の形式を示す。「Ｃｏｎｔｅｎｔ  Ｌｅｎｇｔｈ」は、オブジェクトのデータ長を示す。「Ｌａｓｔ  Ｍｏｄｉｆｉｅｄ」は、オブジェクトの最終更新時点を示す。本例において、「Ｌａｓｔ  Ｍｏｄｉｆｉｅｄ」は、「Ｗｅｄ，  ２３  Ｊａｎ  ２０１３  ０５：１２：２３  ＧＭＴ」であり、オブジェクトの最終更新時点が「西暦２０１３年１月２３日水曜日５時１２分２３秒」であることを示している。
【００４６】
「Ａｃｃｅｐｔ−Ｒａｎｇｅｓ」は、オブジェクトの一部を指定するための単位のレンジ単位を示す。「Ｘ−Ｔｉｍｅｓｔａｍｐ」は、オブジェクトが格納された時点を示すタイムスタンプであり、更新時点情報である。「Ｘ−Ｔｉｍｅｓｔａｍｐ」は、「１３５８９１７９４３．５９０７９」であり、コード化されている。当該コードを解析することで、オブジェクトの格納時点を取得することができる。
【００４７】
ストレージノード制御部３３０は、オブジェクト制御部３３１と、抽出部３３２と、判定部３３３と、を備える。
オブジェクト制御部３３１は、オブジェクトおよびメタデータの送受信、書き込み、読み出しを制御する。通信部３１０が、プロキシノード２０からオブジェクトの書き込み要求を受信すると、オブジェクト制御部３３１は、当該オブジェクトをオブジェクト記憶部３２１に格納し、当該オブジェクトのメタデータをメタデータ記憶部３２２に格納する。このとき、オブジェクト制御部３３１は、オブジェクトをオブジェクト記憶部３２１に格納した時点についての情報を、更新時点情報として、メタデータ記憶部３２２が格納するメタデータに書き込む。オブジェクト制御部３３１は、オブジェクトとメタデータとの格納が完了すると、通信部３１０を介して、オブジェクトの書き込み完了応答をプロキシノード２０に送信する。
【００４８】
通信部３１０が、プロキシノード２０からオブジェクトの読み出し要求を受信すると、オブジェクト制御部３３１は、オブジェクト識別情報からハッシュ値を算出する。オブジェクト制御部３３１は、算出したハッシュ値からオブジェクトを格納するパーティション番号を取得する。オブジェクト制御部３３１は、取得したパーティション番号からオブジェクトを読み出すとともに、当該オブジェクトのメタデータを、メタデータ記憶部３２２から読み出す。オブジェクト制御部３３１は、読み出したオブジェクトとメタデータとを、プロキシノード２０に送信する。
【００４９】
通信部３１０が、バックアップ制御装置４０からバックアップ要求を受信すると、オブジェクト制御部３３１は、バックアップ要求に含まれる前回処理時点情報を抽出部３３２に出力する。
【００５０】
抽出部３３２は、自装置が格納するオブジェクトから複製対象のオブジェクトを抽出する。抽出部３３２は、オブジェクト制御部３３１から前回処理時点情報を取得すると、メタデータ記憶部３２２を参照し、更新時点情報が示す更新時点が、前回処理時点情報が示す時点よりも新しいオブジェクトのメタデータを抽出する。抽出部３３２は、抽出したメタデータを判定部３３３に出力する。メタデータ記憶部３２２が格納するメタデータのうち、更新時点情報が示す更新時点が、前回処理時点情報が示す時点よりも新しい全てのメタデータについて、判定部３３３による判定処理またはバックアップノード５０への複製処理が完了した場合、抽出部３３２は、通信部３１０を介して、バックアップ完了応答をバックアップ制御装置４０に送信する。
【００５１】
判定部３３３は、複製対象のオブジェクトの更新時点が当該オブジェクトに対応するバックアップオブジェクトの更新時点に比して新しいか否かを判定する。バックアップオブジェクトとは、ストレージノード３０からバックアップノード５０に複製されたオブジェクトのことであり、例えば、オブジェクト識別情報が同一であるオブジェクトのことである。また、ここでは、一例として、更新時点とは、メタデータの「X-Timestamp」が示す時刻のこととする。
【００５２】
判定部３３３は、抽出部３３２からメタデータを取得すると、当該メタデータのオブジェクト識別情報を含むタイムスタンプ要求を生成する。判定部３３３は、生成したタイムスタンプ要求を、バックアップノード５０に送信する。通信部３１０が、タイムスタンプ要求に応じてバックアップノード５０から送信されたタイムスタンプ応答を受信すると、判定部３３３は、自装置が格納するメタデータに含まれる更新時点情報が示す更新時点が、受信したタイムスタンプ応答に含まれる更新時点情報が示す更新時点よりも新しいか否かを判定する。自装置が格納するオブジェクトの更新時点情報が示す時点の方が新しい場合、判定部３３３は、当該オブジェクトおよびそのメタデータをバックアップノード５０に送信することで、オブジェクトの複製を要求する。
【００５３】
次に、バックアップノード５０の構成について説明する。バックアップノード５０は、通信部５１０と、記憶部５２０と、バックアップノード制御部５３０と、を備える。
通信部５１０は、ストレージノード３０−１〜３０−３と通信を行う。
【００５４】
記憶部５２０は、例えば、ＨＤＤやＳＳＤ、ＥＥＰＲＯＭ、ＲＯＭ、ＲＡＭなどを備え、バックアップノード５０のＣＰＵが実行する各種プログラム（ファームウェアやアプリケーションプログラムなど）やＣＰＵが実行した各種の処理の結果を格納する。バックアップノード制御部５３０は、例えば、記憶部５２０に格納されたプログラムをＣＰＵが実行することにより機能する。
【００５５】
また、記憶部５２０は、オブジェクトを格納するバックアップオブジェクト記憶部５２１と、バックアップオブジェクト記憶部５２１が格納するオブジェクトのメタデータを格納するバックアップメタデータ記憶部５２２と、リングファイルを格納するリングファイル記憶部５２３と、を備える。
【００５６】
バックアップノード制御部５３０は、バックアップオブジェクト制御部５３１と、バックアップメタデータ制御部５３２と、を備える。
バックアップオブジェクト制御部５３１は、通信部５１０が、ストレージノード３０−１〜３０−３からオブジェクトおよびメタデータを受信すると、当該オブジェクトによりバックアップオブジェクト記憶部５２１に格納されている同一の識別情報を有するオブジェクトを上書きする。バックアップオブジェクト制御部５３１は、当該上書き処理が完了した時点を示す複製時点情報をバックアップメタデータ制御部５３２に出力する。
【００５７】
バックアップメタデータ制御部５３２は、通信部５１０が受信したメタデータにより、バックアップメタデータ記憶部５２２に格納されている同一のオブジェクトについてのメタデータを上書きする。また、バックアップメタデータ制御部５３２は、バックアップオブジェクト制御部５３１から取得した複製時点情報に基づいて、バックアップメタデータ記憶部５２２が格納する更新時点情報を更新する。バックアップメタデータ制御部５３２は、当該更新が完了すると、通信部５１０を介して、オブジェクトおよびそのメタデータの書き込み完了応答を、当該データの送信元のストレージノード３０−１〜３０−３に送信する。
【００５８】
バックアップメタデータ制御部５３２は、通信部５１０が、ストレージノード３０−１〜３０−３からタイムスタンプ要求を受信すると、タイムスタンプ要求に含まれるオブジェクト識別情報を取得する。バックアップメタデータ制御部５３２は、バックアップメタデータ記憶部５２２を参照し、取得したオブジェクト識別情報に基づいて、メタデータを抽出する。バックアップメタデータ制御部５３２は、抽出したメタデータの更新時刻情報を取得し、当該更新時刻情報を含むタイムスタンプ応答を生成する。バックアップメタデータ制御部５３２は、生成したタイムスタンプ応答を、タイムスタンプ要求の送信元のストレージノード３０−１〜３０−３に送信する。
【００５９】
次に、ストレージシステム１の有する各装置の動作について説明する。図６は、ストレージシステム１によるバックアップ処理の流れの一例を示す図である。まず、バックアップ制御装置４０の時点指定部４３１は、現在の時点を監視し、バックアップ処理の開始時点であるか否かを判定する。ここで、バックアップ処理の開始時点とは、例えば、毎日の予め定められた時刻などであり、自由に設定されてよい。現在の時点がバックアップ処理の開始時点である場合、時点指定部４３１は、記憶部４２０から前回処理時点情報を取得する。次に、時点指定部４３１は、取得した前回処理時点情報を含むバックアップ要求を生成し、生成したバックアップ要求を、通信部４１０を介して、全てのストレージノード３０−１〜３０−３に送信する（ステップＳ１０１）。これにより、以下のステップＳ１０２〜Ｓ１０９によるバックアップ処理が開始される。
【００６０】
次に、ストレージノード３０−１〜３０−３各々において、通信部３１０が、バックアップ制御装置４０からバックアップ要求を受信すると、オブジェクト制御部３３１は、バックアップ要求に含まれる前回処理時点情報を抽出部３３２に出力する。次に、抽出部３３２は、オブジェクト制御部３３１から前回処理時点情報を取得すると、メタデータ記憶部３２２を参照し、更新時点情報が示す更新時点が、前回処理時点情報が示す時点よりも新しいオブジェクトのメタデータを抽出する（ステップＳ１０２）。本明細書において、新しいとは、例えば、時点が年月日及び時刻などの数値で示される場合、数値同士を比較し多場合に、値が大きいことである。このように、抽出部３３２は、前回処理時点とオブジェクトの更新時点とを比較することにより、前回処理時点よりもオブジェクトの更新時点が新しいオブジェクトのメタデータを抽出する。次に、抽出部３３２は、抽出したメタデータを判定部３３３に出力する。
【００６１】
判定部３３３は、抽出部３３２からメタデータを取得すると、当該メタデータが示すオブジェクト識別情報を含むタイムスタンプ要求を生成する。次に、判定部３３３は、生成したタイムスタンプ要求を、通信部３１０を介して、バックアップノード５０に送信する（ステップＳ１０３）。
【００６２】
バックアップノード５０の通信部５１０が、ストレージノード３０−１〜３０−３からタイムスタンプ要求を受信すると、バックアップメタデータ制御部５３２は、タイムスタンプ要求に含まれるオブジェクト識別情報を取得する。次に、バックアップメタデータ制御部５３２は、バックアップメタデータ記憶部５２２を参照し、抽出したオブジェクト識別情報に基づいて、メタデータを抽出する。次に、バックアップメタデータ制御部５３２は、抽出したメタデータに含まれる更新時点情報を取得し、当該更新時点情報を含むタイムスタンプ応答を生成する。バックアップメタデータ制御部５３２は、生成したタイムスタンプ応答を、通信部５１０を介して、タイムスタンプ要求の送信元のストレージノード３０−１〜３０−３に送信する（ステップＳ１０４）。また、バックアップメタデータ記憶部５２２に該当するオブジェクトのメタデータが存在しない場合は、オブジェクトが格納されていないことを、タイムスタンプ要求の送信元のストレージノード３０−１〜３０−３に送信する。
【００６３】
ストレージノード３０−１〜３０−３各々において、通信部３１０が、バックアップノード５０から送信されたタイムスタンプ応答を受信すると、判定部３３３は、自装置が格納するメタデータに含まれる更新時点情報が示す更新時点が、受信したタイムスタンプ応答に含まれる更新時点情報が示す更新時点よりも新しいか否かを判定する（ステップＳＳ１０５）。自装置が格納するオブジェクトの更新時点の方が新しい場合（ステップＳ１０５；ＹＥＳ）、判定部３３３は、当該オブジェクトおよびそのメタデータをバックアップノード５０に送信する（ステップＳ１０６）。自装置が格納するオブジェクトの更新時点の方が新しくない場合（ステップＳ１０５；ＮＯ）、ステップＳ１０９に遷移する。通信部３１０が、バックアップノード５０からオブジェクトが格納されていない旨の通知を受信した場合は、ステップ１０６の処理を行う。
【００６４】
バックアップノード５０の通信部５１０が、ストレージノード３０−１〜３０−３からオブジェクトおよびメタデータを受信すると、バックアップオブジェクト制御部５３１は、当該オブジェクトにより、バックアップオブジェクト記憶部５２１に格納されている同一の識別情報を有するオブジェクトを上書きする（ステップＳ１０７）。同様に、バックアップメタデータ制御部５３２は、通信部５１０が受信したメタデータにより、バックアップメタデータ記憶部５２２に格納されている同一のオブジェクトについてのメタデータを上書きする。
【００６５】
次に、バックアップメタデータ制御部５３２は、当該更新が完了すると、オブジェクトおよびそのメタデータの複製完了応答を、当該データの送信元のストレージノード３０−1〜３０−３に送信する（ステップＳ１０８）。
【００６６】
ストレージノード３０−１〜３０−３各々において、通信部３１０が、バックアップノード５０から送信された複製完了応答を受信すると、抽出部３３２は、メタデータ記憶部３２２を参照し、メタデータに含まれる更新時点情報が示す更新時点が、前回処理時点情報が示す時点よりも新しいオブジェクトのメタデータを全て抽出したか否かを判定する（ステップＳ１０９）。全てのオブジェクトが抽出されていない場合（ステップＳ１０９；ＮＯ）、ステップＳ１０２に戻り、次のオブジェクトを抽出する。全てのオブジェクトが抽出されていた場合（ステップＳ１０９；ＹＥＳ）、判定部３３３は、バックアップ完了応答をバックアップ制御装置４０に送信する（ステップＳ１１０）。
【００６７】
図７は、ストレージノード３０による処理の流れの一例を示す図である。まず、ストレージノード３０の通信部３１０が、バックアップ制御装置４０からバックアップ要求を受信すると、オブジェクト制御部３３１は、バックアップ要求に含まれる前回処理時点情報を抽出部３３２に出力する。次に、抽出部３３２は、オブジェクト制御部３３１から前回処理時点情報を取得する。次に、抽出部３３２は、メタデータ記憶部３２２を参照し、メタデータを取得する（ステップＳ２０１）。
【００６８】
次に、抽出部３３２は、取得したメタデータの更新時点情報が示す更新時点が、前回処理時点情報が示す時点よりも新しいか否かを判定する（ステップＳ２０２）更新時点情報が示す更新時点が、前回処理時点情報が示す時点よりも新しい場合（ステップＳ２０２；ＮＯ）、ステップＳ２０６に遷移する。更新時点情報が示す更新時点が、前回処理時点情報が示す更新時点よりも新しい場合（ステップＳ２０２；ＹＥＳ）、抽出部３３２は、当該メタデータを判定部３３３に出力する。
【００６９】
次に判定部３３３は、抽出部３３２からメタデータを取得すると、当該メタデータのオブジェクト識別情報を含むタイムスタンプ要求を生成する。次に、判定部３３３は、生成したタイムスタンプ要求をバックアップノード５０にバックアップノード５０に送信することで、バックアップノードからタイムスタンプ応答を取得する（ステップＳ２０３）。次に、判定部３３３は、自装置が格納するメタデータに含まれる更新時点情報が示す更新時点が、受信したタイムスタンプ応答に含まれる更新時点情報が示す更新時点よりも新しいか否かを判定する。自装置が格納するオブジェクトの更新時点情報が示す更新時点の方が新しくない場合（ステップＳ２０４；ＮＯ）、ステップＳ２０６に遷移する。自装置が格納するオブジェクトの更新時点情報が示す更新時点の方が新しい場合（ステップＳ２０４；ＹＥＳ）、判定部３３３は、当該オブジェクトおよびそのメタデータをバックアップノード５０に送信することで、バックアップノード５０にオブジェクトを複製して格納させる（ステップＳ２０５）。
【００７０】
次に、抽出部３３２は、メタデータ記憶部３２２が格納するメタデータうち、更新時点情報が示す更新時点が、前回処理時点情報が示す時点よりも新しいオブジェクトのメタデータを全て抽出したか否かを判定する（ステップＳ２０６）。全てのオブジェクトが抽出されていた場合（ステップＳ２０６；ＹＥＳ）、判定部３３３は、バックアップ完了応答をバックアップ制御装置４０に送信し、処理を終了する。全てのオブジェクトが抽出されていない場合（ステップＳ２０６；ＮＯ）、ステップＳ２０１に戻る。
【００７１】
以上のように、ストレージノード３０は、自装置が格納するオブジェクトの更新時点と、バックアップノード５０が格納するオブジェクトの更新時点とを比較し、自装置が格納するオブジェクトの更新時点の方が新しい場合にのみ、当該オブジェクトをバックアップノード５０に送信する。これにより、冗長化されたオブジェクトが、複数回バックアップノード５０に送信されることを避けることができる。
【００７２】
従来、図８に示すような構成を備えるストレージシステム２が提案されてきた。このストレージシステム２は、クライアント１１と、プロキシノード２１と、ストレージノード群３４と、バックアップノード５１と、を備える。ストレージノード群３４には、複数のストレージノード３３が属する。
【００７３】
ストレージシステム２は、本実施形態１のストレージシステム１と同様に、オブジェクト６０をストレージノード３３に冗長化して格納する。また、バックアップノード５１には、矢印７０に示すように、ストレージノード３５から冗長化はせずにオブジェクト６０が送信され、オブジェクトの複製６１が格納される。
【００７４】
しかしながら、従来のストレージシステム２では、バックアップ処理におけるシステムへの負荷が高かった。従来のバックアップ処理には、例えば、バックアップノード５１に対して、複数のストレージノード３３から一斉にオブジェクトを送信する方法がある。しかしながら、ストレージシステム２において、同一のオブジェクトが複数のストレージノード３３に冗長化されているため、同一のオブジェクトの送信が複数回発生してしまう。そのため、通信回線、ストレージノード３３、バックアップノード５１への負荷が大きく、処理完了までに要する時間も長かった。また、従来のバックアップ処理には、例えば、プロキシノード２１が、複数のストレージノード３３において冗長化されたオブジェクトのうち、複製を行うオブジェクトを選択して読み出し、バックアップノード５１へとオブジェクトを送信する方法もある。しかしながら、この場合は、プロキシノード２１が行う処理量が増大し、クライアント１１からの要求に対する通常の処理が遅くなる可能性があった。バックアップ処理の間もクライアントへのサービスは継続する必要があり、このような状況は望ましくない。
【００７５】
これに対し、本実施形態のストレージシステム１は、それぞれが同一のオブジェクトを格納する複数のストレージノード３０と、複数のストレージノード３０と接続され、ストレージノード３０が格納するオブジェクトの複製であるバックアップオブジェクトを格納するバックアップノードと、を有する。また、ストレージノード３０は、自装置が格納するオブジェクトから複製対象のオブジェクトを抽出する抽出部と、複製対象のオブジェクトの更新時点が当該オブジェクトに対応するバックアップオブジェクトの更新時点に比して新しいか否かを判定する判定部３３３と、を備える。また、バックアップノード５０は、ストレージノード３０の判定部３３３による判定結果に基づいて、ストレージノード３０が格納するオブジェクトを複製して自装置に格納するバックアップノード制御部５３０、を備える。
【００７６】
これにより、ストレージシステム１は、バックアップノード５０に格納されているオブジェクトの更新時点に比して更新時点の新しいオブジェクトをストレージノード３０からバックアップノード５０に送信するため、オブジェクトが冗長化されていても、同一オブジェクトを複数回複製するような重複した処理を行わない。従って、オブジェクトの複製処理を最小限にし、処理時間も最小化するため、バックアップ処理の負荷を軽減することができる。
【００７７】
また、ストレージノード３０の抽出部３３２は、所定の時点より後に更新されたオブジェクトを複製対象のオブジェクトとして抽出する。これにより、前回のバックアップ処理から更新されていないオブジェクトを、バックアップ処理の対象から除くことができる。その結果、ストレージノード３０からバックアップノード５０へのタイムスタンプ要求の回数を低減することができ、バックアップ処理の負荷をさらに軽減することができる。
【００７８】
また、ストレージシステム１は、バックアップ制御装置４０を備え、バックアップ制御装置４０は、所定の時点を指定する時点指定部４３１を備える。これにより、バックアップ処理の開始の制御をストレージノード３０やプロキシノード２０以外の装置に行わせることができ、バックアップ処理におけるこれらの装置への負荷をさらに軽減することができる。その結果、クライアントからの要求に対する通常の処理を円滑に行うことができる。
【００７９】
＜第２の実施形態＞
以下、図面を参照しながら本発明の第２の実施形態について説明する。第２の実施形態に係るストレージシステムは、第１の実施形態に係るストレージシステム１と同様に、オブジェクトの冗長化とバックアップ処理とを行う。
【００８０】
図９は、本実施形態に係るストレージシステム１ａの概要を説明するための図である。ストレージシステム１ａは、クライアント１０ａと、プロキシノード２０ａと、ストレージノード群３１ａと、バックアップ制御装置４０ａと、バックアップノード５０ａと、を備える。ストレージノード群３１ａ各々は、複数のストレージノード３０ａを有する。ストレージシステム１ａの各構成は、第１の実施形態に係るストレージシステム１の相互に各構成と同様に接続されている。
【００８１】
上述の本実施形態に係るストレージシステム１ａの構成のうち、クライアント１０ａ、プロキシノード２０ａ、ストレージノード３０ａ、バックアップノード５０ａ各々は、第１の実施形態に係るストレージシステム１の、クライアント１０、プロキシノード２０、ストレージノード３０、バックアップノード５０各々と同一の機能構成を備えるため、説明を省略し、本実施形態に係る特徴的な構成であるストレージノード群３１ａと、バックアップ制御装置４０ａと、について説明する。
【００８２】
ストレージノード３０ａは、第１の実施形態に係るストレージノード３０と同様、同一の施設などの拠点毎に複数まとめて設置され、拠点毎のストレージノード３０ａの集合が、ストレージノード群３１ａを構成する。例えば、図９において、ストレージノード群３１ａは、左から「拠点Ａ、Ｂ、Ｃ、…」に存在し、バックアップノード５０ａは、拠点Ｘに存在する。ストレージノード群３１ａに含まれるストレージノード３０ａ各々は、バックアップノード５０ａとの通信に利用する回線を共有し、その回線速度は拠点毎に設定されている。
【００８３】
本実施形態に係るストレージシステム１ａは、ストレージノード３０ａが存在する拠点とバックアップノード５０ａが存在する拠点との間の通信回線の回線速度に基づいて、バックアップ処理を行うストレージノード３０ａを選択する。具体的には、ストレージシステム１ａは、接続されている通信回線の回線速度がより速いストレージノード３０ａから、順次バックアップ処理を実行することで、通信回線への負荷を軽減する機能を有する。
【００８４】
図１０は、ストレージシステム１ａの機能構成の一例を示す図である。図１０の例において、プロキシノード２０ａは１つであり、ストレージノード３０ａは３つであり、バックアップノード５０ａは１つであるとして説明する。ストレージノード３０ａ−１〜３０ａ−３は、それぞれ異なるストレージノード群３１ａに属し、それぞれ拠点Ａ、Ｂ、Ｃに存在する。バックアップ制御装置４０ａは、拠点Ｘに存在する。
【００８５】
バックアップ制御装置４０ａは、通信部４１０ａと、記憶部４２０ａと、バックアップ制御部４３０ａと、を備える。
通信部４１０ａは、ストレージノード３０ａ−１〜３０ａ−３と通信を行う。
記憶部４２０ａは、第１の実施形態に係るバックアップ制御装置４０の記憶部４２０が備える構成に加え、回線速度記憶部４２１ａを備える。
【００８６】
回線速度記憶部４２１ａは、ストレージノード３０ａ−１〜３０ａ−３各々の拠点とバックアップノード５０との間の通信回線の回線速度についての回線速度情報を格納する。図１１は、回線速度情報の一例を示す表Ｔ２である。この表２において、回線番号は、ストレージノード３０ａ−１〜３０ａ−３各々の拠点とバックアップノード５０との間の通信回線の識別情報である。接続点１及び接続点２は、通信回線の末端に位置する装置が存在する拠点を示す。回線速度は、通信回線の回線速度を示し、接続点１と接続点２との間の通信速度の理論値を示す。
【００８７】
例えば、回線番号が「１」の通信回線は、接続点１が「拠点Ａ」であり、接続点２が「拠点Ｘ」であり、回線速度が「５００Ｍｂｐｓ」である。従って、回線番号が「１」である通信回線は、「拠点Ａ」に存在するストレージノード３０ａ−１と「拠点Ｘ」に存在するバックアップノード５０ａとの間の回線であり、当該回線の回線速度は「５００Ｍｂｐｓ」である。同様に、回線番号が「２」である通信回線は、「拠点Ｂ」に存在するストレージノード３０ａ−２と「拠点Ｘ」に存在するバックアップノード５０ａとの間の回線であり、当該回線の回線速度は「１Ｇｂｐｓ」である。同様に、回線番号が「３」である通信回線は、「拠点Ｃ」に存在するストレージノード３０ａ−３と「拠点Ｘ」に存在するバックアップノード５０ａとの間の回線であり、当該回線の回線速度は「１０Ｇｂｐｓ」である。
【００８８】
バックアップ制御装置４０ｂの説明に戻る（図１０）。バックアップ制御部４３０ａは、時点指定部４３１ａと、装置選択部４３２ａと、を備える。
時点指定部４３１ａは、バックアップ処理の開始を制御する。時点指定部４３１ａは、例えば、現在の時点を監視し、予め定められた所定の時点であるか否かを判定する。現在の時点が所定の時点である場合、時点指定部４３１ａは、記憶部４２０ａから前回処理時点情報を取得する。時点指定部４３１ａは、取得した前回処理時点情報を含むバックアップ要求を生成する。時点指定部４３１ａは、生成したバックアップ要求を装置選択部４３２ａに出力する。
【００８９】
装置選択部４３２ａは、ストレージノード３０ａが存在する拠点とバックアップノードが存在する拠点との間の回線速度に基づいて、バックアップ処理を行うストレージノード３０ａを選択する。すなわち、この一例において、装置選択部４３２ａは、ストレージノード３０ａとバックアップノード５０との間の回線速度に基づいて、ストレージノード３０ａを選択する。
【００９０】
装置選択部４３２ａは、時点指定部４３１ａからバックアップ要求を取得すると、回線速度記憶部４２１ａを参照し、回線速度情報を取得する。装置選択部４３２ａは取得した回線速度情報に基づき、回線速度の最も速い通信回線の末端の拠点に属するストレージノード３０ａを選択する。装置選択部４３２ａは、通信部４１０ａを介して、時点指定部４３１ａから取得したバックアップ要求を、選択したストレージノード３０ａに送信する。ここで、装置選択部４３２ａは、バックアップ要求の送信時点を示す前回処理時点情報を記憶部４２０ａに格納する。通信部４１０ａが、バックアップ要求に応じてストレージノード３０ａから送信されたバックアップ完了応答を受信すると、装置選択部４３２ａは、次に回線速度の速い通信回線の末端の拠点に属するストレージノード３０ａを選択し、バックアップ要求を当該ストレージノード３０ａに送信する。以下、装置選択部４３２ａは、全てのストレージノード３０ａを選択するまで、同様の処理を行う。通信部４１０ａが、全てのストレージノード３０ａからバックアップ完了応答を受信すると、装置選択部４３２ａは、処理を終了する。ただし、前回処理時点情報の格納は、最初の一回のみ行う。
【００９１】
次に、ストレージシステム１ａの有する各装置の動作について説明する。図１２は、ストレージシステム１ａによる処理の流れの一例を示す図である。まず、バックアップ制御装置４０ａの装置選択部４３２ａは、回線速度記憶部４２１ａを参照し、回線速度情報を取得する。装置選択部４３２ａは取得した回線速度情報に基づき、回線速度が最も回線の末端の拠点に属するストレージノード３０ａを選択する（ステップＳ３０１）。表Ｔ２の例では、回線番号が３の回線速度が「１０Ｇｂｐｓ」であり、最も速い。従って、装置選択部４３２ａは、回線番号３の接続点１である拠点Ｃに属するストレージノード３０ａ−３を選択する。次に、装置選択部４３２ａは、通信部４１０ａを介して、バックアップ要求を、選択したストレージノード３０ａ−３に送信する（ステップＳ３０２）。次に、ストレージノード３０ａ−３は、バックアップ要求を受信すると、図６を用いて説明した、ステップＳ１０２〜Ｓ１０９の処理を実行する（ステップＳ３０３）。特に、ステップＳ１０７の処理において、バクアップオブジェクト制御部５３１ａは、ストレージノード３０ａ―３から受信したオブジェクトをバックアップオブジェクト記憶部５２１に格納する。バックアップ処理が完了すると、ストレージノード３０ａ−３は、バックアップ制御装置４０ａにバックアップ完了応答を送信する（ステップＳ３０４）。
【００９２】
次に、バックアップ制御装置４０ａの通信部４１０ａがストレージノード３０ａ−３からバックアップ応答を受信すると、装置選択部４３２ａは、回線速度が２番目に速い回線の末端の拠点に属するストレージノード３０ａを選択する（ステップＳ３０５）。表Ｔ２の例では、回線番号が２の回線速度「１Ｇｂｐｓ」であり、２番目に速い。従って、装置選択部４３２ａは、回線番号２の接続点１である拠点Ｂに属するストレージノード３０ａ−２を選択する。次に、装置選択部４３２ａは、バックアップ要求を、選択したストレージノード３０ａ−２に送信する（ステップＳ３０６）。
【００９３】
次に、ストレージノード３０ａ−２は、バックアップ要求を受信すると、ステップＳ１０２〜Ｓ１０９の処理を実行する（ステップＳ３０７）。このステップでは、ストレージノード３０ａ−３が格納するオブジェクトのうち、故障などの原因によって複製されなかったオブジェクトのみ複製処理が行われる。複製されるオブジェクトの数は非常に少ないことが想定される。バックアップ処理が完了すると、ストレージノード３０ａ−２は、バックアップ制御装置４０ａにバックアップ完了応答を送信する（ステップＳ３０８）。
【００９４】
次に、バックアップ制御装置４０ａの通信部４１０ａがストレージノード３０ａ−２からバックアップ完了応答を受信すると、装置選択部４３２ａは、回線速度が３番目に速い回線の末端の拠点に属するストレージノード３０ａを選択する（ステップＳ３０９）。表Ｔ２の例では、回線番号３の回線速度が「５００Ｍｂｐｓ」であって、３つの回線の中で最も遅い回線である。従って、装置選択部４３２ａは、回線番号３の接続点１である拠点Ａに属するストレージノード３０ａ−１を選択する。次に、装置選択部４３２ａは、バックアップ要求を、選択したストレージノード３０ａ−１に送信する（ステップＳ３１０）。
【００９５】
次に、ストレージノード３０ａ−１は、バックアップ要求を受信すると、ステップＳ１０２〜Ｓ１０９の処理を実行する（ステップＳ３１１）。このステップでは、ストレージノード３０ａ−２、３０ａ−３が格納するオブジェクトのうち、故障などの原因によって複製されなかったオブジェクトのみ複製処理が行われる。ほとんどのオブジェクトについては複製処理が実施されないことが想定される。バックアップ処理が完了すると、ストレージノード３０ａ−１は、バックアップ制御装置４０ａにバックアップ完了応答を送信する（ステップＳ３１２）。そして、バックアップ制御装置４０ａの通信部４１０ａがストレージノード３０ａ−１からバックアップ完了応答を受信し、処理を終了する。
【００９６】
以上のように、本実施形態に係るストレージシステム１ａのバックアップ制御装置４０ａは、ストレージノード３０ａとバックアップノード５０ａとの間の回線速度に基づいてストレージノード３０ａを選択する装置選択部４３２ａを備える。また、バックアップノード５０ａのバックアップオブジェクト制御部５３１ａは、バックアップ制御装置４０ａの装置選択部４３２ａにより選択されたストレージノード３０ａが格納するオブジェクトを複製して自装置に格納する。これにより、バックアップ処理における通信回線の選択を最適化することができるため、通信回線にかかる負荷を軽減することができ、通信回線の利用に伴って発生するコストを抑えることができる。
【００９７】
＜第３の実施形態＞
以下、図面を参照しながら本発明の第３の実施形態について説明する。第３の実施形態に係るストレージシステムは、第１の実施形態に係るストレージシステム１と同様に、オブジェクトの冗長化とバックアップ処理とを行う。
【００９８】
図１３は、本実施形態に係るストレージシステム１ｂの概要を説明するための図である。ストレージシステム１ｂは、クライアント１０ｂと、プロキシノード２０ｂと、ストレージノード群３１ｂと、バックアップ制御装置４０ｂと、バックアップノード５０ｂと、を備える。ストレージノード群３１ｂ各々は、複数のストレージノード３０ｂを有する。ストレージシステム１ｂの各構成は、第１の実施形態に係るストレージシステム１と同様に、相互に接続されている。
【００９９】
本実施形態に係るストレージシステム１ｂは、冗長化される同一のオブジェクトについて、バックアップ処理の優先順位を付与する。図１３において、符号６０１ｂ、６０２ｂ、６０３ｂで示されるオブジェクト「Ａ１」、「Ａ２」、「Ａ３」は、いずれも冗長化された同一のオブジェクト「Ａ」であり、バックアップ処理における優先順位の「１」、「２」、「３」がそれぞれ付与されている。当該オブジェクトのバックアップは、符号６０４ｂにより示されるように、バックアップノード５０ｂに格納されている。
【０１００】
同様に、符号６１１ｂ、６１２ｂ、６１３ｂで示されるオブジェクト「Ｂ１」、「Ｂ２」、「Ｂ３」は、いずれも冗長化された同一のオブジェクト「Ｂ」である。当該オブジェクトのバックアップは、符号６１４ｂにより示されるように、バックアップノード５０ｂに格納されている。同様に、符号６２１ｂ、６２２ｂ、６２３ｂで示されるオブジェクト「Ｃ１」、「Ｃ２」、「Ｃ３」は、いずれも冗長化された同一のオブジェクト「Ｃ」である。当該オブジェクトのバックアップは、符号６２４ｂにより示されるように、バックアップノード５０ｂに格納されている。オブジェクトの格納時には、優先順位の高いオブジェクトが特定のストレージノード３０ｂに集中しないように分配される。
【０１０１】
ストレージシステム１ｂは、バックアップ処理において、付与された優先順位が高いオブジェクトからバックアップ処理を実行する。初めに優先順位１のオブジェクトが指定されると、ストレージノード３０ｂ各々は、自装置が格納する優先順位１のオブジェクトのバックアップ処理を実行する。ストレージノード３０ｂ各々によるバックアップ処理が完了すると、次に、優先順位２のオブジェクトが指定され、上述の処理と同様に、ストレージノード３０ｂ各々による優先順位２のオブジェクトのバックアップ処理が実行される。優先順位２のオブジェクトのバックアップ処理が完了すると、優先順位３のオブジェクトが指定され、上述の処理と同様に、ストレージノード３０ｂ各々による優先順位３のオブジェクトのバックアップ処理が実行される。
【０１０２】
このように、優先順位に基づいて、段階的にバックアップ処理を行うことにより、ストレージシステム１ｂは、ストレージノード３０ｂに格納されているオブジェクトの更新時点と、バックアップノード５０ｂに格納されているバックアップオブジェクトの更新時点と、の比較判定処理の発生回数を低減するため、バックアップ処理の負荷をさらに軽減することができる。
【０１０３】
上述の本実施形態に係るストレージシステム１ｂの構成のうち、クライアント１０ｂ、バックアップノード５０ｂ各々は、第１の実施形態に係るストレージシステム１の、クライアント１０、バックアップノード５０各々と同一の機能構成を備えるため、説明を省略し、本実施形態に係る特徴的な構成であるプロキシノード２０ｂと、ストレージノード３０ｂと、バックアップ制御装置４０ｂと、について説明する。
【０１０４】
図１４は、ストレージシステム１ｂの機能構成の一例を示す図である。図１４の例において、プロキシノード２０ｂは１つであり、ストレージノード３０ｂは３つであり、バックアップノード５０ｂは１つであるとして説明する。
【０１０５】
プロキシノード２０ｂは、通信部２１０ｂと、記憶部２２０ｂと、プロキシノード制御部２３０ｂと、を備える。
通信部２１０ｂは、クライアント１０ｂ、ストレージノード３０ｂ−１〜３０ｂ−３と通信を行う。
本実施形態に係るプロキシノード２０ｂの記憶部２２０ｂは、第１の実施形態に係るプロキシノード２０の記憶部２２０が備える構成と同様の構成を備える。
【０１０６】
プロキシノード制御部２３０ｂは、通信部２１０ｂがクライアント１０ｂから受信した要求に基づいて、処理を行う。通信部２１０ｂがクライアント１０ｂからオブジェクトの書き込み要求を受信した場合、プロキシノード制御部２３０ｂは、オブジェクト識別情報からハッシュ値を算出する。プロキシノード制御部２３０ｂは、リングファイル記憶部２２１ｂのリングファイルを参照し、算出したハッシュ値に基づくパーティション番号から、格納先ディスクＩＤを取得する。プロキシノード制御部２３０ｂは、通信部２１０ｂを介して、オブジェクトの書き込み要求を、取得した格納先ディスクＩＤが示すストレージノード３０ｂ各々に送信する。このときプロキシノード制御部２３０ｂは、ストレージノード３０ｂ−１〜３０−３各々に送信するオブジェクトに対し、１から３までの異なる優先順位を対応付けて送信する。
【０１０７】
ここで、各オブジェクトに対応付ける優先順位は、例えば、リングファイルに基づいて、決定してよい。例えば、第１の格納先ディスクＩＤのストレージノード３０ｂに送信するオブジェクトの優先順位を「１」とし、第２の格納先ディスクＩＤのストレージノード３０ｂに送信するオブジェクトの優先順位を「２」とし、第３の格納先ディスクＩＤのストレージノード３０ｂに送信するオブジェクトの優先順位を「３」としてよい。通信部２１０ｂがクライアント１０ｂからオブジェクトの読み出し要求を受信した場合、プロキシノード制御部２３０ｂは、第１の実施形態に係るプロキシノード２０の通信部２１０と同様の処理を行う。
【０１０８】
次に、バックアップ制御装置４０ｂの構成について説明する。バックアップ制御装置４０ｂは、通信部４１０ｂと、記憶部４２０ｂと、バックアップ制御部４３０ｂと、を備える。
通信部４１０ｂは、ストレージノード３０ｂ−１〜３０ｂ−３と通信を行う。
記憶部４２０ｂは、第１の実施形態に係るバックアップ制御装置４０の記憶部４２０が備える構成と同様の構成を備える。
【０１０９】
バックアップ制御部４３０ｂは、時点指定部４３１ｂと、順位指定部４３３ｂと、を備える。
時点指定部４３１ｂは、バックアップ処理の開始を制御する。時点指定部４３１ｂは、例えば、現在の時点を監視し、予め定められた所定の時点であるか否かを判定する。現在の時点が所定の時点である場合、時点指定部４３１ｂは、記憶部４２０ｂから前回処理時点情報を取得する。時点指定部４３１ｂは、取得した前回処理時点情報を順位指定部４３３ｂに出力する。
【０１１０】
順位指定部４３３ｂは、時点指定部４３１ｂから前回処理時点情報を取得すると、優先順位１を選択する。順位指定部４３３ｂは、選択した優先順位と取得した前回処理時点情報とを含むバックアップ要求を生成する。順位指定部４３３ｂは、生成したバックアップ要求を、通信部４１０ｂを介して、ストレージノード３０ｂ−１〜３０ｂ−３に送信する。ここで、順位指定部４３３ｂは、送信したバックアップ要求の送信時点を、前回処理時点情報として記憶部４２０ｂに格納する。
【０１１１】
通信部４１０ｂが、送信したバックアップ要求に応じてストレージノード３０ｂ−１〜３０ｂ−３各々から送信されたバックアップ完了応答を受信すると、順位指定部４３３ｂは、前回のバックアップ要求生成時の優先順位から順位を１段階下げ、当該優先順位と前回処理時点情報とを含むバックアップ要求を再度生成する。ただし、ここに含まれる前回処理時点情報には、優先順位１を含むバックアップ要求を生成したときと同じ前回処理時点情報が使用される。順位指定部４３３ｂは、生成したバックアップ要求を、ストレージノード３０ｂ−１〜３０ｂ−３に送信する。
【０１１２】
このように、順位指定部４３３ｂは、優先順位の引き下げとバックアップ要求の送信処理とを繰り返し、予め設定された全ての順位についてバックアップ要求を行う。本例では、優先順位は３まで設定されているので、優先順位３を含むバックアップ要求に応じてストレージノード３０ｂ−１〜３０ｂ−３各々から送信されたバックアップ完了応答を通信部４１０が受信した場合、順位指定部４３３ｂはバックアップ処理を終了する。ただし、前回処理時点情報の格納は、最初の一回のみ行う。
【０１１３】
次に、ストレージノード３０ｂの構成について説明する。ストレージノード３０ｂは、通信部３１０ｂと、記憶部３２０ｂと、ストレージノード制御部３３０ｂと、を備える。
通信部３１０ｂは、プロキシノード２０ｂ、バックアップ制御装置４０ｂ、およびバックアップノード５０ｂと通信を行う。
【０１１４】
記憶部３２０ｂは、オブジェクト記憶部３２１ｂと、メタデータ記憶部３２２ｂと、リングファイル記憶部３２３ｂと、を備える。オブジェクト記憶部３２１ｂとリングファイル記憶部３２３ｂとは、第１の実施形態に係るストレージノード３０のオブジェクト記憶部３２１とリングファイル記憶部３２３と同様に、それぞれオブジェクトとリングファイルとを格納する。メタデータ記憶部３２２ｂは、メタデータを格納する。メタデータ記憶部３２２ｂに格納されるメタデータは、例えば、図５を用いて説明した各項目に加え、バックアップ処理におけるオブジェクトの優先順位を含む。
【０１１５】
ストレージノード制御部３３０ｂは、オブジェクト制御部３３１ｂと、抽出部３３２ｂと、判定部３３３ｂと、を備える。判定部３３３ｂは、第１の実施形態に係るストレージノード３０の判定部３３３と同様の機能を備える。
【０１１６】
オブジェクト制御部３３１ｂは、オブジェクトの送受信とオブジェクトの書き込み、読み出しを制御する。通信部３１０ｂが、プロキシノード２０ｂからオブジェクトの書き込み要求と優先順位とを受信すると、オブジェクト制御部３３１ｂは、当該オブジェクトをオブジェクト記憶部３２１ｂに格納し、当該オブジェクトのメタデータをメタデータ記憶部３２２に格納する。このとき、オブジェクト制御部３３１ｂは、オブジェクトをオブジェクト記憶部３２１ｂに格納した時点を示す更新時点情報と優先順位についての優先順位情報とを、それぞれ、メタデータ記憶部３２２に書き込む。オブジェクト制御部３３１ｂは、オブジェクトとメタデータとの格納が完了すると、通信部３１０ｂを介して、オブジェクトの書き込み完了応答をプロキシノード２０ｂに送信する。
【０１１７】
通信部３１０ｂが、プロキシノード２０ｂからオブジェクトの読み出し要求受信した場合、オブジェクト制御部３３１ｂは、第１の実施形態に係るストレージノード３０の通信部３１０と同様の処理を行う。通信部３１０ｂが、バックアップ制御装置４０ｂからバックアップ要求を受信すると、オブジェクト制御部３３１ｂは、バックアップ要求に含まれる前回処理時点情報と優先順位とを抽出部３３２ｂに出力する。
【０１１８】
抽出部３３２ｂは、オブジェクト制御部３３１ｂから取得した前回処理時点情報と優先順位とに基づいて、自装置が格納するオブジェクトから複製対象のオブジェクトを抽出する。抽出部３３２ｂは、ストレージノード３０−１〜３０−３によって格納される同一のオブジェクト各々に対応付けられた優先順位に基づいてオブジェクトを抽出する。抽出部３３２ｂは、メタデータ記憶部３２２ｂを参照し、オブジェクト制御部３３１ｂから取得した優先順位と一致するオブジェクトのメタデータを抽出する。抽出部３３２ｂは、優先順位に基づいて抽出されたオブジェクトのメタデータに含まれる更新時点情報が示す更新時点が、前回処理時点情報が示す時点よりも新しいオブジェクトのメタデータを抽出する。抽出部３３２ｂは、抽出したメタデータを判定部３３３ｂに出力する。
【０１１９】
次に、ストレージシステム１ｂの有する各装置の動作について説明する。図１５は、ストレージシステム１ｂによる処理の流れの一例を示す図である。まず、バックアップ制御装置４０ｂの順位指定部４３３ｂは、優先順位１を指定する（ステップＳ４０１）。次に、順位指定部４３３ｂは、指定した優先順位を含むバックアップ要求をストレージノード３０ｂ−１〜３０ｂ−３に送信する（ステップＳ４０２）。次に、ストレージノード３０ｂ−１〜３０ｂ−３各々は、バックアップ要求を受信する。次に、ストレージノード３０ｂ−１〜３０ｂ−３各々の抽出部３３２ｂは、メタデータ記憶部３２２を参照し、オブジェクト制御部３３１ｂから取得した優先順位と一致するオブジェクトのメタデータを抽出する（ステップＳ４０３）。ここでは、優先順位１が指定されているため、抽出部３３２ｂは、優先順位が１であるオブジェクトのメタデータを抽出する。そして、抽出したオブジェクトについて、図６を用いて説明したステップＳ１０２〜Ｓ１０９の処理を実行する（ステップＳ４０４）。特に、ステップＳ１０２では、抽出部３３２ｂは、前回所定時点情報に基づいて、自装置のオブジェクトのメタデータを抽出する。すなわち、ステップＳ４０３、Ｓ４０４の処理を言い換えると、この一例において、自装置が格納するオブジェクトに予め対応付けられた優先順位が、順位指定部４３３ｂによって指定された優先順位である場合、抽出部３３２ｂは、バックアップ制御装置４０ｂの時点指定部４３１ｂが指定した時点より後に更新されたオブジェクトを抽出する。バックアップ処理が完了すると、ストレージノード３０ｂ−１〜３０ｂ−３各々は、バックアップ制御装置４０ｂにバックアップ完了応答を送信する（ステップＳ４０５）。
【０１２０】
次に、バックアップ制御装置４０ｂの通信部４１０ｂがストレージノード３０ｂ−１〜３０ｂ−３各々からバックアップ完了応答を受信すると、順位指定部４３３ｂは、優先順位が一段階低い優先順位２を指定する（ステップＳ４０６）。次に、順位指定部４３３ｂは、指定した優先順位を含むバックアップ要求をストレージノード３０ｂ−１〜３０ｂ−３に送信する（ステップＳ４０７）。次に、ストレージノード３０ｂ−１〜３０ｂ−３各々は、バックアップ要求を受信する。次に、ストレージノード３０ｂ−１〜３０ｂ−３各々の抽出部３３２ｂは、メタデータ記憶部３２２を参照し、オブジェクト制御部３３１ｂから取得した優先順位が２であるオブジェクトのメタデータを抽出する（ステップＳ４０８）。そして、抽出したオブジェクトについて、ステップＳ１０２〜Ｓ１０９の処理を実行する（ステップＳ４０９）。このステップでは、故障などの原因によって、優先順位１のオブジェクトのうちの複製されなかったオブジェクトのみ複製処理が行われる。複製されるオブジェクトの数は非常に少ないことが想定される。バックアップ処理が完了すると、ストレージノード３０ｂ−１〜３０ｂ−３各々は、バックアップ制御装置４０ｂにバックアップ完了応答を送信する（ステップＳ４１０）。
【０１２１】
次に、バックアップ制御装置４０ｂの通信部４１０ｂがストレージノード３０ｂ−１〜３０ｂ−３各々からバックアップ完了応答を受信すると、順位指定部４３３ｂは、優先順位が一段階低い優先順位３を指定する（ステップＳ４１１）。次に、順位指定部４３３ｂは、指定した優先順位を含むバックアップ要求をストレージノード３０ｂ−１〜３０ｂ−３に送信する（ステップＳ４１２）。次に、ストレージノード３０ｂ−１〜３０ｂ−３各々は、バックアップ要求を受信する。次に、ストレージノード３０ｂ−１〜３０ｂ−３各々の抽出部３３２ｂは、メタデータ記憶部３２２を参照し、オブジェクト制御部３３１ｂから取得した優先順位が３であるオブジェクトのメタデータを抽出する（ステップＳ４１３）。そして、抽出したオブジェクトについて、ステップＳ１０２〜Ｓ１０９の処理を実行する（ステップＳ４１４）。このステップでは、故障などの原因によって、優先順位１及び２のオブジェクトのうちの複製されなかったオブジェクトのみ複製処理が行われる。ほとんどのオブジェクトについては複製処理が実施されないことが想定される。バックアップ処理が完了すると、ストレージノード３０ｂ−１〜３０ｂ−３各々は、バックアップ制御装置４０ｂにバックアップ完了応答を送信する（ステップＳ４１５）。
【０１２２】
以上のように、本実施形態に係るストレージノード３０ｂの抽出部３３２ｂは、オブジェクト各々に対応付けられた優先順位に基づいてオブジェクトを抽出する。優先順位は、冗長化されたオブジェクト各々について、特定のストレージノード３０に高い優先順位のオブジェクトが集中しないように分散して対応付けられる。従って、優先順位を指定して、順に複製処理を行うことで、ストレージノード３０ｂ各々にかかる負荷を分散することができる。これにより、バックアップ処理中もクライアント１０ｂからの要求に対する通常の処理について、ストレージノード３０ｂとプロキシノード２０ｂとの処理能力をより多く割当てることができる。
【０１２３】
なお、上述の各実施形態では、バックアップノードを、ストレージノードとは異なる態様でその他の装置と接続した。これにより、ストレージシステムにおけるオブジェクトの消失の危険性を低減し、信頼性を高めることができる。例えば、プロキシノードの制御ソフトウェアのエラー等により、ストレージノードが格納するオブジェクトが、冗長化にも関わらず破損した場合であっても、当該オブジェクトをバックアップノードが格納するオブジェクトから復旧できる可能性がある。また、バックアップノードを、ストレージノードとは異なる拠点に設置することにより、自然災害などによるオブジェクトの消失の危険性をさらに低減することができ、いわゆるディザスタ・リカバリーを実現できる。
【０１２４】
なお、上述の各実施形態におけるストレージノードは、書き込みや読み出しなどの単純な処理のみを行うために安価に利用することができる。このような安価なストレージノードを利用して信頼性の高いストレージシステムを構築できるため、安価にディザスタ・リカバリーを実現できる。また、上述の各実施形態における各装置の機能や構成は、ネットワーク上で提供されているストレージサービス上に実現してよい。これにより、さらに安価にディザスタ・リカバリーを実現できる。
【０１２５】
なお、上述の各実施形態におけるバックアップノードは、ストレージノードが行うオブジェクトの書き込みや読み出しなどの単純な処理の他に、より複雑な処理を行う機能を備えてもよい。例えば、複数のストレージノードから並行して同一のオブジェクトの複製処理が発生した場合などに、１つのストレージノードからの処理しか受け付けないようにアクセス制御機能やロック機能を備えてもよい。ただし、このような機能を備えていない場合であっても、バックアップノードに、同一のオブジェクトの複製が複数個格納されるだけである。このときは、例えば、更新時点情報が示す更新時点が新しいものが、タイムスタンプ要求や復旧処理に利用されるように設定してよい。
【０１２６】
なお、上述した各実施形態に係るストレージノード群とバックアップノードとは、それぞれ、同一の拠点に存在してもよいし、異なる拠点に存在してもよい。例えば、多くのストレージノードを同一の拠点に設置することにより、拠点間の通信を抑え、通信回線への負荷を軽減することができる。これに対し、地理的に離れた拠点にストレージノードとバックアップノードを設置した場合は、激甚災害などで一部の拠点が利用不能になった場合でも、オブジェクトを復旧することができ、ディザスタ・リカバリーを実現することができる。また、「拠点」とは、施設などの空間や地理上の所定の範囲のことを指して説明してきたが、拠点の概念は、これのみに限定されない。例えば、拠点とは、プロキシノードとの間の回線の速度や装置の処理能力などに基づいて、装置を自由に分類する単位であってよい。
【０１２７】
なお、上述した各実施形態において、例えば、プロキシノード、バックアップ制御装置、バックアップノードは、それぞれ複数あってもよい。また、ストレージノードやストレージノード群の数も上述した数に限定されない。例えば、ストレージノードは１つ、２つ、または４以上の複数あってよいし、ストレージノード群は、１つから９つ、または１１以上の複数あってもよい。また、ストレージシステムは、上述した各装置の機能を統合する装置を有してよい。例えば、バックアップ制御部の機能をプロキシノードやストレージノード、バックアップノードが備えてもよい。
【０１２８】
なお、上述した各実施形態において、ストレージノードの抽出部は、自装置の備える時計に基づいて、複製対象のオブジェクトを抽出してよい。例えば、ストレージノードは、毎日定時刻にバックアップ処理を開始し、抽出部は、前日のバックアップ処理の後に更新されたオブジェクトを複製対象のオブジェクトとして抽出してよい。この場合、例えば、ストレージノード各々がバックアップ処理を開始する時刻をずらすことで、負荷を分散してもよい。このように、所定の時点とは、前回のバックアップ処理からの経過時間のような時間であってもよいし、予め定められた時刻であってもよい。また、オブジェクトの更新時点も、前回の更新から経過した時間であってもよいし、更新が行われた時刻であってもよい。
【０１２９】
なお、上述した各実施形態において、抽出部や判定部は、「Ｌａｓｔ  Ｍｏｄｉｆｉｅｄ」を更新時点情報とし、当該更新時点情報が示す更新時点に基づいて、オブジェクトの抽出や判定を行ってもよい。また、判定部は、バックアップノードに備えられてもよい。この場合、例えば、抽出部は抽出したオブジェクト識別情報と更新時点情報とをバックアップノードに送信する。バックアップノードは、受信したオブジェクト識別情報に基づいて、自装置が格納するメタデータを取得する。バックアップノードの判定部は、ストレージノードから受信した更新時点情報と自装置が格納するメタデータの更新時点情報とを比較し、どちらが新しいかを判定してよい。そして、その判定結果をストレージノードに送信することで、上述した各実施形態に係るストレージシステムの機能を実現することができる。また、抽出部によるオブジェクトの抽出は複数同時に行われてもよいし、１つずつ行われてもよい。
【０１３０】
なお、上述した各実施形態における各装置の機能を組み合わせて実現してもよい。例えば、ストレージシステムは、第２の実施形態において説明した回線速度に基づいて装置を選択する構成と、第３の実施形態において説明したオブジェクトの優先順位に基づいてオブジェクトを抽出する構成とを兼ね備えてもよい。例えば、バックアップ制御装置の装置選択部が回線速度に基づいて、バックアップ処理を行うストレージノードを選択する。次に、選択されたストレージノードは、順位指定部が指定した優先順位に基づいて、自装置が格納するオブジェクトを抽出する。次に、ストレージノードは、上述したステップＳ１０２〜Ｓ１０９によるバックアップ処理を行う。当該処理の完了後、順位指定部は優先順位を一段階下げて指定し直し、ストレージノードは、再度、オブジェクトの抽出とバックアップ処理とを行う。全ての優先順位について同様の処理を完了すると、装置選択部は、バックアップ処理を行うストレージノードを、回線速度に基づいて選択し直す。以降は上述した処理を繰り返す。これにより、ストレージシステムは、第２の実施形態に係るストレージシステム１ａと第３のストレージシステム１ｂによる効果を同時に奏することができ、バックアップ処理の負荷をさらに軽減することができる。
【０１３１】
なお、上述した各実施形態におけるプロキシノード、ストレージノード、バックアップ制御部、バックアップノードの一部、例えば、プロキシノード制御部、オブジェクト制御部、抽出部、判定部、時点指定部、装置選択部、順位指定部、バックアップオブジェクト制御部、バックアップメタデータ制御部などをコンピュータで実現するようにしてもよい。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、勘定装置、取引制御装置、端末装置に内蔵されたコンピュータシステムであって、ＯＳや周辺機器等のハードウェアを含むものとする。
【０１３２】
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
【０１３３】
また、上述した実施形態におけるプロキシノード、ストレージノード、バックアップ制御部、バックアップノードの一部、または全部を、ＬＳＩ（Large  Scale  Integration）等の集積回路として実現してもよい。勘定装置、取引制御装置、端末装置の各機能ブロックは個別にプロセッサ化してもよいし、一部、または全部を集積してプロセッサ化してもよい。また、集積回路化の手法はＬＳＩに限らず専用回路、または汎用プロセッサで実現してもよい。また、半導体技術の進歩によりＬＳＩに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いてもよい。
【０１３４】
以上、図面を参照してこの発明の一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
【符号の説明】
【０１３５】
１…ストレージシステム、２０…プロキシノード、３０…ストレージノード、４０…バックアップ制御装置、５０…バックアップノード、２１０…通信部、２２０…記憶部、２２１…リングファイル記憶部、２３０…プロキシノード制御部、３１０…通信部、３２０…記憶部、３２１…オブジェクト記憶部、３２２…メタデータ記憶部、３２３…リングファイル記憶部、３３０…ストレージノード制御部、３３１…オブジェクト制御部、３３２…抽出部、３３３…判定部、４１０…通信部、４２０…記憶部、４２１ａ…回線速度記憶部、４３０…バックアップ制御部、４３１…時点指定部、４３２ａ…装置選択部、４３３ｂ…順位指定部、５１０…通信部、５２０…記憶部、５２１…バックアップオブジェクト記憶部、５２２…バックアップメタデータ記憶部、５２３…リングファイル記憶部、５３０…バックアップノード制御部、５３１…バクアップオブジェクト制御部、５３２…バックアップメタデータ制御部
【図１】
2015088109.tif 000003
【図２】
2015088109.tif 000004
【図３】
2015088109.tif 000005
【図４】
2015088109.tif 000006
【図５】
2015088109.tif 000007
【図６】
2015088109.tif 000008
【図７】
2015088109.tif 000009
【図８】
2015088109.tif 000010
【図９】
2015088109.tif 000011
【図１０】
2015088109.tif 000012
【図１１】
2015088109.tif 000013
【図１２】
2015088109.tif 000014
【図１３】
2015088109.tif 000015
【図１４】
2015088109.tif 000016
【図１５】
2015088109.tif 000017