JP5594828B2 - データ分散保管装置及び方法及びプログラム及び記録媒体 - Google Patents

データ分散保管装置及び方法及びプログラム及び記録媒体 Download PDF

Info

Publication number
JP5594828B2
JP5594828B2 JP2010163834A JP2010163834A JP5594828B2 JP 5594828 B2 JP5594828 B2 JP 5594828B2 JP 2010163834 A JP2010163834 A JP 2010163834A JP 2010163834 A JP2010163834 A JP 2010163834A JP 5594828 B2 JP5594828 B2 JP 5594828B2
Authority
JP
Japan
Prior art keywords
data
distribution
unit
value
metadata
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
JP2010163834A
Other languages
English (en)
Other versions
JP2012027587A (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.)
Tokyo Denki University
Original Assignee
Tokyo Denki University
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 Tokyo Denki University filed Critical Tokyo Denki University
Priority to JP2010163834A priority Critical patent/JP5594828B2/ja
Publication of JP2012027587A publication Critical patent/JP2012027587A/ja
Application granted granted Critical
Publication of JP5594828B2 publication Critical patent/JP5594828B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、通信ネットワークを用いて複数の物理的装置、複数の論理的装置又はこれらを組み合わせた複数のクライアントへデータの保管を行うデータ分散保管装置及び方法及びプログラム及び記録媒体に関する。
近年データの電子化が急速に進み、サーバへのデータ蓄積量は顕著な増加を見せている。こうしたデータのうち、業務遂行やサービスの提供に重要なデータは、BCP(事業継続計画)などの概念で示されるように、災害や不慮の事故、サイバーテロなど悪意あるアクセスから守られ、システム停止やデータ損失を最小限に抑えるための仕組みが必要とされている。こうした中、サーバの置かれた場所を物理的に保護し、これらを相互に接続し、相互にバックアップを行うシステムや、クラウドを利用したバックアップシステムが提案され、管理の仕組みも徐々に普及しつつある。また、ディザスタリカバリ(災害復旧)というキーワードでデータを分散保管する仕組みも、様々な手法が提案されている。
守秘の必要なデータを有線や無線ネットワークで送信し、データを作成した装置とは別の装置に保管する場合、送出者がデータをDES(Data Encryption Standard)やAES(Advanced Encryption Standard)といった暗号を用いて暗号化し、保管先のクライアントへ送付することが一般的である。
高い守秘性能と同時に冗長性を確保するために、データを分散して保管するデータ分散保管装置が提案されている(例えば、特許文献1から3及び非特許文献1及び2を参照。)。たとえば、特許文献1のデータ分散保管装置は、保管するデータを撹拌して分割し、分割したデータピースをネットワーク上の複数のクライアントに分散して保管する。これにより、従来の一対一の暗号化とは異なった考え方による守秘性の向上、保管の確実性と処理の軽量化を実現している。
WO2007/111086号公報 特開2010−45670号公報 特開2010−92337号公報
宮保憲治、「災害時に備えたディザスタリカバリ技術の新しい展開」、IPEJ Journal、Vol.21、No.12、pp.8−pp.11(2009) Kenji Mori, Yoichiro Ueno, Suzuki Shuichi, Kazuo Ichihara , Noriharu Miyaho,"Study on the performance evaluation applying to the pull−type network mechanism for realizing the disaster recovery system",2010年電子情報通信学会総合大会(英語セッションシンポジウム),2010.3.16,p.S42−S43
特許文献1から3のデータ分散保管装置は、データピースを送信すべきクライアントの情報を管理しなければならないため、クライアントの情報を管理するテーブルが肥大化する。このため、クライアントの情報管理におけるデータ分散保管装置の負荷が大きいという問題があった。
そこで、本発明は、データ分散保管装置の負荷を軽減することのできるデータ分散保管装置及び方法及びプログラム及び記録媒体の提供を目的とする。
上記目的を達成するために、本願発明のデータ分散保管装置は、予め定められた規則に基づいて入力データのデータ配列を変更するデータ変更部と、前記データ変更部からの変更データを複数のデータピースに分割するデータ分割部と、予め定められた演算アルゴリズムを用いて、前記入力データ固有の演算値及び前記データピースの演算値を算出する演算値算出部と、前記演算値算出部の算出する前記入力データ固有の演算値及び前記データピースの演算値並びに前記データ変更部の変更履歴が関連付けられたメタデータを格納するメタデータ格納部と、前記演算値算出部の算出する前記入力データ固有の演算値及び前記データピースの演算値を、前記データ分割部からの各データピースに付して分散用データを構成する分散用データ構成部と、前記分散用データ構成部の構成する前記分散用データを、前記分散用データに付されている前記データピースの演算値に適合する識別子を有するクライアントのうちの任意のクライアントに対して送信するサーバ分散用データ送受信部と、を備える。
分散用データ構成部がデータピースに特定の演算値を付し、サーバ分散用データ送受信部がデータピースを特定の演算値に適合するクライアントのみに送信するため、データ分散保管装置は分散用データをどのクライアントに保管したかを管理する必要がない。これにより、本願発明のデータ分散保管装置は、データ分散保管装置の負荷を軽減することができる。
パリティ演算部を備えるため、データピースの冗長保管を行うことができる。ここで、パリティデータを保管するため、効率よく冗長保管を行うことができる。
本願発明のデータ分散保管装置では、前記データピースの演算値に適合する識別子を有するクライアントからは取得可能であるけれども前記データピースの演算値に適合しない識別子を有するクライアントからは取得不可能な状態で、前記分散用データ構成部の構成する前記分散用データを格納する分散用データ格納部を、さらに備えてもよい。
分散用データ格納部を備えるため、クライアントから分散用データの有無を確認された際に分散用データがあれば送信するプル型の構成とすることができる。これにより、本願発明のデータ分散保管装置は、分散用データをクライアントにの通信に要する負荷を軽減することができる。
本願発明のデータ分散保管装置では、前記サーバ分散用データ送受信部は、前記分散用データ構成部の構成する前記分散用データを、前記データピースの演算値に一致する識別子を有するクライアント及び前記演算アルゴリズムを用いて導き出される数値空間において前記データピースの演算値付近に位置する演算値に対応する識別子を有するクライアントのうちの少なくともいずれかのクライアントに送信してもよい。
本発明により、データ分散保管装置にアクセスしているクライアントのなかにデータピースの演算値に一致する識別子を有するクライアントがない場合であっても、分散用データを速やかにクライアントに送信することができる。
本願発明のデータ分散保管装置では、前記メタデータ格納部の格納する前記メタデータを取得するメタデータ取得部と、前記メタデータ取得部の取得する前記メタデータに含まれる前記データピースの演算値に適合するクライアントから、前記メタデータに含まれる前記入力データ固有の演算値が付されている前記分散用データを回収する分散用データ回収部と、前記メタデータ取得部の取得する前記メタデータに含まれる前記データピースの演算値に従って、前記分散用データ回収部の回収する前記分散用データを配列し、前記データピースを結合するデータ結合部と、前記メタデータ取得部の取得する前記メタデータに含まれる前記データ変更部の履歴に基づいて、前記データ結合部からの結合データを前記入力データに復元するデータ復元部と、を備えてもよい。
メタデータ取得部及び分散用データ回収部を備えるため、データピースに付された特定の演算値を用いて分散用データを回収することができる。データ結合部及びデータ復元部を備えるため、分散用データを用いて入力データを復元することができる。ここで、データピースに付された特定の演算値を用いているため、データ分散保管装置は分散用データをどのクライアントに保管したかを管理する必要がない。これにより、本願発明のデータ分散保管装置は、データ分散保管装置の負荷を軽減することができる。
本願発明のデータ分散保管装置では、前記演算値算出部は、予め定められた演算アルゴリズムを用いて、前記入力データ自体の演算値をさらに算出し、前記メタデータ格納部は、前記演算値算出部の算出する前記入力データ自体の演算値をさらに含む前記メタデータを格納し、前記入力データ自体の演算値を算出した前記演算アルゴリズムを用いて前記データ復元部の復元データの演算値を算出し、算出した前記復元データの演算値を、前記メタデータ取得部の取得する前記メタデータに含まれる前記入力データ自体の演算値と照合する演算値照合部をさらに備えてもよい。
演算値照合部を備えるため、復元データと入力データとが一致するか否かを判定することができる。判定結果を用いて回収したデータピースの真偽を判定することができるため、本願発明のデータ分散保管装置は、クライントのなかに悪意ある参加を試みるクライアントがあった場合にこれを排除することができる。
上記目的を達成するために、本願発明のデータ分散保管方法は、予め定められた規則に基づいて入力データのデータ配列を変更するデータ変更手順(S102)と、前記入力データを変更した変更データを複数のデータピースに分割するデータ分割手順(S103)と、予め定められた演算アルゴリズムを用いて、前記入力データ固有の演算値及び前記データピースの演算値を算出する演算値算出手順(S104)と、前記入力データ固有の演算値及び前記データピースの演算値並びに前記データ変更手順における変更履歴が関連付けられたメタデータを格納するメタデータ格納手順(S105)と、前記入力データ固有の演算値及び前記データピースの演算値を前記各データピースに付して分散用データを構成し、当該分散用データを格納する分散用データ格納手順(S106)と、前記分散用データを、前記分散用データに付されている前記データピースの演算値に適合する識別子を有するクライアントのうちの任意のクライアントに対して送信するサーバ分散用データ送信手順(S107)と、を順に有する。
分散用データ格納手順においてデータピースに特定の演算値を付し、サーバ分散用データ送信手順においてデータピースを特定の演算値に適合するクライアントのみに送信するため、データ分散保管装置は分散用データをどのクライアントに保管したかを管理する必要がない。これにより、本願発明のデータ分散保管方法は、データ分散保管装置の負荷を軽減することができる。
また、パリティ演算部を備えるため、データピースの冗長保管を行うことができる。ここで、パリティデータを保管するため、効率よく冗長保管を行うことができる。
本願発明のデータ分散保管方法では、前記分散用データ格納手順において、前記データピースの演算値に適合する識別子を有するクライアントからは取得可能であるけれども前記データピースの演算値に適合しない識別子を有するクライアントからは取得不可能な状態で、前記分散用データ構成部の構成する前記分散用データを格納してもよい。
本発明により、クライアントから分散用データの有無を確認された際に分散用データがあれば送信するプル型の構成とすることができる。これにより、分散用データをクライアントの通信に要する負荷を軽減することができる。
本願発明のデータ分散保管方法では、前記サーバ分散用データ送信手順において、前記分散用データを、前記データピースの演算値に一致する識別子を有するクライアント及び前記演算アルゴリズムを用いて導き出される数値空間において前記データピースの演算値付近に位置する演算値に対応する識別子を有するクライアントのうちの少なくともいずれかのクライアントに送信してもよい。
本発明により、データ分散保管装置にアクセスしているクライアントのなかにデータピースの演算値に一致する識別子を有するクライアントがない場合であっても、分散用データを速やかにクライアントに送信することができる。
本願発明のデータ分散保管方法では、前記メタデータ格納手順において格納した前記メタデータを取得するメタデータ取得手順(S201)と、前記メタデータ取得手順で取得した前記メタデータに含まれる前記データピースの演算値に適合するクライアントから、前記メタデータに含まれる前記入力データ固有の演算値が付されている前記分散用データを回収する分散用データ回収手順(S202)と、前記メタデータ取得手順で取得した前記メタデータに含まれる前記データピースの演算値に従って、前記分散用データ回収手順で回収した前記分散用データを配列し、前記データピースを結合するデータ結合手順(S203)と、前記メタデータ取得手順で取得した前記メタデータに含まれる前記変更履歴に基づいて、前記データ結合手順で結合した結合データを前記入力データに復元するデータ復元手順(S204)と、を前記サーバ分散用データ送信手順の後に順に有する。
メタデータ取得手順及び分散用データ回収手順を有するため、データピースに付された特定の演算値を用いて分散用データを回収することができる。データ結合手順及びデータ復元手順を有するため、分散用データを用いて入力データを復元することができる。ここで、データピースに付された特定の演算値を用いているため、データ分散保管装置は分散用データをどのクライアントに保管したかを管理する必要がない。これにより、本願発明のデータ分散保管方法は、データ分散保管装置の負荷を軽減することができる。
本願発明のデータ分散保管方法では、前記演算値算出手順において、予め定められた演算アルゴリズムを用いて、前記入力データ自体の演算値をさらに算出し、前記メタデータ格納手順において、前記演算値算出手順で算出した前記入力データ自体の演算値をさらに含む前記メタデータを格納し、前記入力データ自体の演算値を算出した前記演算アルゴリズムを用いて前記データ復元手順で復元した復元データ自体の演算値を算出し、算出した前記復元データ自体の演算値を、前記メタデータ取得手順で取得した前記メタデータに含まれる前記入力データ自体の演算値と照合する演算値照合手順(S205)を前記データ復元手順の後にさらに有してもよい。
演算値照合手順を有するため、復元データと入力データとが一致するか否かを判定することができる。判定結果を用いて回収したデータピースの真偽を判定することができるため、本願発明のデータ分散保管方法は、クライントのなかに悪意ある参加を試みるクライアントがあった場合にこれを排除することができる。
本願発明のプログラムは、本発明のデータ分散保管方法をコンピュータに実行させる。
本発明により、コンピュータを用いて本発明のデータ分散保管方法を実行することができる。これにより、本願発明のプログラムは、データ分散保管装置の負荷を軽減することができる。
本願発明の記録媒体は、本発明のデータ分散保管方法をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体である。
本発明により、コンピュータを用いて本発明のデータ分散保管方法を実行することができる。これにより、本願発明のプログラムは、データ分散保管装置の負荷を軽減することができる。
なお、上記各発明は、可能な限り組み合わせることができる。
本発明によれば、データ分散保管装置の負荷を軽減することのできるデータ分散保管装置及び方法及びプログラム及び記録媒体を提供することができる。
実施形態1に係るデータ分散保管システムの一例を示す。 実施形態1に係るデータ分散保管方法の一例を示すシーケンス図である。 本実施形態において扱うデータの一例を示す。 分散用データDの一例を示す。 分散用データ格納部の格納する分散用データの一例を示す。 サーバ分散用データ送受信部の送信する分散用データの一例を示す。 実施形態2に係るデータ分散保管システムのフロチャートを示す。 実施形態3に係るデータ分散保管システムの一例を示す。 実施形態3において扱うデータの一例を示す。 実施形態4に係るデータ分散保管システムの一例を示す。 実施形態4に係るデータ分散保管方法の一例を示すシーケンス図である。 分散用データDを回収する際のデータ分散保管システムの動作の一例を示すフロチャートである。
添付の図面を参照して本発明の実施形態を説明する。以下に説明する実施形態は本発明の実施の例であり、本発明は、以下の実施形態に制限されるものではない。なお、本明細書及び図面において符号が同じ構成要素は、相互に同一のものを示すものとする。
(実施形態1)
図1に、実施形態1に係るデータ分散保管システムの一例を示す。本実施形態に係るデータ分散保管システムは、データ分散保管装置1Aと、M台のクライアント3〜3と、データ分散保管装置1Bと、を備える。図1では、M台のクライアント3〜3のうちのi番目のクライアント3(iは1〜Mの任意の整数。)のみを記載した。データ分散保管装置1A及び1Bとクライアント3〜3とは、通信ネットワークで接続されている。
データ分散保管装置1Aは、複数のクライアント3〜3に入力データを分散させるための構成を備える。例えば、データ分散保管装置1Aは、データ変更部11と、データ分割部12と、演算値算出部13と、メタデータ格納部14と、分散用データ構成部15と、分散用データ格納部16と、サーバ分散用データ送受信部17と、メタデータ収集部19と、を備える。
クライアント3は、識別子IDを有し、識別子IDに対応したデータピースP〜Pの演算値OP1〜OPNに適合する分散用データDを保管する。例えば、クライアント3は、分散用データ取得部31と、分散用データ格納部32と、クライアント分散用データ送受信部33と、を備える。
クライアント3としてはPCや、携帯電話など蓄積機能を有するあらゆる通信装置が利用可能であり、ユーザは、当該の通信装置に、アプリケーション(以下、DRT(Distribution and Rake Technology)アプリケーションと記述)をインストールしてシステムに参加することができる。クライアントとしてはPCや、携帯電話など蓄積機能を有するあらゆる通信装置が利用可能であり、ユーザは、当該の通信装置に、アプリケーション(以下DRTアプリケーションと記述)をインストールしてシステムに参加することができる。
データ分散保管装置1Bは、複数のクライアント3〜3から分散用データD〜Dを回収して入力データを復元する。例えば、データ分散保管装置1Bは、メタデータ取得部21と、分散用データ回収部22と、データ結合部23と、データ復元部24と、を備える。
図2は、実施形態1に係るデータ分散保管方法の一例を示すシーケンス図である。本実施形態に係るデータ分散保管方法は、入力データ取得手順S101と、データ変更手順S102と、データ分割手順S103と、演算値算出手順S104と、メタデータ格納手順S105と、分散用データ格納手順S106と、サーバ分散用データ送信手順S107と、メタデータ送信手順S108と、分散用データ取得手順S301と、分散用データ格納手順S302と、クライアント分散用データ送信手順S303と、メタデータ取得手順S201と、分散用データ回収手順S202と、データ結合手順S203と、データ復元手順S204と、を順に有する。本実施形態に係るデータ分散保管プログラムは、本実施形態に係るデータ分散保管方法をコンピュータに実行させるためのプログラムである。
図3に、本実施形態において扱うデータの一例を示す。以下、図1、図2及び図3を参照しながら、本実施形態に係るデータ分散保管方法について説明する。
入力データ取得手順S101では、データ分散保管装置1Aが入力データIを取得する。例えば、DRTアプリケーションからアクセス可能なサーバのフォルダ内に入力データIが格納されると、データ分散保管装置1Aは入力データIを取得する。
データ分散保管装置1Aは、保管すべきデータを認識すると、データ変更手順S102を実行する。データ変更手順S102では、データ変更部11が、予め定められた規則に基づいて入力データIのデータ配列を変更する。これにより、入力データIを変更した変更データCがデータ分割部12に入力される。予め定められた規則は、例えば、一体化関数、生成した順若しくは日時、チェックサム、CRC(Cyclic Redundancy Check)又は入力データIの特定部分のビット列である。
データ分割手順S103では、データ分割部12が、変更データCを複数のデータピースP〜Pに分割する。
演算値算出手順S104では、演算値算出部13が、予め定められた演算アルゴリズムを用いて、入力データI固有の演算値O及びデータピースP〜Pの演算値OP1〜OPNを算出する。入力データI固有の演算値Oは、例えば、入力データIのファイル名の演算値である。予め定められた演算アルゴリズムは、例えば、ハッシュ関数である。この場合、演算値算出部13は、入力データIのファイル名のハッシュ値を算出することによって、入力データI固有の演算値Oを算出する。演算値算出部13は、データピースPのハッシュ値を算出することによって、演算値OPjを算出する。入力データI固有の演算値Oは、入力データIのファイル名に限らず、例えば、入力データIそのものの演算値であってもよいし、入力データIのヘッダ情報の演算値であってもよい。
メタデータ格納手順S105では、メタデータ格納部14が、入力データI固有の演算値O及びデータピースP〜Pの演算値OP1〜OPN並びにデータ変更手順S102における変更履歴の関連付けられたメタデータMを格納する。メタデータMは、入力データIのファイル名、入力データI固有の演算値O、各データピースP〜Pの演算値OP1〜OPN、データ変更部11の変更履歴及びデータ分割部12の分割履歴を含む。メタデータMは、各データピースP〜Pの並び、各データピースP〜Pの暗号鍵を含んでいてもよい。
分散用データ格納手順S106では、分散用データ構成部15が演算値算出部13の算出する入力データI固有の演算値O及びデータピースP〜Pの演算値OP1〜OPNを、データ分割部12からの各データピースP〜Pに付して分散用データD〜Dを構成する。そして、分散用データ格納部16が、分散用データD〜Dを格納する。図4に、分散用データDの一例を示す。分散用データDは、入力データI固有の演算値O及びデータピースPの演算値OPjを含む。管理情報は、例えば、チェックサムである。
分散用データ格納部16は、データピースP〜Pの演算値OP1〜OPNに適合する識別子IDを有するクライアント3からは取得可能であるけれどもデータピースP〜Pの演算値OP1〜OPNに適合しない識別子IDを有するクライアント3からは取得不可能な状態で、分散用データ構成部15の構成する分散用データD〜Dを格納する。例えば、クライアントの識別子を参照してアクセス制限をかける。
例えば、図5に示すように、演算値Oが「12345」で演算値OPjが「6612」のデータピースPを含む分散用データDが分散用データ格納部16に格納されている。この場合、演算値OPjに一致する「6612」の識別子IDを有するクライアント3は、分散用データDを取得することができる。一方、演算値OPjに適合しない「5147」の識別子IDを有するクライアント3は、分散用データDを取得することはできない。
ここで、演算値OPjと識別子IDとが適合する場合には、分散用データDPjと演算値OPjとが一致する場合と、演算アルゴリズムを用いて導き出される数値空間においてデータピースPの演算値OPj付近に位置する演算値に一致する場合と、も含む。例えば、図5に示すように、クライアント3の識別子「7700」がハッシュ空間においてデータピースPの演算値OP2「7777」付近に位置する演算値「7700」に対応する場合、クライアント3は分散用データDを取得することができる。
クライアント3から分散用データD〜Dの有無を確認された際に、サーバ分散用データ送信手順S107を実行する。図6に、サーバ分散用データ送受信部の送信する分散用データの一例を示す。サーバ分散用データ送信手順S107では、サーバ分散用データ送受信部17が、分散用データD〜Dをクライアント3〜3に送信する。この仕組みにより送信先の存在を確認する必要がないため、通信効率を向上化させることができる。特に相手先がいない場合の通信タイムアウトは数秒から数十秒かかるため、保管すべきデータが一時的に大量に発生した場合でも輻輳が発生しにくくなる特徴を持ち、更に、輻輳のためのトラフィック制御自体も不要となる。
クライアント3は、DRTアプリケーションの起動時にデータ分散保管装置1Aと通信を行い、保管すべきデータDがあるか否かを確認する。その後も一定期間ごとにクライアント3はデータ分散保管装置1Aに保管すべきデータDがあるか否かを確認する。このとき、DRTアプリケーションはクライアント3内で動作しているCPUの負荷を監視し、CPUの使用率が規定の閾値を超えた場合は確認を行わない仕組みを持たせてもよい。
ここで、各分散用データDには、各データピースPの演算値OPjが付されている。一方、各クライアント3は識別子IDを有している。サーバ分散用データ送受信部17は、分散用データD〜Dを、分散用データD〜Dに付されているデータピースP〜Pの演算値OP1〜OPNに適合する識別子を有するクライアントのうちの任意のクライアント3に対して送信する。
このとき、クライアント3は分散用データ取得手順S301及び分散用データ格納手順S302を実行する。分散用データ取得手順S301では、分散用データ取得部31が、分散用データDを受信する。分散用データ格納手順S302では、分散用データ格納部32が、分散用データDを格納する。これにより、分散用データD〜Dがクライアント3〜3に分散して保管される。
メタデータ格納手順S105の後、データ分散保管装置1BがメタデータMを取得する。例えば、メタデータ送信手順S108及びメタデータ取得手順S201を実行する。メタデータ取得手順S201では、メタデータ取得部21が、メタデータ格納部14にアクセスして、メタデータ格納手順S105において格納したメタデータMを取得する。このとき、データ分散保管装置1Aがメタデータ送信手順S108を実行して、メタデータMをデータ分散保管装置1Bに送信する。
分散用データ回収手順S202では、分散用データ回収部22が、クライアント3〜3から分散用データD〜Dを回収する。例えば、分散用データ回収部22は、メタデータMに含まれるデータピースP〜Pの演算値OP1〜OPNに適合するクライアントに対して、メタデータMに含まれる入力データI固有の演算値Oが付されている分散用データの回収指示を送信する。例えば、図5及び図6に示すように、入力データIの復元を行う場合、演算値OPj「6612」に適合する識別子「6612」を有するクライアント3に対して、演算値O「12345」が付されている分散用データの送信を指示する。
そして、分散用データ回収部22は、メタデータMに含まれるデータピースP〜Pの演算値OP1〜OPNに適合する各クライアント3〜3から、メタデータMに含まれる入力データI固有の演算値Oが付されている分散用データD〜Dを回収する。このとき、クライアント3がクライアント分散用データ送信手順S303を実行する。
ここで、演算値OP1〜OPNに一致する場合だけでなく、演算値OP1〜OPN付近に位置する演算値に一致するクライアント3〜3からも分散用データD〜Dを回収する。これにより、分散用データ回収部22のアクセス範囲が自動的に広がるため、同一の分散用データを保管するクライアントが少なく、分散用データの回収に時間を要する場合であっても、分散用データを速やかに回収することができる。管理テーブルではなく演算値で管理することによって分散データの回収遅延を防ぐため、不特定多数のクライアントが参加する場合であっても、管理テーブルのライフサイクル管理が非常に重くなる事態を避けることができる。
クライアント分散用データ送信手順S303では、クライアント分散用データ送受信部33が、分散用データ格納部32に、メタデータMに含まれる入力データI固有の演算値Oが付されている分散用データDが格納されているか否かを確認する。そして、メタデータMに含まれる入力データI固有の演算値Oが付されている分散用データDが格納されている場合には、クライアント分散用データ送受信部33が、その分散用データDを送信する。
クライアントから分散用データD〜Dの有無を確認された際に分散用データD〜Dがあれば送信するように指示を行う型の構成であることが好ましい。この時、クライアント3〜3は指示されたデータがあれば送信を行う。この仕組みによりデータ分散保管装置1Bは分散用データD〜Dをどのクライアント3〜3に保管したかを管理する必要がなくなり、従来の方式と比べ、管理に要する負荷を大きく軽減できる。このように、クライアント3〜3を直接的に管理する必要がない。また、データ分散保管装置1Bの処理負荷を軽くできるだけでなく、クライアント3〜3の増減(システムのスケーラビリティ)に対して、柔軟に対応できる特徴となる。
データ結合手順S203では、データ結合部23が、メタデータMに含まれるデータピースP〜Pの演算値OP1〜OPNに従って、分散用データ回収手順S202で回収した分散用データD〜Dを配列し、データピースP〜Pを結合する。例えば、メタデータMの演算値OP1〜OPNがデータ分割部12で分割したデータの順に配列されている場合、データ結合部23は、分散用データD〜Dの演算値OP1〜OPNを読み出し、メタデータMから演算値OP1〜OPNの順に分散用データD〜Dを並べ、並べた順に分散用データD〜Dに含まれるデータピースP〜Pを結合する。そして、データ結合部23は、結合データBをデータ復元部24に出力する。
データ復元手順S204では、データ復元部24が、メタデータMに含まれる変更履歴に基づいて、結合データBを入力データIに復元する。例えば、データ変更部11が入力データの一体化を行う場合、データ復元部24は、メタデータMからデータ変更部11の一体化関数を読み出し、読み出した一体化関数を用いて結合データBの逆一体化処理を行う。これにより、データ復元部24は、入力データIを復元することができる。
なお、データ分散保管装置1Aは、さらにデータ分散保管装置1Bの機能を備えていてもよい。例えば、データ分散保管装置1Aが、さらにメタデータ取得部21と、分散用データ回収部22と、データ結合部23と、データ復元部24と、を備えていてもよい。同様に、データ分散保管装置1Bも、さらにデータ分散保管装置1Aの機能を備えていてもよい。
本実施形態に係るデータ分散保管システム及びデータ分散保管方法は、クライアント3〜3に固定アドレスを付与することなく、分散用データD〜Dの保管及び回収をすることができる。これにより、分散用データD〜Dの保管と回収に係る通信を著しく効率化することができる。また、どのクライアント3〜3にどの分散用データD〜Dが保管されているかを管理する必要がなくなるため、クライアント3〜3の状態を管理するための通信や記憶容量がデータ分散保管装置1A及び1Bに不要となり、不特定多数が参加するシステムの構築を容易にできる。また、システムにクライアントを増減させる場合、Consistent Hashingの手法を応用し、新たな装置が徐々にシステムに参加し、滞り無く装置を除外できる仕組みにより、システムのスケーラビリティを確保し、運用を容易にできる。
さらに、本実施形態に係るデータ分散保管システム及びデータ分散保管方法は、クライアント3〜3を起点とするアクセス方法(プル型通信)の手法の採用が可能になっている。これにより、分散用データD〜D回収時の遅延時間を最短化することができる。
入力データIの演算値を指定することで、1台のクライアント3が複数の分散用データを保管している場合であっても、1度の回収指示ですべての分散用データを回収することができる。
(実施形態2)
図7に、本実施形態に係るデータ分散保管システムのフロチャートを示す。本実施形態に係るデータ分散保管システムでは、実施形態1で説明した図2に示す分散用データ取得手順S301において、図1に示すクライアント3は、DRTアプリケーションの起動時(S412)にデータ分散保管装置1Aと通信を行い(S413)、保管すべきデータDがあるか否かを確認する(S414)。このとき、クライアント3は、データ分散保管装置1Aからの分散用データの回収指示があるか否かも確認する(S415)。そして、分散用データの回収指示がある場合は、回収を優先してステップS416を実行する。
ステップS416では、クライアント3は、データ分散保管装置1Aへの確認でデータ分散保管装置1Aから回収すべき分散用データDの情報をうけとった場合には、ローカルに保管している分散用データDのうち該当するデータをデータ分散保管装置1Aに送信する。保管すべきデータがある場合には(S417)、分散用データがある場合は受信して、保管する(S418)。
本実施形態では、クライアント3〜3からのアクセスを起点とするため、配信先管理によって生じる回収効率の差が生じない。これにより、システムの簡略化が可能になる。更に配信先を、例えば、ハッシュで規定することにより、回収指示が膨大になることを回避する仕組みを有する。
また、本実施形態に係るデータ分散保管システムでは、実施形態1で説明したデータ分散保管装置1Aは、さらにデータ分散保管装置1Bの機能を備え、以下の動作を行うことが好ましい。
ステップS411では、クライアント3が起動処理を行う。このとき、クライアント3は、予め登録されたアクセス先やPCの固有情報を取得する。ステップS411は、クライアント3起動後に自動的に実行してもよいし、クライアント3起動中に常に実行するようにしてもよいし、別のトリガで任意のタイミングに任意の期間実行してもよい。また、ステップS411において、起動のためのパスワード入力を要求してもよい。ステップS412では、ステップS411で取得する各種情報や認証結果に基づきDRTアプリケーションを起動する。
ステップS413では、クライアント3が、予め登録されたアクセス先であるデータ分散保管装置1AとIP通信可能であるか否かを確認する。この確認は、例えば、httpやhttpsといった汎用のウエブブラウザ用のプロトコルを用いてもよいし、他の方法でもよい。確認の際に、クライアント3が正しく対象としている装置かどうかを、データ分散保管装置1Aが確認してもよい。この場合、データ分散保管装置1Aは、自己認証局として、データ分散保管装置1Aが予め発行した証明書とクライアント3の送信する証明書とを照合する手順をとってもよい。この手順は、ベリサインなどに代表される公的な認証サービスを使っても良い。
ステップS414では、クライアント3が、保管すべき分散用データの有無を確認する。例えば、クライアント3は、分散用データの有無を確認するためのデータ確認パケットをデータ分散保管装置1Aに送出し、その応答である応答パケットを待つ。データ確認パケット及び応答パケットは多くのネットワーク環境で単一パケットとなるよう情報量を制限して効率的な送信ができるように配慮することが望ましい。このような情報量の最大値をpathMTU(Maximum Transmission Unit)と言い、一般的には1400〜1500程度の数値が採用される。
ステップS415では、クライアント3が、応答パケットの内容を確認し、分散用データの回収を指示する回収指示があるかどうかを判断する。回収指示があった場合は、ステップS416で該当する全ての分散用データを、データ分散保管装置1Aへ送信する。ステップS415において回収指示がない場合は、ステップS417に移行する。
ステップS417では、クライアント3が、受け取るべき保管データがあるかどうかを確認し、ある場合にはステップS418に移行し、ない場合にはステップS419に移行する。ステップS418では、クライアント3が、分散用データを受信して格納する。このとき、パケット内通信の効率化のため、クライアント3の受け取るべき分散用データは応答パケット内に含まれていることが好ましい。また受け取るべきデータは分割されているが、pathMTUを勘案し1パケット内に収まるサイズとする。更に受け取るべき分散用データが複数ある場合、受信するパケットも複数となるが、この際パケット内には受信すべき残りパケット数が埋め込まれているため、クライアント3はこのパケット数を参照し、0になるまで受信を繰り返す。ステップS419では、ステップS418で前述の残りパケット数が0になると受信を完了し、待機状態に移行する。所定の時間待機後、ステップS413へ戻る。
ステップS421では、データ分散保管装置1Aが起動処理を行う。ステップS421はデータ分散保管装置1Aの内部の動作であり、本実施形態ではデータ分散保管装置1Aの起動後すぐに実行する。ステップS421は、データ分散保管装置1Aの起動以外のトリガで、任意のタイミングに実行してもよい。
ステップS421の後、ステップS422、ステップS428及びステップS431を実行する。ステップS422、ステップS428及びステップS431は、データ分散保管装置1Aの内部で分化して並列動作するソフトウェアプロセスが担当する。本実施形態では並列動作としたが、演算性能が比較的低い機器においては、ステップS422、ステップS428及びステップS431を順次処理してもよい。
ステップS422では、データ分散保管装置1Aが、保管すべき入力データを監視している。保管すべき入力データがない場合は規定時間待機し、定期的に監視を継続する。保管すべき入力データを検出した場合はステップS423に移る。
ステップS423では、データ分散保管装置1Aが、保管すべき入力データを一体化し、送信パケット単位で分割処理を行い、分散用データを一時的にデータ分散保管装置1A内へ保管する。本実施形態では一時的な分散用データをデータベースに登録しているが、ファイルとして一時保管しても良い。処理後はステップS422に戻り、入力データの監視を継続する。
ステップS431では、データ分散保管装置1Aが、入力データを復元するための分散用データの回収依頼を待つ。回収依頼は、例えば、入力データの保管を依頼したユーザが、webアプリケーションを用いて復元動作を指示することによって発生する。回収依頼のトリガは主にユーザ操作であるが、入力データの損失を検出した場合など自動的に依頼が発生しても良い。回収依頼がない場合は、定期的に回収依頼を監視し、回収依頼を検出した場合はステップS432に移る。
ステップS432では、データ分散保管装置1Aが、内部のキャッシュに分散用データが存在していないかどうか確認を行う。クライアント3へ分散用データの回収指示を送信する前に、分散用データの確認を行うことで、分散用データを効率的に回収することができる。
ステップS433では、データ分散保管装置1Aが、自己のキャッシュ内に復元可能な分散用データが揃っているか否かを判定し、キャッシュ内に復元可能な全ての分散用データが揃っていない場合はステップS434へ移行し、キャッシュ内に復元可能なデータが全て揃っている場合はステップS436へ移行する。
ステップS434では、データ分散保管装置1Aが、各クライアント3から分散用データを回収する。このとき、データ分散保管装置1Aは、クライアント3のステップS414で送出されるパケットへの応答の際に回収指示を送信する。また、キャッシュ内になかった分散用データを選択的に回収してもよい。
ステップS435では、データ分散保管装置1Aが、回収すべき分散用データの回収が完了したか否かを判定し、復元可能な分散用データが揃うまで受信待機する。回収が完了するまで分散用データを回収し続け、回収が完了した時点でステップS436へ移行する。
ステップS436では、データ分散保管装置1Aが、回収した分散用データを用いて入力データを復元する。例えば、回収された分散用データを合成して逆一体化を行う。
ステップS437では、データ分散保管装置1Aが、復元した入力データをユーザに送信する。例えば、予め定められたデータの格納場所又はユーザ指定の格納場所に復元した入力データを送信する。
ステップS428では、データ分散保管装置1Aが、保管すべき分散用データがあるか否かを確認する旨の保管確認をクライアント3から受信し、分散用データを保管可能なクライアント3を確認する。ステップS428は、ステップS423で生成された分散用データ群をクライアント3群へ送信するためのソフトウェアプロセスが担当する。但しこれはデータ分散保管装置1Aが主体となって、アクセス可能なクライアント3へ分散用データを配布し回収するためのステップであり、実施形態1と複合し、プッシュ形態とプルの形態を共存させて動作する場合のステップである。ステップS428は、ステップS423の処理が完了すると実行するが、定期的に実行してもよい。
ステップ424では、ステップS435で回収が完了していない分散用データがあるか否かを判定し、ある場合にはステップS425に移行し、ない場合にはステップS426に移行する。ステップS425では、クライアント3へ分散用データの回収指示を送信して分散用データを回収する。本実施形態では、ここで回収したデータの復元も別のソフトウェアプロセスであるステップS435、ステップS436に処理を委ねている。これは実施形態1でのプッシュ型アクセスが可能なクライアントと、実施形態2のプル型のみ可能なクライアントが混在した場合の手順の複雑さを回避している。
ステップS426では、クライアント3へ配信すべき分散用データがあるか否かを判定し、あればステップS427に移行し、なければステップS428へ移行する。ステップS427では、分散用データをクライアント3へ送信する。
(実施形態3)
本実施形態に係るデータ分散保管システムは、データピースP〜Pを複製することで冗長保管を行う。従来システムでは、例えば、複製数として30(30冗長)などの例でシステム構成を行うことが考えられる。これはクライアントが常時通電し、通信可能な状態が保障されない装置を前提としているためであり、データ分散保管装置など可用性が高いクライアントを想定する場合は、過剰な冗長設計となる場合がある。例えば、2冗長の場合が、最低の冗長保管数となるが、その場合でも実保管容量は物理的保管容量の半分となる。このように、信頼性と可用性が高いクライアントを想定する場合、効率を考慮した冗長保管の仕組みが必要である。
図8に、本実施形態に係るデータ分散保管システムの一例を示す。本実施形態に係るデータ分散保管システムでは、実施形態1のデータ分散保管装置1Aがパリティ演算部18をさらに備える。そして、図2に示すデータ分割手順S103においてデータピースP〜Pのパリティデータを生成することを特徴とする。
図9に、本実施形態において扱うデータの一例を示す。ステップS221,S222,S223,S224,S225はデータをクライアント3〜3へ保管する処理を示し、ステップS225,S226,S227,S228,S229は保管したデータを回収する処理を模式化したものである。簡単のため、図8に示すNが6であり、Mが3であり、Kが3である場合について示した。以下、本実施形態の特徴について説明する。
図2に示すデータ分割手順S103において、さらに、パリティ演算部18が、2個のデータピースP及びPを用いて、1個のパリティデータPpを生成する。パリティ演算部18は、データピースP〜Pのうちの2つを用いてもよいし、3つ以上を用いてもよい。パリティデータPp〜Ppの生成方法は、可逆演算であればよく、例えば、加算又は減算又はこれらの組み合わせを用いて行うことができる。これにより、ステップS223に示すデータピースP〜P及びパリティデータPp〜Ppが分散用データ構成部15に入力される。
ここで、パリティ演算部18の用いるデータピースP〜Pの数は、可変であることが好ましい。例えば、通信や回線の状態、回収の時間、通信の精度、クライアント3〜3からの応答時間又はクライアント3〜3のアクセス頻度によって、パリティ演算部18の用いるデータピースP〜Pの数を変化させる。
演算値算出手順S104において、演算値算出部13が、演算アルゴリズムを用いて、パリティデータPp〜Ppの演算値OpP1〜OpP3をさらに算出する。そして、分散用データ格納手順S106において、分散用データ構成部15が、入力データI固有の演算値O及びパリティデータPp〜Ppの演算値OpP1〜OpP3をパリティデータPp〜Ppに付して分散用データDp〜Dpをさらに構成する。そして、分散用データ格納部16が、分散用データDp〜Dpをさらに格納する。
サーバ分散用データ送信手順S107において、サーバ分散用データ送受信部17が、分散用データDp〜Dpを、パリティデータPp〜Ppの演算値OpP1〜OpP3に適合する識別子ID〜IDを有するクライアント3〜3にさらに送信する。これにより、パリティデータPp〜Ppの含まれた分散用データDp〜Dpがクライアント3〜3に保管される。
分散用データ回収手順S202では、分散用データ回収部22が、さらに、クライアント3〜3から分散用データDp〜Dpも回収する。そして、分散用データD〜Dのなかで回収できないデータがあるときは、分散用データDp〜Dpを用いて分散用データD〜Dを算出する。このとき、演算値算出部13の用いている演算アルゴリズムが必要になるため、メタデータ格納手順S105において、メタデータ収集部19は演算値算出部13の用いている演算アルゴリズムも収集する。そして、メタデータ格納14は、演算値算出部13の用いている演算アルゴリズムもメタデータMに格納する。これにより、分散用データ回収部22は、分散用データD〜Dのすべてが収集できない場合であっても、分散用データDp〜Dpを用いて分散用データD〜Dのすべてを回収することができる。
さらに本実施形態のデータ分散保管方法の具体例を説明する。クライアント3〜3のうちの十分に信頼性が高いものを想定する場合、分割の際にパリティ処理を加えることで冗長度を最適化し、蓄積コストを低減させることができる。またこの時回収のための通信を最適化し、回収時間を最短化した上でパリティ分の通信量増加を避けることができる。
例えば、図9に示すステップS224及びステップS225において、クライアント3〜3のうちのいくつかのデータを束ね、そのうち、1つをパリティデータの保管として利用する方法をとることができる。例えば、3つのクライアント3〜3がある場合、うち、2つのクライアント3及びクライアント3に二種類のデータピースP及びPを保管し、残りの1つのクライアント3には、この二種類のデータのパリティデータPpを保管することも、可能である。上記の場合、クライアント3〜3の有効容量は2/3となるため約67%となる。クライアントを5つとした場合は4/5となり、80%まで改善できる。
しかしながらこの方式では、システムを運用している中で束ねるクライアントの数を変更する場合に煩雑な処理となる。そこで、本実施形態では、ステップS222の一体化処理の段階で上記の処理を行うこととし、配信及び回収の仕組みを、極力、単純化できる構成により、実現する。
例えば、図9に示すステップS223からS225における保管の際は、データ分割部12が分割する際にパリティデータPp〜Ppを付加している。例えばデータ2つに対して1つのパリティを付加しており、6つに分割されたデータピースP〜Pが2つづつ3つのブロックを構成し、それぞれにパリティデータPp〜Ppが付与される。
図9に示すステップS227における回収の際、パリティデータPp〜PpとデータピースP〜Pは区別なく回収され、復元が行われる。ステップS227では最初のブロックで2番目のデータを破線で示しているが、これはデータピースPが失われて回収できなかったことを示している。同様に2つめのブロックは全てのデータピースP〜Pが回収され、3つめのブロックではパリティデータPpが回収できない例を示している。
最初のブロックでは失われた2つめのデータピースPを1つめのデータピースP、及びパリティデータPpから復元する。2つめ及び3つめのブロックでは、データが回収できているのでパリティデータPp及びPpは破棄される。この後有効なデータピースP〜Pが揃ったので、図9に示すステップS228における逆一体化処理を行い、入力データIの復元が行われる。
分散用データD〜Dの回収をデータ分散保管装置1B主体(プッシュ型)で行う場合、データ回収時に、データピースP〜Pが一切損失していない場合に通信量が保管総量と同じく1.5倍となる。しかし、分散用データD〜Dが回収できない場合のみに、パリティデータPp〜Ppを回収する仕組みと変更してこの方法を行えば、この通信量が1.5倍になるというデメリットは回避できる。
一方、クライアント主体(プル型)で回収を行う場合は、1つのブロックを構成する3つのデータのうち2つが揃った時点で回収は完了するので、分散用データ回収部22はこの時点で回収依頼を打ち切ることも可能である。その際には通信量が前記のように1.5倍になることはない特徴が発揮できる。
(実施形態4)
分割して配信されたデータを改竄して意図したデータを入力データIとして復元させることは原理上不可能である。しかし、悪意ある参加があった場合には、保管した分散用データDを変更し、回収指示に対して誤ったデータを分散用データDとして返送したり、回収指示に対して全く異なるデータを返送して、入力データIの復元を妨害することは原理上可能である。
分散用データDに付与されている管理情報を用いれば、単純な改竄はデータ分散保管装置1B側で排除可能である。しかしながら、管理情報の照合は、通信エラー等を想定したものであり、演算値O又は演算値OPjの改竄まで行う、悪意的な行為を含めた対策を、対象としたものではない。演算値O又は演算値OPjの改竄までを行った場合、データ分散保管装置1Bの復元した復元データRが入力データIと異なるデータとなってしまう。
そこで、本実施形態に係るデータ分散保管システムは、クライント3〜3のなかに悪意ある参加を試みるクライアントがあった場合に、これを排除することを特徴とする。
図10に、本実施形態に係るデータ分散保管システムの一例を示す。本実施形態に係るデータ分散保管システムは、データ分散保管装置1Aにおける演算値算出部13が異なり、データ分散保管装置1Bがさらに演算値照合部25を備える。
図11は、本実施形態に係るデータ分散保管方法の一例を示すシーケンス図である。本実施形態に係るデータ分散保管方法は、図2に示すデータ復元手順S204の後に、演算値照合手順S205と、不正データ排除手順S206と、をさらに有する。
図2に示す演算値算出手順S104において、演算値算出部13が、予め定められた演算アルゴリズムを用いて、入力データI自体の演算値Oをさらに算出する。そして、メタデータ格納手順S105において、メタデータ格納部14は、演算値算出手順S104で算出した入力データI自体の演算値Oをさらに含むメタデータMを格納する。
サーバ分散用データ送信手順S107では、サーバ分散用データ送受信部17が、分散用データD〜Dをクライアント3〜3に冗長分散させる。例えば、図6に示すように、クライアント3i+1の識別子「6614」がハッシュ空間においてデータピースPの演算値OPj「6612」付近に位置する演算値「6614」に一致する場合、サーバ分散用データ送受信部17が、分散用データDを2台以上のクライアント3及び3i+1に送信する。
図12は、分散用データDを回収する際のデータ分散保管システムの動作の一例を示すフロチャートである。
ステップS311では、分散用データ回収部22が、分散用データの回収指示を取得したか否かを判定する。分散用データ回収部22が分散用データの回収指示を取得すると、ステップS312に移行する。
ステップS312では、分散用データ回収部22が図11に示す分散用データ回収手順S202を実行する。ステップS312では、ステップS319〜ステップS323を実行する。ステップS319では、分散用データ回収部22がクライアント3〜3からアクセスがあったか否かを判定する。アクセスがあった場合、ステップS320へ移行する。ステップS320では、回収した分散用データDに含まれるデータピースPの演算値OPj例えばハッシュ値を算出する。ステップS321では、算出した演算値OPjがメタデータMに含まれる演算値OPjに適合するか否かを判定し、適合しなければその分散用データDを廃棄し(ステップS323)、適合すればステップS322へ移行する。ステップS322では、全ての分散用データD〜Dが予め定められた個数そろっているか否かを判定する。全ての分散用データD〜Dが予め定められた個数そろっていなければ、ステップS319へ移行し、全ての分散用データD〜Dが予め定められた個数揃うまでステップS319〜ステップS322を繰り返す。ステップS322において全ての分散用データD〜Dが予め定められた個数そろっていれば、ステップS312を終了する。
ステップS313では、データ結合部23がデータ結合手順S203を実行するとともに、データ復元部24が図11に示すデータ復元手順204を実行する。データ復元手順S204では、データ復元部24が、結合データBを入力データIに復元した復元データRを出力する。
ステップS314では、演算値照合部25が、図11に示す演算値照合手順S205を実行する。演算値照合手順S205では、演算値照合部25は、入力データI自体の演算値Oを算出した演算アルゴリズムを用いて復元データR自体の演算値Oを算出する。そして、演算値照合部25は、復元データR自体の演算値Oを、メタデータ取得手順S201で取得したメタデータMに含まれる入力データI自体の演算値Oと照合する。演算値Oと演算値Oとが一致すれば、演算値照合部25は、復元データRを入力データIとして出力し、分散用データD〜Dの回収を終了する。
ステップS314において、演算値Oと演算値Oとが一致しない場合、データ分散保管装置1Bは、図11に示す不正データ排除手順S206を実行する。不正データ排除手順S206では、データ分散保管装置1Bは、改めて分散用データD〜Dの回収を行うが、通常とは異なる動作でデータ回収を行う。以下に、この方法をdoubtモードと記述する。
doubtモードでは、データ回収依頼は通常と同一であるが、アクセスしてきたクライアント3が当該分散用データDを持ち、これを回収できたとしても、通常とは異なり、ひとつのデータピースPにつき、冗長保管されている2つの分散用データDの回収が完了するまで各クライアント3〜3への回収依頼を停止しない。
実際には、データが完成し、演算値Oと演算値Oとが一致すること(入力データIが確実に復元できたこと)を確認するまで回収依頼は停止していない方法を実現することが想定される。この方法はdoubtモードでの回収効率を改善するために有益であり、トラフィック量に余裕がある場合は回収レーテンシの短縮が実現できる。
具体的には、doubtモードの不正データ排除手順S206では、図12に示すステップS315、ステップS316、ステップS317及びステップS318を実行する。ステップS315では、演算値照合部25は、分散用データ回収部22に、分散用データDを回収させる。分散用データ回収部22は、図11に示す分散用データ回収手順S202と同様に、分散用データD〜Dを回収する。このとき、分散用データD〜Dを揃える予め定められた個数は、2以上の数であり、奇数であることが好ましい。
ステップS316では、分散用データ回収部22は、データピースPを回収するために2つの分散用データDを回収した後、2つの分散用データDのデータピースPを比較し、同一であれば一方の分散用データDをデータ結合部23へ出力する。2つの分散用データDが同一でない場合は更に3つめの回収を行い、多数決ロジックにより復元に使用する分散用データDを特定してデータ結合部23へ出力する。これを各分散用データD〜Dについて行う。
ステップS317では、データ結合部23が、分散用データ回収部22の出力する分散用データD〜Dを用いてデータピースP〜Pを結合する。そして、データ復元部24がデータ結合部23からの結合データBを復元する。そして、演算値照合部25が、データ復元部24からの復元データRの演算値Oと入力データI自体の演算値Oを照合する。そして、演算値Oと演算値Oとが一致すれば、演算値照合部25は、復元データRを入力データIとして出力し、分散用データD〜Dの回収を終了する。
上記の方法を用いた場合でも、復元ができない時には、分散用データ回収部22の回収する分散用データDの数を2つ単位で増やし、例えば、5個回収したり、7個回収したり等の、回収数を増やす動作を実施し、多数決ロジックで正しいデータの特定を試みる方法を用いることが好ましい。
なお、演算値Oと演算値Oとが一致し、入力データIが復元できた場合は、誤ったデータを回収したクライアント3が特定できるため、このクライアント3は以後は、システムから除外し、当該クライアント3が担当していた分散用データは、改めて他の冗長保管先から複製を行う。この際は、2以上の保管先から同一データを回収し比較を行うことにより、悪意ある異常データがシステム内に固定されることを防ぐことが可能である。
システムに悪意あるアクセスを行うクライアントがあった場合、冗長保管された分散用データDを利用し、これを効率的に排除することができる。
(実施形態5)
本実施形態に係るデータ分散保管システムは、実施形態1で説明したサーバ分散用データ送受信部17がデータを配信するにあたり、配信先をランダムに決定するか、又は生成順に配布する最もシンプルな方法などの動作を実施するために、二種類以上の配信先決定ロジックを有する。
配信先をランダムに決定する場合、例えば、データピースP〜Pから演算される演算値OP1〜OPNを基準として送信先のクライアント3〜3を決定する方法である。送信先の決定方法には各種の演算が実施可能であるが、入力データIの偏りに影響されないハッシュ値のようなダイジェスト値を用いる方法は、本方式に適用可能な演算方法の一例である。この場合には、分割されたデータピースP〜Pの一部もしくは全体から演算値を算出し、同様にアクセスしてくるクライアント3〜3の識別子ID〜IDの演算値と比較して、この演算値が一致した場合、もしくは一定範囲で合致するに送信対象とすることができる。この仕組みにより、回収する分散用データD〜Dが一時的に大量に発生した場合、クライアント3への回収指示コマンド内の回収データリストが膨大になることを避ける事ができる。
なおクライアント3がある程度大量に存在しないと送信効率が低下する場合があるため、小規模なシステムでは演算値の範囲を拡大したり縮小することも可能である。
生成順に配布する最もシンプルな方法などの動作を実施する場合、例えば、サーバ分散用データ送受信部17は、クライアント3のアクセス頻度(平均インターバル)と提供するデータ容量、平均通信速度、および過去の回収確率から決定される信頼性パラメータで端末群をグループ分けし、保管すべきデータピースP〜Pの種類や信頼性に応じてグループを決定する方法が挙げられる。
パラメータに多少の差異があるほか、信頼性パラメータには時系列の履歴情報が必要となるが、本方式においては、データ分散保管装置1Aの処理を軽くするため、計算は、主として、クライアント3側で行う点が、大きく異なる特徴である。具体的にはDRTアプリケーションが過去14日間のアクセスインターバル、(アクセス回数÷14日で計算されるものではなく、処理完了から次のアクセス開始までの時間の平均)、提供データ量(許容する最大データ量ではなく実際に保管しているデータ量)、保管する際の通信ビットレートの平均、データ回収の際の通信ビットレートの平均を記録し、データ分散保管装置1Aのアクセスの際にこれらのパラメータを同時に送信する方法が可能である。また分散用データDの回収確率については、データ分散保管装置1A側でなければ算出することができないため、この値のみ、サーバ分散用データ送受信部17が算出する方法が好ましい。
ここで提供データ量については、許容する最大データ量ではなく、実際に保管しているデータ量とすることは、新しくシステムに参加したクライアントを“徐々に信頼する”仕組みとして有効である。この理由は、システムに参加した当初は保管している分散用データがないため、アクセス頻度が高く、通信レートが高くとも信頼性パラメータは低く、信頼性が保管端末の属性だけで決定されず、実績を反映することになるためである。
サーバ分散用データ送受信部17はこれらのデータを受取り、データ分散保管装置1A側で記録しているデータ回収確率と併せて保管し、次の送信の決定要素として使用することができる。
サーバ分散用データ送受信部17は平均アクセスインターバルおよび通信ビットレートの情報からクライアント毎のデータ回収のための平均所要時間が計算できるため、不確定になりがちな回収のための所要時間を、ある程度の範囲に縮減する事ができるようになる。また逆に、ある程度不確定で良いデータについては、所要時間が大きくなるクライアントへ送信し、システムとしてデータ種類や、サービス品質に応じた調整が可能となる。
これらの2つは組み合わせて、もしくはどちらかのみでの運用も可能で、比較的小規模なシステムでは後者のグルーピングのみを採用したり、クライアントの稼働がある程度保障されている社内のイントラネット環境などでは前者の演算値ベースの送信のみを採用したりすることができる。更に、データピースの演算値で配信先をグループ化することで、後のデータ回収時の通信効率を改善できる。
(実施形態6)
本実施形態に係るデータ分散保管システムは、実施形態1で説明したサーバ分散用データ送受信部17が、各クライアント3〜3の各種情報を用いて保管の冗長度を決定するためにも用いる。
ほぼ同様なパラメータを持つクライアントのグループで、例えば4冗長(同一のデータを4カ所に保管する)の場合、各クライアントのアクセス間隔(アクセスインターバル)Tiが同一であり、4つのクライアントが非同期に動作している場合、回収するデータの通信時間を簡単のため0とすれば、期待される平均回収時間はインターバルの半分を更に台数で割った値、すなわちTi/8となる。これを基準とし、平均回収時間がある閾値を超えた場合、有効な冗長分散がなされていないと判断し、冗長度を上げる必要があると判断する。本システムでは、例えば閾値として、1.8倍を採用することが考えられる。これは実動作において冗長度が低い場合に平均回収時間がインターバル時間に相当する程度(二倍弱)となる場合があるためで、この日常的に起こりうる最悪値の近傍を閾値とする方法が望ましい。
また十分な実保管容量が確保できる場合は上限と下限を設定した上で冗長度の自動的な増減を行う方法が好ましい。
なおクライアント側では、前記の期待しない同期動作を避けるため、起動後、最初の待ち時間は、設定された待ち時間を最大とするランダムな待ち時間とする方法をとることができる。これにより同一の分散用データを保管する複数のクライアントが、最短時間でデータ分散保管装置の回収指示に対応できるようになる。この理由は、複数のクライアントが同期して動作する場合、平均回収時間はインターバルの半分となってしまうためであり、各クライアントはランダムにアクセスを行うことが、データ分散保管装置1Bが回収すべきデータの発生後、最も短い時間でアクセスを受けることになるからである。
なお、不特定多数のクライアントが参加するシステムにおいては、ある程度容量属性を抽象化する必要があるが、これは実施形態5で説明したグループ化の際に属性として付与することができる。
(実施形態7)
実施形態1で説明したデータ分散保管システムにおいて分散用データD〜Dを分散して保管するにあたり、その処理の時系列の情報(メタデータM)はブロック暗号化のパスワードに相当する重要なデータである。一体化処理と分割の前後でブロック暗号化を行うことも可能であり、その場合もメタデータにパスワードが含まれることが想定される。
従来の方式では、このメタデータは他の専用の管理装置に保管され運用される。この際、メタデータの損失に備え分散して保管する方法もあり、またメタデータ自体を冗長保管するような運用も考えられる。
メタデータをデータ分散保管装置1A内で保持する方法も想定できるが、この場合、メタデータを通信しないため、セキュリティ上は望ましい形となる。しかしながら、データ分散保管装置1Aの故障時にはメタデータMが失われる可能性があり、この場合、分散して保管した分散用データD〜Dが復元できなくなる可能性を回避する仕組みが必要である。
また異なったデータ分散保管装置1Bがクライアント3〜3からデータを回収する場合、このメタデータMを共有する必要がある。もしデータ分散保管装置1Bが外部ネットワークに存在した場合は、このメタデータMがインターネット等のネットワーク上で通信されることになり、セキュリティ上は、推奨できない運用法となる可能性がある。
まずデータ分散保管装置1AのメタデータMを保管する場合、データ分散保管装置1Aのハードウェア故障を想定し、必ず物理的に他のハードウェアにメタデータMを保管する方法が好ましい。本方式では、二台以上のデータ分散保管装置1A,1Bを設置することにより、メタデータMの損失を回避する仕組みを用いる方法が好ましい。従来方式は、秘密分散方式などで管理装置を冗長化しているが、データ分散保管装置1A,1Bを複数設置することにより、メタデータMを相互に保持し冗長性を持たせ、また専用の管理装置を不要とすることで管理装置自体の冗長性を確保する必要性を、排除することが可能である。
具体的には、データ分散保管装置1Aとデータ分散保管装置1Bが近傍で動作している場合、データ分散保管装置1Aが処理したデータのメタデータMをデータ分散保管装置1Bにも保管する。例えば、メタデータをSQLのデータベースに登録し、他方のデータ分散保管装置へのメタデータ登録と自データ分散保管装置への登録を行ったのち、実ファイルを削除対象とする方法をとることが好ましい。
また大規模なシステムにおいて複数のデータ分散保管装置1A,1Bを設置する場合は、各データ分散保管装置1A,1Bを論理的にリング状に配置し、右回りで次のデータ分散保管装置1Bに自データ分散保管装置1Aのメタデータを登録する方法も可能である。これはhttp://www8.org/w8−papers/2a−webserver/caching/paper2.html に示されるように、Consistent Hashingと呼ばれる手法である。一般的にwebのキャッシュに使われている手法であるが、本方式ではこれを分散保管のために活用することが可能である。
スケーラビリティやダイナミックな構成変更を伴わないシステムであれば、こうした手法を用いない実装も可能である。以下にこの方式を採用した場合の新たな工夫と実現手段を述べる。具体的にはwebキャッシュの用途においては、キャッシュが追加された際のキャッシュアウトを回避するために用いられるが、保管の場合にはキャッシュとしての使用と異なり、ヒットしないことは許容されず、キャッシュアウトに相当するデータの損失は一時的なトラフィック増加にとどまらないことが大きな問題となる可能性がある。そのため、データ分散保管装置追加時ではなくデータ分散保管装置削除時の処理に新たな工夫が必要となる。また冗長保管を行う為の工夫も、新たな手段として追加する必要がある。
以下に具体的な実現例を述べる。
まず保管すべき入力データIは演算値Oとしてハッシュ値を計算され、ハッシュ値に応じたデータ分散保管装置1Bがこれを担当する。ハッシュ値は、例えば32ビット値で32ビットの数値空間に存在するそれぞれのデータ分散保管装置アドレスを256個づつ登録している場合を想定する。保管すべきデータから計算されたハッシュ値より小さいもっとも近傍なポイントに登録されているデータ分散保管装置1Bがこのデータの処理を担当する。このデータ分散保管装置1Bは保管データを処理した後、リング上の右隣へこのデータを冗長保管する。
システムにデータ分散保管装置を追加する場合は、32ビットの数値空間に同様に256のポイントを追加し、動作を開始する。この仕組みによりデータ分散保管装置の追加直後から全てのデータ分散保管装置へ均等に作業を分散させることが可能となる。
更に、システムからデータ分散保管装置を減らす場合は、当該データ分散保管装置のポイントを32ビットの数値空間上から削除し、新たなリングで計算した次のデータ分散保管装置の、また次のデータ分散保管装置に、所有しているメタデータのデータベースを移管する方法が好ましい。このとき、次のデータ分散保管装置は既に自分のDBのコピーを持っている。
この仕組みによりデータ分散保管装置削除後も他のデータ分散保管装置に再設定することなく、システムの運用が継続できる。
次に外部のデータ分散保管装置1Bがクライアント3のデータを取り出す場合の仕組みをのべる。外部ネットワークのデータ分散保管装置1Bは、通常は、上記の相互メタデータ順次冗長保管方式は使用できない場合が想定される。外部ネットワークではデータ分散保管装置間の通信を物理的に保護することが難しいためである。よって十分な暗号化を施して共有し、メタデータM自体はネットワーク上では、通信しない仕組みが好ましい。
メタデータMは、一種の共通鍵暗号化の共通キーに相当するため、これを交換、共有する仕組みとしては、CHAP、もしくはDH法による鍵交換手法(公開鍵暗号)などが、使用可能である。しかし、メタデータはファイルやフォルダなど暗号化単位毎に異なり、これを類推できないため、チャレンジ演算ができない(データ分散保管装置側へダイジェスト値を送る事ができない)ため、CHAPなどの手法は使用できない。またDH法では生成される共通キーはランダムであるためメタデータとはできない。そこで、DH法を利用して取得するファイル毎に共通キーを生成し、その共通キーで交換する情報を暗号化する方法などが好ましい。
データ分散保管装置1Aは対象ファイルのメタデータMを所有しており、データ分散保管装置1Bは所有していない。ここでデータ分散保管装置1Bは必要な入力データIの演算値Oからデータ分散保管装置1Aがこの入力データIのメタデータMを所有していることを知る。これは前記のConsistent Hashingの手法に該当する。
データ分散保管装置1Bは乱数を秘密キーとしてデータ分散保管装置1Aとの間に共通キーを生成する。これはDH法による共通キー生成の手法を応用したものである。データ分散保管装置1Bは共通キーで暗号化した取得ファイル情報をデータ分散保管装置1Aに送る。この際の暗号化は軽量である必要はないため、さまざまな選択肢がある。例えばファイル識別のための文字列に共通キーを用いたAES暗号化や、文字列に共通キーをXORした上で6回の一体化処理を行った上でAES暗号化を施す方法が考えられる。更にRADIUSなどのホスト認証の仕組みをこれに組み合わせることで、より、守秘性能が向上する。
データ分散保管装置1Aはデータ分散保管装置1Bが要求するファイルのメタデータMを同様な暗号化を施して送信する。データ分散保管装置1Bは取得したメタデータに従い、ネットワーク上に分散している分散用データD〜Dを回収する。
この方法はデータ分散保管装置1Bが能動的に配信を行う場合、すなわちデータ分散保管装置1Bがクライアント3〜3を特定して、アクセス可能な場合に実現可能な方法であり、クライアント3〜3を起点としたアクセスを前提とする場合には実現が困難であった。
以下に、クライアントを起点としたアクセスを行う場合の拡張方法を述べる。まずメタデータMを保管しないデータ分散保管装置1Bは、メタデータMを保管するデータ分散保管装置1Aに回収したいデータを申告する。メタデータMをデータ分散保管装置1Aから受け取るところまでは前述の手法と同じである。
このあとデータ分散保管装置1Aは申告されたデータを持つと思われるクライアント3〜3からのアクセスを受け付けた後、データ分散保管装置1Bへアクセスする旨の指示を行う。クライアント3〜3はデータ分散保管装置1Bにアクセスし、回収すべき分散用データD〜Dがあるかどうかを確認する。
データ分散保管装置1Bは回収データについて通常と同様の手順でクライアント3〜3と通信を行う。データ分散保管装置1Bはデータを回収後、データ分散保管装置1Aに回収完了を通知する。データ分散保管装置1Aはデータ分散保管装置1Bから回収完了が通知されるか、もしくは規定時間経過後にデータ分散保管装置1Bへの再アクセス指示をとりやめる。
この方法によりクライアント起点(プル型)の保管システムであっても異なったデータ分散保管装置がデータを回収することが可能となる。このように、複数のデータ分散保管装置が存在する場合、相互に管理情報を保管する仕組みにより専用の管理装置を不要とし、運用コスト、設備コストを低減することができる。また上記の相互保管方法に工夫を行ったことでスケーラビリティを確保し、規模の増減に容易に対応することができる。加えて遠隔地にある複数のデータ分散保管装置が分散された同一のデータを回収する仕組みをDH法を応用して実装し、これを安全に行うことを可能とした。
(実施形態8)
実施形態1から7に係るデータ分散保管システムは、通信ネットワーク上のデータ分散保管装置1A及び1Bを検索する検索サーバ(不図示)をさらに備えていてもよい。
検索サーバ(不図示)は、クライアント3から検索の依頼を受けると、登録されているデータ分散保管装置の中からランダムにひとつを選択し、これをクライアント3に通知する。通信すべきデータ分散保管装置を決定されたクライアント3の動作はデータ分散保管装置1Aを指定して保管する場合と同様である。
クライアント3が検索サーバ(不図示)にデータ分散保管装置1Aを指定した場合、クライアント3は、指定したデータ分散保管装置1Aの分散用データDを保管する。
クライアント3が検索サーバ(不図示)にデータ分散保管装置1Aを指定しない場合、クライアント3は、インターネット等の通信ネットワーク上の任意のデータ分散保管装置からの分散用データDを保管する。この場合は、通信ネットワーク上のデータ分散保管装置を検索する検索サーバ(不図示)へアクセスし、分散用データを有するデータ分散保管装置(不図示)を検索してアクセスすることになる。
本発明は、情報通信産業に適用することができる。
1A、1B:データ分散保管装置
、3、3、3、3i+1、3:クライアント
11:データ変更部
12:データ分割部
13:演算値算出部
14:メタデータ格納部
15:分散用データ構成部
16:分散用データ格納部
17:サーバ分散用データ送受信部
18:パリティ演算部
19:メタデータ収集部
21:メタデータ取得部
22:分散用データ回収部
23:データ結合部
24:データ復元部
25:演算値照合部
31:分散用データ取得部
32:分散用データ格納部
33:クライアント分散用データ送受信部

Claims (12)

  1. 予め定められた規則に基づいて入力データのデータ配列を変更するデータ変更部と、
    前記データ変更部からの変更データを複数のデータピースに分割するデータ分割部と、
    前記データ分割部からの任意の数のデータピースを用いて、前記データピースのパリティデータを生成するパリティ演算部と、
    予め定められた演算アルゴリズムを用いて、前記入力データ固有の演算値及び前記パリティデータの演算値を算出する演算値算出部と、
    前記演算値算出部の算出する前記入力データ固有の演算値及び前記パリティデータの演算値並びに前記データ変更部の変更履歴が関連付けられたメタデータを格納するメタデータ格納部と、
    前記演算値算出部の算出する前記入力データ固有の演算値及び前記パリティデータの演算値を、前記パリティ演算部の生成する前記パリティデータに付して分散用データを構成する分散用データ構成部と、
    前記分散用データ構成部の構成する前記分散用データを、前記パリティデータの演算値に適合する識別子を有するクライアントのうちの任意のクライアントに対して送信するサーバ分散用データ送受信部と、
    を備えるデータ分散保管装置。
  2. 前記データピースの演算値に適合する識別子を有するクライアントからは取得可能であるけれども前記データピースの演算値に適合しない識別子を有するクライアントからは取得不可能な状態で、前記分散用データ構成部の構成する前記分散用データを格納する分散用データ格納部を、
    さらに備えることを特徴とする請求項1に記載のデータ分散保管装置。
  3. 前記サーバ分散用データ送受信部は、前記分散用データ構成部の構成する前記分散用データを、前記データピースの演算値に一致する識別子を有するクライアント及び前記演算アルゴリズムを用いて導き出される数値空間において前記データピースの演算値付近に位置する演算値に対応する識別子を有するクライアントのうちの少なくともいずれかのクライアントに送信する
    ことを特徴とする請求項1又は2に記載のデータ分散保管装置。
  4. 前記メタデータ格納部の格納する前記メタデータを取得するメタデータ取得部と、
    前記メタデータ取得部の取得する前記メタデータに含まれる前記データピースの演算値に適合するクライアントから、前記メタデータに含まれる前記入力データ固有の演算値が付されている前記分散用データを回収する分散用データ回収部と、
    前記メタデータ取得部の取得する前記メタデータに含まれる前記データピースの演算値に従って、前記分散用データ回収部の回収する前記分散用データを配列し、前記データピースを結合するデータ結合部と、
    前記メタデータ取得部の取得する前記メタデータに含まれる前記データ変更部の履歴に基づいて、前記データ結合部からの結合データを前記入力データに復元するデータ復元部と、
    を備えることを特徴とする請求項1からのいずれかに記載のデータ分散保管装置。
  5. 前記演算値算出部は、予め定められた演算アルゴリズムを用いて、前記入力データ自体の演算値をさらに算出し、
    前記メタデータ格納部は、前記演算値算出部の算出する前記入力データ自体の演算値をさらに含む前記メタデータを格納し、
    前記入力データ自体の演算値を算出した前記演算アルゴリズムを用いて前記データ復元部の復元データの演算値を算出し、算出した前記復元データの演算値を、前記メタデータ取得部の取得する前記メタデータに含まれる前記入力データ自体の演算値と照合する演算値照合部をさらに備える
    ことを特徴とする請求項に記載のデータ分散保管装置。
  6. 予め定められた規則に基づいて入力データのデータ配列を変更するデータ変更手順と、
    前記入力データを変更した変更データを複数のデータピースに分割し、前記データピースのパリティデータを生成するデータ分割手順と、
    予め定められた演算アルゴリズムを用いて、前記入力データ固有の演算値及び前記パリティデータの演算値を算出する演算値算出手順と、
    前記入力データ固有の演算値及び前記パリティデータの演算値並びに前記データ変更手順における変更履歴が関連付けられたメタデータを格納するメタデータ格納手順と、
    前記入力データ固有の演算値及び前記パリティデータの演算値を前記パリティデータに付して分散用データを構成し、当該分散用データを格納する分散用データ格納手順と、
    前記分散用データを、前記分散用データに付されている前記パリティデータの演算値に適合する識別子を有するクライアントのうちの任意のクライアントに対して送信するサーバ分散用データ送信手順と、
    を順に有するデータ分散保管方法。
  7. 前記分散用データ格納手順において、前記データピースの演算値に適合する識別子を有するクライアントからは取得可能であるけれども前記データピースの演算値に適合しない識別子を有するクライアントからは取得不可能な状態で、前記分散用データを格納することを特徴とする請求項に記載のデータ分散保管方法。
  8. 前記サーバ分散用データ送信手順において、前記分散用データを、前記データピースの演算値に一致する識別子を有するクライアント及び前記演算アルゴリズムを用いて導き出される数値空間において前記データピースの演算値付近に位置する演算値に対応する識別子を有するクライアントのうちの少なくともいずれかのクライアントに送信する
    ことを特徴とする請求項6又は7に記載のデータ分散保管方法。
  9. 前記メタデータ格納手順において格納した前記メタデータを取得するメタデータ取得手順と、
    前記メタデータ取得手順で取得した前記メタデータに含まれる前記データピースの演算値に適合するクライアントから、前記メタデータに含まれる前記入力データ固有の演算値が付されている前記分散用データを回収する分散用データ回収手順と、
    前記メタデータ取得手順で取得した前記メタデータに含まれる前記データピースの演算値に従って、前記分散用データ回収手順で回収した前記分散用データを配列し、前記データピースを結合するデータ結合手順と、
    前記メタデータ取得手順で取得した前記メタデータに含まれる前記変更履歴に基づいて、前記データ結合手順で結合した結合データを前記入力データに復元するデータ復元手順と、
    を前記サーバ分散用データ送信手順の後に順に有することを特徴とする請求項からのいずれかに記載のデータ分散保管方法。
  10. 前記演算値算出手順において、予め定められた演算アルゴリズムを用いて、前記入力データ自体の演算値をさらに算出し、
    前記メタデータ格納手順において、前記演算値算出手順で算出した前記入力データ自体の演算値をさらに含む前記メタデータを格納し、
    前記入力データ自体の演算値を算出した前記演算アルゴリズムを用いて前記データ復元手順で復元した復元データ自体の演算値を算出し、算出した前記復元データ自体の演算値を、前記メタデータ取得手順で取得した前記メタデータに含まれる前記入力データ自体の演算値と照合する演算値照合手順を前記データ復元手順の後にさらに有する
    ことを特徴とする請求項に記載のデータ分散保管方法。
  11. 請求項から10のいずれかに記載のデータ分散保管方法をコンピュータに実行させるためのプログラム。
  12. 請求項から10のいずれかに記載のデータ分散保管方法をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
