JP2015088109A - ストレージシステム、ストレージ制御方法、およびストレージ制御プログラム - Google Patents
ストレージシステム、ストレージ制御方法、およびストレージ制御プログラム Download PDFInfo
- Publication number
- JP2015088109A JP2015088109A JP2013228305A JP2013228305A JP2015088109A JP 2015088109 A JP2015088109 A JP 2015088109A JP 2013228305 A JP2013228305 A JP 2013228305A JP 2013228305 A JP2013228305 A JP 2013228305A JP 2015088109 A JP2015088109 A JP 2015088109A
- Authority
- JP
- Japan
- Prior art keywords
- backup
- storage
- node
- data
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】バックアップ処理の負荷を軽減する。
【解決手段】ストレージシステムは、それぞれが同一のデータを格納する複数のストレージノードと、複数のストレージノードと接続され、ストレージノードが格納するデータの複製であるバックアップデータを格納するバックアップノードと、を有する。ストレージノードは、自装置が格納するデータから複製対象のデータを抽出する抽出部と、複製対象のデータの更新時点が当該データに対応するバックアップデータの更新時点に比して新しいか否かを判定する判定部と、を備える。バックアップノードは、ストレージノードの判定部による判定結果に基づいて、ストレージノードが格納するデータを複製して自装置に格納するバックアップノード制御部、を備える。
【選択図】図2
【解決手段】ストレージシステムは、それぞれが同一のデータを格納する複数のストレージノードと、複数のストレージノードと接続され、ストレージノードが格納するデータの複製であるバックアップデータを格納するバックアップノードと、を有する。ストレージノードは、自装置が格納するデータから複製対象のデータを抽出する抽出部と、複製対象のデータの更新時点が当該データに対応するバックアップデータの更新時点に比して新しいか否かを判定する判定部と、を備える。バックアップノードは、ストレージノードの判定部による判定結果に基づいて、ストレージノードが格納するデータを複製して自装置に格納するバックアップノード制御部、を備える。
【選択図】図2
Description
本発明は、ストレージシステム、ストレージ制御方法、およびストレージ制御プログラムに関する。
ネットワークを介したサービスにおいて、安価で信頼性の高いストレージに対する需要が高まっており、様々なストレージシステムが提案されている(例えば、特許文献1)。例えば、あるストレージシステムは、処理の受付及び振分を行うプロキシノード(Proxy Node)と、データを格納するストレージノード(Storage Node)とを備えており、信頼性を高めるための手段の一つとして、複数のストレージノードが同一のデータを格納することで冗長化を実行している。
冗長化の機能を有するストレージシステムにおける各装置の基本的な動作の一例を説明する。プロキシノードは、クライアントからデータの書き込み要求を受け付けると、上述の冗長化を実行するため、当該書き込み要求を複数のストレージノードに同時に送信する。書き込み要求を受信したストレージノード各々は、プロキシノードから受信したデータを自装置に格納する。プロキシノードは、クライアントからデータの読み出し要求を受け付けると、当該データを格納するストレージノードのうちの一つを選択し、当該ストレージノードに対して読み出し要求を送信する。当該読み出し要求を受け付けたストレージノードは、要求されたデータをクライアントに送信する。
信頼性をより高めるためには、ストレージノードが格納するデータのバックアップ(障害対策用の複製)を、バックアップ用のストレージ装置(バックアップノード)に格納するバックアップ処理を行うことが望ましい。しかしながら、従来の技術では、バックアップ処理において、ストレージシステムにかかる負荷が大きかった。例えば、各ストレージノードがバックアップノードに直接データを送信する場合、冗長化された同一のデータを複数回複製するという重複した処理が発生するため、ストレージシステムにかかる負荷が大きかった。このような重複した処理を避けるため、例えば、プロキシノードがストレージノードからデータを読み出し、バックアップノードにデータを送信する方法が考えられるが、この場合には、プロキシノードが行う処理が増え、クライアントからの要求の処理に支障が出る可能性がある。このように、バックアップ処理において、ストレージシステムにかかる負荷は大きかった。
本発明は上記の点に鑑みてなされたものであり、バックアップ処理の負荷を軽減するためのストレージシステム、ストレージ制御方法、およびストレージ制御プログラムを提供する。
本発明は上記の課題を解決するためになされたものであり、本発明の一態様は、それぞれが同一のデータを格納する複数のストレージノードと、複数のストレージノードと接続され、ストレージノードが格納するデータの複製であるバックアップデータを格納するバックアップノードと、を有するストレージシステムであって、ストレージノードは、自装置が格納するデータから複製対象のデータを抽出する抽出部と、複製対象のデータの更新時点が当該データに対応するバックアップデータの更新時点に比して新しいか否かを判定する判定部と、を備え、バックアップノードは、ストレージノードの判定部による判定結果に基づいて、ストレージノードが格納するデータを複製して自装置に格納するバックアップノード制御部、を備えることを特徴とするストレージシステムである。
また、本発明の一態様は、上記のストレージシステムにおいて、ストレージノードの抽出部は、所定の時点より後に更新されたデータを複製対象のデータとして抽出する、ことを特徴とする。
また、本発明の一態様は、上記のストレージシステムは、バックアップ制御装置を備え、バックアップ制御装置は、所定の時点を指定する時点指定部、を備えることを特徴とする。
また、本発明の一態様は、上記のストレージシステムにおいて、バックアップノードのバックアップノード制御部は、複数のストレージノードのうち、ストレージノードとバックアップノードとの間の回線速度に基づいて選択されたストレージノードが格納するデータを複製して自装置に格納する、ことを特徴とする。
また、本発明の一態様は、上記のストレージシステムにおいて、ストレージノードの抽出部は、データ各々に予め対応付けられた優先順位に基づいて複製対象のデータを抽出する、ことを特徴とする。
また、本発明の一態様は、それぞれが同一のデータを格納する複数のストレージノードと、複数のストレージノードと接続され、ストレージノードが格納するデータの複製であるバックアップデータを格納するバックアップノードと、バックアップデータを格納するための処理を制御するバックアップ制御装置と、を有するストレージシステムであって、バックアップ制御装置は、時点を指定する時点指定部と、ストレージノードとバックアップノードとの間の回線速度に基づいてストレージノードを選択する装置選択部と、を備え、バックアップ制御装置の装置選択部によって選択されたストレージノードは、バックアップ制御装置の時点指定部が指定した時点より後に更新されたデータを抽出する抽出部と、抽出部が抽出したデータの更新時点が当該データに対応するバックアップデータの更新時点に比して新しいか否かを判定する判定部と、を備え、バックアップノードは、ストレージノードの判定部による判定結果に基づいて、ストレージノードが格納するデータを複製して自装置に格納するバックアップノード制御部、を備えることを特徴とするストレージシステムである。
また、本発明の一態様は、それぞれが同一のデータを格納する複数のストレージノードと、複数のストレージノードと接続され、ストレージノードが格納するデータの複製であるバックアップデータを格納するバックアップノードと、バックアップデータを格納するための処理を制御するバックアップ制御装置と、を有するストレージシステムであって、バックアップ制御装置は、時点を指定する時点指定部と、優先順位を指定する順位指定部と、を備え、ストレージノードは、自装置が格納するデータに予め対応付けられた優先順位が、順位指定部によって指定された優先順位である場合、バックアップ制御装置の時点指定部が指定した時点より後に更新されたデータを抽出する抽出部と、抽出部が抽出したデータの更新時点が当該データに対応するバックアップデータの更新時点に比して新しいか否かを判定する判定部と、を備え、バックアップノードは、ストレージノードの判定部による判定結果に基づいて、ストレージノードが格納するデータを複製して自装置に格納するバックアップノード制御部、を備えることを特徴とするストレージシステムである。
また、本発明の一態様は、それぞれが同一のデータを格納する複数のストレージノードと、複数のストレージノードと接続され、ストレージノードの格納するデータの複製であるバックアップデータを格納するバックアップノードと、バックアップデータを格納するための処理を制御するバックアップ制御装置と、を有するストレージシステムにおけるストレージ制御方法であって、バックアップ制御装置が、時点を指定する時点指定過程と、バックアップ制御装置が、ストレージノードとバックアップノードとの間の回線速度に基づいてストレージノードを選択する装置選択過程と、装置選択過程において選択されたストレージノードが、時点指定過程において指定された時点より後に更新されたデータを抽出する抽出過程と、装置選択過程において選択されたストレージノードが、抽出過程において抽出されたデータの更新時点が当該データに対応するバックアップデータの更新時点に比して新しいか否かを判定する判定過程と、バックアップノードが、判定過程における判定結果に基づいて、ストレージノードが格納するデータを複製して自装置に格納する格納過程と、を有することを特徴とするストレージ制御方法である。
また、本発明の一態様は、それぞれが同一のデータを格納する複数のストレージノードと、複数のストレージノードと接続され、ストレージノードの格納するデータの複製であるバックアップデータを格納するバックアップノードと、バックアップデータを格納するための処理を制御するバックアップ制御装置と、を有するストレージシステムにおけるストレージノードとしてのコンピュータに、ストレージノードとバックアップノードとの間の回線速度に基づいて、バックアップ制御装置から選択された場合に、バックアップ制御装置から指定された時点より後に更新されたデータを抽出する抽出手順、抽出手順において抽出されたデータの更新時点が当該データに対応するバックアップデータの更新時点に比して新しいか否かを判定する判定手順、判定手順における判定結果に基づいて、自装置が格納するデータを複製してバックアップノードに送信する送信手順、を実行させるためのストレージ制御プログラムである。
本発明によれば、バックアップ処理の負荷を軽減することができる。
<第1の実施形態>
以下、図面を参照しながら本発明の第1の実施形態について説明する。第1の実施形態に係るストレージシステムは、データを冗長化して複数のストレージノードに格納するとともに、当該オブジェクトのバックアップをバックアップノードに格納する。本明細書では、データのまとまりをオブジェクトと称する。また、本明細書では、オブジェクトのバックアップをバックアップノードに格納する処理をバックアップ処理と称する。
以下、図面を参照しながら本発明の第1の実施形態について説明する。第1の実施形態に係るストレージシステムは、データを冗長化して複数のストレージノードに格納するとともに、当該オブジェクトのバックアップをバックアップノードに格納する。本明細書では、データのまとまりをオブジェクトと称する。また、本明細書では、オブジェクトのバックアップをバックアップノードに格納する処理をバックアップ処理と称する。
図1は、本発明の第1の実施形態に係るストレージシステムの概要を説明するための図である。ストレージシステム1は、いわゆるオブジェクトストレージシステムの構成を有し、オブジェクトの格納時には、冗長化計算などの数学的な演算処理を行わず、オブジェクトの複製であるバックアップオブジェクト(バックアップデータ)がそのまま記憶される。ストレージシステム1は、クライアント10と、プロキシノード20と、複数のストレージノード群31と、バックアップ制御装置40と、バックアップノード50と、を備える。ストレージノード群31各々は、複数のストレージノード30を有する。
例えば、ストレージノード30は、同一の施設などの拠点毎に複数まとめて設置され、拠点毎のストレージノード30の集合が、ストレージノード群31を構成する。クライアント10は、プロキシノード20と通信を行う。ストレージノード30各々は、プロキシノード20、バックアップ制御装置40、及びバックアップノード50と通信を行う。各装置の間の通信回線は、例えば、専用通信網、携帯電話網、VPN(Virtual Private Network)網、WAN(Wide Area Network)、LAN(Local Area Network)などによって構成されてよく、これらの組み合わせによって構成されてもよい。
クライアント10は、ストレージシステム1が備えるストレージにオブジェクトの書き込み要求や読み出し要求などを送信するコンピュータ装置であり、例えば、エンドユーザの端末装置やネットワークを介してリソースの提供などのサービスをエンドユーザに提供するサーバ装置である。クライアント10は、オブジェクトの書き込みや読み出し、消去などをプロキシノード20に要求する。
プロキシノード20は、サーバ装置であり、クライアント10からの要求に応じて、各ストレージノード30に対して処理を振り分ける。例えば、プロキシノード20は、クライアント10からオブジェクトの書き込み要求を受け付けると、全てのストレージノード30から所定の数のストレージノード30を選択し、選択したストレージノード30にオブジェクトの書き込み要求を送信する。ここで、本例では、所定の数は3つとするが、所定の数は2つであってもよいし、4つ以上の複数でもあってもよい。すなわち、この一例において、3つのストレージノード各々は、同一のオブジェクトを格納する。また、プロキシノード20は、同一のストレージノード群31に属するストレージノード30は選択しない。このように、各オブジェクトは、異なる拠点の複数のストレージノード30に格納される。
また、例えば、プロキシノード20は、クライアント10からオブジェクトの読み出し要求を受け付けると、当該オブジェクトを格納する複数のストレージノード30から1つを選択し、オブジェクトの読み出し要求を送信する。各オブジェクトは、複数のストレージノード30に冗長化されているため、仮にオブジェクトを格納するストレージノード30のいずれかが破損したとしても、プロキシノード20は、正常に稼働しているストレージノード30からオブジェクトを読み出し、クライアント10に送信することができる。
バックアップ制御装置は、ストレージノード30の格納するオブジェクトのバックアップ処理を制御する。例えば、バックアップ制御装置40は、定期的に全てのストレージノード30に対して、バックアップ処理の開始を要求するバックアップ要求を送信する。
ストレージノード30は、プロキシノード20またはバックアップ制御装置40から受信した要求に応じて処理を行う。プロキシノード20からオブジェクトの書き込み要求や読み出し要求を受信した場合、ストレージノード30は、当該オブジェクトを書き込んだり、読み出してプロキシノード20に送信したりする。バックアップ制御装置40からバックアップ要求を受信した場合、ストレージノード30は、自装置の格納するオブジェクトの複製をバックアップノード50に格納させるためのバックアップ処理を開始する。
バックアップ処理において、ストレージノード30は、バックアップノード50に対して、タイムスタンプ要求を送信する。タイムスタンプ要求とは、自装置が格納するオブジェクトに対応するバックアップオブジェクトの更新時点を示す更新時点情報の送信を要求するものである。次に、ストレージノード30は、タイムスタンプ要求に応じて、バックアップノード50から送信されたタイムスタンプ応答を取得する。次に、ストレージノード30は、自装置に格納されているオブジェクトの更新時点と、バックアップオブジェクトの更新時点とを比較する。そして、自装置に格納されているオブジェクトの更新時点の方が新しい場合、ストレージノード30は、当該オブジェクトをバックアップノード50に送信することで、当該オブジェクトの複製を要求する。これに対し、自装置に格納されているオブジェクトの更新時点の方が新しくない場合、ストレージノード30は、当該オブジェクトを、バックアップノード50に送信しない。
バックアップノード50は、いわゆるバックアップストレージであり、ストレージノード30から受信したタイムスタンプ要求とオブジェクトの複製要求とに応じた処理を行う。ストレージノード30から、タイムスタンプ要求を受信した場合、バックアップノード50は、自装置に格納されているオブジェクトの更新時点を示すタイムスタンプを、タイムスタンプ要求の送信元のストレージノード30に送信する。バックアップノード50は、ストレージノード30からオブジェクトを受信した場合、当該オブジェクトを自装置に格納する。
以上のように、ストレージシステム1は、バックアップ処理において、ストレージノード30が格納するオブジェクトを送信する前に、タイムスタンプ要求とタイムスタンプ応答とを通信する。そして、ストレージノード30が格納するオブジェクトの更新時点が新しい場合にのみ、ストレージノード30は、当該オブジェクトをバックアップノード50に送信する。これにより、冗長化されたオブジェクトが複数回バックアップノード50に送信されることを避けることができる。その結果、ストレージシステム1は、ストレージノード30とバックアップノード50との間におけるオブジェクトの通信回数を低減し、回線にかかる負荷を軽減することができる。また、ストレージシステム1は、ストレージノード30によるオブジェクトの送信処理およびバックアップノード50におけるオブジェクトの書き込み処理の回数を低減し、ストレージノード30およびバックアップノード50にかかる負荷を軽減することができる。
次に、ストレージシステム1の各装置の構成について説明する。図2は、ストレージシステム1の機能構成の一例を示す図である。図2の例において、プロキシノード20は1つであり、ストレージノード30は3つであり、バックアップノード50は1つであるとして説明する。
プロキシノード20は、通信部210と、記憶部220と、プロキシノード制御部230と、を備える。
通信部210は、クライアント10、ストレージノード30−1〜30−3と通信を行う。
通信部210は、クライアント10、ストレージノード30−1〜30−3と通信を行う。
記憶部220は、例えば、HDD(Hard Disc Drive;ハードディスク記憶装置)、SSD(Solid State Drive;半導体記憶装置)、EEPROM(Electrically Erasable Programmable Read Only Memory;書き換え可能不揮発性メモリ)、ROM(Read Only Memory)、またはRAM(Random Access Memory)などを備え、プロキシノード20の備えるCPU(Central Processing Unit;中央演算装置)が実行する各種プログラム(ファームウェアやアプリケーションプログラムなど)やCPUが実行した処理の結果などを格納する。プロキシノード制御部230は、例えば、記憶部220に格納されたプログラムをCPUが実行することにより機能する。
また、記憶部220は、リングファイル記憶部221を備える。リングファイル記憶部221は、オブジェクトを識別するためのオブジェクト識別情報とオブジェクトの格納先のストレージノード30とを対応付けるためのリングファイルを格納する。リングファイルは、ストレージノード30−1〜30−3およびバックアップノード50にも格納され、これらのリングファイルの内容は同一である。リングファイルは、システム構築時やシステムへの装置の追加時に、各装置に配布され、格納される。
オブジェクトの格納先を算出するためのパーティション番号は、オブジェクト識別情報から一意に決定される。本例では、オブジェクト識別情報に対するハッシュ値の上位mビットが、当該オブジェクトのパーティション番号である。図3は、リングファイルの一例を示す表T1である。リングファイルは、パーティション番号毎に、オブジェクトの格納先であるストレージノード30の識別情報を対応させる。表T1は、オブジェクトの格納先として第1から第3の格納先ディスクIDを示すため、同一のオブジェクトを3つのストレージノード30に格納することができる。また、表T1には、第1から第3の格納先ディスクに異常が生じている場合に、仮の格納先として、退避先ディスクIDが示されている。これらの格納先ディスクは、2n個のパーティション番号を有し、そのいずれかがオブジェクトの格納先として、リングファイルにより指定される。
例えば、オブジェクト識別情報から算出されたパーティション番号が「1」の場合、当該オブジェクトの格納先は第1、第2、第3の格納先ディスクID各々に対応する「a」、「b」、「c」という識別情報が示すストレージノード30各々である。これにより、パーティション番号が「1」であるオブジェクトは、「a」、「b」、「c」の識別情報が示すストレージノード30各々のパーティション番号「1」に格納される。このようにリングファイルは、同一のオブジェクトの格納先が、同一のストレージノード群31に属するストレージノード30とならないようにパーティション番号と格納先ディスクIDとを対応付けることにより、オブジェクトの格納先を適切に振り分ける機能を有する。
図4は、パーティションを説明するための図である。図4において、リストL1は、パーティション番号「52」に、「0241.data」、「0432.data」という名称のオブジェクトを格納していることを示す。リストL2は、パーティション番号「205」に、「0314.data」、「0431.data」という名称のオブジェクトを格納していることを示す。リストL3は、パーティション番号「712」に、「0324.data」、「0531.data」、「0621.data」という名称のオブジェクトを格納していることを示す。このように、ストレージノード30は、1つのパーティションに複数のオブジェクトを格納してよい。
プロキシノード20の説明に戻る(図2)。プロキシノード制御部230は、通信部210がクライアント10から受信した要求に基づいて、処理を行う。通信部210がクライアント10からオブジェクトの書き込み要求を受信した場合、プロキシノード制御部230は、オブジェクト識別情報からハッシュ値を算出する。プロキシノード制御部230は、リングファイル記憶部221のリングファイルを参照し、算出したハッシュ値に基づくパーティション番号から、格納先ディスクIDを取得する。プロキシノード制御部230は、通信部210を介して、オブジェクトの書き込み要求を、取得した格納先ディスクIDが示すストレージノード30各々に送信する。通信部210が、当該書き込み要求に応じてストレージノード30から送信された書き込み完了応答を、例えば、2つのストレージノード30から受信すると、プロキシノード制御部230は、書き込み完了応答をクライアント10に送信する。このように、全ての格納先ディスクへの書き込みが完了する前に書き込み完了応答を送信することで、ストレージシステム1は、クライアント10に対して速やかに応答を行うことができる。
通信部210がクライアント10からオブジェクトの読み出し要求を受信した場合、プロキシノード制御部230は、オブジェクト識別情報からハッシュ値を算出する。プロキシノード制御部230は、リングファイル記憶部221のリングファイルを参照し、算出したハッシュ値に基づくパーティション番号から、例えば、第1の格納先ディスクIDを取得する。プロキシノード制御部230は、オブジェクトの読み出し要求を、取得した第1の格納先ディスクIDが示すストレージノード30に送信する。通信部210が、当該読み出し要求に応じてストレージノード30から送信されたオブジェクトを受信すると、プロキシノード制御部230は、当該オブジェクトをクライアント10に送信する。
次に、バックアップ制御装置40の構成について説明する。バックアップ制御装置40は、通信部410と、記憶部420と、バックアップ制御部430と、を備える。
通信部410は、ストレージノード30−1〜30−3と通信を行う。
通信部410は、ストレージノード30−1〜30−3と通信を行う。
記憶部420は、例えば、HDDやSSD、EEPROM、ROM、RAMなどを備え、バックアップ制御装置40のCPUが実行する各種プログラム(ファームウェアやアプリケーションプログラムなど)やCPUが実行した各種の処理の結果を格納する。バックアップ制御部430は、例えば、記憶部420に格納されたプログラムをCPUが実行することにより機能する。また、記憶部420は、バックアップ制御装置40がストレージノード30に対して、バックアップ要求を送信した時点を示す前回処理時点情報を格納する。
バックアップ制御部430は、時点指定部431を備える。時点指定部431は、バックアップ処理の開始を制御する。時点指定部431は、現在の時点を監視し、予め定められたバックアップ処理の開始時点であるか否かを判定する。現在の時点がバックアップ処理の開始時点である場合、時点指定部431は、取得した前回処理時点情報を含むバックアップ要求を生成する。時点指定部431は、通信部410を介して、生成したバックアップ要求を、ストレージノード30−1〜30−3に送信する。すなわち、この一例において、時点指定部431は、前回処理時点情報が示す時点を所定の時点として指定する。時点指定部431は、バックアップ要求を送信すると、当該送信時点を示す情報を前回処理時点情報として記憶部420に格納する。バックアップ要求に応じてストレージノード30−1〜30−3から送信されたバックアップ処理の完了を示すバックアップ完了応答を通信部410が受信すると、時点指定部431は、処理を終了する。
次に、ストレージノード30の構成について説明する。ストレージノード30は、通信部310と、記憶部320と、ストレージノード制御部330と、を備える。
通信部310は、プロキシノード20、バックアップ制御装置40、およびバックアップノード50と通信を行う。
通信部310は、プロキシノード20、バックアップ制御装置40、およびバックアップノード50と通信を行う。
記憶部320は、例えば、HDDやSSD、EEPROM、ROM、RAMなどを備え、ストレージノード30のCPUが実行する各種プログラム(ファームウェアやアプリケーションプログラムなど)やCPUが実行した各種の処理の結果を格納する。ストレージノード制御部330は、例えば、記憶部320に格納されたプログラムをCPUが実行することにより機能する。
また、記憶部320は、オブジェクト記憶部321と、メタデータ記憶部322と、リングファイル記憶部323と、を備える。オブジェクト記憶部321は、オブジェクトを格納する。メタデータ記憶部322は、オブジェクト記憶部321に格納されているオブジェクト各々の概要を示すメタデータを格納する。リングファイル記憶部323は、リングファイルを格納する。
図5は、メタデータの一例を示す図である。メタデータL4は、オブジェクト毎に存在する。メタデータL4には、「Account」、「Container」、「Object」、「Content Type」、「Content Length」、「Last Modified」、「Accept−Ranges」、「X−Timestamp」が記憶されている。「Account」は、例えば、オブジェクトを作成したクライアント10の識別情報を示し、本例では「AUTH_test」である。「Container」は、「Account」の下位に属する項目であり、例えば、オブジェクトを整理するためにクライアント10により設定される管理区分である。本例において、「Container」は、「folder1」である。「Object」は、「Container」の下位に属する項目であり、オブジェクトに対して与えられた名称を示す。本例では、「testObject.rb」である。本例において、「Account」、「Container」、「Object」の3つがオブジェクトの識別するためのオブジェクト識別情報を構成し、当該オブジェクト識別情報のハッシュ値に基づいてオブジェクトが格納されるパーティション番号が一意に決定される。
「Content Type」は、オブジェクトの内容の形式を示す。「Content Length」は、オブジェクトのデータ長を示す。「Last Modified」は、オブジェクトの最終更新時点を示す。本例において、「Last Modified」は、「Wed, 23 Jan 2013 05:12:23 GMT」であり、オブジェクトの最終更新時点が「西暦2013年1月23日水曜日5時12分23秒」であることを示している。
「Accept−Ranges」は、オブジェクトの一部を指定するための単位のレンジ単位を示す。「X−Timestamp」は、オブジェクトが格納された時点を示すタイムスタンプであり、更新時点情報である。「X−Timestamp」は、「1358917943.59079」であり、コード化されている。当該コードを解析することで、オブジェクトの格納時点を取得することができる。
ストレージノード制御部330は、オブジェクト制御部331と、抽出部332と、判定部333と、を備える。
オブジェクト制御部331は、オブジェクトおよびメタデータの送受信、書き込み、読み出しを制御する。通信部310が、プロキシノード20からオブジェクトの書き込み要求を受信すると、オブジェクト制御部331は、当該オブジェクトをオブジェクト記憶部321に格納し、当該オブジェクトのメタデータをメタデータ記憶部322に格納する。このとき、オブジェクト制御部331は、オブジェクトをオブジェクト記憶部321に格納した時点についての情報を、更新時点情報として、メタデータ記憶部322が格納するメタデータに書き込む。オブジェクト制御部331は、オブジェクトとメタデータとの格納が完了すると、通信部310を介して、オブジェクトの書き込み完了応答をプロキシノード20に送信する。
オブジェクト制御部331は、オブジェクトおよびメタデータの送受信、書き込み、読み出しを制御する。通信部310が、プロキシノード20からオブジェクトの書き込み要求を受信すると、オブジェクト制御部331は、当該オブジェクトをオブジェクト記憶部321に格納し、当該オブジェクトのメタデータをメタデータ記憶部322に格納する。このとき、オブジェクト制御部331は、オブジェクトをオブジェクト記憶部321に格納した時点についての情報を、更新時点情報として、メタデータ記憶部322が格納するメタデータに書き込む。オブジェクト制御部331は、オブジェクトとメタデータとの格納が完了すると、通信部310を介して、オブジェクトの書き込み完了応答をプロキシノード20に送信する。
通信部310が、プロキシノード20からオブジェクトの読み出し要求を受信すると、オブジェクト制御部331は、オブジェクト識別情報からハッシュ値を算出する。オブジェクト制御部331は、算出したハッシュ値からオブジェクトを格納するパーティション番号を取得する。オブジェクト制御部331は、取得したパーティション番号からオブジェクトを読み出すとともに、当該オブジェクトのメタデータを、メタデータ記憶部322から読み出す。オブジェクト制御部331は、読み出したオブジェクトとメタデータとを、プロキシノード20に送信する。
通信部310が、バックアップ制御装置40からバックアップ要求を受信すると、オブジェクト制御部331は、バックアップ要求に含まれる前回処理時点情報を抽出部332に出力する。
抽出部332は、自装置が格納するオブジェクトから複製対象のオブジェクトを抽出する。抽出部332は、オブジェクト制御部331から前回処理時点情報を取得すると、メタデータ記憶部322を参照し、更新時点情報が示す更新時点が、前回処理時点情報が示す時点よりも新しいオブジェクトのメタデータを抽出する。抽出部332は、抽出したメタデータを判定部333に出力する。メタデータ記憶部322が格納するメタデータのうち、更新時点情報が示す更新時点が、前回処理時点情報が示す時点よりも新しい全てのメタデータについて、判定部333による判定処理またはバックアップノード50への複製処理が完了した場合、抽出部332は、通信部310を介して、バックアップ完了応答をバックアップ制御装置40に送信する。
判定部333は、複製対象のオブジェクトの更新時点が当該オブジェクトに対応するバックアップオブジェクトの更新時点に比して新しいか否かを判定する。バックアップオブジェクトとは、ストレージノード30からバックアップノード50に複製されたオブジェクトのことであり、例えば、オブジェクト識別情報が同一であるオブジェクトのことである。また、ここでは、一例として、更新時点とは、メタデータの「X-Timestamp」が示す時刻のこととする。
判定部333は、抽出部332からメタデータを取得すると、当該メタデータのオブジェクト識別情報を含むタイムスタンプ要求を生成する。判定部333は、生成したタイムスタンプ要求を、バックアップノード50に送信する。通信部310が、タイムスタンプ要求に応じてバックアップノード50から送信されたタイムスタンプ応答を受信すると、判定部333は、自装置が格納するメタデータに含まれる更新時点情報が示す更新時点が、受信したタイムスタンプ応答に含まれる更新時点情報が示す更新時点よりも新しいか否かを判定する。自装置が格納するオブジェクトの更新時点情報が示す時点の方が新しい場合、判定部333は、当該オブジェクトおよびそのメタデータをバックアップノード50に送信することで、オブジェクトの複製を要求する。
次に、バックアップノード50の構成について説明する。バックアップノード50は、通信部510と、記憶部520と、バックアップノード制御部530と、を備える。
通信部510は、ストレージノード30−1〜30−3と通信を行う。
通信部510は、ストレージノード30−1〜30−3と通信を行う。
記憶部520は、例えば、HDDやSSD、EEPROM、ROM、RAMなどを備え、バックアップノード50のCPUが実行する各種プログラム(ファームウェアやアプリケーションプログラムなど)やCPUが実行した各種の処理の結果を格納する。バックアップノード制御部530は、例えば、記憶部520に格納されたプログラムをCPUが実行することにより機能する。
また、記憶部520は、オブジェクトを格納するバックアップオブジェクト記憶部521と、バックアップオブジェクト記憶部521が格納するオブジェクトのメタデータを格納するバックアップメタデータ記憶部522と、リングファイルを格納するリングファイル記憶部523と、を備える。
バックアップノード制御部530は、バックアップオブジェクト制御部531と、バックアップメタデータ制御部532と、を備える。
バックアップオブジェクト制御部531は、通信部510が、ストレージノード30−1〜30−3からオブジェクトおよびメタデータを受信すると、当該オブジェクトによりバックアップオブジェクト記憶部521に格納されている同一の識別情報を有するオブジェクトを上書きする。バックアップオブジェクト制御部531は、当該上書き処理が完了した時点を示す複製時点情報をバックアップメタデータ制御部532に出力する。
バックアップオブジェクト制御部531は、通信部510が、ストレージノード30−1〜30−3からオブジェクトおよびメタデータを受信すると、当該オブジェクトによりバックアップオブジェクト記憶部521に格納されている同一の識別情報を有するオブジェクトを上書きする。バックアップオブジェクト制御部531は、当該上書き処理が完了した時点を示す複製時点情報をバックアップメタデータ制御部532に出力する。
バックアップメタデータ制御部532は、通信部510が受信したメタデータにより、バックアップメタデータ記憶部522に格納されている同一のオブジェクトについてのメタデータを上書きする。また、バックアップメタデータ制御部532は、バックアップオブジェクト制御部531から取得した複製時点情報に基づいて、バックアップメタデータ記憶部522が格納する更新時点情報を更新する。バックアップメタデータ制御部532は、当該更新が完了すると、通信部510を介して、オブジェクトおよびそのメタデータの書き込み完了応答を、当該データの送信元のストレージノード30−1〜30−3に送信する。
バックアップメタデータ制御部532は、通信部510が、ストレージノード30−1〜30−3からタイムスタンプ要求を受信すると、タイムスタンプ要求に含まれるオブジェクト識別情報を取得する。バックアップメタデータ制御部532は、バックアップメタデータ記憶部522を参照し、取得したオブジェクト識別情報に基づいて、メタデータを抽出する。バックアップメタデータ制御部532は、抽出したメタデータの更新時刻情報を取得し、当該更新時刻情報を含むタイムスタンプ応答を生成する。バックアップメタデータ制御部532は、生成したタイムスタンプ応答を、タイムスタンプ要求の送信元のストレージノード30−1〜30−3に送信する。
次に、ストレージシステム1の有する各装置の動作について説明する。図6は、ストレージシステム1によるバックアップ処理の流れの一例を示す図である。まず、バックアップ制御装置40の時点指定部431は、現在の時点を監視し、バックアップ処理の開始時点であるか否かを判定する。ここで、バックアップ処理の開始時点とは、例えば、毎日の予め定められた時刻などであり、自由に設定されてよい。現在の時点がバックアップ処理の開始時点である場合、時点指定部431は、記憶部420から前回処理時点情報を取得する。次に、時点指定部431は、取得した前回処理時点情報を含むバックアップ要求を生成し、生成したバックアップ要求を、通信部410を介して、全てのストレージノード30−1〜30−3に送信する(ステップS101)。これにより、以下のステップS102〜S109によるバックアップ処理が開始される。
次に、ストレージノード30−1〜30−3各々において、通信部310が、バックアップ制御装置40からバックアップ要求を受信すると、オブジェクト制御部331は、バックアップ要求に含まれる前回処理時点情報を抽出部332に出力する。次に、抽出部332は、オブジェクト制御部331から前回処理時点情報を取得すると、メタデータ記憶部322を参照し、更新時点情報が示す更新時点が、前回処理時点情報が示す時点よりも新しいオブジェクトのメタデータを抽出する(ステップS102)。本明細書において、新しいとは、例えば、時点が年月日及び時刻などの数値で示される場合、数値同士を比較し多場合に、値が大きいことである。このように、抽出部332は、前回処理時点とオブジェクトの更新時点とを比較することにより、前回処理時点よりもオブジェクトの更新時点が新しいオブジェクトのメタデータを抽出する。次に、抽出部332は、抽出したメタデータを判定部333に出力する。
判定部333は、抽出部332からメタデータを取得すると、当該メタデータが示すオブジェクト識別情報を含むタイムスタンプ要求を生成する。次に、判定部333は、生成したタイムスタンプ要求を、通信部310を介して、バックアップノード50に送信する(ステップS103)。
バックアップノード50の通信部510が、ストレージノード30−1〜30−3からタイムスタンプ要求を受信すると、バックアップメタデータ制御部532は、タイムスタンプ要求に含まれるオブジェクト識別情報を取得する。次に、バックアップメタデータ制御部532は、バックアップメタデータ記憶部522を参照し、抽出したオブジェクト識別情報に基づいて、メタデータを抽出する。次に、バックアップメタデータ制御部532は、抽出したメタデータに含まれる更新時点情報を取得し、当該更新時点情報を含むタイムスタンプ応答を生成する。バックアップメタデータ制御部532は、生成したタイムスタンプ応答を、通信部510を介して、タイムスタンプ要求の送信元のストレージノード30−1〜30−3に送信する(ステップS104)。また、バックアップメタデータ記憶部522に該当するオブジェクトのメタデータが存在しない場合は、オブジェクトが格納されていないことを、タイムスタンプ要求の送信元のストレージノード30−1〜30−3に送信する。
ストレージノード30−1〜30−3各々において、通信部310が、バックアップノード50から送信されたタイムスタンプ応答を受信すると、判定部333は、自装置が格納するメタデータに含まれる更新時点情報が示す更新時点が、受信したタイムスタンプ応答に含まれる更新時点情報が示す更新時点よりも新しいか否かを判定する(ステップSS105)。自装置が格納するオブジェクトの更新時点の方が新しい場合(ステップS105;YES)、判定部333は、当該オブジェクトおよびそのメタデータをバックアップノード50に送信する(ステップS106)。自装置が格納するオブジェクトの更新時点の方が新しくない場合(ステップS105;NO)、ステップS109に遷移する。通信部310が、バックアップノード50からオブジェクトが格納されていない旨の通知を受信した場合は、ステップ106の処理を行う。
バックアップノード50の通信部510が、ストレージノード30−1〜30−3からオブジェクトおよびメタデータを受信すると、バックアップオブジェクト制御部531は、当該オブジェクトにより、バックアップオブジェクト記憶部521に格納されている同一の識別情報を有するオブジェクトを上書きする(ステップS107)。同様に、バックアップメタデータ制御部532は、通信部510が受信したメタデータにより、バックアップメタデータ記憶部522に格納されている同一のオブジェクトについてのメタデータを上書きする。
次に、バックアップメタデータ制御部532は、当該更新が完了すると、オブジェクトおよびそのメタデータの複製完了応答を、当該データの送信元のストレージノード30−1〜30−3に送信する(ステップS108)。
ストレージノード30−1〜30−3各々において、通信部310が、バックアップノード50から送信された複製完了応答を受信すると、抽出部332は、メタデータ記憶部322を参照し、メタデータに含まれる更新時点情報が示す更新時点が、前回処理時点情報が示す時点よりも新しいオブジェクトのメタデータを全て抽出したか否かを判定する(ステップS109)。全てのオブジェクトが抽出されていない場合(ステップS109;NO)、ステップS102に戻り、次のオブジェクトを抽出する。全てのオブジェクトが抽出されていた場合(ステップS109;YES)、判定部333は、バックアップ完了応答をバックアップ制御装置40に送信する(ステップS110)。
図7は、ストレージノード30による処理の流れの一例を示す図である。まず、ストレージノード30の通信部310が、バックアップ制御装置40からバックアップ要求を受信すると、オブジェクト制御部331は、バックアップ要求に含まれる前回処理時点情報を抽出部332に出力する。次に、抽出部332は、オブジェクト制御部331から前回処理時点情報を取得する。次に、抽出部332は、メタデータ記憶部322を参照し、メタデータを取得する(ステップS201)。
次に、抽出部332は、取得したメタデータの更新時点情報が示す更新時点が、前回処理時点情報が示す時点よりも新しいか否かを判定する(ステップS202)更新時点情報が示す更新時点が、前回処理時点情報が示す時点よりも新しい場合(ステップS202;NO)、ステップS206に遷移する。更新時点情報が示す更新時点が、前回処理時点情報が示す更新時点よりも新しい場合(ステップS202;YES)、抽出部332は、当該メタデータを判定部333に出力する。
次に判定部333は、抽出部332からメタデータを取得すると、当該メタデータのオブジェクト識別情報を含むタイムスタンプ要求を生成する。次に、判定部333は、生成したタイムスタンプ要求をバックアップノード50にバックアップノード50に送信することで、バックアップノードからタイムスタンプ応答を取得する(ステップS203)。次に、判定部333は、自装置が格納するメタデータに含まれる更新時点情報が示す更新時点が、受信したタイムスタンプ応答に含まれる更新時点情報が示す更新時点よりも新しいか否かを判定する。自装置が格納するオブジェクトの更新時点情報が示す更新時点の方が新しくない場合(ステップS204;NO)、ステップS206に遷移する。自装置が格納するオブジェクトの更新時点情報が示す更新時点の方が新しい場合(ステップS204;YES)、判定部333は、当該オブジェクトおよびそのメタデータをバックアップノード50に送信することで、バックアップノード50にオブジェクトを複製して格納させる(ステップS205)。
次に、抽出部332は、メタデータ記憶部322が格納するメタデータうち、更新時点情報が示す更新時点が、前回処理時点情報が示す時点よりも新しいオブジェクトのメタデータを全て抽出したか否かを判定する(ステップS206)。全てのオブジェクトが抽出されていた場合(ステップS206;YES)、判定部333は、バックアップ完了応答をバックアップ制御装置40に送信し、処理を終了する。全てのオブジェクトが抽出されていない場合(ステップS206;NO)、ステップS201に戻る。
以上のように、ストレージノード30は、自装置が格納するオブジェクトの更新時点と、バックアップノード50が格納するオブジェクトの更新時点とを比較し、自装置が格納するオブジェクトの更新時点の方が新しい場合にのみ、当該オブジェクトをバックアップノード50に送信する。これにより、冗長化されたオブジェクトが、複数回バックアップノード50に送信されることを避けることができる。
従来、図8に示すような構成を備えるストレージシステム2が提案されてきた。このストレージシステム2は、クライアント11と、プロキシノード21と、ストレージノード群34と、バックアップノード51と、を備える。ストレージノード群34には、複数のストレージノード33が属する。
ストレージシステム2は、本実施形態1のストレージシステム1と同様に、オブジェクト60をストレージノード33に冗長化して格納する。また、バックアップノード51には、矢印70に示すように、ストレージノード35から冗長化はせずにオブジェクト60が送信され、オブジェクトの複製61が格納される。
しかしながら、従来のストレージシステム2では、バックアップ処理におけるシステムへの負荷が高かった。従来のバックアップ処理には、例えば、バックアップノード51に対して、複数のストレージノード33から一斉にオブジェクトを送信する方法がある。しかしながら、ストレージシステム2において、同一のオブジェクトが複数のストレージノード33に冗長化されているため、同一のオブジェクトの送信が複数回発生してしまう。そのため、通信回線、ストレージノード33、バックアップノード51への負荷が大きく、処理完了までに要する時間も長かった。また、従来のバックアップ処理には、例えば、プロキシノード21が、複数のストレージノード33において冗長化されたオブジェクトのうち、複製を行うオブジェクトを選択して読み出し、バックアップノード51へとオブジェクトを送信する方法もある。しかしながら、この場合は、プロキシノード21が行う処理量が増大し、クライアント11からの要求に対する通常の処理が遅くなる可能性があった。バックアップ処理の間もクライアントへのサービスは継続する必要があり、このような状況は望ましくない。
これに対し、本実施形態のストレージシステム1は、それぞれが同一のオブジェクトを格納する複数のストレージノード30と、複数のストレージノード30と接続され、ストレージノード30が格納するオブジェクトの複製であるバックアップオブジェクトを格納するバックアップノードと、を有する。また、ストレージノード30は、自装置が格納するオブジェクトから複製対象のオブジェクトを抽出する抽出部と、複製対象のオブジェクトの更新時点が当該オブジェクトに対応するバックアップオブジェクトの更新時点に比して新しいか否かを判定する判定部333と、を備える。また、バックアップノード50は、ストレージノード30の判定部333による判定結果に基づいて、ストレージノード30が格納するオブジェクトを複製して自装置に格納するバックアップノード制御部530、を備える。
これにより、ストレージシステム1は、バックアップノード50に格納されているオブジェクトの更新時点に比して更新時点の新しいオブジェクトをストレージノード30からバックアップノード50に送信するため、オブジェクトが冗長化されていても、同一オブジェクトを複数回複製するような重複した処理を行わない。従って、オブジェクトの複製処理を最小限にし、処理時間も最小化するため、バックアップ処理の負荷を軽減することができる。
また、ストレージノード30の抽出部332は、所定の時点より後に更新されたオブジェクトを複製対象のオブジェクトとして抽出する。これにより、前回のバックアップ処理から更新されていないオブジェクトを、バックアップ処理の対象から除くことができる。その結果、ストレージノード30からバックアップノード50へのタイムスタンプ要求の回数を低減することができ、バックアップ処理の負荷をさらに軽減することができる。
また、ストレージシステム1は、バックアップ制御装置40を備え、バックアップ制御装置40は、所定の時点を指定する時点指定部431を備える。これにより、バックアップ処理の開始の制御をストレージノード30やプロキシノード20以外の装置に行わせることができ、バックアップ処理におけるこれらの装置への負荷をさらに軽減することができる。その結果、クライアントからの要求に対する通常の処理を円滑に行うことができる。
<第2の実施形態>
以下、図面を参照しながら本発明の第2の実施形態について説明する。第2の実施形態に係るストレージシステムは、第1の実施形態に係るストレージシステム1と同様に、オブジェクトの冗長化とバックアップ処理とを行う。
以下、図面を参照しながら本発明の第2の実施形態について説明する。第2の実施形態に係るストレージシステムは、第1の実施形態に係るストレージシステム1と同様に、オブジェクトの冗長化とバックアップ処理とを行う。
図9は、本実施形態に係るストレージシステム1aの概要を説明するための図である。ストレージシステム1aは、クライアント10aと、プロキシノード20aと、ストレージノード群31aと、バックアップ制御装置40aと、バックアップノード50aと、を備える。ストレージノード群31a各々は、複数のストレージノード30aを有する。ストレージシステム1aの各構成は、第1の実施形態に係るストレージシステム1の相互に各構成と同様に接続されている。
上述の本実施形態に係るストレージシステム1aの構成のうち、クライアント10a、プロキシノード20a、ストレージノード30a、バックアップノード50a各々は、第1の実施形態に係るストレージシステム1の、クライアント10、プロキシノード20、ストレージノード30、バックアップノード50各々と同一の機能構成を備えるため、説明を省略し、本実施形態に係る特徴的な構成であるストレージノード群31aと、バックアップ制御装置40aと、について説明する。
ストレージノード30aは、第1の実施形態に係るストレージノード30と同様、同一の施設などの拠点毎に複数まとめて設置され、拠点毎のストレージノード30aの集合が、ストレージノード群31aを構成する。例えば、図9において、ストレージノード群31aは、左から「拠点A、B、C、…」に存在し、バックアップノード50aは、拠点Xに存在する。ストレージノード群31aに含まれるストレージノード30a各々は、バックアップノード50aとの通信に利用する回線を共有し、その回線速度は拠点毎に設定されている。
本実施形態に係るストレージシステム1aは、ストレージノード30aが存在する拠点とバックアップノード50aが存在する拠点との間の通信回線の回線速度に基づいて、バックアップ処理を行うストレージノード30aを選択する。具体的には、ストレージシステム1aは、接続されている通信回線の回線速度がより速いストレージノード30aから、順次バックアップ処理を実行することで、通信回線への負荷を軽減する機能を有する。
図10は、ストレージシステム1aの機能構成の一例を示す図である。図10の例において、プロキシノード20aは1つであり、ストレージノード30aは3つであり、バックアップノード50aは1つであるとして説明する。ストレージノード30a−1〜30a−3は、それぞれ異なるストレージノード群31aに属し、それぞれ拠点A、B、Cに存在する。バックアップ制御装置40aは、拠点Xに存在する。
バックアップ制御装置40aは、通信部410aと、記憶部420aと、バックアップ制御部430aと、を備える。
通信部410aは、ストレージノード30a−1〜30a−3と通信を行う。
記憶部420aは、第1の実施形態に係るバックアップ制御装置40の記憶部420が備える構成に加え、回線速度記憶部421aを備える。
通信部410aは、ストレージノード30a−1〜30a−3と通信を行う。
記憶部420aは、第1の実施形態に係るバックアップ制御装置40の記憶部420が備える構成に加え、回線速度記憶部421aを備える。
回線速度記憶部421aは、ストレージノード30a−1〜30a−3各々の拠点とバックアップノード50との間の通信回線の回線速度についての回線速度情報を格納する。図11は、回線速度情報の一例を示す表T2である。この表2において、回線番号は、ストレージノード30a−1〜30a−3各々の拠点とバックアップノード50との間の通信回線の識別情報である。接続点1及び接続点2は、通信回線の末端に位置する装置が存在する拠点を示す。回線速度は、通信回線の回線速度を示し、接続点1と接続点2との間の通信速度の理論値を示す。
例えば、回線番号が「1」の通信回線は、接続点1が「拠点A」であり、接続点2が「拠点X」であり、回線速度が「500Mbps」である。従って、回線番号が「1」である通信回線は、「拠点A」に存在するストレージノード30a−1と「拠点X」に存在するバックアップノード50aとの間の回線であり、当該回線の回線速度は「500Mbps」である。同様に、回線番号が「2」である通信回線は、「拠点B」に存在するストレージノード30a−2と「拠点X」に存在するバックアップノード50aとの間の回線であり、当該回線の回線速度は「1Gbps」である。同様に、回線番号が「3」である通信回線は、「拠点C」に存在するストレージノード30a−3と「拠点X」に存在するバックアップノード50aとの間の回線であり、当該回線の回線速度は「10Gbps」である。
バックアップ制御装置40bの説明に戻る(図10)。バックアップ制御部430aは、時点指定部431aと、装置選択部432aと、を備える。
時点指定部431aは、バックアップ処理の開始を制御する。時点指定部431aは、例えば、現在の時点を監視し、予め定められた所定の時点であるか否かを判定する。現在の時点が所定の時点である場合、時点指定部431aは、記憶部420aから前回処理時点情報を取得する。時点指定部431aは、取得した前回処理時点情報を含むバックアップ要求を生成する。時点指定部431aは、生成したバックアップ要求を装置選択部432aに出力する。
時点指定部431aは、バックアップ処理の開始を制御する。時点指定部431aは、例えば、現在の時点を監視し、予め定められた所定の時点であるか否かを判定する。現在の時点が所定の時点である場合、時点指定部431aは、記憶部420aから前回処理時点情報を取得する。時点指定部431aは、取得した前回処理時点情報を含むバックアップ要求を生成する。時点指定部431aは、生成したバックアップ要求を装置選択部432aに出力する。
装置選択部432aは、ストレージノード30aが存在する拠点とバックアップノードが存在する拠点との間の回線速度に基づいて、バックアップ処理を行うストレージノード30aを選択する。すなわち、この一例において、装置選択部432aは、ストレージノード30aとバックアップノード50との間の回線速度に基づいて、ストレージノード30aを選択する。
装置選択部432aは、時点指定部431aからバックアップ要求を取得すると、回線速度記憶部421aを参照し、回線速度情報を取得する。装置選択部432aは取得した回線速度情報に基づき、回線速度の最も速い通信回線の末端の拠点に属するストレージノード30aを選択する。装置選択部432aは、通信部410aを介して、時点指定部431aから取得したバックアップ要求を、選択したストレージノード30aに送信する。ここで、装置選択部432aは、バックアップ要求の送信時点を示す前回処理時点情報を記憶部420aに格納する。通信部410aが、バックアップ要求に応じてストレージノード30aから送信されたバックアップ完了応答を受信すると、装置選択部432aは、次に回線速度の速い通信回線の末端の拠点に属するストレージノード30aを選択し、バックアップ要求を当該ストレージノード30aに送信する。以下、装置選択部432aは、全てのストレージノード30aを選択するまで、同様の処理を行う。通信部410aが、全てのストレージノード30aからバックアップ完了応答を受信すると、装置選択部432aは、処理を終了する。ただし、前回処理時点情報の格納は、最初の一回のみ行う。
次に、ストレージシステム1aの有する各装置の動作について説明する。図12は、ストレージシステム1aによる処理の流れの一例を示す図である。まず、バックアップ制御装置40aの装置選択部432aは、回線速度記憶部421aを参照し、回線速度情報を取得する。装置選択部432aは取得した回線速度情報に基づき、回線速度が最も回線の末端の拠点に属するストレージノード30aを選択する(ステップS301)。表T2の例では、回線番号が3の回線速度が「10Gbps」であり、最も速い。従って、装置選択部432aは、回線番号3の接続点1である拠点Cに属するストレージノード30a−3を選択する。次に、装置選択部432aは、通信部410aを介して、バックアップ要求を、選択したストレージノード30a−3に送信する(ステップS302)。次に、ストレージノード30a−3は、バックアップ要求を受信すると、図6を用いて説明した、ステップS102〜S109の処理を実行する(ステップS303)。特に、ステップS107の処理において、バクアップオブジェクト制御部531aは、ストレージノード30a―3から受信したオブジェクトをバックアップオブジェクト記憶部521に格納する。バックアップ処理が完了すると、ストレージノード30a−3は、バックアップ制御装置40aにバックアップ完了応答を送信する(ステップS304)。
次に、バックアップ制御装置40aの通信部410aがストレージノード30a−3からバックアップ応答を受信すると、装置選択部432aは、回線速度が2番目に速い回線の末端の拠点に属するストレージノード30aを選択する(ステップS305)。表T2の例では、回線番号が2の回線速度「1Gbps」であり、2番目に速い。従って、装置選択部432aは、回線番号2の接続点1である拠点Bに属するストレージノード30a−2を選択する。次に、装置選択部432aは、バックアップ要求を、選択したストレージノード30a−2に送信する(ステップS306)。
次に、ストレージノード30a−2は、バックアップ要求を受信すると、ステップS102〜S109の処理を実行する(ステップS307)。このステップでは、ストレージノード30a−3が格納するオブジェクトのうち、故障などの原因によって複製されなかったオブジェクトのみ複製処理が行われる。複製されるオブジェクトの数は非常に少ないことが想定される。バックアップ処理が完了すると、ストレージノード30a−2は、バックアップ制御装置40aにバックアップ完了応答を送信する(ステップS308)。
次に、バックアップ制御装置40aの通信部410aがストレージノード30a−2からバックアップ完了応答を受信すると、装置選択部432aは、回線速度が3番目に速い回線の末端の拠点に属するストレージノード30aを選択する(ステップS309)。表T2の例では、回線番号3の回線速度が「500Mbps」であって、3つの回線の中で最も遅い回線である。従って、装置選択部432aは、回線番号3の接続点1である拠点Aに属するストレージノード30a−1を選択する。次に、装置選択部432aは、バックアップ要求を、選択したストレージノード30a−1に送信する(ステップS310)。
次に、ストレージノード30a−1は、バックアップ要求を受信すると、ステップS102〜S109の処理を実行する(ステップS311)。このステップでは、ストレージノード30a−2、30a−3が格納するオブジェクトのうち、故障などの原因によって複製されなかったオブジェクトのみ複製処理が行われる。ほとんどのオブジェクトについては複製処理が実施されないことが想定される。バックアップ処理が完了すると、ストレージノード30a−1は、バックアップ制御装置40aにバックアップ完了応答を送信する(ステップS312)。そして、バックアップ制御装置40aの通信部410aがストレージノード30a−1からバックアップ完了応答を受信し、処理を終了する。
以上のように、本実施形態に係るストレージシステム1aのバックアップ制御装置40aは、ストレージノード30aとバックアップノード50aとの間の回線速度に基づいてストレージノード30aを選択する装置選択部432aを備える。また、バックアップノード50aのバックアップオブジェクト制御部531aは、バックアップ制御装置40aの装置選択部432aにより選択されたストレージノード30aが格納するオブジェクトを複製して自装置に格納する。これにより、バックアップ処理における通信回線の選択を最適化することができるため、通信回線にかかる負荷を軽減することができ、通信回線の利用に伴って発生するコストを抑えることができる。
<第3の実施形態>
以下、図面を参照しながら本発明の第3の実施形態について説明する。第3の実施形態に係るストレージシステムは、第1の実施形態に係るストレージシステム1と同様に、オブジェクトの冗長化とバックアップ処理とを行う。
以下、図面を参照しながら本発明の第3の実施形態について説明する。第3の実施形態に係るストレージシステムは、第1の実施形態に係るストレージシステム1と同様に、オブジェクトの冗長化とバックアップ処理とを行う。
図13は、本実施形態に係るストレージシステム1bの概要を説明するための図である。ストレージシステム1bは、クライアント10bと、プロキシノード20bと、ストレージノード群31bと、バックアップ制御装置40bと、バックアップノード50bと、を備える。ストレージノード群31b各々は、複数のストレージノード30bを有する。ストレージシステム1bの各構成は、第1の実施形態に係るストレージシステム1と同様に、相互に接続されている。
本実施形態に係るストレージシステム1bは、冗長化される同一のオブジェクトについて、バックアップ処理の優先順位を付与する。図13において、符号601b、602b、603bで示されるオブジェクト「A1」、「A2」、「A3」は、いずれも冗長化された同一のオブジェクト「A」であり、バックアップ処理における優先順位の「1」、「2」、「3」がそれぞれ付与されている。当該オブジェクトのバックアップは、符号604bにより示されるように、バックアップノード50bに格納されている。
同様に、符号611b、612b、613bで示されるオブジェクト「B1」、「B2」、「B3」は、いずれも冗長化された同一のオブジェクト「B」である。当該オブジェクトのバックアップは、符号614bにより示されるように、バックアップノード50bに格納されている。同様に、符号621b、622b、623bで示されるオブジェクト「C1」、「C2」、「C3」は、いずれも冗長化された同一のオブジェクト「C」である。当該オブジェクトのバックアップは、符号624bにより示されるように、バックアップノード50bに格納されている。オブジェクトの格納時には、優先順位の高いオブジェクトが特定のストレージノード30bに集中しないように分配される。
ストレージシステム1bは、バックアップ処理において、付与された優先順位が高いオブジェクトからバックアップ処理を実行する。初めに優先順位1のオブジェクトが指定されると、ストレージノード30b各々は、自装置が格納する優先順位1のオブジェクトのバックアップ処理を実行する。ストレージノード30b各々によるバックアップ処理が完了すると、次に、優先順位2のオブジェクトが指定され、上述の処理と同様に、ストレージノード30b各々による優先順位2のオブジェクトのバックアップ処理が実行される。優先順位2のオブジェクトのバックアップ処理が完了すると、優先順位3のオブジェクトが指定され、上述の処理と同様に、ストレージノード30b各々による優先順位3のオブジェクトのバックアップ処理が実行される。
このように、優先順位に基づいて、段階的にバックアップ処理を行うことにより、ストレージシステム1bは、ストレージノード30bに格納されているオブジェクトの更新時点と、バックアップノード50bに格納されているバックアップオブジェクトの更新時点と、の比較判定処理の発生回数を低減するため、バックアップ処理の負荷をさらに軽減することができる。
上述の本実施形態に係るストレージシステム1bの構成のうち、クライアント10b、バックアップノード50b各々は、第1の実施形態に係るストレージシステム1の、クライアント10、バックアップノード50各々と同一の機能構成を備えるため、説明を省略し、本実施形態に係る特徴的な構成であるプロキシノード20bと、ストレージノード30bと、バックアップ制御装置40bと、について説明する。
図14は、ストレージシステム1bの機能構成の一例を示す図である。図14の例において、プロキシノード20bは1つであり、ストレージノード30bは3つであり、バックアップノード50bは1つであるとして説明する。
プロキシノード20bは、通信部210bと、記憶部220bと、プロキシノード制御部230bと、を備える。
通信部210bは、クライアント10b、ストレージノード30b−1〜30b−3と通信を行う。
本実施形態に係るプロキシノード20bの記憶部220bは、第1の実施形態に係るプロキシノード20の記憶部220が備える構成と同様の構成を備える。
通信部210bは、クライアント10b、ストレージノード30b−1〜30b−3と通信を行う。
本実施形態に係るプロキシノード20bの記憶部220bは、第1の実施形態に係るプロキシノード20の記憶部220が備える構成と同様の構成を備える。
プロキシノード制御部230bは、通信部210bがクライアント10bから受信した要求に基づいて、処理を行う。通信部210bがクライアント10bからオブジェクトの書き込み要求を受信した場合、プロキシノード制御部230bは、オブジェクト識別情報からハッシュ値を算出する。プロキシノード制御部230bは、リングファイル記憶部221bのリングファイルを参照し、算出したハッシュ値に基づくパーティション番号から、格納先ディスクIDを取得する。プロキシノード制御部230bは、通信部210bを介して、オブジェクトの書き込み要求を、取得した格納先ディスクIDが示すストレージノード30b各々に送信する。このときプロキシノード制御部230bは、ストレージノード30b−1〜30−3各々に送信するオブジェクトに対し、1から3までの異なる優先順位を対応付けて送信する。
ここで、各オブジェクトに対応付ける優先順位は、例えば、リングファイルに基づいて、決定してよい。例えば、第1の格納先ディスクIDのストレージノード30bに送信するオブジェクトの優先順位を「1」とし、第2の格納先ディスクIDのストレージノード30bに送信するオブジェクトの優先順位を「2」とし、第3の格納先ディスクIDのストレージノード30bに送信するオブジェクトの優先順位を「3」としてよい。通信部210bがクライアント10bからオブジェクトの読み出し要求を受信した場合、プロキシノード制御部230bは、第1の実施形態に係るプロキシノード20の通信部210と同様の処理を行う。
次に、バックアップ制御装置40bの構成について説明する。バックアップ制御装置40bは、通信部410bと、記憶部420bと、バックアップ制御部430bと、を備える。
通信部410bは、ストレージノード30b−1〜30b−3と通信を行う。
記憶部420bは、第1の実施形態に係るバックアップ制御装置40の記憶部420が備える構成と同様の構成を備える。
通信部410bは、ストレージノード30b−1〜30b−3と通信を行う。
記憶部420bは、第1の実施形態に係るバックアップ制御装置40の記憶部420が備える構成と同様の構成を備える。
バックアップ制御部430bは、時点指定部431bと、順位指定部433bと、を備える。
時点指定部431bは、バックアップ処理の開始を制御する。時点指定部431bは、例えば、現在の時点を監視し、予め定められた所定の時点であるか否かを判定する。現在の時点が所定の時点である場合、時点指定部431bは、記憶部420bから前回処理時点情報を取得する。時点指定部431bは、取得した前回処理時点情報を順位指定部433bに出力する。
時点指定部431bは、バックアップ処理の開始を制御する。時点指定部431bは、例えば、現在の時点を監視し、予め定められた所定の時点であるか否かを判定する。現在の時点が所定の時点である場合、時点指定部431bは、記憶部420bから前回処理時点情報を取得する。時点指定部431bは、取得した前回処理時点情報を順位指定部433bに出力する。
順位指定部433bは、時点指定部431bから前回処理時点情報を取得すると、優先順位1を選択する。順位指定部433bは、選択した優先順位と取得した前回処理時点情報とを含むバックアップ要求を生成する。順位指定部433bは、生成したバックアップ要求を、通信部410bを介して、ストレージノード30b−1〜30b−3に送信する。ここで、順位指定部433bは、送信したバックアップ要求の送信時点を、前回処理時点情報として記憶部420bに格納する。
通信部410bが、送信したバックアップ要求に応じてストレージノード30b−1〜30b−3各々から送信されたバックアップ完了応答を受信すると、順位指定部433bは、前回のバックアップ要求生成時の優先順位から順位を1段階下げ、当該優先順位と前回処理時点情報とを含むバックアップ要求を再度生成する。ただし、ここに含まれる前回処理時点情報には、優先順位1を含むバックアップ要求を生成したときと同じ前回処理時点情報が使用される。順位指定部433bは、生成したバックアップ要求を、ストレージノード30b−1〜30b−3に送信する。
このように、順位指定部433bは、優先順位の引き下げとバックアップ要求の送信処理とを繰り返し、予め設定された全ての順位についてバックアップ要求を行う。本例では、優先順位は3まで設定されているので、優先順位3を含むバックアップ要求に応じてストレージノード30b−1〜30b−3各々から送信されたバックアップ完了応答を通信部410が受信した場合、順位指定部433bはバックアップ処理を終了する。ただし、前回処理時点情報の格納は、最初の一回のみ行う。
次に、ストレージノード30bの構成について説明する。ストレージノード30bは、通信部310bと、記憶部320bと、ストレージノード制御部330bと、を備える。
通信部310bは、プロキシノード20b、バックアップ制御装置40b、およびバックアップノード50bと通信を行う。
通信部310bは、プロキシノード20b、バックアップ制御装置40b、およびバックアップノード50bと通信を行う。
記憶部320bは、オブジェクト記憶部321bと、メタデータ記憶部322bと、リングファイル記憶部323bと、を備える。オブジェクト記憶部321bとリングファイル記憶部323bとは、第1の実施形態に係るストレージノード30のオブジェクト記憶部321とリングファイル記憶部323と同様に、それぞれオブジェクトとリングファイルとを格納する。メタデータ記憶部322bは、メタデータを格納する。メタデータ記憶部322bに格納されるメタデータは、例えば、図5を用いて説明した各項目に加え、バックアップ処理におけるオブジェクトの優先順位を含む。
ストレージノード制御部330bは、オブジェクト制御部331bと、抽出部332bと、判定部333bと、を備える。判定部333bは、第1の実施形態に係るストレージノード30の判定部333と同様の機能を備える。
オブジェクト制御部331bは、オブジェクトの送受信とオブジェクトの書き込み、読み出しを制御する。通信部310bが、プロキシノード20bからオブジェクトの書き込み要求と優先順位とを受信すると、オブジェクト制御部331bは、当該オブジェクトをオブジェクト記憶部321bに格納し、当該オブジェクトのメタデータをメタデータ記憶部322に格納する。このとき、オブジェクト制御部331bは、オブジェクトをオブジェクト記憶部321bに格納した時点を示す更新時点情報と優先順位についての優先順位情報とを、それぞれ、メタデータ記憶部322に書き込む。オブジェクト制御部331bは、オブジェクトとメタデータとの格納が完了すると、通信部310bを介して、オブジェクトの書き込み完了応答をプロキシノード20bに送信する。
通信部310bが、プロキシノード20bからオブジェクトの読み出し要求受信した場合、オブジェクト制御部331bは、第1の実施形態に係るストレージノード30の通信部310と同様の処理を行う。通信部310bが、バックアップ制御装置40bからバックアップ要求を受信すると、オブジェクト制御部331bは、バックアップ要求に含まれる前回処理時点情報と優先順位とを抽出部332bに出力する。
抽出部332bは、オブジェクト制御部331bから取得した前回処理時点情報と優先順位とに基づいて、自装置が格納するオブジェクトから複製対象のオブジェクトを抽出する。抽出部332bは、ストレージノード30−1〜30−3によって格納される同一のオブジェクト各々に対応付けられた優先順位に基づいてオブジェクトを抽出する。抽出部332bは、メタデータ記憶部322bを参照し、オブジェクト制御部331bから取得した優先順位と一致するオブジェクトのメタデータを抽出する。抽出部332bは、優先順位に基づいて抽出されたオブジェクトのメタデータに含まれる更新時点情報が示す更新時点が、前回処理時点情報が示す時点よりも新しいオブジェクトのメタデータを抽出する。抽出部332bは、抽出したメタデータを判定部333bに出力する。
次に、ストレージシステム1bの有する各装置の動作について説明する。図15は、ストレージシステム1bによる処理の流れの一例を示す図である。まず、バックアップ制御装置40bの順位指定部433bは、優先順位1を指定する(ステップS401)。次に、順位指定部433bは、指定した優先順位を含むバックアップ要求をストレージノード30b−1〜30b−3に送信する(ステップS402)。次に、ストレージノード30b−1〜30b−3各々は、バックアップ要求を受信する。次に、ストレージノード30b−1〜30b−3各々の抽出部332bは、メタデータ記憶部322を参照し、オブジェクト制御部331bから取得した優先順位と一致するオブジェクトのメタデータを抽出する(ステップS403)。ここでは、優先順位1が指定されているため、抽出部332bは、優先順位が1であるオブジェクトのメタデータを抽出する。そして、抽出したオブジェクトについて、図6を用いて説明したステップS102〜S109の処理を実行する(ステップS404)。特に、ステップS102では、抽出部332bは、前回所定時点情報に基づいて、自装置のオブジェクトのメタデータを抽出する。すなわち、ステップS403、S404の処理を言い換えると、この一例において、自装置が格納するオブジェクトに予め対応付けられた優先順位が、順位指定部433bによって指定された優先順位である場合、抽出部332bは、バックアップ制御装置40bの時点指定部431bが指定した時点より後に更新されたオブジェクトを抽出する。バックアップ処理が完了すると、ストレージノード30b−1〜30b−3各々は、バックアップ制御装置40bにバックアップ完了応答を送信する(ステップS405)。
次に、バックアップ制御装置40bの通信部410bがストレージノード30b−1〜30b−3各々からバックアップ完了応答を受信すると、順位指定部433bは、優先順位が一段階低い優先順位2を指定する(ステップS406)。次に、順位指定部433bは、指定した優先順位を含むバックアップ要求をストレージノード30b−1〜30b−3に送信する(ステップS407)。次に、ストレージノード30b−1〜30b−3各々は、バックアップ要求を受信する。次に、ストレージノード30b−1〜30b−3各々の抽出部332bは、メタデータ記憶部322を参照し、オブジェクト制御部331bから取得した優先順位が2であるオブジェクトのメタデータを抽出する(ステップS408)。そして、抽出したオブジェクトについて、ステップS102〜S109の処理を実行する(ステップS409)。このステップでは、故障などの原因によって、優先順位1のオブジェクトのうちの複製されなかったオブジェクトのみ複製処理が行われる。複製されるオブジェクトの数は非常に少ないことが想定される。バックアップ処理が完了すると、ストレージノード30b−1〜30b−3各々は、バックアップ制御装置40bにバックアップ完了応答を送信する(ステップS410)。
次に、バックアップ制御装置40bの通信部410bがストレージノード30b−1〜30b−3各々からバックアップ完了応答を受信すると、順位指定部433bは、優先順位が一段階低い優先順位3を指定する(ステップS411)。次に、順位指定部433bは、指定した優先順位を含むバックアップ要求をストレージノード30b−1〜30b−3に送信する(ステップS412)。次に、ストレージノード30b−1〜30b−3各々は、バックアップ要求を受信する。次に、ストレージノード30b−1〜30b−3各々の抽出部332bは、メタデータ記憶部322を参照し、オブジェクト制御部331bから取得した優先順位が3であるオブジェクトのメタデータを抽出する(ステップS413)。そして、抽出したオブジェクトについて、ステップS102〜S109の処理を実行する(ステップS414)。このステップでは、故障などの原因によって、優先順位1及び2のオブジェクトのうちの複製されなかったオブジェクトのみ複製処理が行われる。ほとんどのオブジェクトについては複製処理が実施されないことが想定される。バックアップ処理が完了すると、ストレージノード30b−1〜30b−3各々は、バックアップ制御装置40bにバックアップ完了応答を送信する(ステップS415)。
以上のように、本実施形態に係るストレージノード30bの抽出部332bは、オブジェクト各々に対応付けられた優先順位に基づいてオブジェクトを抽出する。優先順位は、冗長化されたオブジェクト各々について、特定のストレージノード30に高い優先順位のオブジェクトが集中しないように分散して対応付けられる。従って、優先順位を指定して、順に複製処理を行うことで、ストレージノード30b各々にかかる負荷を分散することができる。これにより、バックアップ処理中もクライアント10bからの要求に対する通常の処理について、ストレージノード30bとプロキシノード20bとの処理能力をより多く割当てることができる。
なお、上述の各実施形態では、バックアップノードを、ストレージノードとは異なる態様でその他の装置と接続した。これにより、ストレージシステムにおけるオブジェクトの消失の危険性を低減し、信頼性を高めることができる。例えば、プロキシノードの制御ソフトウェアのエラー等により、ストレージノードが格納するオブジェクトが、冗長化にも関わらず破損した場合であっても、当該オブジェクトをバックアップノードが格納するオブジェクトから復旧できる可能性がある。また、バックアップノードを、ストレージノードとは異なる拠点に設置することにより、自然災害などによるオブジェクトの消失の危険性をさらに低減することができ、いわゆるディザスタ・リカバリーを実現できる。
なお、上述の各実施形態におけるストレージノードは、書き込みや読み出しなどの単純な処理のみを行うために安価に利用することができる。このような安価なストレージノードを利用して信頼性の高いストレージシステムを構築できるため、安価にディザスタ・リカバリーを実現できる。また、上述の各実施形態における各装置の機能や構成は、ネットワーク上で提供されているストレージサービス上に実現してよい。これにより、さらに安価にディザスタ・リカバリーを実現できる。
なお、上述の各実施形態におけるバックアップノードは、ストレージノードが行うオブジェクトの書き込みや読み出しなどの単純な処理の他に、より複雑な処理を行う機能を備えてもよい。例えば、複数のストレージノードから並行して同一のオブジェクトの複製処理が発生した場合などに、1つのストレージノードからの処理しか受け付けないようにアクセス制御機能やロック機能を備えてもよい。ただし、このような機能を備えていない場合であっても、バックアップノードに、同一のオブジェクトの複製が複数個格納されるだけである。このときは、例えば、更新時点情報が示す更新時点が新しいものが、タイムスタンプ要求や復旧処理に利用されるように設定してよい。
なお、上述した各実施形態に係るストレージノード群とバックアップノードとは、それぞれ、同一の拠点に存在してもよいし、異なる拠点に存在してもよい。例えば、多くのストレージノードを同一の拠点に設置することにより、拠点間の通信を抑え、通信回線への負荷を軽減することができる。これに対し、地理的に離れた拠点にストレージノードとバックアップノードを設置した場合は、激甚災害などで一部の拠点が利用不能になった場合でも、オブジェクトを復旧することができ、ディザスタ・リカバリーを実現することができる。また、「拠点」とは、施設などの空間や地理上の所定の範囲のことを指して説明してきたが、拠点の概念は、これのみに限定されない。例えば、拠点とは、プロキシノードとの間の回線の速度や装置の処理能力などに基づいて、装置を自由に分類する単位であってよい。
なお、上述した各実施形態において、例えば、プロキシノード、バックアップ制御装置、バックアップノードは、それぞれ複数あってもよい。また、ストレージノードやストレージノード群の数も上述した数に限定されない。例えば、ストレージノードは1つ、2つ、または4以上の複数あってよいし、ストレージノード群は、1つから9つ、または11以上の複数あってもよい。また、ストレージシステムは、上述した各装置の機能を統合する装置を有してよい。例えば、バックアップ制御部の機能をプロキシノードやストレージノード、バックアップノードが備えてもよい。
なお、上述した各実施形態において、ストレージノードの抽出部は、自装置の備える時計に基づいて、複製対象のオブジェクトを抽出してよい。例えば、ストレージノードは、毎日定時刻にバックアップ処理を開始し、抽出部は、前日のバックアップ処理の後に更新されたオブジェクトを複製対象のオブジェクトとして抽出してよい。この場合、例えば、ストレージノード各々がバックアップ処理を開始する時刻をずらすことで、負荷を分散してもよい。このように、所定の時点とは、前回のバックアップ処理からの経過時間のような時間であってもよいし、予め定められた時刻であってもよい。また、オブジェクトの更新時点も、前回の更新から経過した時間であってもよいし、更新が行われた時刻であってもよい。
なお、上述した各実施形態において、抽出部や判定部は、「Last Modified」を更新時点情報とし、当該更新時点情報が示す更新時点に基づいて、オブジェクトの抽出や判定を行ってもよい。また、判定部は、バックアップノードに備えられてもよい。この場合、例えば、抽出部は抽出したオブジェクト識別情報と更新時点情報とをバックアップノードに送信する。バックアップノードは、受信したオブジェクト識別情報に基づいて、自装置が格納するメタデータを取得する。バックアップノードの判定部は、ストレージノードから受信した更新時点情報と自装置が格納するメタデータの更新時点情報とを比較し、どちらが新しいかを判定してよい。そして、その判定結果をストレージノードに送信することで、上述した各実施形態に係るストレージシステムの機能を実現することができる。また、抽出部によるオブジェクトの抽出は複数同時に行われてもよいし、1つずつ行われてもよい。
なお、上述した各実施形態における各装置の機能を組み合わせて実現してもよい。例えば、ストレージシステムは、第2の実施形態において説明した回線速度に基づいて装置を選択する構成と、第3の実施形態において説明したオブジェクトの優先順位に基づいてオブジェクトを抽出する構成とを兼ね備えてもよい。例えば、バックアップ制御装置の装置選択部が回線速度に基づいて、バックアップ処理を行うストレージノードを選択する。次に、選択されたストレージノードは、順位指定部が指定した優先順位に基づいて、自装置が格納するオブジェクトを抽出する。次に、ストレージノードは、上述したステップS102〜S109によるバックアップ処理を行う。当該処理の完了後、順位指定部は優先順位を一段階下げて指定し直し、ストレージノードは、再度、オブジェクトの抽出とバックアップ処理とを行う。全ての優先順位について同様の処理を完了すると、装置選択部は、バックアップ処理を行うストレージノードを、回線速度に基づいて選択し直す。以降は上述した処理を繰り返す。これにより、ストレージシステムは、第2の実施形態に係るストレージシステム1aと第3のストレージシステム1bによる効果を同時に奏することができ、バックアップ処理の負荷をさらに軽減することができる。
なお、上述した各実施形態におけるプロキシノード、ストレージノード、バックアップ制御部、バックアップノードの一部、例えば、プロキシノード制御部、オブジェクト制御部、抽出部、判定部、時点指定部、装置選択部、順位指定部、バックアップオブジェクト制御部、バックアップメタデータ制御部などをコンピュータで実現するようにしてもよい。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、勘定装置、取引制御装置、端末装置に内蔵されたコンピュータシステムであって、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
また、上述した実施形態におけるプロキシノード、ストレージノード、バックアップ制御部、バックアップノードの一部、または全部を、LSI(Large Scale Integration)等の集積回路として実現してもよい。勘定装置、取引制御装置、端末装置の各機能ブロックは個別にプロセッサ化してもよいし、一部、または全部を集積してプロセッサ化してもよい。また、集積回路化の手法はLSIに限らず専用回路、または汎用プロセッサで実現してもよい。また、半導体技術の進歩によりLSIに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いてもよい。
以上、図面を参照してこの発明の一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
1…ストレージシステム、20…プロキシノード、30…ストレージノード、40…バックアップ制御装置、50…バックアップノード、210…通信部、220…記憶部、221…リングファイル記憶部、230…プロキシノード制御部、310…通信部、320…記憶部、321…オブジェクト記憶部、322…メタデータ記憶部、323…リングファイル記憶部、330…ストレージノード制御部、331…オブジェクト制御部、332…抽出部、333…判定部、410…通信部、420…記憶部、421a…回線速度記憶部、430…バックアップ制御部、431…時点指定部、432a…装置選択部、433b…順位指定部、510…通信部、520…記憶部、521…バックアップオブジェクト記憶部、522…バックアップメタデータ記憶部、523…リングファイル記憶部、530…バックアップノード制御部、531…バクアップオブジェクト制御部、532…バックアップメタデータ制御部
Claims (9)
- それぞれが同一のデータを格納する複数のストレージノードと、前記複数のストレージノードと接続され、前記ストレージノードが格納するデータの複製であるバックアップデータを格納するバックアップノードと、を有するストレージシステムであって、
前記ストレージノードは、
自装置が格納するデータから複製対象のデータを抽出する抽出部と、
前記複製対象のデータの更新時点が当該データに対応するバックアップデータの更新時点に比して新しいか否かを判定する判定部と、
を備え、
前記バックアップノードは、
前記ストレージノードの判定部による判定結果に基づいて、前記ストレージノードが格納するデータを複製して自装置に格納するバックアップノード制御部、
を備えることを特徴とするストレージシステム。 - 前記ストレージノードの抽出部は、所定の時点より後に更新されたデータを前記複製対象のデータとして抽出する、
ことを特徴とする請求項1に記載のストレージシステム。 - 前記ストレージシステムは、バックアップ制御装置を備え、
前記バックアップ制御装置は、
前記所定の時点を指定する時点指定部、
を備えることを特徴とする請求項2に記載のストレージシステム。 - 前記バックアップノードのバックアップノード制御部は、前記複数のストレージノードのうち、前記ストレージノードと前記バックアップノードとの間の回線速度に基づいて選択されたストレージノードが格納するデータを複製して自装置に格納する、
ことを特徴とする請求項1から3のいずれか一項に記載のストレージシステム。 - 前記ストレージノードの抽出部は、データ各々に予め対応付けられた優先順位に基づいて前記複製対象のデータを抽出する、
ことを特徴とする請求項1から4のいずれか一項に記載のストレージシステム。 - それぞれが同一のデータを格納する複数のストレージノードと、前記複数のストレージノードと接続され、前記ストレージノードが格納するデータの複製であるバックアップデータを格納するバックアップノードと、前記バックアップデータを格納するための処理を制御するバックアップ制御装置と、を有するストレージシステムであって、
前記バックアップ制御装置は、
時点を指定する時点指定部と、
前記ストレージノードと前記バックアップノードとの間の回線速度に基づいて前記ストレージノードを選択する装置選択部と、
を備え、
前記バックアップ制御装置の装置選択部によって選択された前記ストレージノードは、
前記バックアップ制御装置の時点指定部が指定した時点より後に更新されたデータを抽出する抽出部と、
前記抽出部が抽出したデータの更新時点が当該データに対応するバックアップデータの更新時点に比して新しいか否かを判定する判定部と、
を備え、
前記バックアップノードは、
前記ストレージノードの判定部による判定結果に基づいて、前記ストレージノードが格納するデータを複製して自装置に格納するバックアップノード制御部、
を備えることを特徴とするストレージシステム。 - それぞれが同一のデータを格納する複数のストレージノードと、前記複数のストレージノードと接続され、前記ストレージノードが格納するデータの複製であるバックアップデータを格納するバックアップノードと、前記バックアップデータを格納するための処理を制御するバックアップ制御装置と、を有するストレージシステムであって、
前記バックアップ制御装置は、
時点を指定する時点指定部と、
優先順位を指定する順位指定部と、
を備え、
前記ストレージノードは、
自装置が格納するデータに予め対応付けられた優先順位が、前記順位指定部によって指定された優先順位である場合、前記バックアップ制御装置の時点指定部が指定した時点より後に更新されたデータを抽出する抽出部と、
前記抽出部が抽出したデータの更新時点が当該データに対応するバックアップデータの更新時点に比して新しいか否かを判定する判定部と、
を備え、
前記バックアップノードは、
前記ストレージノードの判定部による判定結果に基づいて、前記ストレージノードが格納するデータを複製して自装置に格納するバックアップノード制御部、
を備えることを特徴とするストレージシステム。 - それぞれが同一のデータを格納する複数のストレージノードと、前記複数のストレージノードと接続され、前記ストレージノードの格納するデータの複製であるバックアップデータを格納するバックアップノードと、前記バックアップデータを格納するための処理を制御するバックアップ制御装置と、を有するストレージシステムにおけるストレージ制御方法であって、
前記バックアップ制御装置が、時点を指定する時点指定過程と、
前記バックアップ制御装置が、前記ストレージノードと前記バックアップノードとの間の回線速度に基づいて前記ストレージノードを選択する装置選択過程と、
前記装置選択過程において選択された前記ストレージノードが、前記時点指定過程において指定された時点より後に更新されたデータを抽出する抽出過程と、
前記装置選択過程において選択された前記ストレージノードが、前記抽出過程において抽出されたデータの更新時点が当該データに対応するバックアップデータの更新時点に比して新しいか否かを判定する判定過程と、
前記バックアップノードが、前記判定過程における判定結果に基づいて、前記ストレージノードが格納するデータを複製して自装置に格納する格納過程と、
を有することを特徴とするストレージ制御方法。 - それぞれが同一のデータを格納する複数のストレージノードと、前記複数のストレージノードと接続され、前記ストレージノードの格納するデータの複製であるバックアップデータを格納するバックアップノードと、前記バックアップデータを格納するための処理を制御するバックアップ制御装置と、を有するストレージシステムにおけるストレージノードとしてのコンピュータに、
前記ストレージノードと前記バックアップノードとの間の回線速度に基づいて、前記バックアップ制御装置から選択された場合に、前記バックアップ制御装置から指定された時点より後に更新されたデータを抽出する抽出手順、
前記抽出手順において抽出されたデータの更新時点が当該データに対応するバックアップデータの更新時点に比して新しいか否かを判定する判定手順、
前記判定手順における判定結果に基づいて、自装置が格納するデータを複製してバックアップノードに送信する送信手順、
を実行させるためのストレージ制御プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013228305A JP2015088109A (ja) | 2013-11-01 | 2013-11-01 | ストレージシステム、ストレージ制御方法、およびストレージ制御プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013228305A JP2015088109A (ja) | 2013-11-01 | 2013-11-01 | ストレージシステム、ストレージ制御方法、およびストレージ制御プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015088109A true JP2015088109A (ja) | 2015-05-07 |
Family
ID=53050780
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013228305A Pending JP2015088109A (ja) | 2013-11-01 | 2013-11-01 | ストレージシステム、ストレージ制御方法、およびストレージ制御プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2015088109A (ja) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000200208A (ja) * | 1999-01-06 | 2000-07-18 | Fujitsu Ltd | ファイルバックアップ方法,装置およびそのプログラム記録媒体 |
JP2000215129A (ja) * | 1999-01-25 | 2000-08-04 | Fujitsu Ltd | クライアント/サ―バシステム、クライアントコンピュ―タ及び記録媒体 |
JP2008293256A (ja) * | 2007-05-24 | 2008-12-04 | Nec Corp | 冗長構成サーバシステムにおけるファイルバックアップ方法、プログラム、及び、冗長構成サーバシステム |
JP2010225021A (ja) * | 2009-03-25 | 2010-10-07 | Toshiba Corp | ファイルバックアップ装置およびその方法 |
JP2013037567A (ja) * | 2011-08-09 | 2013-02-21 | Nec Biglobe Ltd | データ管理システムおよびデータ管理方法 |
-
2013
- 2013-11-01 JP JP2013228305A patent/JP2015088109A/ja active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000200208A (ja) * | 1999-01-06 | 2000-07-18 | Fujitsu Ltd | ファイルバックアップ方法,装置およびそのプログラム記録媒体 |
JP2000215129A (ja) * | 1999-01-25 | 2000-08-04 | Fujitsu Ltd | クライアント/サ―バシステム、クライアントコンピュ―タ及び記録媒体 |
JP2008293256A (ja) * | 2007-05-24 | 2008-12-04 | Nec Corp | 冗長構成サーバシステムにおけるファイルバックアップ方法、プログラム、及び、冗長構成サーバシステム |
JP2010225021A (ja) * | 2009-03-25 | 2010-10-07 | Toshiba Corp | ファイルバックアップ装置およびその方法 |
JP2013037567A (ja) * | 2011-08-09 | 2013-02-21 | Nec Biglobe Ltd | データ管理システムおよびデータ管理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10776396B2 (en) | Computer implemented method for dynamic sharding | |
JP6328432B2 (ja) | ゲートウェイ装置、ファイルサーバシステム及びファイル分散方法 | |
US8239621B2 (en) | Distributed data storage system, data distribution method, and apparatus and program to be used for the same | |
US20140081919A1 (en) | Distributed backup system for determining access destination based on multiple performance indexes | |
JP5411250B2 (ja) | 冗長データ記憶システムへの指示に従ってのデータ配置 | |
US9305072B2 (en) | Information storage system and data replication method thereof | |
US7689764B1 (en) | Network routing of data based on content thereof | |
US20060271653A1 (en) | Computer system | |
US9031906B2 (en) | Method of managing data in asymmetric cluster file system | |
JP2005242403A (ja) | 計算機システム | |
US20120246206A1 (en) | File server system and storage control method | |
CN110147203B (zh) | 一种文件管理方法、装置、电子设备及存储介质 | |
US10489353B2 (en) | Computer system and data management method | |
JP6671708B2 (ja) | バックアップリストアシステム及びバックアップリストア方法 | |
JP2011170665A (ja) | ストレージシステム | |
KR101035857B1 (ko) | 데이터 관리 방법 및 그 시스템 | |
JP6413792B2 (ja) | ストレージシステム | |
JP2015148919A (ja) | ストレージシステム | |
JP2019095925A (ja) | 情報処理装置および情報処理プログラム | |
JP2015088109A (ja) | ストレージシステム、ストレージ制御方法、およびストレージ制御プログラム | |
JP2019066939A (ja) | 移行管理装置及び移行管理方法 | |
CN104765748B (zh) | 一种将复制表转换为分片表的方法及装置 | |
JP7306665B2 (ja) | ストレージ装置、データ移行方法、プログラム | |
JPWO2012053152A1 (ja) | ストレージシステム、データ管理装置、方法及びプログラム | |
JP6676203B2 (ja) | 管理装置、ストレージシステム、ストレージ管理方法、及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20161007 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170727 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170801 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20180206 |