JP5956387B2 - データ管理サーバのスナップショット作成システム、および、サーバクラスタのスナップショット作成システム - Google Patents

データ管理サーバのスナップショット作成システム、および、サーバクラスタのスナップショット作成システム Download PDF

Info

Publication number
JP5956387B2
JP5956387B2 JP2013147828A JP2013147828A JP5956387B2 JP 5956387 B2 JP5956387 B2 JP 5956387B2 JP 2013147828 A JP2013147828 A JP 2013147828A JP 2013147828 A JP2013147828 A JP 2013147828A JP 5956387 B2 JP5956387 B2 JP 5956387B2
Authority
JP
Japan
Prior art keywords
data
snapshot creation
snapshot
unit
data management
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.)
Expired - Fee Related
Application number
JP2013147828A
Other languages
English (en)
Other versions
JP2015022353A (ja
Inventor
文彦 澤崎
文彦 澤崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2013147828A priority Critical patent/JP5956387B2/ja
Publication of JP2015022353A publication Critical patent/JP2015022353A/ja
Application granted granted Critical
Publication of JP5956387B2 publication Critical patent/JP5956387B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、データを保持管理することを目的としたデータ管理サーバまたは複数のデータ管理サーバを含んだサーバクラスタにおいて、同一時点でのスナップショットを作成するシステムに関する。
公衆向けサービスで扱うデータの量や、企業や大学などの特定組織内で扱うデータの量は、年を追うごとに増加している。かつては、1台のサーバにデータを集約管理するケースや、複数のサーバが個々にデータを管理するケースが多かった。管理されるデータに信頼性が必要な場合には、管理されるデータが二重化されているケースが多かった。
しかし、2000年代後半になると、複数のデータ管理サーバのクラスタと、1台または複数台の振分サーバとで構成したクラスタシステムが登場して使われるようになっている。このクラスタシステムは、外部のクライアントには多量のデータを管理する単一のデータ管理サーバのように振る舞い、内部的には多量のデータを分割して管理する複数のデータ管理サーバとして構成される。
このクラスタシステムにおいて、振分サーバが、クライアントへのフロントエンドとなっている。振分サーバは、クライアントが送信したデータ書込要求やデータ参照要求を代理して受け付けて、然るべきデータ管理サーバに転送する。この仕組みにより、クラスタシステムは、クライアントには単一のデータ管理サーバのように振る舞う。このクラスタシステムは、データ管理サーバのいずれかが壊れた場合でも、個々のデータを複製して複数のデータ管理サーバに保持する技術により、そのデータの損失を防ぐことができる。
振り分けサーバとデータ管理サーバで構成されるデータベースでは、各データのキーとなる情報と、各データそのものである情報(バリュー)とに分けた管理方法が用いられる場合が多い。これらのデータベースは、キー値のハッシュとバリュー値の格納位置とを直接に結びつけることや、キー値のハッシュとバリュー値の格納位置とを結びつけるテーブルを管理することで、スケーラビリティを実現している。
これらデータ管理サーバは、各データをハードディスクのような不揮発性媒体で管理する場合が多い。また、データ管理サーバは、レスポンスを重視するような場合には、各データをRAM(Random Access Memory)のような揮発性メモリで管理することが一般的である。このような場合、データ管理サーバは、揮発性メモリ上のデータを不揮発性媒体にバックアップする場合がある。
クラスタシステムは、扱うデータの量の増加に併せて、データ管理サーバを増やすことが可能である。クラスタシステムは、データ管理サーバを増やす際に、各データ管理サーバの負荷の平準化のため、新しいデータ管理サーバにデータを移動可能であることが望ましい。このように高いデータ流動性が要求される場合、クラスタシステムは、揮発性メモリ上のデータを不揮発性媒体にバックアップしない場合もある。このようなクラスタシステムでは、複製されたデータが複数のサーバに格納されるため、1台のデータ管理サーバだけが壊れた場合には、データの損失が発生しない。しかし、このクラスタシステムでは、激甚災害などで複数のデータ管理サーバが一度に壊れる場合、データの損失が発生する。よって、クラスタシステムでは、データの損失を避けるため、データのバックアップは必要である。
クラスタシステムにおいて、データのバックアップは、任意のタイミングにおけるデータのスナップショットを作成することで行われる。
非特許文献1は、クラスタシステムのスナップショット作成を行うものである。非特許文献1には、「データベース静止化機能は、日次・月次などのバッチ処理や、データベースのバックアップ取得などの処理を、オンラインと並行して実行するための機能です。任意の時刻の静的(トランザクション処理の完結した矛盾のない状態)なデータベースを創出することにより、オンラインシステムの24時間連続運転を支援します。」と記載されている。
非特許文献1に記載のTMS−4V/SPは、各データを、ペア装置による二重書きによって二重化して管理する。スナップショットを作成する際、TMS−4V/SPは、一時的にデータ更新要求を受け付けないようにしてデータの変更を止め、二重化を解除して一重化運転を行うことにより、データを静止化する。静止化後、TMS−4V/SPは、二重化された一方のデータで運用を続け、他方のデータでスナップショットを生成する。これにより、TMS−4V/SPは、任意の時刻のデータをバックアップすることができる。
日立製作所、「TMS−4V/SP:データベース静止化機能」、[online]、[平成25年6月19日検索]インターネット<URL:http://www.hitachi.co.jp/Prod/comp/soft1/4vsp/products/staticizer1.html>
データを二重化する一般的な方法は、不揮発性媒体上で二重にデータ管理する方法と、揮発性メモリ上と不揮発性媒体上とで二重にデータ管理する方法である。揮発性メモリ上で二重にデータ管理する方法は、すべてのサーバに多量のRAMを必要とし、コストが掛かるため一般的ではない。
データの流動性の高いシステムでは、単体サーバで見た場合、各データは揮発性メモリ上の一重化されているもののみである。このシステムでは、各データが二重化されていないため、スナップショットを作成するために、各データの静止化を行うことは困難である。
一重化で管理されたデータは、これらを更新できないようにロックすることで、スナップショットを収集可能である。しかし、この方法によれば、サーバは、すべてのデータのスナップショットを収集する間、データ更新をロックしなければならない。データのスナップショット収集には長時間を要する。よって、この方法は、随時データの更新が必要なシステムや、リアルタイム性が高くデータの更新を停止できないシステムに適用することはできない。
本発明は、前記した問題を解決し、スナップショット作成のためのデータのロックを短時間で解除することが可能なデータ管理サーバのスナップショット作成システム、および、サーバクラスタのスナップショット作成システムを提供することを課題とする。
前記課題を解決するため、請求項1に記載の発明では、サーバクラスタのスナップショット作成システムは、複数台のデータ管理サーバと、振分サーバとを備えている。前記振分サーバは、外部からの要求を前記データ管理サーバに振り分ける振分部と、外部からの要求と前記データ管理サーバとの対応を示す振分表と、を備えている。前記データ管理サーバは、それぞれ、各データの収容位置を含むデータ管理テーブルを管理するテーブル管理部と、前記各データを管理するデータ管理部と、前記振分表と前記データ管理テーブルとを書込ロックしてスナップショットを作成したのちにロックを解除し、前記各データを書込ロックせずにスナップショットを作成するスナップショット作成部と、外部からの要求に基づいてデータの書込または参照を行うものであるデータ書込参照処理部と、前記各データ、前記データ管理テーブル、および、前記スナップショット作成部が作成したスナップショットデータを記憶する記憶部とを備える。
前記データ書込参照処理部は、前記スナップショット作成部のスナップショット作成中に、スナップショット作成開始時以降の未更新データに係る書込要求を外部から受信したならば、当該書込要求に係る未更新データをコピーする。前記データ書込参照処理部は更に、コピーしたデータに当該書込要求を行って更新後の属性を設定して更新後データとすると共に、当該書込要求に係る未更新データに更新前の属性を設定して更新前データとする。
このようにすることで、本発明によれば、スナップショット作成のためのデータのロックを短時間で解除することができる。
請求項2に記載の発明では、前記データ書込参照処理部は、前記スナップショット作成部のスナップショット作成中に、外部からデータの参照要求を受信したならば、前記データ管理テーブルに基づいて、各データを参照する、ことを特徴とする請求項1に記載のサーバクラスタのスナップショット作成システムとした。
このように、データ書込参照処理部は、スナップショット作成中であっても、通常時と同様にデータ管理テーブルを参照することで、各データを参照できる。これにより、スナップショット作成に伴う時間計算量のオーバーヘッドを無くすことができる。
請求項3に記載の発明では、前記スナップショット作成部は、スナップショット作成開始時以降の各未更新データおよび各更新前データを収集してスナップショットを作成する、ことを特徴とする請求項1に記載のサーバクラスタのスナップショット作成システムとした。
これにより、スナップショット作成部は、スナップショット作成開始時における各データを、すべてバックアップすることができる。
請求項4に記載の発明では、前記スナップショット作成部は、スナップショット作成が終了したならば、前記各更新前データを削除し、各更新後データに未更新の属性を設定する、ことを特徴とする請求項3に記載のサーバクラスタのスナップショット作成システムとした。
これにより、各データ管理サーバ3は、通常時の空間計算量を削減し、データの管理により多くのリソースを割り当てることができる。
請求項5に記載の発明では、前記データ書込参照処理部は、前記スナップショット作成部のスナップショット作成中に、外部から未更新データの削除要求を受信したならば、当該削除要求に係る未更新データに更新前の属性を設定する、ことを特徴とする請求項1に記載のサーバクラスタのスナップショット作成システムとした。
このように、データ書込参照処理部は、スナップショット作成中かつ削除対象データの属性が未更新ならば、削除対象のデータを更新前集合に移動させている。これにより、データ管理サーバは、削除対象のデータを、スナップショット作成の対象としたまま、以降の書込更新処理の対象から外すことができる。
請求項6に記載の発明では、前記データ書込参照処理部は、前記スナップショット作成部のスナップショット作成中に、外部からデータの新規作成要求を受信したならば、当該新規作成要求に係るデータに更新後の属性を設定する、ことを特徴とする請求項1に記載のサーバクラスタのスナップショット作成システムとした。
このように、データ書込参照処理部は、スナップショット作成中には更新後集合にのみ新規作成データを作成し、更新前集合にはデータを作成していない。これにより、データ管理サーバは、スナップショット作成中に新規作成されたデータを、このスナップショット作成の対象外とすることができる。
請求項7に記載の発明では、前記データ管理部は、前記記憶部に格納された第2データ管理テーブルに基づき、前記各データの属性を管理する、ことを特徴とする請求項1に記載のサーバクラスタのスナップショット作成システムとした。
このように、データ管理サーバは、第2データ管理テーブルにより、スナップショット作成開始時点におけるデータを管理している。よって、データ管理サーバは、データ全体の二重化処理を行わず、更新されたデータのみを二重化するだけで、任意のタイミングのスナップショットを作成することができる。
請求項8に記載の発明では、スナップショット作成システムであるデータ管理サーバは、各データの収容位置を含むデータ管理テーブルを管理するテーブル管理部と、前記各データを管理するデータ管理部と、前記データ管理テーブルを書込ロックしてスナップショットを作成したのちにロックを解除し、前記各データを書込ロックせずにスナップショットを作成するスナップショット作成部と、外部からの要求に基づいてデータの書込または参照を行うものであるデータ書込参照処理部と、前記各データ、前記データ管理テーブル、および前記スナップショット作成部が作成したスナップショットデータを記憶する記憶部とを備える。
前記データ書込参照処理部は、前記スナップショット作成部のスナップショット作成中に、スナップショット作成開始時以降の未更新データに係る書込要求を外部から受信したならば、当該書込要求に係る未更新データをコピーする。前記データ書込参照処理部は更に、コピーしたデータに当該書込要求を行って更新後の属性を設定して更新後データとすると共に、当該書込要求に係る未更新データに更新前の属性を設定して更新前データとする。
このようにすることで、本発明によれば、スナップショット作成のためのデータのロックを短時間で解除することができる。
本発明によれば、スナップショット作成のためのデータの更新ロックを短時間で解除することが可能なデータ管理サーバのスナップショット作成システム、および、サーバクラスタのスナップショット作成システムを提供可能である。
第1の実施形態におけるクラスタシステムを示す概略の構成図である。 通常時のデータ処理を示すシーケンス図である。 スナップショット作成処理(その1)を示すシーケンス図である。 スナップショット作成処理(その2)を示すシーケンス図である。 データ管理テーブルと第2データ管理テーブルを示す図である。 スナップショット作成動作とデータ更新動作を示す図である。 データ書込参照処理を示すフローチャートである。 データ更新処理を示すフローチャートである。 新規作成処理を示すフローチャートである。 データ削除処理を示すフローチャートである。 スナップショット作成中処理を示すフローチャートである。 スナップショット作成後処理を示すフローチャートである。 スナップショット作成中の各集合と各データとを示す図である。 第2の実施形態におけるデータ管理サーバを示す概略の構成図である。
次に、本発明を実施するための形態(「実施形態」という)について、適宜図面を参照しながら詳細に説明する。
(第1の実施形態)
図1は、第1の実施形態におけるクラスタシステム1を示す概略の構成図である。
このクラスタシステム1は、振分サーバ2と、複数台のデータ管理サーバ3−1〜3−3と、スナップショット作成管理サーバ4とを含んで構成されるサーバクラスタのスナップショット作成システムである。以下、データ管理サーバ3−1〜3−3を特に区別しないときには、単にデータ管理サーバ3と記載している場合がある。また、各図では、データ管理サーバ3−1を「データ管理サーバ#1」、データ管理サーバ3−2を「データ管理サーバ#2」、データ管理サーバ3−3を「データ管理サーバ#3」と示している場合がある。
クラスタシステム1は、外部からデータ書込要求信号やデータ参照要求信号を受信すると、その要求に基づいて、データの書込処理やデータの参照処理を行うものである。クラスタシステム1は、外部に対しては、多量のデータを管理する単一のデータ管理サーバ3のように振る舞う。クラスタシステム1は更に、外部からスナップショット作成要求信号を受信すると、その要求に基づいて、データのスナップショットを作成する。
振分サーバ2は、外部装置(不図示)に対するフロントエンドであり、外部装置(不図示)からデータ書込要求信号やデータ参照要求信号を代理して受け付けて、データ管理サーバ3−1〜3−3のいずれかに振り分けて転送するものである。振分サーバ2は、各要求信号をデータ管理サーバ3−1〜3−3のいずれかに振り分ける振分部21と、各要求信号と、この要求信号の振り分け先との対応を示す振分表22とを含んで構成されている。
データ管理サーバ3−1〜3−3は、それぞれデータ書込参照処理部31と、テーブル管理部32と、データ管理部33と、記憶部34と、スナップショット作成部35とを含んで構成されている。データ管理サーバ3−1〜3−3は、振分サーバ2により振り分けられた各要求信号に基づいて、格納するデータの書込処理や参照処理を行うものである。
データ書込参照処理部31は、受信した各データ書込要求信号やデータ参照要求信号を処理するものである。データ書込参照処理部31は、スナップショット作成中に、スナップショット作成開始時以降の未更新データに係る書込要求を外部から受信したならば、この書込要求に係る未更新データをコピーし、コピーしたデータに書込要求を行って更新後の属性を設定して更新後データとする。データ書込参照処理部31は、更に、この書込要求に係る未更新データに更新前の属性を設定して更新前データとする。
テーブル管理部32は、後記するデータ管理テーブル341や、第2データ管理テーブル342を管理するものである。データ管理テーブル341や、第2データ管理テーブル342は、各データの収容位置の情報を含んでいる。テーブル管理部32は、各要求信号が含んでいる処理対象データのキー名に基づき、この処理対象データの収容位置を応答する。
データ管理部33は、各データを管理するものである。データ管理部33は、処理対象データの収容位置に基づき、この処理対象データの書込処理や参照処理を行う。
記憶部34は、データ管理テーブル341と、第2データ管理テーブル342と、データ343と、スナップショットデータ344とを記憶している。記憶部34は、揮発性メモリで構成されているので、各データや各テーブルへの書込や参照を短時間に行うことができる。
データ管理テーブル341は、各データのキー値と、各データの収容位置などの情報との関係を格納するものである。第2データ管理テーブル342は、データ管理テーブル341と同様の情報に加えて、各データの属性の情報を格納するものである。データ343は、処理対象の各データ本体である。スナップショットデータ344は、任意の時刻におけるデータ管理テーブル341とデータ343のスナップショットである。
スナップショット作成部35は、外部から受信したスナップショット作成要求信号に応じて、当該データ管理サーバ3が格納するデータ管理テーブル341とデータ343のスナップショットを作成するものである。スナップショット作成部35は、振分表22とデータ管理テーブル341とを書込ロックしてスナップショットを作成したのちに、この書込ロックを解除し、データ343を書込ロックせずにスナップショットを作成する。
スナップショット作成管理サーバ4は、スナップショット作成統括部41を含んで構成されている。スナップショット作成管理サーバ4は、外部に対するフロントエンドである。スナップショット作成管理サーバ4は、スナップショット作成統括部41により、外部からスナップショット作成要求信号を代理して受け付けて、各データ管理サーバ3−1〜3−3に転送するものである。
図2は、通常時のデータ処理を示すシーケンス図である。
(データ参照要求信号に対する処理)
不図示の外部装置から、振分サーバ2にデータ参照要求信号が送信されたならば、シーケンスQ10〜Q19に示す処理が開始する。なお、以下のシーケンス図では、データ参照要求信号のことをデータ参照要求と略し、データ書込要求信号のことをデータ書込要求と略している。
シーケンスQ10において、振分サーバ2の振分部21は、不図示の外部装置から、データ参照要求信号を受信する。更に振分部21は、データ管理サーバ#1〜#3のうち、どのデータ管理サーバ3が格納するデータへの参照かを判断する。振分部21は、既に振り分けたデータが処理対象ならば、振分表22に基づいて、振分対象のデータ管理サーバ3を特定する。
シーケンスQ11において、振分サーバ2の振分部21は、データ管理サーバ#1〜#3のうちいずれか該当するものに、データ参照要求信号を振り分ける。振り分けたデータ参照要求信号は、該当するデータ管理サーバ3のデータ書込参照処理部31が受信する。
シーケンスQ12において、データ書込参照処理部31は、テーブル管理部32に、このデータ参照要求信号が含んだキー値に対応する処理対象データの収容位置を問い合わせる。この問い合わせは、テーブル管理部32に入力される。
シーケンスQ13において、テーブル管理部32は、入力されたキー値に基づいてデータ管理テーブル341を検索し、キー値に対応するデータの収容位置を取得する。
シーケンスQ14において、テーブル管理部32は、データ書込参照処理部31に、このデータ参照要求信号が含んだキー値に対応するデータの収容位置を応答する。この収容位置の応答は、データ書込参照処理部31に入力される。
シーケンスQ15において、データ書込参照処理部31は、データ管理部33に、このデータ参照要求信号と、処理対象データの収容位置とを通知する。この通知は、データ管理部33に入力される。
シーケンスQ16において、データ管理部33は、処理対象データの収容位置に基づき、処理対象データを参照する。
シーケンスQ17において、データ管理部33は、データ書込参照処理部31に、この処理対象データの参照結果を応答する。この参照結果の応答は、データ書込参照処理部31に入力される。
シーケンスQ18において、データ書込参照処理部31は、振分サーバ2の振分部21に、この処理対象データの参照結果を応答する。この参照結果の応答は、振分部21によって受信される。
シーケンスQ19において、振分サーバ2の振分部21は、データ書込要求信号の送信元である不図示の外部装置に、この処理対象データの参照結果を応答する。これにより、データ参照要求信号に対する処理を終了する。
(データ書込要求信号に対する処理)
不図示の外部装置から、振分サーバ2にデータ書込要求信号が送信されたならば、シーケンスQ20〜Q29に示す処理が開始する。シーケンスQ20〜Q29の処理は、前記したシーケンスQ10〜Q19の処理とは異なり、処理種別がデータ参照ではなくデータ書込である。なお、データの書込とは、データの更新、データの新規作成、データの削除の3通りの処理のいずれかである。
シーケンスQ20において、振分サーバ2の振分部21は、不図示の外部装置から、データ書込要求信号を受信する。振分部21は、データ管理サーバ#1〜#3のうち、どのデータ管理サーバ3が格納するデータへの書込みかを判断する。振分部21は、既に振り分けたデータが処理対象ならば、振分表22に基づいて、振分対象のデータ管理サーバ3を特定する。振分部21は、未だ振り分けていないデータが処理対象ならば、ハッシュ関数によって振分対象のデータ管理サーバ3を特定し、特定したデータ管理サーバ3とデータとの関係を振分表22に記録する。
シーケンスQ21において、振分サーバ2の振分部21は、データ管理サーバ#1〜#3のうちいずれか該当するものに、データ書込要求信号を振り分ける。振り分けたデータ書込要求信号は、該当するデータ管理サーバ3のデータ書込参照処理部31が受信する。
シーケンスQ22において、データ書込参照処理部31は、テーブル管理部32に、このデータ書込要求信号が含んだキー値に対応する処理対象データの収容位置を問い合わせる。この問い合わせは、テーブル管理部32に入力される。
シーケンスQ23において、テーブル管理部32は、このキー値に基づいてデータ管理テーブル341を検索し、キー値に対応するデータの収容位置を取得する。
シーケンスQ24において、テーブル管理部32は、データ書込参照処理部31に、このデータ書込要求信号が含んだキー値に対応するデータの収容位置を応答する。この収容位置の応答は、データ書込参照処理部31に入力される。
シーケンスQ25において、データ書込参照処理部31は、データ管理部33に、このデータ書込要求信号と、処理対象データの収容位置とを通知する。この通知は、データ管理部33に入力される。
シーケンスQ26において、データ管理部33は、処理対象データの収容位置に基づき、処理対象データに書込を行う。
シーケンスQ27において、データ管理部33は、データ書込参照処理部31に、この処理対象データの書込結果を応答する。この書込結果の応答は、データ書込参照処理部31に入力される。
シーケンスQ28において、データ書込参照処理部31は、振分サーバ2の振分部21に、この処理対象データの書込結果を応答する。この書込結果の応答は、振分部21によって受信される。
シーケンスQ29において、振分サーバ2の振分部21は、不図示の外部装置に、この処理対象データの書込結果を応答する。この書込結果の応答は、データ書込要求信号の送信元である不図示の外部装置によって受信される。これにより、データ書込要求信号に対する処理は終了する。
図3と図4とは、スナップショット作成処理を示すシーケンス図である。図3は、スナップショット作成処理のシーケンスQ40〜Q61を示している。図4は、図3に続いてスナップショット作成処理のシーケンスQ62〜Q66を示している。
不図示の外部端末から、スナップショット作成管理サーバ4にスナップショット作成要求信号が送信されたならば、シーケンスQ40〜Q66に示すスナップショット作成処理が開始する。
シーケンスQ40において、スナップショット作成管理サーバ4のスナップショット作成統括部41は、不図示の外部端末から、スナップショット作成要求信号を受信する。
シーケンスQ41において、スナップショット作成管理サーバ4のスナップショット作成統括部41は、振分サーバ2に、振分表22のロック指示を送信する。この振分表22のロック指示は、振分サーバ2の振分部21によって受信される。
シーケンスQ42において、振分部21は、振分表22の書込をロックする。
シーケンスQ43において、振分部21は、スナップショット作成管理サーバ4に、振分表22の書込のロックが完了したことを示すロック完了応答を返信する。このロック完了応答は、スナップショット作成管理サーバ4のスナップショット作成統括部41によって受信される。
シーケンスQ44において、スナップショット作成統括部41は、クラスタシステム1を構成する各データ管理サーバ3に、テーブルロック指示を送信する。これらのテーブルロック指示は、各データ管理サーバ3のスナップショット作成部35によって受信される。この処理は、各データ管理サーバ3の台数分だけ繰り返される。
シーケンスQ45において、スナップショット作成部35は、テーブル管理部32に、データ管理テーブル341のロック指示を通知する。このロック指示は、各テーブル管理部32に入力される。
シーケンスQ46において、テーブル管理部32は、データ管理テーブル341の書込をロックする。
シーケンスQ47において、テーブル管理部32は、スナップショット作成部35に、データ管理テーブル341のロック完了応答を返す。このロック完了応答は、スナップショット作成部35に返される。なお、このシーケンスQ47は、テーブル管理部32の書込ロックが成功したときのものである。
なお、図3と図4とに示す動作例は、データ管理テーブル341全体の書込ロックを行うものである。しかし、これに限られず、データ管理サーバ3は、データ管理テーブル341の一部の書込ロック、あるいは読取・書込ロックなどを行ってもよい。更にデータ管理サーバ3は、スナップショット作成管理サーバ4から受信したスナップショット作成要求信号のパラメータにより、どのようなロックを行うかを選択してもよい。
シーケンスQ48において、スナップショット作成部35は、スナップショット作成管理サーバ4に、テーブルロック完了応答を返す。この処理は、各データ管理サーバ3の台数分だけ繰り返される。このテーブルロック完了応答は、スナップショット作成統括部41によって受信される。
シーケンスQ49において、スナップショット作成統括部41は、クラスタシステム1のすべてのデータ管理サーバ3から、テーブルロック完了応答が返っているかチェックする(応答チェック)。すべてのデータ管理サーバ3からテーブルロック完了応答が返っていたならば、振分サーバ2の振分部21は、シーケンスQ50以下の処理を行う。
シーケンスQ50において、スナップショット作成統括部41は、振分サーバ2に、振分表22のコピー指示を送信する。このコピー指示は、振分部21によって受信される。ここで振分表22のコピーとは、振分表22を二重化して静止化することにより、スナップショットを作成することをいう。
シーケンスQ51において、振分部21は、振分表22のコピーを実行してスナップショットを作成する。
シーケンスQ52において、振分部21は、振分表22の書込ロックを解除する。
シーケンスQ53において、振分部21は、スナップショット作成管理サーバ4にコピー完了応答を返す。このコピー完了応答は、スナップショット作成統括部41によって受信される。
シーケンスQ54において、スナップショット作成統括部41は、各データ管理サーバ3に、スナップショット作成指示を送信する。この処理は、各データ管理サーバ3の台数分だけ繰り返される。このスナップショット作成指示は、スナップショット作成部35によって受信される。
シーケンスQ55において、スナップショット作成部35は、テーブル管理部32に、データ管理テーブル341のコピー指示を通知する。このコピー指示は、テーブル管理部32に入力される。
シーケンスQ56において、テーブル管理部32は、データ管理テーブル341をコピーしてスナップショットを作成する。以下のシーケンスは、テーブル管理部32によるコピーが成功した場合のものである。
シーケンスQ57において、テーブル管理部32は、データ管理テーブル341に基づいて第2データ管理テーブル342を作成する。すなわち、テーブル管理部32は、データ管理テーブル341をコピーし、更に属性欄342n(図5(b)参照)を追加することにより、第2データ管理テーブル342を作成する。
シーケンスQ58において、テーブル管理部32は、データ管理テーブル341の書込ロックを解除する。
シーケンスQ59において、テーブル管理部32は、スナップショット作成部35にコピー完了応答を返す。このコピー完了応答は、スナップショット作成部35に入力される。
シーケンスQ60において、スナップショット作成部35は、スナップショット作成管理サーバ4にコピー指示受信応答を返す。このコピー指示受信応答は、スナップショット作成統括部41によって台数分だけ受信される。このコピー指示受信応答は、一次的な応答であり、各データ管理サーバ3は、継続してスナップショットを作成する。
シーケンスQ61において、スナップショット作成統括部41は、コピー指示受信応答が、すべてのデータ管理サーバ3から返っているがチェックする。シーケンスQ61の処理が終了すると、図4のシーケンスQ62の処理が行われる。
図4に示すように、シーケンスQ62において、スナップショット作成部35は、テーブル管理部32と連携してスナップショット作成中処理を行い、スナップショットを作成する。スナップショット作成中処理は、後記する図11で詳細に説明する。
シーケンスQ63において、スナップショット作成部35は、テーブル管理部32と連携して、スナップショット作成後処理を行う。スナップショット作成後処理は、後記する図12で詳細に説明する。
シーケンスQ64において、スナップショット作成部35は、スナップショット作成管理サーバ4にスナップショット作成応答を返す。このスナップショット作成応答は、スナップショット作成統括部41によって、データ管理サーバ3の台数分だけ受信される。
シーケンスQ65において、スナップショット作成統括部41は、クラスタシステム1のすべてのデータ管理サーバ3から、スナップショット作成応答が返っているかチェックする。
シーケンスQ66において、スナップショット作成統括部41は、不図示の外部端末に、スナップショット作成応答を返す。この不図示の外部端末は、シーケンスQ40においてスナップショット作成要求信号を送信したものと同一である。
これらシーケンスQ40〜Q66の処理により、クラスタシステム1は、振分表22のロックとデータ管理テーブル341のロックのみで、振分表22とデータ管理テーブル341とデータ343のスナップショットを作成することができる。振分表22とデータ管理テーブル341のデータ量は、データ343と比べると極めて小さいので、これらのコピーは短時間で終了する。これにより、クラスタシステム1は、短時間のロックにより多量のデータのスナップショットを作成することができる。
図5(a),(b)は、データ管理テーブル341と第2データ管理テーブル342を示す図である。
図5(a)は、データ管理テーブル341を示している。
データ管理テーブル341は、キー値欄341aと、収容位置欄341bと、それ以外の欄とを含んでいる。
キー値欄341aは、データにアクセスするときのキー値を格納する欄であり、「#A」、「#B」、…のキー値が格納されている。「#A」のキー値により、対応するデータAにアクセスすることができる。データ書込要求信号やデータ参照要求信号には、これらのキー値が格納されており、キー値に対応するデータを処理することを示している。
収容位置欄341bは、データにアクセスするための収容位置を格納する欄であり、各データのアドレスが格納されている。これらの収容位置により、各データ本体にアクセスすることができる。
図5(b)は、第2データ管理テーブル342を示している。
第2データ管理テーブル342は、データ管理テーブル341と同様なキー値欄342aと、収容位置欄342bと、それ以外の欄とを含み、更に属性欄342nを含んでいる。この第2データ管理テーブル342は、スナップショット作成開始時点におけるデータ管理テーブル341をコピーして作成される。
属性欄342nは、各データの属性が格納される欄であり、「未更新」と「更新前」と「更新後」の属性が格納されている。
属性欄342nの属性が「未更新」ならば、対応するデータ本体は、スナップショット作成開始時点から更新されていないことを示している。
属性欄342nの属性が「更新前」ならば、対応するデータ本体は、スナップショット作成開始時点のものであり、かつ、当該データに対する更新処理が行われたことを示している。
属性欄342nの属性が「更新後」ならば、対応するデータ本体は、更新後のものであり、対応する更新前のデータが存在することを示している。
このように、データ管理サーバ3は、第2データ管理テーブル342により、スナップショット作成開始時点におけるデータを管理している。よって、データ管理サーバ3は、二重化処理を行うことなく、任意の時刻におけるスナップショットを作成することができる。
図6は、スナップショット作成動作とデータ更新動作とを示す図である。
図6に示すように、データ343の各データは、スナップショット作成中にコピーされれて更新された「更新後データ」と、スナップショット作成開始時から更新されていない「未更新データ」と、更新後データに係るコピー元である「更新前データ」の3つの集合に、論理的に分けられている。
データA,C,Eは、スナップショット作成開始時から更新されていない「未更新データ」である。データB,Dは、スナップショット作成中に外部から書込要求を受けたもののうち、スナップショット作成開始時における元データかつ「更新前データ」である。データB2,D2は、「更新後データ」であり、スナップショット作成開始時におけるデータB,Dをそれぞれ更新したものである。
各データA,B,C,…は、第2データ管理テーブル342の属性欄342n(図5(b)参照)によって管理される。この第2データ管理テーブル342は、スナップショット作成部35によるスナップショット作成動作に用いられる。スナップショット作成部35は、テーブル管理部32およびデータ管理部33により、データ343の各データにアクセスすることができる。スナップショット作成部35から更新前データと未更新データとに伸びる一点鎖線の矢印は、スナップショット作成動作に係る更新前データと未更新データへのアクセスを示している。
それに対してデータ管理テーブル341は、データ書込参照処理部31によるデータ参照動作に用いられる。データ書込参照処理部31は、テーブル管理部32およびデータ管理部33により、データ343の各データにアクセスすることができる。データ書込参照処理部31から更新後データと未更新データとに伸びる一点鎖線の矢印は、データ参照動作に係る更新後データと未更新データへのアクセスを示している。
このように、データ書込参照処理部31とスナップショット作成部35とは、それぞれ別のテーブルを参照して各データにアクセスしている。よって、データ書込参照処理部31によるデータ参照と並行して、スナップショット作成部35は、スナップショット作成動作を行うことができる。
図7は、データ書込参照処理を示すフローチャートである。
各データ管理サーバ3のデータ書込参照処理部31が、外部からの要求信号を受信すると、図7に示すデータ書込参照処理が開始する。
ステップS10において、データ書込参照処理部31は、受信した要求信号の処理種別を判断する。
データ書込参照処理部31は、処理種別が参照ならば、ステップS11の処理を行う。
ステップS11において、データ書込参照処理部31は、原本であるデータ管理テーブル341に基づいて該当データを参照する。データ書込参照処理部31は、要求信号が含むキー値に基づいて、テーブル管理部32により該当データの収容位置を取得し、データ管理部33により該当データを参照する。データ書込参照処理部31は、ステップS11の処理が終了すると、図7の処理を終了する。
データ管理テーブル341で管理されているのは、更新前集合と更新後集合に含まれるデータである。よって、外部からの参照要求が含むキー値に基づき、データ管理テーブル341を参照することにより該当データの収容位置を取得可能である。また、スナップショット作成部35は、これとは別のテーブルである第2データ管理テーブル342を参照することにより、スナップショットを作成している。これにより、スナップショット作成部35は、データ343を書込ロックすることなく、スナップショットを作成することができる。
データ書込参照処理部31は、処理種別が更新ならば、ステップS12のデータ更新処理を行い、図7の処理を終了する。データ更新処理は、後記する図8で詳細に説明する。
データ書込参照処理部31は、処理種別が新規作成ならば、ステップS13の新規作成処理を行い、図7の処理を終了する。新規作成処理は、後記する図9で詳細に説明する。
データ書込参照処理部31は、処理種別が削除ならば、ステップS14のデータ削除処理を行い、図7の処理を終了する。データ削除処理は、後記する図10で詳細に説明する。
図8は、データ更新処理を示すフローチャートである。
各データ管理サーバ3のデータ書込参照処理部31が外部からのデータ更新要求信号を受信すると、図8に示すデータ更新処理が開始する。
ステップS30において、データ書込参照処理部31は、スナップショット作成中であるか否かを判断する。データ書込参照処理部31は、当該判断条件が成立しなかったならば(No)、ステップS31の処理を行い、当該判断条件が成立したならば(Yes)、ステップS32の処理を行う。
ステップS31において、データ書込参照処理部31は、該当データを更新する。データ書込参照処理部31は、要求信号が含むキー値に基づいて、テーブル管理部32により該当データの収容位置を取得し、データ管理部33により該当データにアクセスする。データ書込参照処理部31は、ステップS31の処理が終了したならば、図8の処理を終了する。
ステップS32において、データ書込参照処理部31は、該当データの属性は「未更新」であるか否かを判断する。データ書込参照処理部31は、要求信号が含むキー値に基づいて、テーブル管理部32により該当データの属性を取得し、「未更新」であるか否かを判断する。データ書込参照処理部31は、当該判断条件が成立しなかったならば(No)、ステップS33の処理を行い、当該判断条件が成立したならば(Yes)、ステップS34の処理を行う。
ステップS33において、データ書込参照処理部31は、「更新後」属性の該当データを更新する。データ書込参照処理部31は、要求信号が含むキー値に基づいて、テーブル管理部32によりデータ管理テーブル341を参照して更新後データの収容位置を取得し、データ管理部33により更新後データを更新する。データ書込参照処理部31は、ステップS33の処理が終了したならば、図8の処理を終了する。
ステップS34〜S39の処理は、スナップショット作成中かつ該当データの属性が未更新の場合の処理である。
ステップS34において、データ書込参照処理部31は、該当データをコピーする。データ書込参照処理部31は、要求信号が含むキー値に基づいて、テーブル管理部32によりデータ管理テーブル341を参照して収容位置を取得し、データ書込参照処理部31は更に、取得した収容位置に基づき、データ管理部33により記憶部34に該当データサイズの領域を取得したのち、取得した領域に該当データをコピーする。
ステップS35において、データ書込参照処理部31は、第2データ管理テーブル342にコピーしたデータの参照情報を登録する。すなわち、データ書込参照処理部31は、テーブル管理部32により、コピーしたデータのレコードを第2データ管理テーブル342に作成する。データ書込参照処理部31は更に、このレコードのキー値欄342aをコピー元データのキー値に設定し、その収容位置欄342bをコピーしたデータのアドレスに書き換える。
ステップS36において、データ書込参照処理部31は、コピーしたデータに、「更新後」属性を設定する。データ書込参照処理部31は、テーブル管理部32により、コピーしたデータに係る第2データ管理テーブル342のレコードを参照し、その属性欄342nを「更新後」に設定する。
ステップS37において、データ書込参照処理部31は、データ管理部33により、コピーしたデータを更新する。
ステップS38において、データ書込参照処理部31は、テーブル管理部32により、該当データに係るデータ管理テーブル341の上の収容位置を、コピーしたデータのアドレスに書き換える。すなわち、データ書込参照処理部31は、テーブル管理部32により、該当データに係るデータ管理テーブル341のレコードを参照し、その収容位置欄341bに、コピーしたデータのアドレスを設定する。
ステップS39において、データ書込参照処理部31は、該当データのコピー元データに「更新前」属性を設定する。データ書込参照処理部31は、テーブル管理部32により、第2データ管理テーブル342の該当データのコピー元データに係るレコードを参照し、その属性欄342nを「更新前」に設定する。データ書込参照処理部31は、ステップS39の処理が終了したならば、図8の処理を終了する。
このように、データ書込参照処理部31は、スナップショット作成中の「未更新」属性のデータの更新に限り、その処理対象データを更新前データと更新後データとに二重化している。これにより、データ管理サーバ3は、データの二重化に伴う時間計算量と空間計算量とを削減することができる。
図9は、データの新規作成処理を示すフローチャートである。
各データ管理サーバ3のデータ書込参照処理部31が、外部からのデータ新規作成要求信号を受信すると、図9に示すデータの新規作成処理が開始する。
ステップS40において、データ書込参照処理部31は、データを新規に作成する。すなわち、データ書込参照処理部31は、データ管理部33によりデータと、データのキー値とを新規に作成する。
ステップS41において、データ書込参照処理部31は、データ管理テーブル341と第2データ管理テーブル342に新規作成データの参照情報を登録する。すなわち、データ書込参照処理部31は、テーブル管理部32により、データ管理テーブル341と第2データ管理テーブル342に新規作成データに係るレコードを作成する。データ書込参照処理部31は、そのレコードのキー値欄341aに新規に作成したキー値を設定し、そのレコードの収容位置欄341bに新規作成データのアドレスを設定する。
ステップS42において、データ書込参照処理部31は、スナップショット作成中であるか否かを判断する。データ書込参照処理部31は、当該判断条件が成立しなかったならば(No)、ステップS43の処理を行い、当該判断条件が成立したならば(Yes)、ステップS44の処理を行う。
ステップS43において、データ書込参照処理部31は、新規作成データに「未更新」属性を設定する。すなわち、データ書込参照処理部31は、テーブル管理部32により、新規作成データに係る第2データ管理テーブル342のレコードを参照し、その属性欄342nを「未更新」に設定する。データ書込参照処理部31は、ステップS43の処理が終了したならば、図9の処理を終了する。
ステップS44において、データ書込参照処理部31は、新規作成データに「更新後」属性を設定する。すなわち、データ書込参照処理部31は、テーブル管理部32により、新規作成データに係る第2データ管理テーブル342のレコードを参照し、その属性欄342nを「更新後」に設定する。データ書込参照処理部31は、ステップS44の処理が終了したならば、図9の処理を終了する。
このように、データ書込参照処理部31は、スナップショット作成中には、更新後集合にのみ新規作成データを作成し、更新前集合にはデータを作成していない。これにより、データ管理サーバ3は、スナップショット作成中に新規作成されたデータを、このスナップショット作成の対象外とすることができる。
図10は、データ削除処理を示すフローチャートである。
各データ管理サーバ3のデータ書込参照処理部31が、外部からのデータ削除要求信号を受信すると、図10に示すデータ削除処理が開始する。
ステップS50において、データ書込参照処理部31は、スナップショット作成中であるか否かを判断する。データ書込参照処理部31は、当該判断条件が成立しなかったならば(No)、ステップS51の処理を行い、当該判断条件が成立したならば(Yes)、ステップS52の処理を行う。
ステップS51において、データ書込参照処理部31は、該当データを削除する。データ書込参照処理部31は、データ削除要求信号が含むキー値に基づいて、テーブル管理部32により処理対象データの収容位置を取得し、データ管理部33により処理対象データを削除する。データ書込参照処理部31は、ステップS51の処理が終了したならば、ステップS54の処理を行う。
ステップS52において、データ書込参照処理部31は、該当データの属性は「未更新」であるか否かを判断する。データ書込参照処理部31は、データ削除要求信号が含むキー値に基づいて、テーブル管理部32により処理対象データの属性を取得し、「未更新」であるか否かを判断する。データ書込参照処理部31は、当該判断条件が成立しなかったならば(No)、ステップS53の処理を行い、当該判断条件が成立したならば(Yes)、ステップS55の処理を行う。
ステップS53において、データ書込参照処理部31は、「更新後」属性の該当データを削除する。データ書込参照処理部31は、テーブル管理部32により、データ管理テーブル341に基づいて更新後データの収容位置を取得し、データ管理部33により処理対象データの格納領域を解放して、この処理対象データを削除する。データ書込参照処理部31は、ステップS53の処理が終了したならば、ステップS54の処理を行う。
ステップS54において、データ書込参照処理部31は、第2データ管理テーブル342の該当データの参照情報(レコード)を削除する。データ書込参照処理部31は、ステップS54の処理が終了したならば、ステップS56の処理を行う。
ステップS55において、データ書込参照処理部31は、該当データに「更新前」属性を設定する。データ書込参照処理部31は、テーブル管理部32により、第2データ管理テーブル342の該当データに係るレコードを特定し、その属性欄342nに「更新前」属性を設定する。データ書込参照処理部31は、ステップS55の処理が終了したならば、ステップS56の処理を行う。
ステップS56において、データ書込参照処理部31は、データ管理テーブル341の該当データの参照情報(レコード)を削除する。データ書込参照処理部31は、ステップS56の処理が終了したならば、図10の処理を終了する。
このように、データ書込参照処理部31は、スナップショット作成中かつ削除対象データの属性が未更新ならば、削除対象データを更新前集合に移動させ、かつデータ管理テーブル341の削除対象データの参照情報(レコード)を削除する。これにより、データ管理サーバ3は、削除対象データを、スナップショット作成の対象としたまま、以降の書込更新処理の対象から除外することができる。
データ書込参照処理部31は、スナップショット作成中かつ削除対象データの属性が未更新でないならば、削除対象データの更新後データのみを削除し、更新前データを残している。更にデータ書込参照処理部31は、スナップショット作成中には、データ管理テーブル341から削除対象データの参照情報(レコード)を削除している。これにより、データ管理サーバ3は、削除対象データを、以降の書込更新処理の対象から除外することができる。
図11は、スナップショット作成中処理を示すフローチャートである。
スナップショット作成部35は、テーブル管理部32からコピー完了応答が入力されたならば、スナップショット作成中処理を開始する。
ステップS60〜S63において、スナップショット作成部35は、第2データ管理テーブル342のすべてのレコードについて処理を繰り返す。
ステップS61において、スナップショット作成部35は、テーブル管理部32により、当該レコードの属性欄342nを参照し、「未更新」または「更新前」であるか否かを判断する。スナップショット作成部35は、当該判断条件が成立したならば(Yes)、ステップS62の処理を行い、当該判断条件が成立しなかったならば(No)、ステップS63の処理を行う。
ステップS62において、スナップショット作成部35は、データ管理部33により、当該レコードに係るデータを、スナップショットデータ344に収集する。
ステップS63において、スナップショット作成部35は、第2データ管理テーブル342のすべてのレコードについて処理を繰り返したか否かを判断する。スナップショット作成部35は、当該判断条件が成立しなかったならば、ステップS60の処理に戻り、当該判断条件が成立したならば、図11の処理を終了する。
スナップショット作成部35は、第2データ管理テーブル342に係る各データのうち、未更新集合と更新前集合に含まれるデータを取得して、スナップショットデータ344に収集している。未更新集合は、スナップショット作成開始時以降において更新されていないデータの集合である。更新前集合は、スナップショット作成中にコピーされて更新されたデータに係る、コピー元のデータの集合である。
これにより、スナップショット作成部35は、スナップショット作成開始時におけるデータを、すべてバックアップすることができる。
図12は、スナップショット作成後処理を示すフローチャートである。
スナップショット作成部35は、図11に示すスナップショット作成中処理が終了したならば、スナップショット作成後処理を開始する。
ステップS70〜S73において、スナップショット作成部35は、第2データ管理テーブル342のすべてのレコードについて処理を繰り返す。
ステップS71において、スナップショット作成部35は、当該レコードの属性欄342nを判断する。スナップショット作成部35は、テーブル管理部32により、当該レコードの属性欄342nを参照する。スナップショット作成部35は、属性欄342nが「更新前」ならばステップS72の処理を行い、属性欄342nが「更新後」ならばステップS74の処理を行い、属性欄342nが「未更新」ならばステップS75の処理を行う。
ステップS72において、スナップショット作成部35は、該当データを削除する。スナップショット作成部35は、テーブル管理部32により、当該レコードの収容位置欄342bを参照し、この格納位置に格納されている該当データを削除する。
ステップS73において、スナップショット作成部35は、第2データ管理テーブル342の該当データの参照情報(レコード)を削除する。スナップショット作成部35は、ステップS73の処理が終了すると、ステップS75の処理を行う。
ステップS74において、スナップショット作成部35は、該当データに「未更新」属性を設定する。スナップショット作成部35は、テーブル管理部32により、当該レコードの属性欄342nに「未更新」属性を設定する。
ステップS75において、スナップショット作成部35は、第2データ管理テーブル342のすべてのレコードについて処理を繰り返したか否かを判断する。スナップショット作成部35は、当該判断条件が成立しなかったならば、ステップS70の処理に戻り、当該判断条件が成立したならば、図12の処理を終了する。
第1の実施形態のスナップショット作成部35は、スナップショット作成後処理において、更新前集合のデータを削除している。これにより、スナップショット作成部35は、更新前データの記憶領域を解放して、通常時の空間計算量を削減することができる。
なお、これに限られず、スナップショット作成部35は、スナップショット作成後処理において、最後に第2データ管理テーブル342を削除してもよい。これにより、各データ管理サーバ3は、第2データ管理テーブル342を格納していた記憶領域を解放し、通常時の空間計算量を更に削減することができる。
図13(a)〜(g)は、スナップショット作成中の各集合と各データとを示す図である。
図13(a)から図13(g)まで時系列順に、外部からの書込更新処理が行われた結果を示している。未更新集合は、第2データ管理テーブル342の属性欄342nが「未更新」のデータの集合である。更新前集合は、第2データ管理テーブル342の属性欄342nが「更新前」のデータの集合である。更新後集合は、第2データ管理テーブル342の属性欄342nが「更新後」のデータの集合である。
図13(a)は、データ管理テーブル341がスナップショットデータ344にコピーされたときの、各集合と各データとを示している。これは、スナップショット作成開始における各データを示している。
未更新集合は、データA〜Eをすべて含んでいる。即ち、データA〜Eは、スナップショット作成開始の時点と同一であり、更新されていないことを示している。更新前集合と更新後集合は、データを含まない。
図13(b)は、#Bをキー値とするデータBが更新されたときの、各集合と各データとを示している。
データB(図13(a)参照)は、更新前集合に移動している。ここでは、データの移動を実線矢印で示している。データB(図13(a)参照)は、コピーされて更新されることでデータB2となり、更新後集合に移動している。ここでは、データの更新と移動とを破線矢印で示している。
図13(c)は、#Dをキー値とするデータDが更新されたときの、各集合と各データとを示している。
データD(図13(b)参照)は、更新前集合に移動している。更にデータD(図13(b)参照)は、コピーされて更新されることでデータD2となり、更新後集合に移動している。
図13(d)は、#Bをキー値とするデータB2が再更新されたときの、各集合と各データとを示している。
更新後集合のデータB2(図13(c)参照)は、再更新されデータB3となり、同様に更新後集合に含まれている。
図13(e)は、#Dをキー値とするデータD2が削除されたときの、各集合と各データとを示している。
更新後集合のデータD2(図13(d)参照)は削除され、更新後集合から消滅している。
図13(f)は、#Eをキー値とするデータEが削除されたときの、各集合と各データとを示している。
未更新集合のデータE(図13(d)参照)は、更新前集合に移動している。
図13(g)は、スナップショット作成後処理を実行したのちの、各集合と各データとを示している。
更新後集合のデータB3(図13(f)参照)は、未更新集合に移動している。これにより、未更新集合には、データA,B3,Cのみが含まれるようになる。すなわち、この未更新集合には、データD,Eの削除と、データBの2回の更新とが反映される。
図13(a)〜(f)のすべての期間において、未更新集合と更新前集合との論理和はデータA〜Eであり、スナップショット作成開始時におけるデータA〜Eと一致している。よって、スナップショット作成部35は、未更新集合と更新前集合のデータを収集することにより、スナップショット作成開始時におけるデータを収集することができる。
(発明の効果)
以上説明した第1の実施形態では、次の(A)〜(G)のような効果がある。
(A) スナップショット作成部35は、データ343の全体をロックせず、データ管理テーブル341をロックして、このスナップショットを作成したのちにロック解除している。その後、データ管理サーバ3は、一方でデータ更新を継続しながら、他方でスナップショットを収集している。これにより、データ管理サーバ3は、少量のテーブルのロックにより、このテーブルで管理された多量のデータのスナップショットを作成できる。
(B) スナップショット作成中のバックアップ対象データは、更新後集合と、未更新集合と、更新前集合とに分けて管理される。データ書込参照処理部31は、未更新集合のデータを更新する場合、そのデータをコピーし、それぞれ更新前集合と更新後集合とにデータを移動し、更新後集合に移動したデータに、更新処理を行っている。これにより、データ書込参照処理部31は、更新されたデータに限定して二重化しているので、二重化のための時間計算量と空間計算量とを減らし、短時間でスナップショットを作成することができる。
(C) データ書込参照処理部31は、スナップショット作成中にデータを新規作成する場合、更新後集合にデータを作成する。これにより、データ書込参照処理部31は、スナップショット作成処理に影響することなく、データを新規作成可能である。
(D) データ書込参照処理部31は、スナップショット作成中にデータを削除する場合、未更新集合のデータならば更新前集合に移動し、更新後集合のデータならば削除している。これにより、データ書込参照処理部31は、スナップショット作成処理への影響無しに、処理対象データを削除することができる。
(E) データ書込参照処理部31は、スナップショット作成中のデータの参照要求を、データ更新状況が反映された原本であるデータ管理テーブル341に基づいて行う。スナップショット作成部35は、スナップショット作成開始時点のデータ管理テーブル341をコピーし、未更新集合と更新前集合に含まれるデータを管理する第2データ管理テーブル342に基づいて、スナップショットを作成する。このように、データ書込参照処理部31と、スナップショット作成部35とは、それぞれ別のテーブルに基づいて、データの参照と、スナップショットの作成とを行う。よって、各データ管理サーバ3は、排他制御によりデータやデータ管理テーブル341の整合性を保つ必要がなくなる。
(F) スナップショット作成部35は、スナップショット作成後に、通常時には不要である更新前集合の各データを削除している。これにより、データ管理サーバ3は、通常時のメモリリソースを充分に確保することができる。
(G) スナップショット作成部35は、スナップショット作成中に更新後集合と未更新データ集合とに分けて管理していた各データを、スナップショット作成後には、これらを分けずに単一の集合で管理するように変える。これにより、データ管理サーバ3は、通常時の時間計算量を削減することができる。
(第2の実施形態)
図14は、第2の実施形態におけるデータ管理サーバを示す概略の構成図である。
データ管理サーバ3は、図1に示す第1の実施形態の各データ管理サーバ3と同様に構成されている。
データ管理サーバ3は、第1の実施形態とは異なり、外部から振分サーバ2(図1参照)を介さずにデータ書込要求信号やデータ参照要求信号などが送信される。
データ管理サーバ3は、第1の実施形態とは異なり、外部端末からスナップショット作成管理サーバ4(図1参照)を介さずに、スナップショット作成要求信号が送信される。それ以外は、第1の実施形態の各データ管理サーバ3と同様に構成され、同様に動作する。
このように、複数のデータ管理サーバ3から構成されるクラスタシステム1(図1参照)に限られず、単一のデータ管理サーバ3であっても、スナップショット作成部35は、少量のデータ管理テーブル341のロックにより、多量のデータのスナップショットを作成することができる。
(変形例)
本発明は、上記実施形態に限定されることなく、本発明の趣旨を逸脱しない範囲で、変更実施が可能であり、例えば、次の(a)〜(c)のようなものがある。
(a) データ管理サーバ3は、スナップショット作成中に、データを削除する場合、データをコピーして、それぞれ更新前集合と更新後集合にデータを移動し、更新後集合のデータのみを削除してもよい。
(b) スナップショット作成部35は、スナップショット作成指示を受けて、テーブル管理部32に、テーブルロックを解除するように処理してもよい。
(c) スナップショット作成部35は、データ管理テーブル341の全体ではなく、データ管理テーブル341のバックアップ対象部分をロックして、バックアップを作成したのちにロック解除してもよい。これにより、スナップショット作成部35は、限定されたバックアップ対象部分のスナップショットを作成可能である。
1 クラスタシステム (サーバクラスタのスナップショット作成システム)
2 振分サーバ
21 振分部
22 振分表
3,3−1〜3−3 データ管理サーバ
31 データ書込参照処理部
32 テーブル管理部
33 データ管理部
34 記憶部
341 データ管理テーブル
342 第2データ管理テーブル
343 データ
344 スナップショットデータ
35 スナップショット作成部
4 スナップショット作成管理サーバ
41 スナップショット作成統括部

Claims (8)

  1. クラスタ構成された複数台のデータ管理サーバと、
    振分サーバと、
    を備え、
    前記振分サーバは、
    外部からの要求を前記データ管理サーバに振り分ける振分部と、
    外部からの要求と前記データ管理サーバとの対応を示す振分表と、
    を備え、
    前記データ管理サーバは、それぞれ、
    各データの収容位置を含むデータ管理テーブルを管理するテーブル管理部と、
    前記各データを管理するデータ管理部と、
    前記振分表と前記データ管理テーブルとを書込ロックしてスナップショットを作成したのちにロックを解除し、前記各データを書込ロックせずにスナップショットを作成するスナップショット作成部と、
    外部からの要求に基づいてデータの書込または参照を行うものであり、前記スナップショット作成部のスナップショット作成中に、スナップショット作成開始時以降の未更新データに係る書込要求を外部から受信したならば、当該書込要求に係る未更新データをコピーし、コピーしたデータに当該書込要求を行って更新後の属性を設定して更新後データとすると共に、当該書込要求に係る未更新データに更新前の属性を設定して更新前データとするデータ書込参照処理部と、
    前記各データ、前記データ管理テーブル、および、前記スナップショット作成部が作成したスナップショットデータを記憶する記憶部と、
    を備えることを特徴とするサーバクラスタのスナップショット作成システム。
  2. 前記データ書込参照処理部は、
    前記スナップショット作成部のスナップショット作成中に、外部からデータの参照要求を受信したならば、前記データ管理テーブルに基づいて、各データを参照する、
    ことを特徴とする請求項1に記載のサーバクラスタのスナップショット作成システム。
  3. 前記スナップショット作成部は、
    スナップショット作成開始時以降の各未更新データおよび各更新前データを収集してスナップショットを作成する、
    ことを特徴とする請求項1に記載のサーバクラスタのスナップショット作成システム。
  4. 前記スナップショット作成部は、
    スナップショット作成が終了したならば、前記各更新前データを削除し、各更新後データに未更新の属性を設定する、
    ことを特徴とする請求項3に記載のサーバクラスタのスナップショット作成システム。
  5. 前記データ書込参照処理部は、
    前記スナップショット作成部のスナップショット作成中に、外部から未更新データの削除要求を受信したならば、当該削除要求に係る未更新データに更新前の属性を設定する、
    ことを特徴とする請求項1に記載のサーバクラスタのスナップショット作成システム。
  6. 前記データ書込参照処理部は、
    前記スナップショット作成部のスナップショット作成中に、外部からデータの新規作成要求を受信したならば、当該新規作成要求に係るデータに更新後の属性を設定する、
    ことを特徴とする請求項1に記載のサーバクラスタのスナップショット作成システム。
  7. 前記データ管理部は、前記記憶部に格納された第2データ管理テーブルに基づき、前記各データの属性を管理する、
    ことを特徴とする請求項1に記載のサーバクラスタのスナップショット作成システム。
  8. 各データの収容位置を含むデータ管理テーブルを管理するテーブル管理部と、
    前記各データを管理するデータ管理部と、
    前記データ管理テーブルを書込ロックしてスナップショットを作成したのちにロックを解除し、前記各データを書込ロックせずにスナップショットを作成するスナップショット作成部と、
    外部からの要求に基づいてデータの書込または参照を行うものであり、前記スナップショット作成部のスナップショット作成中に、スナップショット作成開始時以降の未更新データに係る書込要求を外部から受信したならば、当該書込要求に係る未更新データをコピーし、コピーしたデータに当該書込要求を行って更新後の属性を設定して更新後データとすると共に、当該書込要求に係る未更新データに更新前の属性を設定して更新前データとするデータ書込参照処理部と、
    前記各データ、前記データ管理テーブル、および前記スナップショット作成部が作成したスナップショットデータを記憶する記憶部と、
    を備えることを特徴とするデータ管理サーバのスナップショット作成システム。
JP2013147828A 2013-07-16 2013-07-16 データ管理サーバのスナップショット作成システム、および、サーバクラスタのスナップショット作成システム Expired - Fee Related JP5956387B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013147828A JP5956387B2 (ja) 2013-07-16 2013-07-16 データ管理サーバのスナップショット作成システム、および、サーバクラスタのスナップショット作成システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013147828A JP5956387B2 (ja) 2013-07-16 2013-07-16 データ管理サーバのスナップショット作成システム、および、サーバクラスタのスナップショット作成システム

Publications (2)

Publication Number Publication Date
JP2015022353A JP2015022353A (ja) 2015-02-02
JP5956387B2 true JP5956387B2 (ja) 2016-07-27

Family

ID=52486790

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013147828A Expired - Fee Related JP5956387B2 (ja) 2013-07-16 2013-07-16 データ管理サーバのスナップショット作成システム、および、サーバクラスタのスナップショット作成システム

Country Status (1)

Country Link
JP (1) JP5956387B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10191817B2 (en) * 2015-12-28 2019-01-29 Veritas Technologies Llc Systems and methods for backing up large distributed scale-out data systems
CN111949407B (zh) * 2020-08-13 2024-04-12 抖音视界有限公司 一种资源分配方法及装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0827754B2 (ja) * 1992-05-21 1996-03-21 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュータシステムにおけるファイル管理方法及びファイル管理システム
JP3882461B2 (ja) * 2000-04-10 2007-02-14 株式会社日立製作所 記憶装置システム及びそのバックアップ取得方法
JP2004362076A (ja) * 2003-06-02 2004-12-24 Fuji Xerox Co Ltd データ登録装置および方法
US20090327355A1 (en) * 2008-06-30 2009-12-31 Sun Microsystems, Inc. System and method for coordinating a point-in-time copy among multiple data providers
WO2012020482A1 (ja) * 2010-08-11 2012-02-16 富士通株式会社 バックアップ方法、情報処理装置及びプログラム

Also Published As

Publication number Publication date
JP2015022353A (ja) 2015-02-02

Similar Documents

Publication Publication Date Title
US10936547B2 (en) Filesystem replication using a minimal filesystem metadata changelog
CN107122360B (zh) 数据迁移系统和方法
CN107122355B (zh) 数据迁移系统和方法
US8296340B2 (en) Managing files using layout storage objects
JP4414381B2 (ja) ファイル管理プログラム、ファイル管理装置、ファイル管理方法
CN107122361B (zh) 数据迁移系统和方法
US8756196B2 (en) Propagating tables while preserving cyclic foreign key relationships
US20090112789A1 (en) Policy based file management
US20090112921A1 (en) Managing files using layout storage objects
US20110029487A1 (en) Simultaneously accessing file objects through Web services and file services
US20060167895A1 (en) Database system and method for adapting a main database components in a main memory thereof
US11687595B2 (en) System and method for searching backups
US9519673B2 (en) Management of I/O and log size for columnar database
CN110209653B (zh) HBase数据迁移方法及迁移装置
WO2020019995A1 (en) Asynchronous cache coherency for mvcc based database systems
US10318330B2 (en) Data-persisting temporary virtual machine environments
JP5956387B2 (ja) データ管理サーバのスナップショット作成システム、および、サーバクラスタのスナップショット作成システム
US8082230B1 (en) System and method for mounting a file system on multiple host computers
US11429311B1 (en) Method and system for managing requests in a distributed system
US10671482B2 (en) Providing consistency in a distributed data store
US7949632B2 (en) Database-rearranging program, database-rearranging method, and database-rearranging apparatus
US11880495B2 (en) Processing log entries under group-level encryption
US11683161B2 (en) Managing encryption keys under group-level encryption
US11907162B2 (en) Minimizing data volume growth under encryption changes
US11816088B2 (en) Method and system for managing cross data source data access requests

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150717

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160524

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160614

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160616

R150 Certificate of patent or registration of utility model

Ref document number: 5956387

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees