JP2015523625A - 分散ストレージシステム及び分散ストレージの方法 - Google Patents

分散ストレージシステム及び分散ストレージの方法 Download PDF

Info

Publication number
JP2015523625A
JP2015523625A JP2015511689A JP2015511689A JP2015523625A JP 2015523625 A JP2015523625 A JP 2015523625A JP 2015511689 A JP2015511689 A JP 2015511689A JP 2015511689 A JP2015511689 A JP 2015511689A JP 2015523625 A JP2015523625 A JP 2015523625A
Authority
JP
Japan
Prior art keywords
electronic file
storage layer
computing devices
network
computing device
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.)
Granted
Application number
JP2015511689A
Other languages
English (en)
Other versions
JP6151353B2 (ja
Inventor
フランシス マキニス ロバート
フランシス マキニス ロバート
Original Assignee
エーテルストア インコーポレイテッド
エーテルストア インコーポレイテッド
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 エーテルストア インコーポレイテッド, エーテルストア インコーポレイテッド filed Critical エーテルストア インコーポレイテッド
Publication of JP2015523625A publication Critical patent/JP2015523625A/ja
Application granted granted Critical
Publication of JP6151353B2 publication Critical patent/JP6151353B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/273Asynchronous replication or reconciliation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/235Update request formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

ネットワークに接続される複数のコンピューティングデバイスを用いた分散ストレージ技術は、コンピューティングデバイスの1つのローカルストレージレイヤに電子ファイルを格納することを含む。格納された電子ファイルは、ネットワークを越えて他のコンピューティングデバイスに部分的に非同期的に送信され、分散ストレージレイヤの他のコンピューティングデバイスにまたがって格納される。電子ファイルは、ネットワークを越えて送信され、クラウドストレージレイヤにミラーリングされる。各コンピューティングデバイスのローカルストレージレイヤは、分散ストレージレイヤに格納された各電子ファイルに対して、ローカルストレージレイヤ及び分散ストレージレイヤに格納された電子ファイルのポーションの位置を示すポインタを有するメタデータを格納する。分散ストレージレイヤに格納された電子ファイルは、単一論理ドライブに格納されているかのように表示される。【選択図】図1A

Description

関連する出願との相互参照
本出願は、米国特許仮出願第61/645,505号(2012年5月10日出願)及び米国特許仮出願第61/645,508号(2012年5月10日出願)に関連するものであり、これらのそれぞれの全体を、参照により本明細書に援用するとともに、これら出願からの優先権を主張する。
本発明は、ローカルストレージレイヤ、分散ストレージレイヤ、及びクラウドストレージレイヤを含む分散ストレージの技術に関する。
従来のセキュアなデータストレージソリューションは、使用や維持が難しいことがある。ITハードウェアやITスタッフは、コストがかかり、定期的に失敗を犯しうる。そのような失敗はデータロスという結果を招きうる。また、ある種のデータストレージソリューションに関して、データにリモートアクセスすることが困難であったり不可能であったりしうる。
従来のデータストレージ製品は、「ローカルストレージ」、「ネットワークストレージサーバ」、「Webベースのストレージサービス」、及び「分散ストレージシステム」に分類することができる。それぞれの分類は、中小規模オフィス環境向けストレージの信頼性、拡張性、安全性、及び耐障害性に関して、それぞれ長所と短所とを有している。デスクトップコンピュータのローカルハードディスクドライブは、ファイルを格納する一般的な領域である。ローカルストレージは高性能の読み書きの時間及び有形の安全感を提供するが、ディスクに障害が発生し、ディスクが破壊され、あるいはデータが偶発的に又は故意に上書きされると、データはもはや存在しなくなる。さらに、ハードディスクドライブがいっぱいになった場合、ユーザは手動でストレージ容量の管理を試みることになり、ファイルを消去したり、他のコンピュータへのデータ転送を試みたりするが、処理には時間がかかるし、熟練も必要である。同僚との手動でのファイル共有は、整合がとれない複数のバージョンのファイルを生み出すことになりうるし、eメールでファイル送信するのは安全でない場合がある。
ネットワークストレージサーバを用いて、組織内のユーザに対して共有ストレージ空間を提供することができる。商用ネットワークストレージサーバは、ローレンジやミドルレンジの「ボックス・イン・ザ・クローゼット」アプローチ(ネットワークアタッチストレージ又はNASと呼ばれる)から、ブレードサーバと冗長ディスクアレイ(例えば、RAID)が集積されたハイエンドのファイバーチャネルストレージエリアネットワーク(SANs)まである。ネットワークストレージサーバは、ユーザに共有の大容量ストレージを提供するが、それにもかかわらず集中型ストレージの周知の多数の問題の多くに悩まされうる。すなわち、サーバが故障したり、改ざんされたり、ハッキングされたり、盗難されたりしうるし、火事で破壊されたり、コーヒーにより破損したりしうるし、ユーザが、依然として誤ってファイルの上書きや消去をしてしまう可能性があり、全データがデスクトップPCのハードディスクドライブ上と同じ方法で保存されている。
離れた場所にデータを複製すること、冗長ディスクアレイ及び暗号化を利用することを含むある種の技術がこれらの問題を改善するために知られているものの、かかる技術には、認証されていないアクセスが発生しうる場所の増加、コスト増加、複雑化、スピードや快適さの減少を含む様々な欠点が依然として含まれる。加えて、ネットワークストレージサーバはファイル共有と大容量ストレージを提供するが、それらは維持管理にコストがかかる。
Webベースのデータストレージサービスは、インターネットを通じたデータのバックアップやデータの格納のためのあまり費用のかからない手段を提供する。そのようなサービスの例は、Amazon社のS3、Apple社のiDisk、EMC社のMozy、Pro SoftNet社のiDriveである。しかしながら、たとえば、第三者で格納されたデータをデジタル検索や差し押さえから保護することがより弱いと認識されているせいで、いくらかのユーザはインターネットを通じて彼らの機密情報を日常的に送信することに慎重である。Webベースのストレージサービスが一般的に信頼のおけるバックアップサービスとして機能するとしても、常時接続で速いインターネット接続が必要となり、日々のファイルアクセスやストレージに対する現実的な代替手段として考慮するには遅すぎる場合がある。
分散ストレージ技術は、多数のマシンに多重にファイルを格納することを含み、データストレージの負荷とリスクを分散している。ファイルのコピーが多数存在するほど、ファイル消失の可能性が低くなる。しかしながら、多数のコピーは盗難される余地がより大きいことを意味するので、暗号化システムが機密データまたは機密環境向けに必要とされうる。さらに、現存している分散ストレージシステムが提供する信頼性及び性能は低レベルである可能性がある。
したがって、分散ストレージ技術をさらに向上させる必要がある。
本開示事項は、ローカルストレージレイヤ、分散ストレージレイヤ、及びクラウドストレージレイヤを含む分散ストレージの技術に関する。加えて、本開示事項は、トランスペアレントバックアップを有する分散ストレージに対する技術、及び、世界的アクセスと完全に監査可能なバージョン履歴を有するデータの安全性に対する技術に関する。
本開示事項の一態様によれば、ネットワークを介して通信可能に接続された複数のコンピューティングデバイスを用いる分散ストレージの方法は、前記コンピューティングデバイスの1つのローカルストレージレイヤに電子ファイルを格納することを含む。前記電子ファイルを、前記複数のコンピューティングデバイスの他のコンピューティングデバイスに向けて、ネットワークを介してポーション毎に非同期的に送信することができ、これにより、前記電子ファイルを分散ストレージレイヤの他のコンピューティングデバイスに横断的に格納する。前記電子ファイルを、前記クラウドストレージレイヤに向けて、ネットワークを介して非同期的に送信することができ、これにより、前記電子ファイルをクラウドストレージレイヤにミラーリングする。各電子ファイルのメタデータを各コンピューティングデバイスの前記ローカルストレージレイヤに格納することができる。前記メタデータは、前記電子ファイルの前記ポーションが前記ローカルストレージレイヤと前記分散ストレージレイヤとに格納されている位置を示すポインタを含むことができる。前記分散ストレージレイヤに格納されている前記電子ファイルは、単一の論理ドライブに格納されているかの如く表示されうる。
例示的実施形態によれば、コンピューティングデバイスの前記ローカルストレージレイヤに格納されている前記電子ファイルの非同期的な送信には、前記電子ファイルを固定長または可変長のポーションに分割することと、前記ポーションを、前記ネットワークを介して前記他のコンピューティングデバイスの前記ストレージデバイス上でハッシュ化することと、前記ハッシュ化したポーションの格納位置を示すポインタを含むように前記メタデータをアップデートすることと、ゴシッププロトコルを通じて前記他のコンピューティングデバイスに前記メタデータを送信することとを含みうる。また、前記ハッシュ化したポーションをさらにハッシュ化して、1つ以上の他のコンピューティングデバイス上に複製することができる。
例示的実施形態によれば、前記電子ファイルの編集済みバージョンをコンピューティングデバイスに格納することができる。また、前記コンピューティングデバイスは、前記ファイルの編集済みバージョンと前記電子ファイルのオリジナルとを比較し、固定長又は可変長の編集済みポーションを生成することができる。また、前記編集済みポーションは、前記ネットワークを介して前記他のコンピューティングデバイスの前記ストレージデバイス上でハッシュ化され、前記メタデータは、前記ファイルの編集済みバージョンに対して、前記オリジナルファイルの変化していないポーションの格納位置を示すポインタと前記編集済みポーションの格納位置を示すポインタとを含むようにアップデートされうる。
さらに、前記方法は、前記コンピューティングデバイスの1つによって前記電子ファイルを検索することを含みうる。前記コンピューティングデバイスは、ローカルに格納されたメタデータから、前記電子ファイルのポーションが格納されている位置を決定しうる。前記ポーションは、ネットワークを介して前記格納位置から検索され、前記検索されたポーションは組み合わされ、前記コンピューティングデバイスの前記ローカルストレージレイヤに格納されうる。例示的実施形態によれば、前記メタデータは、前記分散システムに格納された電子ファイルに対するバージョン情報、アクセス情報、許可情報、及び論理ドライブパス情報のうちの1つ以上を含みうる。ある実施形態によれば、前記電子ファイルは暗号化されうる。
本開示事項のもう一つの態様によれば、分散ストレージシステムは、複数のコンピューティングデバイスのそれぞれに対するローカルストレージレイヤと、分散ストレージレイヤとを含みうる。前記コンピューティングデバイスは、ネットワークと通信可能に接続され、それぞれのコンピューティングデバイスは1つ以上のプロセッサ及び1つ以上のストレージデバイスと関連付けられており、ここに開示される技術を実施するように適合しうる。例示的実施形態によれば、前記コンピューティングデバイスは、1つ以上のデスクトップコンピュータ、ラップトップコンピュータ、又はハンドヘルドコンピューティングデバイスを含みうる。また、前記ネットワークは有線又は無線のLAN、イントラネット、又はインターネットとすることができる。
本開示事項の他の態様によれば、ここに開示される技術は、実行時に、ここに開示される機能を1つ以上のプロセッサに行わせるための実行可能なコードを格納する持続的コンピュータ可読媒体として実施することができる。代替的に、ここに開示される方法の全て又は一部を、配線で接続された電気回路単独で、又は、配線で接続された電気回路と実行可能なコードとの組み合わせで、実施することができる。
以上の一般的な説明と以下の詳細な説明とはいずれも例示的なものであり、特許請求の範囲に記載された開示事項に係る説明をさらに提供することを意図するものであることを理解すべきである。
本明細書に組み入れられ、本明細書の一部をなす添付の図面は、本開示事項を図示し、そのさらなる理解を提供するために含まれている。詳細な説明とともに、前記図面は本開示事項の原理を説明している。
本開示事項の例示的実施形態における分散ストレージの方法のフロー図を示す。 本開示事項の例示的実施形態における分散ストレージシステムの概要図を示す。 本開示事項の例示的実施形態におけるストレージレイヤの概要図を示す。 本開示事項の例示的実施形態におけるストレージレイヤの階層を説明する図である。 本開示事項の例示的実施形態における分散ストレージシステムに対するリモートアクセスを説明する概略図である。 本開示事項の例示的実施形態におけるメタデータファイルの図である。 5Aは、本開示事項の例示的実施形態におけるハッシュ化された電子ファイルのポーションを示す図である。5Bは、本開示事項の例示的実施形態におけるハッシュ化された編集済み電子ファイルのポーションを説明する図である。5Cは、本開示事項のもう一つの例示的実施形態におけるハッシュ化された編集済み電子ファイルのポーションを説明する図である。 本開示事項の例示的実施形態における単一の論理ネットワークドライブの表示を示す図である。
図を通して、別途言及又は指示されていない限りは、同一の参照番号及び参照記号は、図示した実施形態の類似の特徴、要素、部品、または部分を示すように使われている。さらに、図を参照して本開示事項を以下で詳細に説明するが、図示した実施形態に関連してそのように行われるのであり、非限定的であることを意図するものである。
本開示事項に従う例示的ストレージシステムは、3つのストレージ「レイヤ」を含むことができる。3つのストレージレイヤには、システムに接続される各コンピューティングデバイスに対するローカルストレージレイヤ、コンピューティングデバイスをまたがっている分散ストレージレイヤ、及びクラウドストレージレイヤを含むことができる。ストレージシステムは、コンピューティングシステム内の未使用容量を共同利用し、バージョン管理、リモートアクセス、長期間のバックアップをサポートしうる。
本開示事項の例示的実施形態を、限定ではなく例示の目的で、図1−6を参照しつつ、以下で説明する。明確化のために、方法とシステムを同時に、かつ、相互に組み合わせて説明する。方法を示す参照番号は丸括弧()で括られ、システムを示す参照番号は丸括弧で括られない。
図1A及び図1Bを参照して、本開示事項の例示的実施形態によれば、分散ストレージ技術は、ネットワークを介して通信可能に組み合わされた複数のコンピューティングデバイス(例えば、111、並びに121a及び121b(まとめて121))の使用を含むことができる。コンピューティングデバイス121は、例えば、1つ以上のデスクトップコンピュータ、ラップトップコンピュータ、ハンドヘルドコンピューティングデバイス、又はその他の適切なコンピューティングデバイスであってもよい。ネットワークは有線又は無線のLAN、イントラネット、又はインターネットであってもよい。例えば、コンピューティングデバイス121は、オフィス環境内の多数のマシンであってもよく、オフィス環境には、学校、病院、又は当業者にとって自明な他の環境を含むがそれらに限定されない。各コンピューティングデバイスは1つ以上のプロセッサ及びローカルハードディスクドライブのようなストレージデバイスを有し、例えばオペレーティングシステム(例えば、Microsoft Windows, Mac OS, Linux等)及び付随するソフトウェアアプリケーションを含むソフトウェアを有することができる。
コンピューティングデバイス121のユーザは、本明細書に開示される技術に従ってファイルを保存し、検索することができる。例えば、コンピューティングデバイス111を管理するユーザが電子ファイル150を保存することを望む場合、電子ファイル150は、最初に、コンピューティングデバイス111のうちの1つのローカルストレージレイヤ110に格納(101)されてもよい。例えば、ローカルストレージレイヤ110は、コンピューティングデバイス111に関連付けられている、ローカルハードディスクドライブのような1つ以上のストレージデバイス112の一部であってもよい。ローカルストレージは、ファイルを保存したユーザによるファイルへの読み書きアクセスを迅速かつ効率的にすることができる。
前述の通り、単にローカルストレージ112にファイルを格納することは、多数の欠点を含みうる。したがって、電子ファイル150は、ポーション毎に(例えば、151a〜d、まとめて151)、ネットワークを介して、他の複数のコンピューティングデバイス(例えば、121a及び121b)に非同期的に送信され(102)、電子ファイル150は、他のコンピューティングデバイス121にまたがって分散ストレージレイヤ120に格納されうる。(例えば中間ストレージレイヤとも称され場合がある)分散ストレージレイヤ120は、ワイドエリアネットワーク(WAN)やLAN等を介して接続される複数のマシンにまたがる分散ストレージを含みうる。各マシンは、他のマシンにまたがる分散ストレージに適するように構成されうる。例えば、実行時に、マシンが他のマシンと通信することを可能とするソフトウェアを各マシンにインストールして、特定のファイルを、LAN上の複数のマシンにまたがって格納することができる。
さらに電子ファイル150を、ネットワークを介してクラウドストレージレイヤ130に非同期的に送信して(103)、電子ファイル150をクラウドストレージレイヤ130にミラーリングすることができる。そのような送信には、送信に先立って、まずファイルに対応するデータを暗号化することを含みうる。以下でさらに詳細に説明される、各電子ファイルのメタデータは、各コンピューティングデバイス121のローカルストレージレイヤ110に格納されうる。メタデータは、ローカルストレージレイヤ及び分散ストレージレイヤに格納されている電子ファイルのポーションの格納されている位置を示すポインタを含みうる。
例示的実施形態によれば、ローカルストレージレイヤ110に格納されている電子ファイル150をコンピューティングデバイス111から分散ストレージレイヤ120へ非同期的に送信することは、電子ファイル150をポーション151に分割し、他のコンピューティングデバイス121にまたがってポーション151を格納することを含みうる。ポーション151は、固定長又は可変長サイズのポーションであってもよい。例えば、「チャンク」と称されるポーション151の生成は、電子ファイル150のデータを固定長のチャンク(例えば4Kbと8Kbの間のサイズであるがこれには限られない)に分割することを含みうる。あるいは、電子ファイル150は、例えば、スライディングウィンドウ技術を使って可変長のチャンクに分けられうる。説明のためであってこれに限られないが、一般に、スライディングウィンドウ技術は、共通のチャンクを発見するための試行において、予め定義された「スライディングウィンドウ」の範囲内のあるポイントまで、チャンクをファイルの上下に「動かす」ことを含みうる。このようなスライディングは新規のチャンクによって満たされるギャップを生成しうる。電子ファイル150をポーション151に分割するのに適した種々の他のバリエーションや技術が使われうることや、本開示事項がここで開示された例示的実施形態に制限されることを意図していないことを、当業者は認識するだろう。
ポーション151は、ネットワークを介して他のコンピューティングデバイス121のストレージデバイス(例えば122a及び122b、まとめて122)上でハッシュ化されうる。例えば、各チャンクは、(例えば、SHA−1アルゴリズム等を用いて)ハッシュ化され、鍵空間におけるチャンクの位置を特定できる値(しばしば鍵と称される)を生成しうる。すなわち、例えば、以下でさらに詳細に記載されるように、ファイルを検索する(すなわち、少なくとも1つのチャンクを検索する)ために、ハッシュ値はチャンクが発見されうる位置を特定しうる。加えて、チャンクが他のチャンクと同一の値を有する場合、そのハッシュ値は同一であるだろう。そして、このような同一のデータは複製される必要がない。ハッシュ化されたポーション151は、ネットワークを介して他のコンピューティングデバイス121に送信されてもよい。例えば、ポーション151aと151dとが、コンピューティングデバイス121aに送信され、コンピューティングデバイス121aに関連付けられている1つ以上のストレージデバイス122aに格納されてもよい。ポーション151bと151cとが、コンピューティングデバイス121bに送信され、コンピューティングデバイス121bに関連付けられている1つ以上のストレージデバイス122bに格納されてもよい。
次いで、各コンピューティングデバイス(例えば、111、121a及び121b)に格納されているメタデータをアップデートし、ハッシュ化されたポーション151の位置を示すポインタを含めることができる。例えば、コンピューティングデバイス111は、ポーション151をハッシュ化し、ローカルに格納されたメタデータをアップデートし、例えば、ゴシッププロトコルを用いて、ネットワークを介して他のコンピューティングデバイスにメタデータを送信してもよい。本開示事項のある実施形態によれば、ハッシュ化されたポーション151を、さらにハッシュ化して1つ以上の他のコンピューティングデバイスに複製して、冗長性を生じさせることができる。
例示的かつ非限定的な実施形態において、ネットワークを介した他のコンピューティングデバイス121のストレージデバイス(例えば122a及び122b、まとめて122)上でのポーション151のハッシュ化は、Chordアルゴリズムのような分散ハッシュテーブルを用いて達成されうる。説明の目的であってこれに限られないが、各コンピューティングデバイス(例えば121)は、Chordアルゴリズムのノードになってもよく、各Chordアルゴリズムのノードは鍵空間のいくつかのポーションについて責任を負う。電子ファイル150が分散ストレージレイヤ120に格納される場合、電子ファイルはポーション151(チャンクやブロック)に分割され、これらチャンクのそれぞれはハッシュ化され、鍵空間におけるチャンクの位置を特定する値を、したがって、各チャンクが格納されるであろう位置における各コンピューティングデバイスのインスタンスを生成する。すなわち、例えば、データを検索するためにコンピューティングデバイスのみが、データが発見されうる位置を特定するファイル(チャンク)のハッシュ値を知る必要がある。このような技術は、中央協調やデータ配置ヒューリスティックを不要にする。
上述のように、さらに電子ファイル150は、ネットワークを通して、クラウドストレージレイヤ130に非同期的に送信され、電子ファイル150がクラウドストレージレイヤ130にミラーリングされうる。図2A及び図2Bを参照して、例示的実施形態によれば、クラウドストレージレイヤ130は、システムに格納されているデータセット全体を含みうる。クラウドストレージレイヤ130は、ローカルレイヤ110及び分散レイヤ120にとっての冗長部分として機能しうる。例えば図2Aで説明されるように、システムはファイルのポーションA−Iを含み、コンピューティングデバイスのローカルストレージレイヤ110は、例えば、ファイルのポーションA,D,Fを格納し、分散ストレージレイヤ120は、ファイルのポーションA、B、C、D、G、Fを格納し、クラウドストレージレイヤはファイルのポーションA−Iを全て格納してもよい。
例示的実施形態において、データを本明細書で開示される技術に似た方法でクラウドストレージレイヤ130に書き込み、電子ファイルをローカルストレージレイヤから分散ストレージレイヤへ非同期的に送信することができる。すなわち、ファイルは、クラウドストレージレイヤ130に送信することのできる一連のポーション又は「チャンク」に分割されてもよい。クラウドストレージレイヤ130は、任意の適切なストレージデバイス、1つ以上のストレージデバイス、プロセッサ、及び/又はインターネット等のネットワークを介して電子データを格納したり電子データへのアクセスを提供したりするよう動作可能なソフトウェアを含みうる。例えば、クラウドストレージレイヤ130は、Amazon社のS3、Apple社のiDisk、EMC社のMozy、Pro SoftNet社のiDriveのような商用ウェブストレージサービスを含みうる。他の適切なクラウドストレージサービスを用いてもよいこと、及び、本開示事項がここで開示された例示的実施形態に制限されることを意図していないことを、当業者は認識するだろう。例えば、クラウドストレージレイヤ130は、商用であることを必要としないが、代わりに専有のクラウドストレージシステムを含んでもよい。
例示的実施形態によれば、クラウドストレージレイヤ130は、図2Bで説明されるように、複数の分散ストレージレイヤからのファイルを含みうる。例えば、ある会社が2つの場所でLANを運営し、各ネットワーク上のコンピュータが本明細書に記載されたシステムを稼働してもよい。各ネットワークがそれぞれの分散ストレージレイヤ(220a、220b)を有しつつも、両レイヤがともに、クラウドストレージレイヤ130に含まれうる。例えば、分散ストレージレイヤ220aに対応するLANは、対応するローカルストレージレイヤ又は分散ストレージレイヤ220aに電子ファイルを格納することができる2つのコンピューティングデバイス210a及び210bを含みうる。同様に、分散ストレージレイヤ220bに対応するLANは、対応するローカルストレージレイヤ又は分散ストレージレイヤ220bに電子ファイルを格納することができる2つのコンピューティングデバイス210c及び210dを含みうる。電子ファイルは、ファイルが生成された又は編集されたコンピューティングデバイス(例えば210a、210b、201c、又は210d)からクラウドストレージレイヤ130に書込まれてもよいし、あるいは、ファイルのポーションが分散ストレージレイヤ220a又は220bから書込まれてもよい。
例示的実施形態において、ローカルストレージレイヤ110の容量は制限されうる。例えば、所定のマシンがシステムに1GBのデータを充てるように、システムが構成されうる。ある実施形態において、ローカルストレージレイヤ110はキャッシュとして動作しうる。例えば、ファイルは、所定時間経過後ローカルストレージから再割り当てされる。加えて、又は代わりに、ファイルはヒューリスティックモデルに従ってローカルストレージ110から削除されうる。同様に、分散ストレージレイヤ120は、クラウドストレージレイヤ130に対してキャッシュとして機能する。例えば、前述の通り、電子ファイルは非同期的に、例えばChordアルゴリズムを使って決定された位置にデータが格納されるローカル分散ストレージ110に送られうる。分散レイヤ110に送られたデータをn回複製して、そのデータを含むn−1台のマシンの故障が生じても利用可能なままとすることができる。分散ストレージレイヤ120に格納する動作は非同期に実行されてもよく、ユーザやファイルデータを格納するアプリケーションは、分散ストレージの動作が完了するのを待つ必要がない。場合によっては、分散ストレージレイヤ120の容量がストレージシステム内の合計データ量よりも少なくてもよく、その場合は、分散ストレージレイヤ120は、クラウドストレージレイヤ130に対してキャッシュとして機能する。クラウドストレージレイヤ130はストレージシステムに格納されているデータセット全体を格納しうる。アップデートはクラウドストアに対して非同期的に書込まれ、ある態様においては、送信される前に待ち行列に入れられることもありうる。待ち行列はシステムに対して、新規アップデートが発生した際にアップデートを定期的に送信する代わりに、一連の細かいアップデートを単一ユニットとしてアップロードさせるようにしうる。
クラウドストレージレイヤ130は、システムに対するリモートアクセス、例えば、システムがインストールされているLANから離れた場所からのインターネットを通じたリモートアクセスを追加的に提供しうる。例えば、図3を参照して、リモートコンピューティングデバイス310は、クラウドストレージレイヤ130に格納されている電子ファイルにアクセスしうる。リモートコンピューティングデバイス310は、クラウドストレージレイヤ130を通じて、分散ストレージレイヤ120からミラーリングされているファイルにアクセスしうる。
本明細書で例示されるように、分散ストレージレイヤ120内の各コンピューティングデバイスのローカルストレージレイヤ110は、分散ストレージレイヤ120及びローカルストレージレイヤ110に格納された電子ファイルに関連するメタデータを格納しうる。例示的実施形態によれば、図4を参照して、メタデータは、格納されている各電子ファイル(例えばファイル150)に対して、バージョン情報420、アクセス情報、許可情報、及び論理ドライブパス情報410を含むことができる。
説明の目的であってこれに限られないが、図4は、3つのバージョンV0 430、V1 440、V2 450を有する「test.txt」と名付けられたファイルに対するメタデータを示している。図4で説明されるように、論理ドライブパス情報410は、ファイル150がユーザに対してどのように表示されるかを表す文字列を含みうる。例えば、ファイル150の名前とパスは「C:\test.txt」として表示されうる。説明の目的であってこれに限られないが、図6に示されるように、ファイル150を含むファイルは、まるで単一の論理ドライブに格納されているかのように表示されうる。すなわち、各コンピューティングデバイスは、まるでファイルが単一の論理ドライブ600に格納されているかのように分散ストレージレイヤに格納されているファイルを表示するように構成されうる。
以下でさらに詳しく記載されるように、バージョンV0 430及びバージョンV1 440は、完全なファイルとして格納され、バージョンV2 450は、前バージョンV1 440と比較した差分として格納されうる。すなわち、バージョンV0 430は、ファイル150のバージョンV0のハッシュ化されたポーションが格納されている位置を示すポインタ431を含むアクセス情報を含みうる。同様に、バージョンV1 440は、ファイル150のバージョンV1のハッシュ化されたポーションが格納されている位置を示すポインタ441を含むアクセス情報を含みうる。バージョンV0 430又はバージョンV1 440を検索するために、これらのポインタが解決され、コンピューティングデバイスは、必要とされるポーションを要求し、そのファイルバージョンのローカルコピーを生成する。バージョンV2 450は、前バージョンV1 440に対するポインタ451及び差分ファイル453に対するポインタ452を含むアクセス情報を含みうる。バージョンV2 450を検索するために、これらのポインタが解決され、コンピューティングデバイスは、バージョンV1 441のポーション及びその差分ファイル453を要求し、ファイル150のバージョンV2 450のローカルコピーを生成する。
ローカルに格納されているファイル150に対応するメタデータがローカルに格納されている場合、そのメタデータはローカルストレージ上のファイルの位置を示すポインタを含みうる。例えば、複数のコンピューティングデバイスのうちの1台で電子ファイル150を検索することは、メタデータから電子ファイル150のポーションの位置を(例えばポインタ431、441、又は451及び452を使って)決定することを含む。ポーションはこれらの位置からネットワークを介して検索され、組み合わされ、コンピューティングデバイスのローカルストレージレイヤに格納されうる。次いで、コンピューティングデバイス上のメタデータをアップデートし、分散ストレージレイヤに格納されたポーションではなく、ローカルに格納されたポーションを示すポインタを含ませることができる。
説明の目的であってこれに限られないが、図5A、図5B及び図5Cは、本開示事項における格納されたメタデータと関連する例示的なハッシュ化されたファイルポーション(チャンク)を説明している。図5Aは、3つのポーション510が本明細書に記載されるシステムの分散ストレージレイヤに格納されている例を示す。3つのポーションは、2つのファイル、ファイルX530及びファイルY540に対応するポーションを含む。各ポーションは、本明細書で開示されるようにハッシュ化520され、ファイルポーション(C,M及びO)に対応するハッシュを生成することができる。ファイルX530は、ポーションC及びM向けのルックアップコールを発することによって要求されうる。ファイルY540は、ファイルX530とのいくつかの重複部分を含み、ポーションO及びMに対するルックアップコールを発することによって要求されうる。ファイルX530及びファイルY540はポーションMを共有するので、ブロックMは2回格納される必要がない。
本明細書で前述したように、ファイルに対する編集やアップデートは、新バージョンのファイルを前バージョンから計算されるようにする差分ファイルを生成することによるか、新バージョンの完全なファイルを格納することによるか、いずれか一方によって格納されうる。図5Bは、新バージョンのファイルを生成することによるファイルX530に対する例示的な編集例を示す。この例示的なシナリオにおいては、本明細書で開示された技術によって、5つのポーション511が分散ストレージレイヤに格納され、ハッシュ(B,C,G,M,O)521が生成される。これらのポーション511は、2つのバージョン531a及び531bを有するファイルXとファイルY541の2つのファイルに対応するポーションを含みうる。ファイルXのバージョンV1 531b及びバージョンV2 531aは、それぞれポーションC及びM並びにポーションB及びMに対してルックアップコールを発することにより要求される。すなわち、例えば、ファイルXのバージョンV2 531aは、バージョンV1 531bのファイルポーションの1つ(例えば、バージョンV1 531bのポーションC)にのみ対応する編集を含みうる。同様に、ファイルY541は、ファイルXとのいくつかの重複部分を含み、両ファイルがポーションMを含みうる。
図5Cは、前バージョンに基づく差分ファイルを生成することによるファイルX530に対する例示的な編集例を示す。このようなシナリオにおいては、差分が計算され、1つ以上の新しいポーションに格納されうる。本明細書に開示されるように、6つのポーション512が、分散ストレージレイヤに格納され、ハッシュ(A、B、C、G、M、O)522が生成される。ファイルXは2つのバージョン532a及び532bを含みうる。ファイルXのバージョンV1 532bは、前述のように、ポーションC及びMに対してルックアップコールを発することにより要求されうる。しかしながら、バージョンV2 532aを生成するためのファイルXに対する編集は、バージョンV1 532bに対する相対的な変化を表すポーションAを格納することを含みうる。すなわち、例えば、ファイルXのバージョンV2 531aは、ポーションAに対するルックアップコールを発することに加えて、バージョンV1 531bのポーションに対するルックアップコールを発することによって要求されうる。次いで、要求するコンピューティングデバイスは、要求されたブロック上で動作を実行し、ローカルストレージレイヤ上でバージョンV2 531aを組み合わせうる。本開示事項によれば、ファイルに対する編集は、新バージョン又はファイルになされた変更の大きさに基づく差分ファイルのいずれか一方を用いて格納されうる。加えて、大量の差分が実行された場合、差分は、ルックアップ動作の速度を改善するように単一バージョンに結合されうる。
例示的実施形態において、ローカルストレージレイヤの容量は制限されうる。例えば、システムは、所定のマシンが該システムに対して1GBのデータを充てるように構成されうる。いくつかの実施形態において、ローカルストレージレイヤはキャッシュとして機能する。例えば、ファイルは、所定時間経過後ローカルストレージレイヤから再割り当てされる。加えて、又は代わりに、ファイルはヒューリスティック法に従ってローカルストレージから削除されうる。説明の目的であってこれに限られないが、マシンが大容量を有する場合、容量が小さいノードよりもより大きい鍵空間のポーションを制御しうる。例えば、大容量を有するコンピューティングデバイスは、多重の論理ノードに割り当てられ、より大きな鍵空間のポーションにあてられる。しかしながら、そのような構成は、同一の物理マシン上における異なる論理ノードへのファイルポーションのハッシュ化を含む。したがって、鍵空間のポーションへのノードの割り当ては、同一マシン上の論理ノードが鍵空間の連続するポーションを占めるようになされうる。
ある状況では、本明細書で開示された技術は、アップデートや編集の競合(例えば、同時に起こったアップデートや同一ファイルの生成、同時に起こった同一ファイルのリネーム、又はコピーがアップデートされたちょうどその時に起こるファイルの削除)につながりうる。このようなシナリオにおいて、本開示事項によれば、「勝ち残りの」アップデートは、アップデートのタイムスタンプに基づき、もしくは、対立するアップデートのタイムスタンプが同一である場合には、コンピューティングデバイスのIDに基づき、他のコンピューティングデバイスに伝播されうる。「敗れた」アップデートは、システムに追加された、オリジナルのファイルに基づくファイル名を与えられた新規ファイルに保存されうる。コンフリクトファイルは、競合するアップデートに対して生成され、各コンピューティングデバイスに格納されるメタデータは、「敗れた」アップデートに対する新規ファイルを参照するようアップデートされうる。
初期化されている間、各コンピューティングデバイスは、ディスカバリーサービスを用いるシステムに加わりうる。例えば、コンピューティングデバイスは、初期化時にネットワーク上の存在を通知しうる。各コンピューティングデバイスは、アクティブとなっている新規コンピューティングデバイスに対してネットワークを監視しうるディスカバリースレッドを動かしうる。
本明細書で開示される技術は、ローカルストレージの書き込み速度とネットワークストレージサーバの共有ストレージ容量とを備えたストレージシステムを含む、既存のデータストレージソリューションの強みを組み合わせ、それらの弱みを軽減するストレージシステムを提供しうる。分散ストレージレイヤは、既存のオフィスマシン内の、使用しなければ他に浪費されるだろう未使用容量を共同利用し、マシン間でデータストレージの負荷とリスクとを拡散しうる。セキュアなクラウドストレージレイヤは、バージョン管理、リモートアクセス、及び長期間バックアップのために用いられうる。本明細書で開示される技術は、監査や順法の目的で、ITスタッフやメンテナンスや新規ハードウェアを必要とせずに、全ファイルのバージョン履歴を提供しうる。
さらに、本明細書で開示される技術は、異なる組織的要件に対して異なるポリシーを利用可能とする大規模化及び拡張性を提供する。例えば、法律事務所向けのポリシーは、ファイルキャッシュに対して一時記憶の使用を要求し、マシンの接続が外された際に全てのローカルコピーも消去してもよい。また、複数の国際的地域にある複数のウェブベースバックアップ設備に、それ自身では使用できない、バックアップ全体の一部のみを格納し、その設備を明示してもよく、これによって、電子通信プライバシー法(ECPA法)によるデジタル検索や差し押さえの脅威を減少させる。
上述の通り、ある実施形態に関連して、例えば、ローカルストレージレイヤ110、分散ストレージレイヤ120、及びクラウドストレージレイヤ130のような構成部分は、1つ以上のコンピュータ、プロセッサ、ネットワーク、携帯機器、クラスタ、又は様々な機能を実行する他のハードウェアを含みうる。さらに、本開示事項の一要素はコンピュータ読み取り可能コードで具体化され、コンピュータ読み取り可能コードはコンピュータ読み取り可能媒体に格納され、該コードが実行される場合、プロセッサに機能を実行させる。これらの実施形態において、コンピュータは、例えば、LANやインターネットのようなネットワークをまたぐ分散ストレージシステム及び方法を実施可能にするための重要な役割を演じる。例えば、コンピュータ、プロセッサ、メモリ、ストレージ、及びネットワークハードウェアの存在は、コンピューティングデバイスにおける未使用容量の共同利用を提供し、バージョン管理やリモートアクセスや長期間バックアップのサポートを提供しうる。
加えて、上述の通り、ある実施形態に関連して、ある構成部分は、他の構成部分と、例えばインターネットのようなネットワークを介して通信しうる。上記において明示的に述べられていない事項への拡張について、本開示事項は、送信と受信とを含むそれぞれのやり取りの両面を包含することを意図している。上述の特徴に関して、一構成部分が送信し、送付し、又はさもなければ他の一構成部分に対して利用可能とし、他の構成部分が受信し、取得するだろうことを、明示的に述べられていようがいまいが、当業者は容易に理解するだろう。
本開示事項は、本明細書において明示している実施形態によって範囲を限定されるものではない。実際、本明細書に記載されている事項に加えて本開示事項を様々に変更したものが、前述の記載や添付図面から、当業者にとって自明である。このような変更は、添付した特許請求の範囲に包含されることが意図されている。

Claims (33)

  1. ネットワークを介して通信可能に接続された複数のコンピューティングデバイスを用いる分散ストレージの方法であって、
    前記複数のコンピューティングデバイスのうちの1つのコンピューティングデバイスのローカルストレージレイヤに電子ファイルを格納することと、
    前記複数のコンピューティングデバイスのうちの1つのコンピューティングデバイスの前記ローカルストレージレイヤに格納された前記電子ファイルを、前記複数のコンピューティングデバイスの他のコンピューティングデバイスに向けて、ネットワークを介して、ポーション毎に、非同期的に送信し、前記電子ファイルを分散ストレージレイヤの他のコンピューティングデバイスに横断的に格納することと、
    前記電子ファイルを、前記クラウドストレージレイヤに向けて、前記ネットワークを介して非同期的に送信し、前記電子ファイルをクラウドストレージレイヤにミラーリングすることと、
    前記ローカルストレージレイヤ及び前記分散ストレージレイヤに格納された前記電子ファイルのポーションの位置を示すポインタを有するメタデータを、前記分散ストレージレイヤに格納された電子ファイルのそれぞれに対して、前記複数のコンピューティングデバイスのそれぞれの前記ローカルストレージレイヤに格納することと
    を含む分散ストレージの方法。
  2. 前記コンピューティングデバイスのうちの1つのコンピューティングデバイスと結び付けられる表示デバイスに、前記分散ストレージレイヤに格納されている前記電子ファイルを、単一の論理ドライブに格納されているかのように表示することをさらに含む、請求項1に記載の方法。
  3. 前記複数のコンピューティングデバイスは、1つ以上のデスクトップコンピュータ、ラップトップコンピュータ、又はハンドヘルドコンピューティングデバイスを含む、請求項1に記載の方法。
  4. 前記ネットワークは、1つ以上の有線LAN、無線LAN、イントラネット、又はインターネットを含む、請求項1に記載の方法。
  5. 前記ローカルストレージレイヤに格納された前記電子ファイルの非同期的な送信は、
    前記電子ファイルを固定長又は可変長のポーションに分割することと、
    ネットワークを介して、前記他のコンピューティングデバイスの前記ストレージデバイス上に、前記ポーションをハッシュ化することと、
    前記ハッシュ化されたポーションの位置を示すポインタを含むように前記メタデータをアップデートすることと、
    ネットワークを介して、ゴシッププロトコルを用いて前記他のコンピューティングデバイスに前記メタデータを送信することとを含む、請求項1に記載の方法。
  6. さらなるハッシュ化を通じて、1つ以上の他のコンピューティングデバイス上に、前記ハッシュ化されたポーションを複製することをさらに含む、請求項5に記載の方法。
  7. 前記電子ファイルの編集済みバージョンを格納することをさらに含み、
    該格納は、前記複数のコンピューティングデバイスのうちの1のコンピューティングデバイスにおいて、
    前記編集済みバージョンと前記電子ファイルとを比較し、前記電子ファイルの固定長又は可変長の編集済みポーションを生成することと、
    ネットワークを介して、前記他のコンピューティングデバイスの前記ストレージデバイス上に前記編集済みファイルをハッシュ化することと、
    前記電子ファイルの編集済みバージョンに対して、前記電子ファイルの変更されていないポーションを示すポインタと、前記編集済みポーションの位置を示すポインタとを含むように、前記メタデータをアップデートすることとを含む、請求項5に記載の方法。
  8. 前記複数のコンピューティングデバイスのうちの1つのコンピューティングデバイスにおいて、前記電子ファイルを検索することをさらに含み、
    該検索は、
    前記メタデータから前記電子ファイルのポーションの位置を決定することと、
    ネットワークを介して、該位置から前記電子ファイルの前記ポーションを検索することと、
    前記ローカルストレージレイヤ上で、前記検索されたポーションを組合せ、かつ、格納することとを含む、請求項1に記載の方法。
  9. 前記電子ファイルにリモートアクセスすることをさらに含み、
    該リモートアクセスは、リモートコンピューティングデバイスにおいて、前記クラウドストレージレイヤから前記電子ファイルを検索することを含む、請求項1に記載の方法。
  10. 前記メタデータは、前記電子ファイルに係るバージョン情報、アクセス情報、許可情報、及び論理ドライブパス情報のうちの1つ以上をさらに含む、請求項1に記載の方法。
  11. 前記電子ファイルを暗号化することをさらに含む、請求項1に記載の方法。
  12. 実行された場合、1つ以上のコンピュータデバイスに、ネットワークを介して通信可能に接続された複数のコンピューティングデバイスを用いる分散ストレージの方法を実行させるコンピュータ実行可能な命令を含む持続的コンピュータ可読媒体であって、
    前記方法は、
    前記複数のコンピューティングデバイスのうちの1つのコンピューティングデバイスのローカルストレージレイヤに電子ファイルを格納することと、
    前記複数のコンピューティングデバイスのうちの1つのコンピューティングデバイスの前記ローカルストレージレイヤに格納された前記電子ファイルを、前記複数のコンピューティングデバイスの他のコンピューティングデバイスに向けて、ネットワークを介して、ポーション毎に、非同期的に送信し、前記電子ファイルを分散ストレージレイヤの他のコンピューティングデバイスに横断的に格納することと、
    前記電子ファイルを、前記クラウドストレージレイヤに向けて、前記ネットワークを介してを非同期的に送信し、前記電子ファイルをクラウドストレージレイヤにミラーリングすることと、
    前記ローカルストレージレイヤ及び前記分散ストレージレイヤに格納された前記電子ファイルのポーションの位置を示すポインタを有するメタデータを、前記分散ストレージレイヤに格納された電子ファイルのそれぞれに対して、前記複数のコンピューティングデバイスのそれぞれの前記ローカルストレージレイヤに格納することと
    を含む持続的コンピュータ可読媒体。
  13. 前記コンピューティングデバイスのうちの1つのコンピューティングデバイスと結び付けられる表示デバイスに、前記分散ストレージレイヤに格納されている前記電子ファイルを、単一の論理ドライブに格納されているかのように表示することをさらに含む、請求項12に記載の持続的コンピュータ可読媒体。
  14. 前記複数のコンピューティングデバイスは、1つ以上のデスクトップコンピュータ、ラップトップコンピュータ、又はハンドヘルドコンピューティングデバイスを含む、請求項12に記載の持続的コンピュータ可読媒体。
  15. 前記ネットワークは、1つ以上の有線LAN、無線LAN、イントラネット、又はインターネットを含む、請求項12に記載の持続的コンピュータ可読媒体。
  16. 前記ローカルストレージレイヤに格納された前記電子ファイルの非同期的な送信は、
    前記電子ファイルを固定長又は可変長のポーションに分割することと、
    ネットワークを介して、前記他のコンピューティングデバイスの前記ストレージデバイス上に、前記ポーションをハッシュ化することと、
    前記ハッシュ化されたポーションの位置を示すポインタを含むように前記メタデータをアップデートすることと、
    ネットワークを介して、ゴシッププロトコルを用いて前記他のコンピューティングデバイスに前記メタデータを送信することとを含む、請求項12に記載の持続的コンピュータ可読媒体。
  17. さらなるハッシュ化を通じて、1つ以上の他のコンピューティングデバイス上に、前記ハッシュ化されたポーションを複製することをさらに含む、請求項16に記載の持続的コンピュータ可読媒体。
  18. 前記電子ファイルの編集済みバージョンを格納することをさらに含み、
    該格納は、前記複数のコンピューティングデバイスのうちの1のコンピューティングデバイスにおいて、
    前記編集済みバージョンと前記電子ファイルとを比較し、前記電子ファイルの固定長又は可変長の編集済みポーションを生成することと、
    ネットワークを介して、前記他のコンピューティングデバイスの前記ストレージデバイス上に前記編集済みファイルをハッシュ化することと、
    前記電子ファイルの編集済みバージョンに対して、前記電子ファイルの変更されていないポーションを示すポインタと、前記編集済みポーションの位置を示すポインタとを含むように、前記メタデータをアップデートすることとを含む、請求項16に記載の持続的コンピュータ可読媒体。
  19. 前記複数のコンピューティングデバイスのうちの1つのコンピューティングデバイスにおいて、前記電子ファイルを検索することをさらに含み、
    該検索は、
    前記メタデータから前記電子ファイルのポーションの位置を決定することと、
    ネットワークを介して、該位置から前記電子ファイルの前記ポーションを検索することと、
    前記ローカルストレージレイヤ上で、前記検索されたポーションを組合せ、かつ、格納することとを含む、請求項12に記載の持続的コンピュータ可読媒体。
  20. 前記電子ファイルにリモートアクセスすることをさらに含み、
    該リモートアクセスは、リモートコンピューティングデバイスにおいて、前記クラウドストレージレイヤから前記電子ファイルを検索することを含む、請求項12に記載の持続性コンピュータ可読媒体。
  21. 前記メタデータは、前記電子ファイルに係るバージョン情報、アクセス情報、許可情報、及び論理ドライブパス情報のうちの1つ以上をさらに含む、請求項12に記載の持続性コンピュータ可読媒体。
  22. 前記電子ファイルを暗号化することをさらに含む、請求項12に記載の持続性コンピュータ可読媒体。
  23. ネットワークに通信可能に接続され、1つ以上のプロセッサ及び1つ以上のストレージデバイスとそれぞれ関連付けられている複数のコンピューティングデバイスと、
    前記複数のコンピューティングデバイスのそれぞれの1つ以上のストレージデバイスのポーションを含む分散ストレージレイヤと、
    コンピューティングデバイスのそれぞれの1つ以上のストレージデバイス上に定義されるローカルストレージレイヤであって、該ローカルストレージレイヤ及び前記分散ストレージレイヤに格納された電子ファイルのポーションの位置を示すポインタを有するメタデータが格納されているローカルストレージレイヤと
    を備え、
    前記各コンピューティングデバイスの1つ以上のプロセッサは、前記1つ以上のコンピューティングデバイスの他のコンピューティングデバイスと、ネットワークを介して、通信するように構成され、第1のコンピューティングデバイスの前記ローカルストレージレイヤに格納されている電子ファイルのポーションが、前記分散ストレージレイヤの前記他のコンピューティングデバイスにまたがって非同期的に格納され、
    前記各コンピューティングデバイスの1つ以上のプロセッサは、クラウドストレージレイヤと、ネットワークを介して、通信するように構成され、前記分散ストレージレイヤに格納されている前記電子ファイルが前記クラウドストレージレイヤに非同期にミラーリングされる分散ストレージシステム。
  24. 前記各コンピューティングデバイスの1つ以上のプロセッサは、前記コンピューティングデバイスのうちの1のコンピューティングデバイスと結び付けられる表示デバイスに、前記分散ストレージレイヤに格納されている前記電子ファイルを、単一の論理ドライブに格納されているかのように表示するように構成される、請求項23に記載のシステム。
  25. 前記複数のコンピューティングデバイスは、1つ以上のデスクトップコンピュータ、ラップトップコンピュータ、又はハンドヘルドコンピューティングデバイスを含む、請求項23に記載のシステム。
  26. 前記ネットワークは、1つ以上の有線LAN、無線LAN、イントラネット、又はインターネットを含む、請求項23に記載のシステム。
  27. 前記第1のコンピューティングデバイスの1つ以上のプロセッサは、さらに、
    前記電子ファイルを固定長又は可変長のポーションに分割し、ネットワークを介して、前記他のコンピューティングデバイスの前記ストレージデバイス上に、前記ポーションをハッシュ化し、前記ハッシュ化されたポーションの位置を示すポインタを含むように前記メタデータをアップデートし、ネットワークを介して、ゴシッププロトコルを用いて前記他のコンピューティングデバイスに前記メタデータを送信し、前記電子ファイルのポーションが前記分散ストレージレイヤの前記他のコンピューティングデバイスにまたがって非同期的に格納されるように構成される、請求項23に記載のシステム。
  28. 前記複数のコンピューティングデバイスのそれぞれの1つ以上のプロセッサは、さらに、
    さらなるハッシュ化を通じて、1つ以上の他のコンピューティングデバイス上に、前記ハッシュ化されたポーションを複製するように構成される、請求項27に記載のシステム。
  29. 第1のコンピューティングデバイスの1つ以上のプロセッサは、さらに、
    前記電子ファイルの編集済みバージョンを前記電子ファイルと比較し、前記電子ファイルの固定長又は可変長の編集済みポーションを生成することによって前記編集済みバージョンを格納し、ネットワークを介して、前記他のコンピューティングデバイスの前記ストレージデバイス上に前記編集済みファイルをハッシュ化し、前記電子ファイルの編集済みバージョンに対して、前記電子ファイルの変更されていないポーションを示すポインタと、前記編集済みポーションの位置を示すポインタとを含むように、前記メタデータをアップデートするように構成される、請求項27に記載のシステム。
  30. 第2のコンピューティングデバイスの前記1つ以上のプロセッサは、さらに、
    前記メタデータから前記電子ファイルのポーションの位置を決定し、ネットワークを介して、該位置から前記電子ファイルの前記ポーションを検索し、前記ローカルストレージレイヤ上に、前記検索されたポーションを組合せ、かつ、格納することによって、前記電子ファイルを検索するように構成される、請求項23に記載のシステム。
  31. 前記クラウドストレージレイヤから前記電子ファイルを検索することによって、前記電子ファイルにリモートアクセスするように構成される、請求項23に記載のシステム。
  32. 前記メタデータは、前記電子ファイルに係るバージョン情報、アクセス情報、許可情報、及び論理ドライブパス情報のうちの1つ以上をさらに含む、請求項23に記載のシステム。
  33. 前記複数のコンピューティングデバイスのそれぞれの1つ以上のプロセッサは、さらに、前記電子ファイルを暗号化するように構成される、請求項23に記載のシステム。
JP2015511689A 2012-05-10 2013-05-09 分散ストレージシステム及び分散ストレージの方法 Expired - Fee Related JP6151353B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261645505P 2012-05-10 2012-05-10
US201261645508P 2012-05-10 2012-05-10
US61/645,508 2012-05-10
US61/645,505 2012-05-10
PCT/US2013/040299 WO2013169997A2 (en) 2012-05-10 2013-05-09 Systems and methods for distributed storage

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2017102549A Division JP2017168135A (ja) 2012-05-10 2017-05-24 分散ストレージシステム及び分散ストレージの方法

Publications (2)

Publication Number Publication Date
JP2015523625A true JP2015523625A (ja) 2015-08-13
JP6151353B2 JP6151353B2 (ja) 2017-06-21

Family

ID=49549456

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2015511689A Expired - Fee Related JP6151353B2 (ja) 2012-05-10 2013-05-09 分散ストレージシステム及び分散ストレージの方法
JP2017102549A Pending JP2017168135A (ja) 2012-05-10 2017-05-24 分散ストレージシステム及び分散ストレージの方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2017102549A Pending JP2017168135A (ja) 2012-05-10 2017-05-24 分散ストレージシステム及び分散ストレージの方法

Country Status (11)

Country Link
US (2) US9542466B2 (ja)
EP (2) EP2847694B1 (ja)
JP (2) JP6151353B2 (ja)
CN (1) CN104885076B (ja)
BR (1) BR112014027966A2 (ja)
CA (1) CA2873289A1 (ja)
ES (1) ES2658993T3 (ja)
IL (1) IL235587A0 (ja)
IN (1) IN2014DN10026A (ja)
PL (1) PL2847694T3 (ja)
WO (1) WO2013169997A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017151552A (ja) * 2016-02-22 2017-08-31 株式会社croco ネットワーク通信システム
JP2020166878A (ja) * 2016-02-22 2020-10-08 株式会社croco ネットワーク通信システム

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9542466B2 (en) * 2012-05-10 2017-01-10 Aetherstore Inc. Systems and methods for distributed storage
US9870374B2 (en) 2012-08-31 2018-01-16 Microsoft Technology Licensing, Llc Replicating data across data centers
US20140195516A1 (en) * 2013-01-09 2014-07-10 Dropbox, Inc. Systems and methods for presenting content items in a collections view
US9159149B2 (en) * 2013-03-14 2015-10-13 Interntional Business Machines Corporation Visualizing data transfers in distributed file system
US9311326B2 (en) * 2013-04-12 2016-04-12 Alterante, Inc. Virtual file system for automated data replication and review
US10095704B2 (en) 2014-08-26 2018-10-09 Ctera Networks, Ltd. Method and system for routing data flows in a cloud storage system
US10594681B2 (en) 2014-10-30 2020-03-17 Lenovo (Singapore) Pte. Ltd. Aggregate service with user interface
CN114356651A (zh) 2015-05-27 2022-04-15 谷歌有限责任公司 用于移动设备上的自动基于云的全数据备份和恢复的系统和方法
US10887371B2 (en) * 2015-09-14 2021-01-05 Google Llc Systems and methods for content storage and retrieval
CN105608193B (zh) * 2015-12-23 2019-03-26 深信服科技股份有限公司 分布式文件系统的数据管理方法和装置
CN105740048B (zh) * 2016-01-26 2019-03-08 华为技术有限公司 一种镜像管理方法、装置及系统
CN107340971B (zh) * 2016-04-28 2019-05-07 优刻得科技股份有限公司 一种数据存储与恢复架构与方法
CN107423301B (zh) * 2016-05-24 2021-02-23 华为技术有限公司 一种数据处理的方法、相关设备及存储系统
CN105915542A (zh) * 2016-06-08 2016-08-31 惠众商务顾问(北京)有限公司 基于随机指令分布式云认证系统、装置及方法
CN109074295B (zh) * 2016-07-29 2022-07-05 惠普发展公司,有限责任合伙企业 具有真实性的数据恢复
US10209901B2 (en) * 2017-01-04 2019-02-19 Walmart Apollo, Llc Systems and methods for distributive data storage
US11210270B2 (en) * 2017-03-09 2021-12-28 Microsoft Technology Licensing, Llc Mapping storage across storage providers
CN108667884B (zh) * 2017-04-01 2021-01-05 华为技术有限公司 镜像分发方法、镜像获取方法及装置
US11635908B2 (en) * 2017-06-22 2023-04-25 Adobe Inc. Managing digital assets stored as components and packaged files
US10970302B2 (en) 2017-06-22 2021-04-06 Adobe Inc. Component-based synchronization of digital assets
US10831719B2 (en) * 2017-08-29 2020-11-10 Western Digital Technologies, Inc. File consistency in shared storage using partial-edit files
CN108182244B (zh) * 2017-12-28 2019-04-05 清华大学 一种基于多层次列式存储结构的时序数据存储方法
US10705752B2 (en) * 2018-02-12 2020-07-07 International Business Machines Corporation Efficient data migration in hierarchical storage management system
US11308194B2 (en) * 2018-10-31 2022-04-19 Seagate Technology Llc Monitoring device components using distributed ledger
US11620477B2 (en) 2019-06-03 2023-04-04 Cerebri AI Inc. Decoupled scalable data engineering architecture
US11789617B2 (en) * 2021-06-29 2023-10-17 Acronis International Gmbh Integration of hashgraph and erasure coding for data integrity
KR102673726B1 (ko) * 2023-07-28 2024-06-10 주식회사 워크스타일 분산 저장 자동 버전 관리 시스템

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060230076A1 (en) * 2005-04-08 2006-10-12 Microsoft Corporation Virtually infinite reliable storage across multiple storage devices and storage services
JP2007073004A (ja) * 2005-09-09 2007-03-22 Canon Inc データ保全情報装置、分散ストレージシステム及びその方法
WO2010114777A2 (en) * 2009-04-03 2010-10-07 Microsoft Corporation Differential file and system restores from peers and the cloud
US20100332454A1 (en) * 2009-06-30 2010-12-30 Anand Prahlad Performing data storage operations with a cloud environment, including containerized deduplication, data pruning, and data transfer
WO2012024801A1 (en) * 2010-08-25 2012-03-01 Rayan Zachariassen Method and system for cache tiering
WO2012053156A1 (ja) * 2010-10-22 2012-04-26 株式会社インテック ストレージサービス提供装置、システム、サービス提供方法、及びサービス提供プログラム

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6098078A (en) * 1995-12-29 2000-08-01 Lucent Technologies Inc. Maintaining consistency of database replicas
US5765171A (en) * 1995-12-29 1998-06-09 Lucent Technologies Inc. Maintaining consistency of database replicas
US6697846B1 (en) 1998-03-20 2004-02-24 Dataplow, Inc. Shared file system
US20020138362A1 (en) 2001-03-21 2002-09-26 Kitze Christopher Allin Digital file marketplace
US7016901B2 (en) 2001-07-31 2006-03-21 Ideal Scanners & Systems, Inc. System and method for distributed database management of graphic information in electronic form
US20040122917A1 (en) 2002-12-18 2004-06-24 Menon Jaishankar Moothedath Distributed storage system for data-sharing among client computers running defferent operating system types
US20060230039A1 (en) * 2005-01-25 2006-10-12 Markmonitor, Inc. Online identity tracking
WO2006094271A2 (en) * 2005-03-02 2006-09-08 Markmonitor, Inc. Distribution of trust data
US20060218160A1 (en) * 2005-03-24 2006-09-28 Computer Associates Think, Inc. Change control management of XML documents
US8782047B2 (en) * 2009-10-30 2014-07-15 Hitachi Data Systems Corporation Fixed content storage within a partitioned content platform using namespaces
US9015181B2 (en) 2008-09-26 2015-04-21 Commvault Systems, Inc. Systems and methods for managing single instancing data
US8341229B2 (en) * 2008-11-25 2012-12-25 Red Hat, Inc. IMAP fetch diff
US8762642B2 (en) 2009-01-30 2014-06-24 Twinstrata Inc System and method for secure and reliable multi-cloud data replication
US20100318759A1 (en) * 2009-06-15 2010-12-16 Microsoft Corporation Distributed rdc chunk store
US8375223B2 (en) * 2009-10-30 2013-02-12 Red Hat, Inc. Systems and methods for secure distributed storage
US9021046B2 (en) * 2010-01-15 2015-04-28 Joyent, Inc Provisioning server resources in a cloud resource
US8429651B2 (en) * 2010-01-20 2013-04-23 International Business Machines Corporation Enablement and acceleration of live and near-live migration of virtual machines and their associated storage across networks
WO2011133917A2 (en) * 2010-04-23 2011-10-27 Datcard Systems, Inc. Event notification in interconnected content-addressable storage systems
US8799414B2 (en) * 2010-05-03 2014-08-05 Panzura, Inc. Archiving data for a distributed filesystem
WO2011153386A1 (en) * 2010-06-02 2011-12-08 Mccrory Dave D Cloud resource proxy with attribute mirroring
CN101980192B (zh) * 2010-10-15 2014-03-12 中兴通讯股份有限公司南京分公司 一种基于对象的集群文件系统管理方法及集群文件系统
US9357331B2 (en) * 2011-04-08 2016-05-31 Arizona Board Of Regents On Behalf Of Arizona State University Systems and apparatuses for a secure mobile cloud framework for mobile computing and communication
US9262498B2 (en) * 2011-05-27 2016-02-16 Red Hat, Inc. Generating optimized host placement of data payload in cloud-based storage network
US9542466B2 (en) * 2012-05-10 2017-01-10 Aetherstore Inc. Systems and methods for distributed storage

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060230076A1 (en) * 2005-04-08 2006-10-12 Microsoft Corporation Virtually infinite reliable storage across multiple storage devices and storage services
JP2007073004A (ja) * 2005-09-09 2007-03-22 Canon Inc データ保全情報装置、分散ストレージシステム及びその方法
WO2010114777A2 (en) * 2009-04-03 2010-10-07 Microsoft Corporation Differential file and system restores from peers and the cloud
JP2012523044A (ja) * 2009-04-03 2012-09-27 マイクロソフト コーポレーション ピア及びクラウドからの差分ファイル及びシステムの復元
US20100332454A1 (en) * 2009-06-30 2010-12-30 Anand Prahlad Performing data storage operations with a cloud environment, including containerized deduplication, data pruning, and data transfer
WO2012024801A1 (en) * 2010-08-25 2012-03-01 Rayan Zachariassen Method and system for cache tiering
JP2013536515A (ja) * 2010-08-25 2013-09-19 ネヴェックス ヴァーチャル テクノロジーズ インコーポレイテッド キャッシュ階層化のための方法およびシステム
WO2012053156A1 (ja) * 2010-10-22 2012-04-26 株式会社インテック ストレージサービス提供装置、システム、サービス提供方法、及びサービス提供プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017151552A (ja) * 2016-02-22 2017-08-31 株式会社croco ネットワーク通信システム
JP2020166878A (ja) * 2016-02-22 2020-10-08 株式会社croco ネットワーク通信システム

Also Published As

Publication number Publication date
EP3258369A1 (en) 2017-12-20
US20170075971A1 (en) 2017-03-16
EP3258369B1 (en) 2019-08-14
EP2847694B1 (en) 2017-11-08
EP2847694A2 (en) 2015-03-18
WO2013169997A3 (en) 2015-05-28
BR112014027966A2 (pt) 2017-07-18
PL2847694T3 (pl) 2018-06-29
JP2017168135A (ja) 2017-09-21
IN2014DN10026A (ja) 2015-08-14
US20130304706A1 (en) 2013-11-14
CN104885076B (zh) 2018-06-05
CA2873289A1 (en) 2013-11-14
WO2013169997A9 (en) 2013-12-05
US9542466B2 (en) 2017-01-10
JP6151353B2 (ja) 2017-06-21
IL235587A0 (en) 2015-01-29
CN104885076A (zh) 2015-09-02
EP2847694A4 (en) 2016-08-03
ES2658993T3 (es) 2018-03-13
WO2013169997A2 (en) 2013-11-14

Similar Documents

Publication Publication Date Title
JP6151353B2 (ja) 分散ストレージシステム及び分散ストレージの方法
US11086730B2 (en) Snapshot management
JP5608811B2 (ja) 情報処理システムの管理方法、及びデータ管理計算機システム
JP6479020B2 (ja) 分散ストレージシステムにおけるオブジェクトの階層チャンキング
JP5775177B2 (ja) クローンファイル作成方法と、それを用いたファイルシステム
US10002048B2 (en) Point-in-time snap copy management in a deduplication environment
US9684571B2 (en) Namespace mirroring in an expandable storage volume
EP1522926B1 (en) Systems and methods for backing up data files
JP4454342B2 (ja) ストレージシステム及びストレージシステムの制御方法
US9031906B2 (en) Method of managing data in asymmetric cluster file system
US8661055B2 (en) File server system and storage control method
US20140195575A1 (en) Data file handling in a network environment and independent file server
TW201227291A (en) Data deduplication
US10860226B2 (en) Systems and methods of synchronizing configuration information in a clustered storage environment
JP2015035020A (ja) ストレージシステム、ストレージ制御装置及び制御プログラム
US20120311002A1 (en) Computer and data management method by the computer
JP5963324B2 (ja) 仮想シーケンシャルアクセスボリュームのデータのコピー方法、システム
US9390093B1 (en) Managing data objects
JP2016042341A (ja) バックアップシステム
JP2015194973A (ja) 分散ファイルシステム、バックアップファイル取得方法、制御装置及び管理装置
JP2012508411A (ja) デジタルデータ集合の仮想ストレージ方法および仮想ストレージシステム
Kumar et al. A Comparative Analysis and Survey on Dynamic Data Deduplication in Cloud

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160428

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170417

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: 20170425

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170524

R150 Certificate of patent or registration of utility model

Ref document number: 6151353

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees