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

【外国語明細書】
2017168135000001.pdf