(57)【要約】ネットワークに接続される複数のコンピューティングデバイスを用いた分散ストレージ技術は、コンピューティングデバイスの１つのローカルストレージレイヤに電子ファイルを格納することを含む。格納された電子ファイルは、ネットワークを越えて他のコンピューティングデバイスに部分的に非同期的に送信され、分散ストレージレイヤの他のコンピューティングデバイスにまたがって格納される。電子ファイルは、ネットワークを越えて送信され、クラウドストレージレイヤにミラーリングされる。各コンピューティングデバイスのローカルストレージレイヤは、分散ストレージレイヤに格納された各電子ファイルに対して、ローカルストレージレイヤ及び分散ストレージレイヤに格納された電子ファイルのポーションの位置を示すポインタを有するメタデータを格納する。分散ストレージレイヤに格納された電子ファイルは、単一論理ドライブに格納されているかのように表示される。【選択図】図１Ａ
2015523625.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して通信可能に接続された複数のコンピューティングデバイスを用いる分散ストレージの方法であって、
前記複数のコンピューティングデバイスのうちの１つのコンピューティングデバイスのローカルストレージレイヤに電子ファイルを格納することと、
前記複数のコンピューティングデバイスのうちの１つのコンピューティングデバイスの前記ローカルストレージレイヤに格納された前記電子ファイルを、前記複数のコンピューティングデバイスの他のコンピューティングデバイスに向けて、ネットワークを介して、ポーション毎に、非同期的に送信し、前記電子ファイルを分散ストレージレイヤの他のコンピューティングデバイスに横断的に格納することと、
前記電子ファイルを、前記クラウドストレージレイヤに向けて、前記ネットワークを介して非同期的に送信し、前記電子ファイルをクラウドストレージレイヤにミラーリングすることと、
前記ローカルストレージレイヤ及び前記分散ストレージレイヤに格納された前記電子ファイルのポーションの位置を示すポインタを有するメタデータを、前記分散ストレージレイヤに格納された電子ファイルのそれぞれに対して、前記複数のコンピューティングデバイスのそれぞれの前記ローカルストレージレイヤに格納することと
を含む分散ストレージの方法。
【請求項２】
前記コンピューティングデバイスのうちの１つのコンピューティングデバイスと結び付けられる表示デバイスに、前記分散ストレージレイヤに格納されている前記電子ファイルを、単一の論理ドライブに格納されているかのように表示することをさらに含む、請求項１に記載の方法。
【請求項３】
前記複数のコンピューティングデバイスは、１つ以上のデスクトップコンピュータ、ラップトップコンピュータ、又はハンドヘルドコンピューティングデバイスを含む、請求項１に記載の方法。
【請求項４】
前記ネットワークは、１つ以上の有線ＬＡＮ、無線ＬＡＮ、イントラネット、又はインターネットを含む、請求項１に記載の方法。
【請求項５】
前記ローカルストレージレイヤに格納された前記電子ファイルの非同期的な送信は、
前記電子ファイルを固定長又は可変長のポーションに分割することと、
ネットワークを介して、前記他のコンピューティングデバイスの前記ストレージデバイス上に、前記ポーションをハッシュ化することと、
前記ハッシュ化されたポーションの位置を示すポインタを含むように前記メタデータをアップデートすることと、
ネットワークを介して、ゴシッププロトコルを用いて前記他のコンピューティングデバイスに前記メタデータを送信することとを含む、請求項１に記載の方法。
【請求項６】
さらなるハッシュ化を通じて、１つ以上の他のコンピューティングデバイス上に、前記ハッシュ化されたポーションを複製することをさらに含む、請求項５に記載の方法。
【請求項７】
前記電子ファイルの編集済みバージョンを格納することをさらに含み、
該格納は、前記複数のコンピューティングデバイスのうちの１のコンピューティングデバイスにおいて、
前記編集済みバージョンと前記電子ファイルとを比較し、前記電子ファイルの固定長又は可変長の編集済みポーションを生成することと、
ネットワークを介して、前記他のコンピューティングデバイスの前記ストレージデバイス上に前記編集済みファイルをハッシュ化することと、
前記電子ファイルの編集済みバージョンに対して、前記電子ファイルの変更されていないポーションを示すポインタと、前記編集済みポーションの位置を示すポインタとを含むように、前記メタデータをアップデートすることとを含む、請求項５に記載の方法。
【請求項８】
前記複数のコンピューティングデバイスのうちの１つのコンピューティングデバイスにおいて、前記電子ファイルを検索することをさらに含み、
該検索は、
前記メタデータから前記電子ファイルのポーションの位置を決定することと、
ネットワークを介して、該位置から前記電子ファイルの前記ポーションを検索することと、
前記ローカルストレージレイヤ上で、前記検索されたポーションを組合せ、かつ、格納することとを含む、請求項１に記載の方法。
【請求項９】
前記電子ファイルにリモートアクセスすることをさらに含み、
該リモートアクセスは、リモートコンピューティングデバイスにおいて、前記クラウドストレージレイヤから前記電子ファイルを検索することを含む、請求項１に記載の方法。
【請求項１０】
前記メタデータは、前記電子ファイルに係るバージョン情報、アクセス情報、許可情報、及び論理ドライブパス情報のうちの１つ以上をさらに含む、請求項１に記載の方法。
【請求項１１】
前記電子ファイルを暗号化することをさらに含む、請求項１に記載の方法。
【請求項１２】
実行された場合、１つ以上のコンピュータデバイスに、ネットワークを介して通信可能に接続された複数のコンピューティングデバイスを用いる分散ストレージの方法を実行させるコンピュータ実行可能な命令を含む持続的コンピュータ可読媒体であって、
前記方法は、
前記複数のコンピューティングデバイスのうちの１つのコンピューティングデバイスのローカルストレージレイヤに電子ファイルを格納することと、
前記複数のコンピューティングデバイスのうちの１つのコンピューティングデバイスの前記ローカルストレージレイヤに格納された前記電子ファイルを、前記複数のコンピューティングデバイスの他のコンピューティングデバイスに向けて、ネットワークを介して、ポーション毎に、非同期的に送信し、前記電子ファイルを分散ストレージレイヤの他のコンピューティングデバイスに横断的に格納することと、
前記電子ファイルを、前記クラウドストレージレイヤに向けて、前記ネットワークを介してを非同期的に送信し、前記電子ファイルをクラウドストレージレイヤにミラーリングすることと、
前記ローカルストレージレイヤ及び前記分散ストレージレイヤに格納された前記電子ファイルのポーションの位置を示すポインタを有するメタデータを、前記分散ストレージレイヤに格納された電子ファイルのそれぞれに対して、前記複数のコンピューティングデバイスのそれぞれの前記ローカルストレージレイヤに格納することと
を含む持続的コンピュータ可読媒体。
【請求項１３】
前記コンピューティングデバイスのうちの１つのコンピューティングデバイスと結び付けられる表示デバイスに、前記分散ストレージレイヤに格納されている前記電子ファイルを、単一の論理ドライブに格納されているかのように表示することをさらに含む、請求項１２に記載の持続的コンピュータ可読媒体。
【請求項１４】
前記複数のコンピューティングデバイスは、１つ以上のデスクトップコンピュータ、ラップトップコンピュータ、又はハンドヘルドコンピューティングデバイスを含む、請求項１２に記載の持続的コンピュータ可読媒体。
【請求項１５】
前記ネットワークは、１つ以上の有線ＬＡＮ、無線ＬＡＮ、イントラネット、又はインターネットを含む、請求項１２に記載の持続的コンピュータ可読媒体。
【請求項１６】
前記ローカルストレージレイヤに格納された前記電子ファイルの非同期的な送信は、
前記電子ファイルを固定長又は可変長のポーションに分割することと、
ネットワークを介して、前記他のコンピューティングデバイスの前記ストレージデバイス上に、前記ポーションをハッシュ化することと、
前記ハッシュ化されたポーションの位置を示すポインタを含むように前記メタデータをアップデートすることと、
ネットワークを介して、ゴシッププロトコルを用いて前記他のコンピューティングデバイスに前記メタデータを送信することとを含む、請求項１２に記載の持続的コンピュータ可読媒体。
【請求項１７】
さらなるハッシュ化を通じて、１つ以上の他のコンピューティングデバイス上に、前記ハッシュ化されたポーションを複製することをさらに含む、請求項１６に記載の持続的コンピュータ可読媒体。
【請求項１８】
前記電子ファイルの編集済みバージョンを格納することをさらに含み、
該格納は、前記複数のコンピューティングデバイスのうちの１のコンピューティングデバイスにおいて、
前記編集済みバージョンと前記電子ファイルとを比較し、前記電子ファイルの固定長又は可変長の編集済みポーションを生成することと、
ネットワークを介して、前記他のコンピューティングデバイスの前記ストレージデバイス上に前記編集済みファイルをハッシュ化することと、
前記電子ファイルの編集済みバージョンに対して、前記電子ファイルの変更されていないポーションを示すポインタと、前記編集済みポーションの位置を示すポインタとを含むように、前記メタデータをアップデートすることとを含む、請求項１６に記載の持続的コンピュータ可読媒体。
【請求項１９】
前記複数のコンピューティングデバイスのうちの１つのコンピューティングデバイスにおいて、前記電子ファイルを検索することをさらに含み、
該検索は、
前記メタデータから前記電子ファイルのポーションの位置を決定することと、
ネットワークを介して、該位置から前記電子ファイルの前記ポーションを検索することと、
前記ローカルストレージレイヤ上で、前記検索されたポーションを組合せ、かつ、格納することとを含む、請求項１２に記載の持続的コンピュータ可読媒体。
【請求項２０】
前記電子ファイルにリモートアクセスすることをさらに含み、
該リモートアクセスは、リモートコンピューティングデバイスにおいて、前記クラウドストレージレイヤから前記電子ファイルを検索することを含む、請求項１２に記載の持続性コンピュータ可読媒体。
【請求項２１】
前記メタデータは、前記電子ファイルに係るバージョン情報、アクセス情報、許可情報、及び論理ドライブパス情報のうちの１つ以上をさらに含む、請求項１２に記載の持続性コンピュータ可読媒体。
【請求項２２】
前記電子ファイルを暗号化することをさらに含む、請求項１２に記載の持続性コンピュータ可読媒体。
【請求項２３】
ネットワークに通信可能に接続され、１つ以上のプロセッサ及び１つ以上のストレージデバイスとそれぞれ関連付けられている複数のコンピューティングデバイスと、
前記複数のコンピューティングデバイスのそれぞれの１つ以上のストレージデバイスのポーションを含む分散ストレージレイヤと、
コンピューティングデバイスのそれぞれの１つ以上のストレージデバイス上に定義されるローカルストレージレイヤであって、該ローカルストレージレイヤ及び前記分散ストレージレイヤに格納された電子ファイルのポーションの位置を示すポインタを有するメタデータが格納されているローカルストレージレイヤと
を備え、
前記各コンピューティングデバイスの１つ以上のプロセッサは、前記１つ以上のコンピューティングデバイスの他のコンピューティングデバイスと、ネットワークを介して、通信するように構成され、第１のコンピューティングデバイスの前記ローカルストレージレイヤに格納されている電子ファイルのポーションが、前記分散ストレージレイヤの前記他のコンピューティングデバイスにまたがって非同期的に格納され、
前記各コンピューティングデバイスの１つ以上のプロセッサは、クラウドストレージレイヤと、ネットワークを介して、通信するように構成され、前記分散ストレージレイヤに格納されている前記電子ファイルが前記クラウドストレージレイヤに非同期にミラーリングされる分散ストレージシステム。
【請求項２４】
前記各コンピューティングデバイスの１つ以上のプロセッサは、前記コンピューティングデバイスのうちの１のコンピューティングデバイスと結び付けられる表示デバイスに、前記分散ストレージレイヤに格納されている前記電子ファイルを、単一の論理ドライブに格納されているかのように表示するように構成される、請求項２３に記載のシステム。
【請求項２５】
前記複数のコンピューティングデバイスは、１つ以上のデスクトップコンピュータ、ラップトップコンピュータ、又はハンドヘルドコンピューティングデバイスを含む、請求項２３に記載のシステム。
【請求項２６】
前記ネットワークは、１つ以上の有線ＬＡＮ、無線ＬＡＮ、イントラネット、又はインターネットを含む、請求項２３に記載のシステム。
【請求項２７】
前記第１のコンピューティングデバイスの１つ以上のプロセッサは、さらに、
前記電子ファイルを固定長又は可変長のポーションに分割し、ネットワークを介して、前記他のコンピューティングデバイスの前記ストレージデバイス上に、前記ポーションをハッシュ化し、前記ハッシュ化されたポーションの位置を示すポインタを含むように前記メタデータをアップデートし、ネットワークを介して、ゴシッププロトコルを用いて前記他のコンピューティングデバイスに前記メタデータを送信し、前記電子ファイルのポーションが前記分散ストレージレイヤの前記他のコンピューティングデバイスにまたがって非同期的に格納されるように構成される、請求項２３に記載のシステム。
【請求項２８】
前記複数のコンピューティングデバイスのそれぞれの１つ以上のプロセッサは、さらに、
さらなるハッシュ化を通じて、１つ以上の他のコンピューティングデバイス上に、前記ハッシュ化されたポーションを複製するように構成される、請求項２７に記載のシステム。
【請求項２９】
第１のコンピューティングデバイスの１つ以上のプロセッサは、さらに、
前記電子ファイルの編集済みバージョンを前記電子ファイルと比較し、前記電子ファイルの固定長又は可変長の編集済みポーションを生成することによって前記編集済みバージョンを格納し、ネットワークを介して、前記他のコンピューティングデバイスの前記ストレージデバイス上に前記編集済みファイルをハッシュ化し、前記電子ファイルの編集済みバージョンに対して、前記電子ファイルの変更されていないポーションを示すポインタと、前記編集済みポーションの位置を示すポインタとを含むように、前記メタデータをアップデートするように構成される、請求項２７に記載のシステム。
【請求項３０】
第２のコンピューティングデバイスの前記１つ以上のプロセッサは、さらに、
前記メタデータから前記電子ファイルのポーションの位置を決定し、ネットワークを介して、該位置から前記電子ファイルの前記ポーションを検索し、前記ローカルストレージレイヤ上に、前記検索されたポーションを組合せ、かつ、格納することによって、前記電子ファイルを検索するように構成される、請求項２３に記載のシステム。
【請求項３１】
前記クラウドストレージレイヤから前記電子ファイルを検索することによって、前記電子ファイルにリモートアクセスするように構成される、請求項２３に記載のシステム。
【請求項３２】
前記メタデータは、前記電子ファイルに係るバージョン情報、アクセス情報、許可情報、及び論理ドライブパス情報のうちの１つ以上をさらに含む、請求項２３に記載のシステム。
【請求項３３】
前記複数のコンピューティングデバイスのそれぞれの１つ以上のプロセッサは、さらに、前記電子ファイルを暗号化するように構成される、請求項２３に記載のシステム。
【発明の詳細な説明】
【関連する出願との相互参照】
【０００１】
本出願は、米国特許仮出願第６１／６４５，５０５号（２０１２年５月１０日出願）及び米国特許仮出願第６１／６４５，５０８号（２０１２年５月１０日出願）に関連するものであり、これらのそれぞれの全体を、参照により本明細書に援用するとともに、これら出願からの優先権を主張する。
【技術分野】
【０００２】
本発明は、ローカルストレージレイヤ、分散ストレージレイヤ、及びクラウドストレージレイヤを含む分散ストレージの技術に関する。
【背景技術】
【０００３】
従来のセキュアなデータストレージソリューションは、使用や維持が難しいことがある。ＩＴハードウェアやＩＴスタッフは、コストがかかり、定期的に失敗を犯しうる。そのような失敗はデータロスという結果を招きうる。また、ある種のデータストレージソリューションに関して、データにリモートアクセスすることが困難であったり不可能であったりしうる。
【０００４】
従来のデータストレージ製品は、「ローカルストレージ」、「ネットワークストレージサーバ」、「Ｗｅｂベースのストレージサービス」、及び「分散ストレージシステム」に分類することができる。それぞれの分類は、中小規模オフィス環境向けストレージの信頼性、拡張性、安全性、及び耐障害性に関して、それぞれ長所と短所とを有している。デスクトップコンピュータのローカルハードディスクドライブは、ファイルを格納する一般的な領域である。ローカルストレージは高性能の読み書きの時間及び有形の安全感を提供するが、ディスクに障害が発生し、ディスクが破壊され、あるいはデータが偶発的に又は故意に上書きされると、データはもはや存在しなくなる。さらに、ハードディスクドライブがいっぱいになった場合、ユーザは手動でストレージ容量の管理を試みることになり、ファイルを消去したり、他のコンピュータへのデータ転送を試みたりするが、処理には時間がかかるし、熟練も必要である。同僚との手動でのファイル共有は、整合がとれない複数のバージョンのファイルを生み出すことになりうるし、ｅメールでファイル送信するのは安全でない場合がある。
【０００５】
ネットワークストレージサーバを用いて、組織内のユーザに対して共有ストレージ空間を提供することができる。商用ネットワークストレージサーバは、ローレンジやミドルレンジの「ボックス・イン・ザ・クローゼット」アプローチ（ネットワークアタッチストレージ又はＮＡＳと呼ばれる）から、ブレードサーバと冗長ディスクアレイ（例えば、ＲＡＩＤ）が集積されたハイエンドのファイバーチャネルストレージエリアネットワーク（ＳＡＮｓ）まである。ネットワークストレージサーバは、ユーザに共有の大容量ストレージを提供するが、それにもかかわらず集中型ストレージの周知の多数の問題の多くに悩まされうる。すなわち、サーバが故障したり、改ざんされたり、ハッキングされたり、盗難されたりしうるし、火事で破壊されたり、コーヒーにより破損したりしうるし、ユーザが、依然として誤ってファイルの上書きや消去をしてしまう可能性があり、全データがデスクトップＰＣのハードディスクドライブ上と同じ方法で保存されている。
【０００６】
離れた場所にデータを複製すること、冗長ディスクアレイ及び暗号化を利用することを含むある種の技術がこれらの問題を改善するために知られているものの、かかる技術には、認証されていないアクセスが発生しうる場所の増加、コスト増加、複雑化、スピードや快適さの減少を含む様々な欠点が依然として含まれる。加えて、ネットワークストレージサーバはファイル共有と大容量ストレージを提供するが、それらは維持管理にコストがかかる。
【０００７】
Ｗｅｂベースのデータストレージサービスは、インターネットを通じたデータのバックアップやデータの格納のためのあまり費用のかからない手段を提供する。そのようなサービスの例は、Ａｍａｚｏｎ社のＳ３、Ａｐｐｌｅ社のｉＤｉｓｋ、ＥＭＣ社のＭｏｚｙ、Ｐｒｏ  ＳｏｆｔＮｅｔ社のｉＤｒｉｖｅである。しかしながら、たとえば、第三者で格納されたデータをデジタル検索や差し押さえから保護することがより弱いと認識されているせいで、いくらかのユーザはインターネットを通じて彼らの機密情報を日常的に送信することに慎重である。Ｗｅｂベースのストレージサービスが一般的に信頼のおけるバックアップサービスとして機能するとしても、常時接続で速いインターネット接続が必要となり、日々のファイルアクセスやストレージに対する現実的な代替手段として考慮するには遅すぎる場合がある。
【０００８】
分散ストレージ技術は、多数のマシンに多重にファイルを格納することを含み、データストレージの負荷とリスクを分散している。ファイルのコピーが多数存在するほど、ファイル消失の可能性が低くなる。しかしながら、多数のコピーは盗難される余地がより大きいことを意味するので、暗号化システムが機密データまたは機密環境向けに必要とされうる。さらに、現存している分散ストレージシステムが提供する信頼性及び性能は低レベルである可能性がある。
【０００９】
したがって、分散ストレージ技術をさらに向上させる必要がある。
【発明の概要】
【発明が解決しようとする課題】
【００１０】
本開示事項は、ローカルストレージレイヤ、分散ストレージレイヤ、及びクラウドストレージレイヤを含む分散ストレージの技術に関する。加えて、本開示事項は、トランスペアレントバックアップを有する分散ストレージに対する技術、及び、世界的アクセスと完全に監査可能なバージョン履歴を有するデータの安全性に対する技術に関する。
【課題を解決するための手段】
【００１１】
本開示事項の一態様によれば、ネットワークを介して通信可能に接続された複数のコンピューティングデバイスを用いる分散ストレージの方法は、前記コンピューティングデバイスの１つのローカルストレージレイヤに電子ファイルを格納することを含む。前記電子ファイルを、前記複数のコンピューティングデバイスの他のコンピューティングデバイスに向けて、ネットワークを介してポーション毎に非同期的に送信することができ、これにより、前記電子ファイルを分散ストレージレイヤの他のコンピューティングデバイスに横断的に格納する。前記電子ファイルを、前記クラウドストレージレイヤに向けて、ネットワークを介して非同期的に送信することができ、これにより、前記電子ファイルをクラウドストレージレイヤにミラーリングする。各電子ファイルのメタデータを各コンピューティングデバイスの前記ローカルストレージレイヤに格納することができる。前記メタデータは、前記電子ファイルの前記ポーションが前記ローカルストレージレイヤと前記分散ストレージレイヤとに格納されている位置を示すポインタを含むことができる。前記分散ストレージレイヤに格納されている前記電子ファイルは、単一の論理ドライブに格納されているかの如く表示されうる。
【００１２】
例示的実施形態によれば、コンピューティングデバイスの前記ローカルストレージレイヤに格納されている前記電子ファイルの非同期的な送信には、前記電子ファイルを固定長または可変長のポーションに分割することと、前記ポーションを、前記ネットワークを介して前記他のコンピューティングデバイスの前記ストレージデバイス上でハッシュ化することと、前記ハッシュ化したポーションの格納位置を示すポインタを含むように前記メタデータをアップデートすることと、ゴシッププロトコルを通じて前記他のコンピューティングデバイスに前記メタデータを送信することとを含みうる。また、前記ハッシュ化したポーションをさらにハッシュ化して、１つ以上の他のコンピューティングデバイス上に複製することができる。
【００１３】
例示的実施形態によれば、前記電子ファイルの編集済みバージョンをコンピューティングデバイスに格納することができる。また、前記コンピューティングデバイスは、前記ファイルの編集済みバージョンと前記電子ファイルのオリジナルとを比較し、固定長又は可変長の編集済みポーションを生成することができる。また、前記編集済みポーションは、前記ネットワークを介して前記他のコンピューティングデバイスの前記ストレージデバイス上でハッシュ化され、前記メタデータは、前記ファイルの編集済みバージョンに対して、前記オリジナルファイルの変化していないポーションの格納位置を示すポインタと前記編集済みポーションの格納位置を示すポインタとを含むようにアップデートされうる。
【００１４】
さらに、前記方法は、前記コンピューティングデバイスの１つによって前記電子ファイルを検索することを含みうる。前記コンピューティングデバイスは、ローカルに格納されたメタデータから、前記電子ファイルのポーションが格納されている位置を決定しうる。前記ポーションは、ネットワークを介して前記格納位置から検索され、前記検索されたポーションは組み合わされ、前記コンピューティングデバイスの前記ローカルストレージレイヤに格納されうる。例示的実施形態によれば、前記メタデータは、前記分散システムに格納された電子ファイルに対するバージョン情報、アクセス情報、許可情報、及び論理ドライブパス情報のうちの１つ以上を含みうる。ある実施形態によれば、前記電子ファイルは暗号化されうる。
【００１５】
本開示事項のもう一つの態様によれば、分散ストレージシステムは、複数のコンピューティングデバイスのそれぞれに対するローカルストレージレイヤと、分散ストレージレイヤとを含みうる。前記コンピューティングデバイスは、ネットワークと通信可能に接続され、それぞれのコンピューティングデバイスは１つ以上のプロセッサ及び１つ以上のストレージデバイスと関連付けられており、ここに開示される技術を実施するように適合しうる。例示的実施形態によれば、前記コンピューティングデバイスは、１つ以上のデスクトップコンピュータ、ラップトップコンピュータ、又はハンドヘルドコンピューティングデバイスを含みうる。また、前記ネットワークは有線又は無線のＬＡＮ、イントラネット、又はインターネットとすることができる。
【００１６】
本開示事項の他の態様によれば、ここに開示される技術は、実行時に、ここに開示される機能を１つ以上のプロセッサに行わせるための実行可能なコードを格納する持続的コンピュータ可読媒体として実施することができる。代替的に、ここに開示される方法の全て又は一部を、配線で接続された電気回路単独で、又は、配線で接続された電気回路と実行可能なコードとの組み合わせで、実施することができる。
【００１７】
以上の一般的な説明と以下の詳細な説明とはいずれも例示的なものであり、特許請求の範囲に記載された開示事項に係る説明をさらに提供することを意図するものであることを理解すべきである。
【００１８】
本明細書に組み入れられ、本明細書の一部をなす添付の図面は、本開示事項を図示し、そのさらなる理解を提供するために含まれている。詳細な説明とともに、前記図面は本開示事項の原理を説明している。
【図面の簡単な説明】
【００１９】
【図１Ａ】本開示事項の例示的実施形態における分散ストレージの方法のフロー図を示す。
【図１Ｂ】本開示事項の例示的実施形態における分散ストレージシステムの概要図を示す。
【図２Ａ】本開示事項の例示的実施形態におけるストレージレイヤの概要図を示す。
【図２Ｂ】本開示事項の例示的実施形態におけるストレージレイヤの階層を説明する図である。
【図３】本開示事項の例示的実施形態における分散ストレージシステムに対するリモートアクセスを説明する概略図である。
【図４】本開示事項の例示的実施形態におけるメタデータファイルの図である。
【図５】５Ａは、本開示事項の例示的実施形態におけるハッシュ化された電子ファイルのポーションを示す図である。５Ｂは、本開示事項の例示的実施形態におけるハッシュ化された編集済み電子ファイルのポーションを説明する図である。５Ｃは、本開示事項のもう一つの例示的実施形態におけるハッシュ化された編集済み電子ファイルのポーションを説明する図である。
【図６】本開示事項の例示的実施形態における単一の論理ネットワークドライブの表示を示す図である。
【発明を実施するための形態】
【００２０】
図を通して、別途言及又は指示されていない限りは、同一の参照番号及び参照記号は、図示した実施形態の類似の特徴、要素、部品、または部分を示すように使われている。さらに、図を参照して本開示事項を以下で詳細に説明するが、図示した実施形態に関連してそのように行われるのであり、非限定的であることを意図するものである。
【００２１】
本開示事項に従う例示的ストレージシステムは、３つのストレージ「レイヤ」を含むことができる。３つのストレージレイヤには、システムに接続される各コンピューティングデバイスに対するローカルストレージレイヤ、コンピューティングデバイスをまたがっている分散ストレージレイヤ、及びクラウドストレージレイヤを含むことができる。ストレージシステムは、コンピューティングシステム内の未使用容量を共同利用し、バージョン管理、リモートアクセス、長期間のバックアップをサポートしうる。
【００２２】
本開示事項の例示的実施形態を、限定ではなく例示の目的で、図１−６を参照しつつ、以下で説明する。明確化のために、方法とシステムを同時に、かつ、相互に組み合わせて説明する。方法を示す参照番号は丸括弧（）で括られ、システムを示す参照番号は丸括弧で括られない。
【００２３】
図１Ａ及び図１Ｂを参照して、本開示事項の例示的実施形態によれば、分散ストレージ技術は、ネットワークを介して通信可能に組み合わされた複数のコンピューティングデバイス（例えば、１１１、並びに１２１ａ及び１２１ｂ（まとめて１２１））の使用を含むことができる。コンピューティングデバイス１２１は、例えば、１つ以上のデスクトップコンピュータ、ラップトップコンピュータ、ハンドヘルドコンピューティングデバイス、又はその他の適切なコンピューティングデバイスであってもよい。ネットワークは有線又は無線のＬＡＮ、イントラネット、又はインターネットであってもよい。例えば、コンピューティングデバイス１２１は、オフィス環境内の多数のマシンであってもよく、オフィス環境には、学校、病院、又は当業者にとって自明な他の環境を含むがそれらに限定されない。各コンピューティングデバイスは１つ以上のプロセッサ及びローカルハードディスクドライブのようなストレージデバイスを有し、例えばオペレーティングシステム（例えば、Microsoft Windows, Mac OS, Linux等）及び付随するソフトウェアアプリケーションを含むソフトウェアを有することができる。
【００２４】
コンピューティングデバイス１２１のユーザは、本明細書に開示される技術に従ってファイルを保存し、検索することができる。例えば、コンピューティングデバイス１１１を管理するユーザが電子ファイル１５０を保存することを望む場合、電子ファイル１５０は、最初に、コンピューティングデバイス１１１のうちの１つのローカルストレージレイヤ１１０に格納（１０１）されてもよい。例えば、ローカルストレージレイヤ１１０は、コンピューティングデバイス１１１に関連付けられている、ローカルハードディスクドライブのような１つ以上のストレージデバイス１１２の一部であってもよい。ローカルストレージは、ファイルを保存したユーザによるファイルへの読み書きアクセスを迅速かつ効率的にすることができる。
【００２５】
前述の通り、単にローカルストレージ１１２にファイルを格納することは、多数の欠点を含みうる。したがって、電子ファイル１５０は、ポーション毎に（例えば、１５１ａ〜ｄ、まとめて１５１）、ネットワークを介して、他の複数のコンピューティングデバイス（例えば、１２１ａ及び１２１ｂ）に非同期的に送信され（１０２）、電子ファイル１５０は、他のコンピューティングデバイス１２１にまたがって分散ストレージレイヤ１２０に格納されうる。（例えば中間ストレージレイヤとも称され場合がある）分散ストレージレイヤ１２０は、ワイドエリアネットワーク（ＷＡＮ）やＬＡＮ等を介して接続される複数のマシンにまたがる分散ストレージを含みうる。各マシンは、他のマシンにまたがる分散ストレージに適するように構成されうる。例えば、実行時に、マシンが他のマシンと通信することを可能とするソフトウェアを各マシンにインストールして、特定のファイルを、ＬＡＮ上の複数のマシンにまたがって格納することができる。
【００２６】
さらに電子ファイル１５０を、ネットワークを介してクラウドストレージレイヤ１３０に非同期的に送信して（１０３）、電子ファイル１５０をクラウドストレージレイヤ１３０にミラーリングすることができる。そのような送信には、送信に先立って、まずファイルに対応するデータを暗号化することを含みうる。以下でさらに詳細に説明される、各電子ファイルのメタデータは、各コンピューティングデバイス１２１のローカルストレージレイヤ１１０に格納されうる。メタデータは、ローカルストレージレイヤ及び分散ストレージレイヤに格納されている電子ファイルのポーションの格納されている位置を示すポインタを含みうる。
【００２７】
例示的実施形態によれば、ローカルストレージレイヤ１１０に格納されている電子ファイル１５０をコンピューティングデバイス１１１から分散ストレージレイヤ１２０へ非同期的に送信することは、電子ファイル１５０をポーション１５１に分割し、他のコンピューティングデバイス１２１にまたがってポーション１５１を格納することを含みうる。ポーション１５１は、固定長又は可変長サイズのポーションであってもよい。例えば、「チャンク」と称されるポーション１５１の生成は、電子ファイル１５０のデータを固定長のチャンク（例えば４Ｋｂと８Ｋｂの間のサイズであるがこれには限られない）に分割することを含みうる。あるいは、電子ファイル１５０は、例えば、スライディングウィンドウ技術を使って可変長のチャンクに分けられうる。説明のためであってこれに限られないが、一般に、スライディングウィンドウ技術は、共通のチャンクを発見するための試行において、予め定義された「スライディングウィンドウ」の範囲内のあるポイントまで、チャンクをファイルの上下に「動かす」ことを含みうる。このようなスライディングは新規のチャンクによって満たされるギャップを生成しうる。電子ファイル１５０をポーション１５１に分割するのに適した種々の他のバリエーションや技術が使われうることや、本開示事項がここで開示された例示的実施形態に制限されることを意図していないことを、当業者は認識するだろう。
【００２８】
ポーション１５１は、ネットワークを介して他のコンピューティングデバイス１２１のストレージデバイス（例えば１２２ａ及び１２２ｂ、まとめて１２２）上でハッシュ化されうる。例えば、各チャンクは、（例えば、ＳＨＡ−１アルゴリズム等を用いて）ハッシュ化され、鍵空間におけるチャンクの位置を特定できる値（しばしば鍵と称される）を生成しうる。すなわち、例えば、以下でさらに詳細に記載されるように、ファイルを検索する（すなわち、少なくとも１つのチャンクを検索する）ために、ハッシュ値はチャンクが発見されうる位置を特定しうる。加えて、チャンクが他のチャンクと同一の値を有する場合、そのハッシュ値は同一であるだろう。そして、このような同一のデータは複製される必要がない。ハッシュ化されたポーション１５１は、ネットワークを介して他のコンピューティングデバイス１２１に送信されてもよい。例えば、ポーション１５１ａと１５１ｄとが、コンピューティングデバイス１２１ａに送信され、コンピューティングデバイス１２１ａに関連付けられている１つ以上のストレージデバイス１２２ａに格納されてもよい。ポーション１５１ｂと１５１ｃとが、コンピューティングデバイス１２１ｂに送信され、コンピューティングデバイス１２１ｂに関連付けられている１つ以上のストレージデバイス１２２ｂに格納されてもよい。
【００２９】
次いで、各コンピューティングデバイス（例えば、１１１、１２１ａ及び１２１ｂ）に格納されているメタデータをアップデートし、ハッシュ化されたポーション１５１の位置を示すポインタを含めることができる。例えば、コンピューティングデバイス１１１は、ポーション１５１をハッシュ化し、ローカルに格納されたメタデータをアップデートし、例えば、ゴシッププロトコルを用いて、ネットワークを介して他のコンピューティングデバイスにメタデータを送信してもよい。本開示事項のある実施形態によれば、ハッシュ化されたポーション１５１を、さらにハッシュ化して１つ以上の他のコンピューティングデバイスに複製して、冗長性を生じさせることができる。
【００３０】
例示的かつ非限定的な実施形態において、ネットワークを介した他のコンピューティングデバイス１２１のストレージデバイス（例えば１２２ａ及び１２２ｂ、まとめて１２２）上でのポーション１５１のハッシュ化は、Ｃｈｏｒｄアルゴリズムのような分散ハッシュテーブルを用いて達成されうる。説明の目的であってこれに限られないが、各コンピューティングデバイス（例えば１２１）は、Ｃｈｏｒｄアルゴリズムのノードになってもよく、各Ｃｈｏｒｄアルゴリズムのノードは鍵空間のいくつかのポーションについて責任を負う。電子ファイル１５０が分散ストレージレイヤ１２０に格納される場合、電子ファイルはポーション１５１（チャンクやブロック）に分割され、これらチャンクのそれぞれはハッシュ化され、鍵空間におけるチャンクの位置を特定する値を、したがって、各チャンクが格納されるであろう位置における各コンピューティングデバイスのインスタンスを生成する。すなわち、例えば、データを検索するためにコンピューティングデバイスのみが、データが発見されうる位置を特定するファイル（チャンク）のハッシュ値を知る必要がある。このような技術は、中央協調やデータ配置ヒューリスティックを不要にする。
【００３１】
上述のように、さらに電子ファイル１５０は、ネットワークを通して、クラウドストレージレイヤ１３０に非同期的に送信され、電子ファイル１５０がクラウドストレージレイヤ１３０にミラーリングされうる。図２Ａ及び図２Ｂを参照して、例示的実施形態によれば、クラウドストレージレイヤ１３０は、システムに格納されているデータセット全体を含みうる。クラウドストレージレイヤ１３０は、ローカルレイヤ１１０及び分散レイヤ１２０にとっての冗長部分として機能しうる。例えば図２Ａで説明されるように、システムはファイルのポーションＡ−Ｉを含み、コンピューティングデバイスのローカルストレージレイヤ１１０は、例えば、ファイルのポーションＡ，Ｄ，Ｆを格納し、分散ストレージレイヤ１２０は、ファイルのポーションＡ、Ｂ、Ｃ、Ｄ、Ｇ、Ｆを格納し、クラウドストレージレイヤはファイルのポーションＡ−Ｉを全て格納してもよい。
【００３２】
例示的実施形態において、データを本明細書で開示される技術に似た方法でクラウドストレージレイヤ１３０に書き込み、電子ファイルをローカルストレージレイヤから分散ストレージレイヤへ非同期的に送信することができる。すなわち、ファイルは、クラウドストレージレイヤ１３０に送信することのできる一連のポーション又は「チャンク」に分割されてもよい。クラウドストレージレイヤ１３０は、任意の適切なストレージデバイス、１つ以上のストレージデバイス、プロセッサ、及び／又はインターネット等のネットワークを介して電子データを格納したり電子データへのアクセスを提供したりするよう動作可能なソフトウェアを含みうる。例えば、クラウドストレージレイヤ１３０は、Ａｍａｚｏｎ社のＳ３、Ａｐｐｌｅ社のｉＤｉｓｋ、ＥＭＣ社のＭｏｚｙ、Ｐｒｏ  ＳｏｆｔＮｅｔ社のｉＤｒｉｖｅのような商用ウェブストレージサービスを含みうる。他の適切なクラウドストレージサービスを用いてもよいこと、及び、本開示事項がここで開示された例示的実施形態に制限されることを意図していないことを、当業者は認識するだろう。例えば、クラウドストレージレイヤ１３０は、商用であることを必要としないが、代わりに専有のクラウドストレージシステムを含んでもよい。
【００３３】
例示的実施形態によれば、クラウドストレージレイヤ１３０は、図２Ｂで説明されるように、複数の分散ストレージレイヤからのファイルを含みうる。例えば、ある会社が２つの場所でＬＡＮを運営し、各ネットワーク上のコンピュータが本明細書に記載されたシステムを稼働してもよい。各ネットワークがそれぞれの分散ストレージレイヤ（２２０ａ、２２０ｂ）を有しつつも、両レイヤがともに、クラウドストレージレイヤ１３０に含まれうる。例えば、分散ストレージレイヤ２２０ａに対応するＬＡＮは、対応するローカルストレージレイヤ又は分散ストレージレイヤ２２０ａに電子ファイルを格納することができる２つのコンピューティングデバイス２１０ａ及び２１０ｂを含みうる。同様に、分散ストレージレイヤ２２０ｂに対応するＬＡＮは、対応するローカルストレージレイヤ又は分散ストレージレイヤ２２０ｂに電子ファイルを格納することができる２つのコンピューティングデバイス２１０ｃ及び２１０ｄを含みうる。電子ファイルは、ファイルが生成された又は編集されたコンピューティングデバイス（例えば２１０ａ、２１０ｂ、２０１ｃ、又は２１０ｄ）からクラウドストレージレイヤ１３０に書込まれてもよいし、あるいは、ファイルのポーションが分散ストレージレイヤ２２０ａ又は２２０ｂから書込まれてもよい。
【００３４】
例示的実施形態において、ローカルストレージレイヤ１１０の容量は制限されうる。例えば、所定のマシンがシステムに１ＧＢのデータを充てるように、システムが構成されうる。ある実施形態において、ローカルストレージレイヤ１１０はキャッシュとして動作しうる。例えば、ファイルは、所定時間経過後ローカルストレージから再割り当てされる。加えて、又は代わりに、ファイルはヒューリスティックモデルに従ってローカルストレージ１１０から削除されうる。同様に、分散ストレージレイヤ１２０は、クラウドストレージレイヤ１３０に対してキャッシュとして機能する。例えば、前述の通り、電子ファイルは非同期的に、例えばＣｈｏｒｄアルゴリズムを使って決定された位置にデータが格納されるローカル分散ストレージ１１０に送られうる。分散レイヤ１１０に送られたデータをｎ回複製して、そのデータを含むｎ−１台のマシンの故障が生じても利用可能なままとすることができる。分散ストレージレイヤ１２０に格納する動作は非同期に実行されてもよく、ユーザやファイルデータを格納するアプリケーションは、分散ストレージの動作が完了するのを待つ必要がない。場合によっては、分散ストレージレイヤ１２０の容量がストレージシステム内の合計データ量よりも少なくてもよく、その場合は、分散ストレージレイヤ１２０は、クラウドストレージレイヤ１３０に対してキャッシュとして機能する。クラウドストレージレイヤ１３０はストレージシステムに格納されているデータセット全体を格納しうる。アップデートはクラウドストアに対して非同期的に書込まれ、ある態様においては、送信される前に待ち行列に入れられることもありうる。待ち行列はシステムに対して、新規アップデートが発生した際にアップデートを定期的に送信する代わりに、一連の細かいアップデートを単一ユニットとしてアップロードさせるようにしうる。
【００３５】
クラウドストレージレイヤ１３０は、システムに対するリモートアクセス、例えば、システムがインストールされているＬＡＮから離れた場所からのインターネットを通じたリモートアクセスを追加的に提供しうる。例えば、図３を参照して、リモートコンピューティングデバイス３１０は、クラウドストレージレイヤ１３０に格納されている電子ファイルにアクセスしうる。リモートコンピューティングデバイス３１０は、クラウドストレージレイヤ１３０を通じて、分散ストレージレイヤ１２０からミラーリングされているファイルにアクセスしうる。
【００３６】
本明細書で例示されるように、分散ストレージレイヤ１２０内の各コンピューティングデバイスのローカルストレージレイヤ１１０は、分散ストレージレイヤ１２０及びローカルストレージレイヤ１１０に格納された電子ファイルに関連するメタデータを格納しうる。例示的実施形態によれば、図４を参照して、メタデータは、格納されている各電子ファイル（例えばファイル１５０）に対して、バージョン情報４２０、アクセス情報、許可情報、及び論理ドライブパス情報４１０を含むことができる。
【００３７】
説明の目的であってこれに限られないが、図４は、３つのバージョンＶ０  ４３０、Ｖ１  ４４０、Ｖ２  ４５０を有する「ｔｅｓｔ．ｔｘｔ」と名付けられたファイルに対するメタデータを示している。図４で説明されるように、論理ドライブパス情報４１０は、ファイル１５０がユーザに対してどのように表示されるかを表す文字列を含みうる。例えば、ファイル１５０の名前とパスは「Ｃ：＼ｔｅｓｔ．ｔｘｔ」として表示されうる。説明の目的であってこれに限られないが、図６に示されるように、ファイル１５０を含むファイルは、まるで単一の論理ドライブに格納されているかのように表示されうる。すなわち、各コンピューティングデバイスは、まるでファイルが単一の論理ドライブ６００に格納されているかのように分散ストレージレイヤに格納されているファイルを表示するように構成されうる。
【００３８】
以下でさらに詳しく記載されるように、バージョンＶ０  ４３０及びバージョンＶ１  ４４０は、完全なファイルとして格納され、バージョンＶ２  ４５０は、前バージョンＶ１  ４４０と比較した差分として格納されうる。すなわち、バージョンＶ０  ４３０は、ファイル１５０のバージョンＶ０のハッシュ化されたポーションが格納されている位置を示すポインタ４３１を含むアクセス情報を含みうる。同様に、バージョンＶ１  ４４０は、ファイル１５０のバージョンＶ１のハッシュ化されたポーションが格納されている位置を示すポインタ４４１を含むアクセス情報を含みうる。バージョンＶ０  ４３０又はバージョンＶ１  ４４０を検索するために、これらのポインタが解決され、コンピューティングデバイスは、必要とされるポーションを要求し、そのファイルバージョンのローカルコピーを生成する。バージョンＶ２  ４５０は、前バージョンＶ１  ４４０に対するポインタ４５１及び差分ファイル４５３に対するポインタ４５２を含むアクセス情報を含みうる。バージョンＶ２  ４５０を検索するために、これらのポインタが解決され、コンピューティングデバイスは、バージョンＶ１  ４４１のポーション及びその差分ファイル４５３を要求し、ファイル１５０のバージョンＶ２  ４５０のローカルコピーを生成する。
【００３９】
ローカルに格納されているファイル１５０に対応するメタデータがローカルに格納されている場合、そのメタデータはローカルストレージ上のファイルの位置を示すポインタを含みうる。例えば、複数のコンピューティングデバイスのうちの１台で電子ファイル１５０を検索することは、メタデータから電子ファイル１５０のポーションの位置を（例えばポインタ４３１、４４１、又は４５１及び４５２を使って）決定することを含む。ポーションはこれらの位置からネットワークを介して検索され、組み合わされ、コンピューティングデバイスのローカルストレージレイヤに格納されうる。次いで、コンピューティングデバイス上のメタデータをアップデートし、分散ストレージレイヤに格納されたポーションではなく、ローカルに格納されたポーションを示すポインタを含ませることができる。
【００４０】
説明の目的であってこれに限られないが、図５Ａ、図５Ｂ及び図５Ｃは、本開示事項における格納されたメタデータと関連する例示的なハッシュ化されたファイルポーション（チャンク）を説明している。図５Ａは、３つのポーション５１０が本明細書に記載されるシステムの分散ストレージレイヤに格納されている例を示す。３つのポーションは、２つのファイル、ファイルＸ５３０及びファイルＹ５４０に対応するポーションを含む。各ポーションは、本明細書で開示されるようにハッシュ化５２０され、ファイルポーション（Ｃ，Ｍ及びＯ）に対応するハッシュを生成することができる。ファイルＸ５３０は、ポーションＣ及びＭ向けのルックアップコールを発することによって要求されうる。ファイルＹ５４０は、ファイルＸ５３０とのいくつかの重複部分を含み、ポーションＯ及びＭに対するルックアップコールを発することによって要求されうる。ファイルＸ５３０及びファイルＹ５４０はポーションＭを共有するので、ブロックＭは２回格納される必要がない。
【００４１】
本明細書で前述したように、ファイルに対する編集やアップデートは、新バージョンのファイルを前バージョンから計算されるようにする差分ファイルを生成することによるか、新バージョンの完全なファイルを格納することによるか、いずれか一方によって格納されうる。図５Ｂは、新バージョンのファイルを生成することによるファイルＸ５３０に対する例示的な編集例を示す。この例示的なシナリオにおいては、本明細書で開示された技術によって、５つのポーション５１１が分散ストレージレイヤに格納され、ハッシュ（Ｂ，Ｃ，Ｇ，Ｍ，Ｏ）５２１が生成される。これらのポーション５１１は、２つのバージョン５３１ａ及び５３１ｂを有するファイルＸとファイルＹ５４１の２つのファイルに対応するポーションを含みうる。ファイルＸのバージョンＶ１  ５３１ｂ及びバージョンＶ２  ５３１ａは、それぞれポーションＣ及びＭ並びにポーションＢ及びＭに対してルックアップコールを発することにより要求される。すなわち、例えば、ファイルＸのバージョンＶ２  ５３１ａは、バージョンＶ１  ５３１ｂのファイルポーションの１つ（例えば、バージョンＶ１  ５３１ｂのポーションＣ）にのみ対応する編集を含みうる。同様に、ファイルＹ５４１は、ファイルＸとのいくつかの重複部分を含み、両ファイルがポーションＭを含みうる。
【００４２】
図５Ｃは、前バージョンに基づく差分ファイルを生成することによるファイルＸ５３０に対する例示的な編集例を示す。このようなシナリオにおいては、差分が計算され、１つ以上の新しいポーションに格納されうる。本明細書に開示されるように、６つのポーション５１２が、分散ストレージレイヤに格納され、ハッシュ（Ａ、Ｂ、Ｃ、Ｇ、Ｍ、Ｏ）５２２が生成される。ファイルＸは２つのバージョン５３２ａ及び５３２ｂを含みうる。ファイルＸのバージョンＶ１  ５３２ｂは、前述のように、ポーションＣ及びＭに対してルックアップコールを発することにより要求されうる。しかしながら、バージョンＶ２  ５３２ａを生成するためのファイルＸに対する編集は、バージョンＶ１  ５３２ｂに対する相対的な変化を表すポーションＡを格納することを含みうる。すなわち、例えば、ファイルＸのバージョンＶ２  ５３１ａは、ポーションＡに対するルックアップコールを発することに加えて、バージョンＶ１  ５３１ｂのポーションに対するルックアップコールを発することによって要求されうる。次いで、要求するコンピューティングデバイスは、要求されたブロック上で動作を実行し、ローカルストレージレイヤ上でバージョンＶ２  ５３１ａを組み合わせうる。本開示事項によれば、ファイルに対する編集は、新バージョン又はファイルになされた変更の大きさに基づく差分ファイルのいずれか一方を用いて格納されうる。加えて、大量の差分が実行された場合、差分は、ルックアップ動作の速度を改善するように単一バージョンに結合されうる。
【００４３】
例示的実施形態において、ローカルストレージレイヤの容量は制限されうる。例えば、システムは、所定のマシンが該システムに対して１ＧＢのデータを充てるように構成されうる。いくつかの実施形態において、ローカルストレージレイヤはキャッシュとして機能する。例えば、ファイルは、所定時間経過後ローカルストレージレイヤから再割り当てされる。加えて、又は代わりに、ファイルはヒューリスティック法に従ってローカルストレージから削除されうる。説明の目的であってこれに限られないが、マシンが大容量を有する場合、容量が小さいノードよりもより大きい鍵空間のポーションを制御しうる。例えば、大容量を有するコンピューティングデバイスは、多重の論理ノードに割り当てられ、より大きな鍵空間のポーションにあてられる。しかしながら、そのような構成は、同一の物理マシン上における異なる論理ノードへのファイルポーションのハッシュ化を含む。したがって、鍵空間のポーションへのノードの割り当ては、同一マシン上の論理ノードが鍵空間の連続するポーションを占めるようになされうる。
【００４４】
ある状況では、本明細書で開示された技術は、アップデートや編集の競合（例えば、同時に起こったアップデートや同一ファイルの生成、同時に起こった同一ファイルのリネーム、又はコピーがアップデートされたちょうどその時に起こるファイルの削除）につながりうる。このようなシナリオにおいて、本開示事項によれば、「勝ち残りの」アップデートは、アップデートのタイムスタンプに基づき、もしくは、対立するアップデートのタイムスタンプが同一である場合には、コンピューティングデバイスのＩＤに基づき、他のコンピューティングデバイスに伝播されうる。「敗れた」アップデートは、システムに追加された、オリジナルのファイルに基づくファイル名を与えられた新規ファイルに保存されうる。コンフリクトファイルは、競合するアップデートに対して生成され、各コンピューティングデバイスに格納されるメタデータは、「敗れた」アップデートに対する新規ファイルを参照するようアップデートされうる。
【００４５】
初期化されている間、各コンピューティングデバイスは、ディスカバリーサービスを用いるシステムに加わりうる。例えば、コンピューティングデバイスは、初期化時にネットワーク上の存在を通知しうる。各コンピューティングデバイスは、アクティブとなっている新規コンピューティングデバイスに対してネットワークを監視しうるディスカバリースレッドを動かしうる。
【００４６】
本明細書で開示される技術は、ローカルストレージの書き込み速度とネットワークストレージサーバの共有ストレージ容量とを備えたストレージシステムを含む、既存のデータストレージソリューションの強みを組み合わせ、それらの弱みを軽減するストレージシステムを提供しうる。分散ストレージレイヤは、既存のオフィスマシン内の、使用しなければ他に浪費されるだろう未使用容量を共同利用し、マシン間でデータストレージの負荷とリスクとを拡散しうる。セキュアなクラウドストレージレイヤは、バージョン管理、リモートアクセス、及び長期間バックアップのために用いられうる。本明細書で開示される技術は、監査や順法の目的で、ＩＴスタッフやメンテナンスや新規ハードウェアを必要とせずに、全ファイルのバージョン履歴を提供しうる。
【００４７】
さらに、本明細書で開示される技術は、異なる組織的要件に対して異なるポリシーを利用可能とする大規模化及び拡張性を提供する。例えば、法律事務所向けのポリシーは、ファイルキャッシュに対して一時記憶の使用を要求し、マシンの接続が外された際に全てのローカルコピーも消去してもよい。また、複数の国際的地域にある複数のウェブベースバックアップ設備に、それ自身では使用できない、バックアップ全体の一部のみを格納し、その設備を明示してもよく、これによって、電子通信プライバシー法（ＥＣＰＡ法）によるデジタル検索や差し押さえの脅威を減少させる。
【００４８】
上述の通り、ある実施形態に関連して、例えば、ローカルストレージレイヤ１１０、分散ストレージレイヤ１２０、及びクラウドストレージレイヤ１３０のような構成部分は、１つ以上のコンピュータ、プロセッサ、ネットワーク、携帯機器、クラスタ、又は様々な機能を実行する他のハードウェアを含みうる。さらに、本開示事項の一要素はコンピュータ読み取り可能コードで具体化され、コンピュータ読み取り可能コードはコンピュータ読み取り可能媒体に格納され、該コードが実行される場合、プロセッサに機能を実行させる。これらの実施形態において、コンピュータは、例えば、ＬＡＮやインターネットのようなネットワークをまたぐ分散ストレージシステム及び方法を実施可能にするための重要な役割を演じる。例えば、コンピュータ、プロセッサ、メモリ、ストレージ、及びネットワークハードウェアの存在は、コンピューティングデバイスにおける未使用容量の共同利用を提供し、バージョン管理やリモートアクセスや長期間バックアップのサポートを提供しうる。
【００４９】
加えて、上述の通り、ある実施形態に関連して、ある構成部分は、他の構成部分と、例えばインターネットのようなネットワークを介して通信しうる。上記において明示的に述べられていない事項への拡張について、本開示事項は、送信と受信とを含むそれぞれのやり取りの両面を包含することを意図している。上述の特徴に関して、一構成部分が送信し、送付し、又はさもなければ他の一構成部分に対して利用可能とし、他の構成部分が受信し、取得するだろうことを、明示的に述べられていようがいまいが、当業者は容易に理解するだろう。
【００５０】
本開示事項は、本明細書において明示している実施形態によって範囲を限定されるものではない。実際、本明細書に記載されている事項に加えて本開示事項を様々に変更したものが、前述の記載や添付図面から、当業者にとって自明である。このような変更は、添付した特許請求の範囲に包含されることが意図されている。
【図１Ａ】
2015523625.tif 000003
【図１Ｂ】
2015523625.tif 000004
【図２Ａ】
2015523625.tif 000005
【図２Ｂ】
2015523625.tif 000006
【図３】
2015523625.tif 000007
【図４】
2015523625.tif 000008
【図５】
2015523625.tif 000009
【図６】
2015523625.tif 000010
【国際調査報告】
2015523625.tif 000011
2015523625.tif 000012