JP2010163834A 2010-07-21 2010-07-21 データ分散保管装置及び方法及びプログラム及び記録媒体 Expired - Fee Related JP5594828B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010163834A JP5594828B2 (ja) 2010-07-21 2010-07-21 データ分散保管装置及び方法及びプログラム及び記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010163834A JP5594828B2 (ja) 2010-07-21 2010-07-21 データ分散保管装置及び方法及びプログラム及び記録媒体

Publications (2)

Publication Number Publication Date
JP2012027587A JP2012027587A (ja) 2012-02-09
JP5594828B2 true JP5594828B2 (ja) 2014-09-24

Family

ID=45780465

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010163834A Expired - Fee Related JP5594828B2 (ja) 2010-07-21 2010-07-21 データ分散保管装置及び方法及びプログラム及び記録媒体

Country Status (1)

Country Link
JP (1) JP5594828B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10902144B2 (en) 2017-08-25 2021-01-26 Electronics And Telecommunications Research Institute Method and apparatus for securing data

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013222305A (ja) * 2012-04-16 2013-10-28 Research Organization Of Information & Systems 緊急時情報管理システム
US9467294B2 (en) * 2013-02-01 2016-10-11 Symbolic Io Corporation Methods and systems for storing and retrieving data
US10133636B2 (en) 2013-03-12 2018-11-20 Formulus Black Corporation Data storage and retrieval mediation system and methods for using same
US9304703B1 (en) 2015-04-15 2016-04-05 Symbolic Io Corporation Method and apparatus for dense hyper IO digital retention
US9817728B2 (en) 2013-02-01 2017-11-14 Symbolic Io Corporation Fast system state cloning
JP2014157397A (ja) * 2013-02-14 2014-08-28 Nec Corp 情報処理システム、情報処理装置、データバックアップ方法、及びデータ分散送信用制御プログラム
KR101497669B1 (ko) * 2013-04-29 2015-03-11 서울대학교산학협력단 일정 수 이상의 파일 조각으로 원본 파일을 복구하는 파일 관리 장치 및 방법
JP2015045961A (ja) * 2013-08-27 2015-03-12 株式会社東芝 情報処理装置、監視カメラ装置、及び映像再生装置
US10061514B2 (en) 2015-04-15 2018-08-28 Formulus Black Corporation Method and apparatus for dense hyper IO digital retention
CN107977287A (zh) * 2016-10-21 2018-05-01 中兴通讯股份有限公司 一种应用容灾实现方法、装置及系统
US10572186B2 (en) 2017-12-18 2020-02-25 Formulus Black Corporation Random access memory (RAM)-based computer systems, devices, and methods
US10725853B2 (en) 2019-01-02 2020-07-28 Formulus Black Corporation Systems and methods for memory failure prevention, management, and mitigation
KR102455681B1 (ko) * 2020-12-16 2022-10-18 경북대학교 산학협력단 긴 시퀀스 데이터 내 존재하는 관계 정보를 저장 가능한 분산 연관 메모리 네트워크 시스템
WO2022172345A1 (ja) * 2021-02-10 2022-08-18 日本電気株式会社 秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003150325A (ja) * 2001-11-13 2003-05-23 Nec Corp バックアップ方法、バックアップシステム、バックアップ装置、およびバックアッププログラム
JP4068473B2 (ja) * 2003-02-19 2008-03-26 株式会社東芝 ストレージ装置、分担範囲決定方法及びプログラム
JP2006113663A (ja) * 2004-10-12 2006-04-27 Nec Fielding Ltd データ保管システム、その方法、ファイルサーバ、端末およびプログラム
WO2007111086A1 (ja) * 2006-03-28 2007-10-04 Tokyo Denki University ディザスタリカバリ装置及びディザスタリカバリプログラム及びその記録媒体及びディザスタリカバリシステム
JP2008181213A (ja) * 2007-01-23 2008-08-07 Fuji Xerox Co Ltd 情報管理システム、情報管理装置およびプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10902144B2 (en) 2017-08-25 2021-01-26 Electronics And Telecommunications Research Institute Method and apparatus for securing data

Also Published As

Publication number Publication date
JP2012027587A (ja) 2012-02-09

Similar Documents

Publication Publication Date Title
JP5594828B2 (ja) データ分散保管装置及び方法及びプログラム及び記録媒体
CN110169015B (zh) 在分布式系统中的网络节点之间达成共识
CN110178340B (zh) 在分布式系统中进行网络节点的恢复处理
TWI705690B (zh) 分布式網路中進行主節點變更的系統
TWI720918B (zh) 基於錯誤校正碼之共用區塊鏈資料儲存的共識
US8504830B2 (en) Transfer data management system for internet backup
KR101434128B1 (ko) 웹 서비스 클라이언트 인터페이스를 갖는 분배형 저장 시스템
KR101570892B1 (ko) 로컬 호스팅된 캐시 및 암호 해시 함수를 사용하여 네트워크 트래픽을 감소시키는 방법 및 시스템
AU2019321745B2 (en) Prioritizing shared blockchain data storage
JP4621273B2 (ja) データ同期方法、データ同期プログラム、データベースサーバ装置、および、データベースシステム
TW202111586A (zh) 可信賴執行環境中基於錯誤校正編碼的共享區塊鏈資料儲存
AU2019320956B2 (en) Data security of shared blockchain data storage based on error correction code
CN104836862B (zh) 一种智能终端数据存储方法
CN101216843B (zh) 一种多点多跳的数据实时备份方法
CA2881475A1 (en) Archival data identification
WO2013046352A1 (ja) 計算機システム、データ管理方法及びデータ管理プログラム
TW202101261A (zh) 基於儲存空間互換的改進的防重放設備
KR101628195B1 (ko) 클라우드 서비스를 이용한 2중 백업 시스템 및 데이터 관리 방법
Jung et al. PCS: a parity-based personal data recovery service in cloud
CN111831743B (zh) 基于云存储的区块链数据存储系统及方法
CN111464311A (zh) 一种机固多节点一体授权管理的方法
KR102230764B1 (ko) 블록체인 기반 파일 수정 증거 저장 방법 및 이를 이용하는 장치
JP2012027756A (ja) 分散認証装置及び方法及びプログラム及び記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130719

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130805

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130805

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140328

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140507

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140704

TRDD Decision of grant or rejection written
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20140718

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140722

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20140718

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140801

R150 Certificate of patent or registration of utility model

Ref document number: 5594828

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees