(57)【要約】【課題】  改善されたストレージ効率を有する一貫性マルチサイト・データ複製を提供するためのシステム、方法、及びコンピュータ・プログラムを提供する。【解決手段】  コンピュータ実施方法が、中央ストレージ位置内に名前空間を作成することと、名前空間を１つより多いセルに分割することとを含む。第１のセルは、中央ストレージ位置に結合された遠隔ストレージ位置から受け取った管理データを格納するように構成された共通セルである。残りのセルの各々は、遠隔ストレージ位置のそれぞれのものから受け取ったオブジェクト・データを格納するように構成される。コンピュータ実施方法は、遠隔ストレージ位置から管理データを受け取ることと、受け取った管理データを中央ストレージ位置の共通セル内に格納することと、遠隔ストレージ位置から受け取った管理データに対応するオブジェクト・データを受け取ることと、受け取ったオブジェクト・データを中央ストレージ位置のそれぞれのセル内に格納することとをさらに含む。管理データは、遠隔ストレージ位置内に格納されたオブジェクト・データに対応する。【選択図】      図４
2019537774.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ実施方法であって、
中央ストレージ位置内に名前空間を作成することと、
前記名前空間を１つより多いセルに分割することであって、第１のセルは、前記中央ストレージ位置に結合された遠隔ストレージ位置から受け取った管理データを格納するように構成された共通セルであり、残りのセルの各々は、前記遠隔ストレージ位置のそれぞれのものから受け取ったオブジェクト・データを格納するように構成される、分割することと、
前記遠隔ストレージ位置から管理データを受け取ることであって、前記管理データは前記遠隔ストレージ位置内に格納されたオブジェクト・データに対応する、受け取ることと、
前記受け取った管理データを前記中央ストレージ位置の前記共通セル内に格納することと、
前記遠隔ストレージ位置から受け取った前記管理データに対応するオブジェクト・データを受け取ることと、
前記受け取ったオブジェクト・データを前記中央ストレージ位置の前記それぞれのセル内に格納することと、
を含む方法。
【請求項２】
前記遠隔ストレージ位置から受け取った前記オブジェクト・データの更新を、前記中央ストレージ位置内の前記それぞれのセルに経路指定するように構成された修正された一貫性ハッシュ・アルゴリズムを実施することを含む、請求項１に記載のコンピュータ実施方法。
【請求項３】
前記中央ストレージ位置及び前記遠隔ストレージ位置の各々は、等しい数のインターネット・プロトコル・アドレスを含む、請求項１に記載のコンピュータ実施方法。
【請求項４】
前記中央ストレージ位置及び前記遠隔ストレージ位置と通信するように構成された共通認証サーバを使用することを含む、請求項１に記載のコンピュータ実施方法。
【請求項５】
前記中央ストレージ位置及び前記遠隔ストレージ位置は、広域ネットワーク上で接続される、請求項１に記載のコンピュータ実施方法。
【請求項６】
前記遠隔ストレージ位置の１つ又は複数からオブジェクト要求を受け取ることに応答して、前記中央ストレージ位置の前記共通セル内に格納された前記管理データを更新することを含む、請求項１に記載のコンピュータ実施方法。
【請求項７】
プログラム命令を有するコンピュータ・プログラムであって、前記プログラム命令は、プロセッサにより実行可能であり、前記プロセッサに、
前記プロセッサにより、中央ストレージ位置内に名前空間を作成することと、
前記プロセッサにより、前記名前空間を１つより多いセルに分割することであって、第１のセルは、前記中央ストレージ位置に結合された遠隔ストレージ位置から受け取った管理データを格納するように構成された共通セルであり、残りのセルの各々は、前記遠隔ストレージ位置のそれぞれのものから受け取ったオブジェクト・データを格納するように構成される、分割することと、
前記プロセッサにより、前記遠隔ストレージ位置から管理データを受け取ることであって、前記管理データは前記遠隔ストレージ位置内に格納されたオブジェクト・データに対応する、受け取ることと、
前記プロセッサにより、前記受け取った管理データを前記中央ストレージ位置の前記共通セル内に格納することと、
前記プロセッサにより、前記遠隔ストレージ位置から受け取った前記管理データに対応するオブジェクト・データを受け取ることと、
前記プロセッサにより、前記受け取ったオブジェクト・データを前記中央ストレージ位置の前記それぞれのセル内に格納することと、
を行わせる、コンピュータ・プログラム。
【請求項８】
前記プログラム命令は、前記プロセッサにより実行可能であり、前記プロセッサに、
前記プロセッサにより、前記遠隔ストレージ位置から受け取った前記オブジェクト・データの更新を、前記中央ストレージ位置内の前記それぞれのセルに経路指定するように構成された修正された一貫性ハッシュ・アルゴリズムを実施すること、
を行わせる、請求項７に記載のコンピュータ・プログラム。
【請求項９】
前記中央ストレージ位置及び前記遠隔ストレージ位置の各々は、等しい数のインターネット・プロトコル・アドレスを含む、請求項７に記載のコンピュータ・プログラム。
【請求項１０】
前記プログラム命令は、前記プロセッサにより実行可能であり、前記プロセッサに、
前記プロセッサにより、前記中央ストレージ位置及び前記遠隔ストレージ位置と通信するように構成された共通認証サーバを使用すること、
を行わせる、請求項７に記載のコンピュータ・プログラム。
【請求項１１】
前記中央ストレージ位置及び前記遠隔ストレージ位置は、広域ネットワーク上で接続される、請求項７に記載のコンピュータ・プログラム。
【請求項１２】
前記プログラム命令は、前記プロセッサにより実行可能であり、前記プロセッサに、
前記プロセッサにより、前記遠隔ストレージ位置の１つ又は複数からオブジェクト要求を受け取ることに応答して、前記中央ストレージ位置の前記共通セル内に格納された前記管理データを更新すること、
を行わせる、請求項７に記載のコンピュータ・プログラム。
【請求項１３】
プロセッサと、
前記プロセッサと統合された、前記プロセッサにより実行可能である、又は前記プロセッサと統合されかつ前記プロセッサにより実行可能な論理と、
を含み、前記論理は、
前記プロセッサにより、中央ストレージ位置内に名前空間を作成することと、
前記プロセッサにより、前記名前空間を１つより多いセルに分割することであって、第１のセルは、前記中央ストレージ位置に結合された遠隔ストレージ位置から受け取った管理データを格納するように構成された共通セルであり、残りのセルの各々は、前記遠隔ストレージ位置のそれぞれのものから受け取ったオブジェクト・データを格納するように構成される、分割することと、
前記プロセッサにより、前記遠隔ストレージ位置から管理データを受け取ることであって、前記管理データは前記遠隔ストレージ位置内に格納されたオブジェクト・データに対応する、受け取ることと、
前記プロセッサにより、前記受け取った管理データを前記中央ストレージ位置の前記共通のセル内に格納することと、
前記プロセッサにより、前記遠隔ストレージ位置から受け取った前記管理データに対応するオブジェクト・データを受け取ることと、
前記プロセッサにより、前記受け取ったオブジェクト・データを前記中央ストレージ位置の前記それぞれのセル内に格納することと、
を行うように構成される、システム。
【請求項１４】
前記論理は、
前記プロセッサにより、前記遠隔ストレージ位置から受け取った前記オブジェクト・データの更新を、前記中央ストレージ位置内の前記それぞれのセルに経路指定するように構成された修正された一貫性ハッシュ・アルゴリズムを実施すること、
を行うように構成される、請求項１３に記載のシステム。
【請求項１５】
前記論理は、
前記プロセッサにより、前記中央ストレージ位置及び前記遠隔ストレージ位置と通信するように構成された共通認証サーバを使用すること、
を行うように構成される、請求項１３に記載のシステム。
【請求項１６】
前記論理は、
前記プロセッサにより、前記遠隔ストレージ位置の１つ又は複数からオブジェクト要求を受け取ることに応答して、前記中央ストレージ位置の前記共通セル内に格納された前記管理データを更新すること、
を行うように構成される、請求項１３に記載のシステム。
【請求項１７】
コンピュータ実施方法であって、
管理データを、１つ又は複数の遠隔ストレージ位置から中央ストレージ位置の名前空間内の指定された共通セルに送ることであって、前記管理データは前記１つ又は複数の遠隔ストレージ位置に格納されたオブジェクト・データに対応する、送ることと、
前記１つ又は複数の遠隔ストレージ位置の各々に格納された前記オブジェクト・データを、前記中央ストレージ位置の前記名前空間内のそれぞれのセルに転送することと、
修正された一貫性ハッシュ・アルゴリズム構成を実施することと、
を含み、
前記修正された一貫性ハッシュ・アルゴリズム構成は、前記１つ又は複数の遠隔ストレージ位置内の既存のオブジェクト・データの更新を前記中央ストレージ位置内の前記それぞれのセルに経路指定する、コンピュータ実施方法。
【請求項１８】
オブジェクト・データに対するプリフェッチ要求を、オンデマンドで前記中央ストレージ位置の前記名前空間内の前記それぞれのセルに送ることを含む、請求項１７に記載のコンピュータ実施方法。
【請求項１９】
前記修正された一貫性ハッシュ・アルゴリズム構成は、前記遠隔ストレージ位置から送られた前記管理データの要求を前記中央ストレージ位置内の前記共通セルに経路指定する、請求項１７に記載のコンピュータ実施方法。
【請求項２０】
前記中央ストレージ位置及び前記遠隔ストレージ位置の各々は、等しい数のインターネット・プロトコル・アドレスを含む、請求項１７に記載のコンピュータ実施方法。
【請求項２１】
前記中央ストレージ位置及び前記遠隔ストレージ位置と通信するように構成された共通認証サーバを使用することを含む、請求項１７に記載のコンピュータ実施方法。
【請求項２２】
プログラム命令を有するコンピュータ・プログラムであって、前記プログラム命令は、プロセッサにより実行可能であり、前記プロセッサに、
前記プロセッサにより、管理データを、１つ又は複数の遠隔ストレージ位置から中央ストレージ位置の名前空間内の指定された共通セルに送ることであって、前記管理データは前記遠隔ストレージ位置内に格納されたオブジェクト・データに対応する、送ることと、
前記プロセッサにより、前記１つ又は複数の遠隔ストレージ位置の各々に格納された前記オブジェクト・データを、前記中央ストレージ位置の名前空間内のそれぞれのセルに転送することと、
前記プロセッサにより、修正された一貫性ハッシュ・プロトコル構成を実施することと、
を行わせ、
前記修正された一貫性ハッシュ・アルゴリズム構成は、前記１つ又は複数の遠隔ストレージ位置内の既存のオブジェクト・データの更新を前記中央ストレージ位置内の前記それぞれのセルに経路指定する、コンピュータ・プログラム。
【請求項２３】
前記プログラム命令は、前記プロセッサにより実行可能であり、前記プロセッサに、
前記プロセッサにより、オブジェクト・データに対するプリフェッチ要求を、オンデマンドで前記中央ストレージ位置の前記名前空間内の前記それぞれのセルに送ること、
を行わせる、請求項２２に記載のコンピュータ・プログラム。
【請求項２４】
前記修正された一貫性ハッシュ・アルゴリズム構成は、前記遠隔ストレージ位置から送られた前記管理データの要求を前記中央ストレージ位置内の前記共通セルに経路指定する、請求項２２に記載のコンピュータ・プログラム。
【請求項２５】
前記中央ストレージ位置及び前記遠隔ストレージ位置の各々は、等しい数のインターネット・プロトコル・アドレスを含む、請求項２２に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ・ストレージ・ネットワークに関し、より具体的には、本発明は、改善されたマルチサイト・データ複製（multi-site data replication）をサポートするデータ・ストレージ・ネットワークに関する。
【背景技術】
【０００２】
従来のコンピュータ・ファイル・システムは、ツリー構造を用いて、データベース内に情報を格納する。これらの従来のシステムは、ローカル・ハードドライブ上のもののような少量のデータ収集にはうまくいったが、大量のデータを処理するようには設計されておらず、従って、処理することができない。従って、企業が、収集、格納、アクセス、転送等を続行するとき、非構造化コンテンツの量が大きくなればなるほど、従来のコンピュータ・ファイル・システムは、企業のニーズを満たすことができない。
【０００３】
ストレージ・エリア・ネットワーク（ＳＡＮ）は、統合されたブロック・レベルのデータ・ストレージへのアクセスを提供するネットワークである。ＳＡＮは、主として、ディスク・アレイ及びテープ・ライブラリなどのストレージ・デバイスを、デバイスがローカルに取り付けられたデバイスのように見えるように、それらをサーバにアクセス可能にすることによって機能拡張するために用いられる。ＳＡＮは、広い地理的地域をカバーする広域ネットワーク（ＷＡＮ）上に実装することができる。従って、ストレージ・デバイス間のアクセスを、それらの互いに対する近接性に関係なく、容易にすることができる。
【０００４】
オブジェクト・ストレージは、情報を格納する最新の技術を提供し、そこで、情報はオブジェクトとして格納される。各オブジェクトは、ユーザ及び／又はシステム定義タグを含むことができるメタデータに加えて、データ自体（例えば、ビット及びバイト）を含む。メタデータは、データのコンテンツ、対応するオブジェクトが他のオブジェクトにどのように関連するか、データをどのように処理し、複製し、又はバックアップすべきか等を記述することができる。
【０００５】
オブジェクト・ストレージの進歩は、オブジェクト・ストレージの価値を高め、オブジェクト内のデータにアクセスできる速度を増大させるように開発された。これらの進歩は、一般的に「ストーレット（storlet）」と呼ばれる、ストレージ・オブジェクト内の埋め込まれた計算エンジンを実装する。従って、ストーレットは、計算コンポーネントが内部に格納されたデータ・ストレージ・オブジェクトであり、これにより、システムが計算を実行するためにデータを計算ノード又はサーバに移動させなければならないシステムとは対照的に、オブジェクト・ストレージが、データの計算を行うことが可能になる。ストーレットは、計算ノードによる実行のために、計算ノード上にプロビジョニング又は配備され得る。ストーレットが実行されるとき、計算ノード上でストーレットを実行する効率は、ストーレットが実行する演算のタイプ、及び計算ノードの能力及び役割によって決まる。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、既存のデータ・ストレージ・ネットワークは依然として、ネットワーク内の種々のストレージ位置でデータが利用可能であることも保証しながら、データを内部に効率的に格納することができなかった。その結果、既存のデータ・ストレージ・ネットワークは、内部に格納されたデータのストレージ空間、又は可用性／セキュリティのいずれかを犠牲にせざるを得ない。従って、ストレージ・ネットワーク内のストレージ位置のいずれでもデータへの迅速なアクセスを維持しながら、ストレージ空間の効率的な使用を可能にするデータ・ストレージ・ネットワークが必要とされる。
【課題を解決するための手段】
【０００７】
１つの実施形態によるコンピュータ実施方法が、中央ストレージ位置内に名前空間（namespace）を作成することと、名前空間を１つより多いセルに分割することとを含む。第１のセルは、中央ストレージ位置に結合された遠隔ストレージ位置から受け取った管理データを格納するように構成される共通セル（common cell）である。さらに、残りの１つより多いセルの各々は、遠隔ストレージ位置のそれぞれのものから受け取ったオブジェクト・データを格納するように構成される。コンピュータ実施方法は、遠隔ストレージ位置から管理データを受け取ることと、受け取った管理データを中央ストレージ位置の共通セル内に格納することとも含む。管理データは、遠隔ストレージ位置内に格納されたオブジェクト・データに対応する。さらに、コンピュータ実施方法は、遠隔ストレージ位置から受け取った管理データに対応するオブジェクト・データを受け取ることと、受け取ったオブジェクト・データを中央ストレージ位置のそれぞれのセル内に格納することとを含む。
【０００８】
データ・ストレージ・ネットワークにおいて上記のコンピュータ実施方法を実施することにより、実施形態は、特に既存のストレージ・ネットワークにおいて直面する欠点と比べて、改善されたストレージ効率を有する一貫性マルチサイト・データ複製（consistent multi-site data replication）を提供することができる
【０００９】
他の実施形態において、上記のコンピュータ実施方法の特徴及び／又はプロセスのいずれか１つ又は複数を実施できることにも留意されたい。別の実施形態によると、コンピュータ・プログラム製品が、プログラム命令がそこに具体化されたコンピュータ可読ストレージ媒体を含み、このプログラム命令は、プロセッサにより実行可能であり、プロセッサに、上記のコンピュータ実施方法のプロセスのいずれか１つ又は複数を実行させる。さらに別の実施形態によると、システムが、プロセッサと、プロセッサと統合される論理、プロセッサにより実行可能な論理、又はプロセッサと統合されかつプロセッサにより実行可能な論理を有し、この論理は、コンピュータ実施方法のステップを実行するように構成される。
【００１０】
随意的な手法によると、コンピュータ実施方法は、遠隔ストレージ位置から受け取ったオブジェクト・データの更新を中央ストレージ位置内のそれぞれのセルに経路指定するように構成された修正された一貫性ハッシュ・アルゴリズムを実施することをさらに含む。そのような修正された一貫性ハッシュ・アルゴリズムを実施することにより、データ・ストレージ・ネットワークは、望ましいことに、ストレージ・ネットワーク内の種々のストレージ位置にわたり一様なデータの管理を達成することができる。
【００１１】
幾つかの手法において、上記のコンピュータ実施方法の中央ストレージ位置及び遠隔ストレージ位置の各々は、随意的に、等しい数のインターネット・プロトコル（ＩＰ）アドレスを含むことができる。従って、データ・ストレージ・ネットワークは、改善された同時マルチサイト・データ・アクセスを達成することができる。
【００１２】
別の随意的な手法によると、コンピュータ実施方法は、中央ストレージ位置及び遠隔ストレージ位置と通信するように構成された共通認証サーバを使用することをさらに含むことができる。そのように構成された共通認証サーバを実装することにより、データ・ストレージ・ネットワークは、望ましいことに、ストレージ・ネットワーク内の種々のストレージ位置にわたり一様なデータの管理を達成することができる。
【００１３】
さらに別の随意的な手法によると、コンピュータ実施方法は、遠隔ストレージ位置の１つ又は複数からオブジェクト要求を受け取ることに応答して、中央ストレージ位置の共通セル内に格納された管理データを更新することを含むことができる。従って、データ・ストレージ・ネットワークは、ストレージ・ネットワーク内の種々のストレージ位置にわたり一様なデータの管理を達成することができる。
【００１４】
別の実施形態によるコンピュータ実施方法は、管理データを、１つ又は複数の遠隔ストレージ位置から中央ストレージ位置の名前空間内の指定された共通セルに送ることを含む。管理データは、１つ又は複数の遠隔ストレージ位置に格納されるオブジェク・データに対応する。コンピュータ実施方法は、１つ又は複数の遠隔ストレージ位置の各々に格納されたオブジェクト・データを、中央ストレージ位置の名前空間内のそれぞれのセル内に転送することも含む。さらに、コンピュータ実施方法は、修正された一貫性ハッシュ・アルゴリズム構成を実装することを含む。修正された一貫性ハッシュ・アルゴリズム構成は、１つ又は複数の遠隔ストレージ位置内の既存のオブジェクト・データの更新を中央ストレージ位置内のそれぞれのセルに経路指定する。
【００１５】
データ・ストレージ・ネットワークにおいて上記のコンピュータ実施方法を実施することにより、実施形態は、特に既存のストレージ・ネットワークにおいて直面する欠点と比べて、改善されたストレージ効率を有する一貫性マルチサイト・データ複製を提供することができる。
【００１６】
他の実施形態において、上記のコンピュータ実施方法の特徴及び／又はプロセスのいずれか１つ又は複数を実施できることにも留意されたい。別の実施形態によると、コンピュータ・プログラム製品が、プログラム命令がそこに具体化されたコンピュータ可読ストレージ媒体を含み、このプログラム命令は、プロセッサにより実行可能であり、プロセッサに、上記のコンピュータ実施方法のプロセスのいずれか１つ又は複数を実行させる。
【００１７】
随意的な手法によると、コンピュータ実施方法は、オブジェクト・データに対するプリフェッチ要求を、オンデマンドで中央ストレージ位置の名前空間内のそれぞれのセルに送ることをさらに含むことができる。そうすることにより、データ・ストレージ・ネットワークは、改善された同時マルチサイト・データ・アクセスを達成することができる。
【００１８】
別の随意的な手法によると、修正された一貫性ハッシュ・アルゴリズム構成は、遠隔ストレージ位置から送られた管理データの要求を、中央ストレージ位置内の共通セルに経路指定することができる。従って、修正された一貫性ハッシュ・アルゴリズム構成を実装するデータ・ストレージ・ネットワークは、望ましいことに、ストレージ・ネットワークにおける種々のストレージ位置にわたり一様なデータの管理を達成することができる。
【００１９】
幾つかの手法において、中央ストレージ位置及び遠隔ストレージ位置の各々は、等しい数のＩＰアドレスを含むことができる。従って、データ・ストレージ・ネットワークは、改善された同時マルチサイト・データ・アクセスを達成することができる。
【００２０】
さらに別の随意的な手法によると、コンピュータ実施形態方法は、中央ストレージ位置及び遠隔ストレージ位置と通信するように構成された共通認証サーバを使用することをさらに含むことができる。そのように構成された共通認証サーバを実装することにより、データ・ストレージ・ネットワークは、望ましいことに、ストレージ・ネットワーク内の種々のストレージ位置にわたり一様なデータの管理を達成すること、及び／又はオブジェクト・データ破損の低減を達成することができる。
【００２１】
本発明の他の態様及び実施形態は、図面と併せて、本発明の原理の例として示す以下の詳細な説明から明らかになるであろう。
ここで添付図面を参照して、本発明の実施形態を単なる例として説明する。
【図面の簡単な説明】
【００２２】
【図１】１つの実施形態による、ネットワーク・アーキテクチャを示す。
【図２】１つの実施形態による、図１のサーバ及び／又はクライアントと関連付けることができる代表的なハードウェア環境を示す。
【図３】１つの実施形態による、層状データ・ストレージ・システムを示す。
【図４】１つの実施形態による、方法のフローチャートである。
【図５】１つの実施形態による、ストレージ・ネットワークである。
【図６】１つの実施形態による、方法のフローチャートである。
【図７】１つの実施形態による、ストレージ・ネットワークの図である。
【発明を実施するための形態】
【００２３】
以下の説明は、本発明の一般的な原理を説明するためになされたものであり、本明細書で特許請求される本発明の概念を限定することを意図していない。さらに、本明細書で説明される特定の特徴は、種々の可能な組み合わせ及び置換の各々の他の説明される特徴と共に用いることができる。
【００２４】
特に別段の定めがない限り、全ての用語は、明細書から暗示される意味、並びに当業者により理解される及び／又は辞書、論文等に定められる意味を含む、その最も広い可能か解釈が与えられるべきである。
【００２５】
また、明細書及び添付の特許請求の範囲において用いられる場合、単数形「a」、「an」及び「the」は、他に断りのない限り、複数の指示物を含むことにも留意すべきである。さらに、「含む（comprise）」及び／又は「含んでいる（comprising）」という用語は、本明細書で用いられる場合、記述された特徴、整数、ステップ、動作、要素、及び／又はコンポーネントの存在を指示するが、１つ又は複数の他の特徴、整数、ステップ、動作、要素、コンポーネント、及び／又はそれらの群の存在又は追加を排除するものではないことも理解されるであろう。
【００２６】
以下の説明は、改善されたストレージ効率を有する一貫性マルチサイト・データ複製を提供するためのシステム、方法、及びコンピュータ・プログラム製品の幾つかの好ましい実施形態を開示する。さらに、以下にさらに詳細に説明されるように、異なる実施形態が、同時マルチサイト・データ・アクセス、サイトにわたる一様な管理データ、及び／又はオブジェクト・データ破損の低減のためのサポートを付加することができる。
【００２７】
１つの一般的な実施形態において、コンピュータ実施方法は、中央ストレージ位置内に名前空間を作成することと、名前空間を１つより多いセルに分割することとを含む。第１のセルは、中央ストレージ位置に結合された遠隔ストレージ位置から受け取った管理データを格納するように構成された共通セルである。残りのセルの各々は、遠隔ストレージ位置のそれぞれのものから受け取ったオブジェクト・データを格納するように構成される。コンピュータ実施方法は、遠隔ストレージ位置から管理データを受け取ることと、受け取った管理データを中央ストレージ位置の共通セル内に格納することと、遠隔ストレージ位置から受け取った管理データに対応するオブジェクト・データを受け取ることと、受け取ったオブジェクト・データを中央ストレージ位置のそれぞれのセル内に格納することとをさらに含む。管理データは、遠隔ストレージ位置内に格納されたオブジェクト・データに対応する。
【００２８】
別の一般的な実施形態において、コンピュータ・プログラム製品が、プログラム命令がそこに具体化されたコンピュータ可読ストレージ媒体を含み、このプログラム命令は、プロセッサにより実行可能であり、プロセッサに：プロセッサにより、中央ストレージ位置内の名前空間を作成させることと、プロセッサにより、名前空間を１つより多いセルに分割することとを行わせる。第１のセルは、中央ストレージ位置に結合された遠隔ストレージ位置から受け取った管理データを格納するように構成された共通セルである。残りのセルの各々は、遠隔ストレージ位置のそれぞれのものから受け取ったオブジェクト・データを格納するように構成される。プログラム命令は、プロセッサによりさらに実行可能であり、プロセッサに：プロセッサにより、遠隔ストレージ位置から管理データを受け取ることと、プロセッサにより、受け取った管理データを中央ストレージ位置の共通セル内に格納することと、プロセッサにより、遠隔ストレージ位置から受け取った管理データに対応するオブジェクト・データを受け取ることと、プロセッサにより、受け取ったオブジェクト・データを中央ストレージ位置のそれぞれのセル内に格納することとを行わせる。管理データは、遠隔ストレージ位置内に格納されたオブジェクト・データに対応する。
【００２９】
別の一般的な実施形態において、システムが、プロセッサと、プロセッサと統合された、プロセッサにより実行可能な、又はプロセッサと統合されかつプロセッサにより実行可能な論理とを含み、この論理は、プロセッサにより、中央ストレージ位置内に名前空間を作成し、プロセッサにより、名前空間を１つより多いセルに分割するように構成される。第１のセルは、中央ストレージ位置に結合された遠隔ストレージ位置から受け取った管理データを格納するように構成された共通セルである。残りのセルの各々は、遠隔ストレージ位置のそれぞれのものから受け取ったオブジェクト・データを格納するように構成される。論理はさらに、プロセッサにより、遠隔ストレージ位置から管理データを受け取り、プロセッサにより、受け取った管理データを中央ストレージ位置の共通セル内に格納し、プロセッサにより、遠隔ストレージ位置から受け取った管理データに対応するオブジェクト・データを受け取り、プロセッサにより、受け取ったオブジェクト・データを中央ストレージ位置のそれぞれのセル内に格納するように構成される。管理データは、遠隔ストレージ位置内に格納されたオブジェクト・データに対応する。
【００３０】
さらに別の実施形態において、コンピュータ実施方法は、管理データを、１つ又は複数の遠隔ストレージ位置から中央ストレージ位置の名前空間内の指定された共通セルに送ることと、１つ又は複数の遠隔ストレージ位置の各々に格納されたオブジェクト・データを中央ストレージ位置の名前空間内のそれぞれのセルに転送することと、修正された一貫性ハッシュ・アルゴリズム構成を実装することとを含む。管理データは、１つ又は複数の遠隔ストレージ位置に格納されたオブジェクト・データに対応する。さらに、修正された一貫性ハッシュ・アルゴリズム構成は、１つ又は複数の遠隔ストレージ位置内の既存のオブジェクト・データの更新を、中央ストレージ位置内のそれぞれのセルに経路指定する。
【００３１】
別の一般的な実施形態において、コンピュータ・プログラム製品が、プログラム命令がそこに具体化されたコンピュータ可読ストレージ媒体を含み、このプログラム命令は、プロセッサにより実行可能であり、プロセッサに：プロセッサにより、管理データを、１つ又は複数の遠隔ストレージ位置から中央ストレージ位置の名前空間内の指定された共通セルに送ることと、プロセッサにより、１つ又は複数の遠隔ストレージ位置の各々に格納されたオブジェクト・データを中央ストレージ位置の名前空間内のそれぞれのセルに転送することと、プロセッサにより、修正された一貫性ハッシュ・アルゴリズム構成を実装することとを行わせる。管理データは、１つ又は複数の遠隔ストレージ位置に格納されたオブジェクト・データに対応する。さらに、修正された一貫性ハッシュ・アルゴリズム構成は、１つ又は複数の遠隔ストレージ位置内の既存のオブジェクト・データの更新を、中央ストレージ位置内のそれぞれのセルに経路指定する。
【００３２】
図１は、１つの実施形態による、アーキテクチャ１００を示す。図１に示されるように、第１の遠隔ネットワーク１０４及び第２の遠隔ネットワーク１０６を含む、複数の遠隔ネットワーク１０２が提供される。ゲートウェイ１０１を、遠隔ネットワーク１０２と近接ネットワーク１０８との間に結合することができる。本アーキテクチャ１００との関連において、ネットワーク１０４、１０６はそれぞれ、これらに限定されるものではないが、ローカル・エリア・ネットワーク（ＬＡＮ）、インターネットなどの広域ネットワーク（ＷＡＮ）、公衆交換電話網（public switched telephone network、ＰＳＴＮ）、内線電話網等を含む、任意の形態をとることができる。
【００３３】
使用中、ゲートウェイ１０１は、遠隔ネットワーク１０２から近接ネットワーク１０８までの入口点（entrance point）として働く。従って、ゲートウェイ１０１は、ゲートウェイ１０１に到着する所定のデータ・パケットを方向付けることができるルータ、及び、所定のパケットについての、ゲートウェイ１０１に出入りする実際の経路を提供するスイッチとして機能することができる。
【００３４】
近接ネットワーク１０８に結合され、かつ、ゲートウェイ１０１を介して遠隔ネットワーク１０２からアクセス可能である少なくとも１つのデータ・サーバ１１４が、さらに含まれる。データ・サーバ１１４は、いずれのタイプのコンピューティング・デバイス／グループウエアも含み得ることに留意されたい。複数のユーザ・デバイス１１６が、各データ・サーバ１１４に結合される。ユーザ・デバイス１１６はまた、ネットワーク１０４、１０６、１０８の１つを通じて直接接続することもできる。こうしたユーザ・デバイス１１６は、デスクトップ・コンピュータ、ラップトップ・コンピュータ、手持ち式コンピュータ、プリンタ、又はいずれかの他のタイプの論理を含むことができる。１つの実施形態において、ユーザ・デバイス１１１を、ネットワークのいずれかに直接結合できることに留意されたい。
【００３５】
例えばファクシミリ装置、プリンタ、ネットワーク化及び／又はローカル・ストレージ・ユニット若しくはシステム等の周辺機器１２０又は一連の周辺機器１２０を、ネットワーク１０４、１０６、１０８の１つ又は複数に結合することができる。データベース及び／又は付加的なコンポーネントを、ネットワーク１０４、１０６、１０８に結合されたいずれかのタイプのネットワーク要素と共に利用すること、又はこれらに統合することができることに留意されたい。本説明との関連において、ネットワーク要素は、ネットワークの任意のコンポーネントを指すことができる。
【００３６】
幾つかの手法によると、本明細書で説明される方法及びシステムは、ＩＢＭ  ｚ／ＯＳ環境をエミュレートするＵＮＩＸシステム、ＭＩＣＲＯＳＯＦＴ  ＷＩＮＤＯＷＳ環境を仮想的にホストするＵＮＩＸシステム、ＩＢＭ  ｚ／ＯＳ環境をエミュレートするＭＩＣＲＯＳＯＦＴ  ＷＩＮＤＯＷＳシステム等のような、１つ又は複数の他のシステムをエミュレートする仮想システム及び／又はシステムと共に、及び／又は仮想システム及び／又はシステム上に実装することができる。幾つかの実施形態において、この仮想化及び／又はエミュレーションは、ＶＭＷＡＲＥソフトウェアを用いて機能強化することができる。
【００３７】
さらなる手法において、１つ又は複数のネットワーク１０４、１０６、１０８は、一般的に「クラウド」と呼ばれるシステムのクラスタを表すことができる。クラウド・コンピューティングにおいて、処理能力、周辺機器、ソフトウェア、データ、サーバ等のような共有リソースは、オンデマンド関係でクラウド内のいずれかのシステムに提供され、それにより多くのコンピューティング・システムにわたるアクセス及びサービスの分散が可能になる。クラウド・コンピューティングは、一般に、クラウド内で動作するシステム間のインターネット接続を必要とするが、システムを接続する他の技術を用いることもできる。
【００３８】
図２は、１つの実施形態による、図１のユーザ・デバイス１１６及び／又はサーバ１１４と関連した代表的なハードウェア環境を示す。こうした図は、マイクロプロセッサのような中央処理ユニット２１０と、システム・バス２１２を介して相互接続された多数の他のユニットとを有するワークステーションの一般的なハードウェア構成を示す。
【００３９】
図２に示されるワークステーションは、ランダム・アクセス・メモリ（ＲＡＭ）２１４と、読み出し専用メモリ（ＲＯＭ）２１６と、ディスク・ストレージ・ユニット２２０などの周辺機器をバス２１２に接続するためのＩ／Ｏアダプタ２１８と、キーボード２２４、マウス２２６、スピーカ２２８、マイクロフォン２３２、及び／又はタッチスクリーン、デジタル・カメラ（図示せず）などの他のユーザ・インターフェース・デバイスをバス２１２に接続するためのユーザ・インターフェース・アダプタ２２２と、ワークステーションを通信ネットワーク２３５（例えば、データ処理ネットワーク）に接続するための通信アダプタ２３４と、バス２１２をディスプレイ装置２３８に接続するためのディスプレイ・アダプタ２３６とを含む。
【００４０】
ワークステーションは、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）オペレーティング・システム（ＯＳ）、ＭＡＣ  ＯＳ、ＵＮＩＸ  ＯＳ等のようなオペレーティング・システムがそこに常駐することができる。上述したもの以外のプラットホーム及びオペレーティング・システム上で、好ましい実施形態を実施できることも理解されるであろう。好ましい実施形態は、オブジェクト指向プログラミング方法と共に、ＸＭＬ、Ｃ、及び／又はＣ＋＋言語、又は他のプログラミング言語を用いて書くことができる。複雑なアプリケーションを開発するのにますます用いられるようになったオブジェクト指向プログラミング（ＯＯＰ）を用いることができる。
【００４１】
ここで図３を参照すると、１つの実施形態による、ストレージ・システム３００が示される。種々の実施形態により、図３に示される要素の一部は、ハードウェア及び／又はソフトウェアとして実装することができる。ストレージ・システム３００は、少なくとも１つの上位のストレージ層（higher storage tier）３０２と、少なくとも１つの下位のストレージ層（lower storage tier）３０６上の複数の媒体と通信するためのストレージ・システム・マネージャ３１２を含むことができる。上位ストレージ層３０２は、好ましくは、ハードディスクドライブ（ＨＤＤ）内のハードディスク、不揮発性メモリ（ＮＶＭ）、ソリッドステートドライブ（ＳＳＤ）内のソリッドステートメモリ、フラッシュメモリ、ＳＳＤアレイ、フラッシュメモリ・アレイ等、及び／又は本明細書で記載される若しくは当技術分野において周知の他のもののような、１つ又は複数のランダム・アクセス及び／又はダイレクト・アクセス媒体３０４を含むことができる。下位ストレージ層３０６は、好ましくは、テープドライブ内の磁気テープ及び／又は光媒体、低速アクセスのＨＤＤ、低速アクセスのＳＳＤ等、及び／又は本明細書で記載される若しくは当技術分野において周知の他のもののような、シーケンシャル・アクセス媒体を含む１つ又は複数の低性能のストレージ媒体３０８を含むことができる。１つ又は複数の付加的なストレージ層３１６は、システム３００の設計者により所望されるような、ストレージ・メモリ媒体の任意の組み合わせを含むことができる。また、上位ストレージ層３０２及び／又は下位ストレージ層３０６のいずれも、ストレージ・デバイス及び／又はストレージ媒体の何らかの組み合わせを含むことができる。
【００４２】
ストレージ・システム・マネージャ３１２は、図３に示されるようなストレージ・エリア・ネットワーク（ＳＡＮ）、又は他の何らかの適切なネットワーク・タイプのようなネットワーク３１０を通じて、上位ストレージ層３０２及び下位ストレージ層３０６上のストレージ媒体３０４、３０８と通信することができる。ストレージ・システム・マネージャ３１２は、該ストレージ・システム・マネージャ３１２の一部であることも又は一部でないこともあるホスト・インターフェース３１４を通じて１つ又は複数のホスト・システム（図示せず）と通信することもできる。ストレージ・システム・マネージャ３１２及び／又はストレージ・システム３００のいずれかの他のコンポーネントは、ハードウェア及び／又はソフトウェアとして実装することができ、中央処理ユニット（ＣＰＵ）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）等のような、当技術分野において周知のタイプのコマンドを実行するためのプロセッサ（図示せず）を利用することができる。もちろん、本説明を読むと当業者には明らかなように、任意のストレージ・システムの配置を用いることができる。
【００４３】
より多くの実施形態において、ストレージ・システム３００は、いずれの数のデータ・ストレージ層を含むこともでき、各ストレージ層内に同じ又は異なるストレージ・メモリ媒体を含むことができる。例えば、各データ・ストレージ層は、ＨＤＤ、ＳＳＤ、シーケンシャル・アクセス媒体（テープドライブ内のテープ、光ディスクドライブ内の光ディスク等）、ダイレクト・アクセス媒体（ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等）、又は媒体ストレージ・タイプの任意の組み合わせのような、同じタイプのストレージ・メモリ媒体を含むことができる。１つのこうした構成において、上位ストレージ層３０２は、データをより高性能のストレージ環境内に格納するためのＳＳＤストレージ媒体の大多数を含むことができ、下位ストレージ層３０６及び付加的なストレージ層３１６を含む残りのストレージ層は、データをより低性能のストレージ環境内に格納するための、ＳＳＤ、ＨＤＤ、テープドライブ等の任意の組み合わせを含むことができる。このように、より頻繁にアクセスされるデータ、より高い優先順位を有するデータ、より迅速にアクセスする必要があるデータ等を上位ストレージ層３０２に格納する一方で、これらの属性の１つを有していないデータは、下位ストレージ層３０６を含む付加的なストレージ層３１６に格納され得る。もちろん、当業者であれば、本説明を読むと、本明細書で提示される実施形態による、異なるストレージ・スキームを実施するためのストレージ媒体タイプの他の多くの組み合わせを考え出すことができる。
【００４４】
幾つかの実施形態によると、ストレージ・システム（３００のような）は、データセットをオープンする要求を受けるように構成された論理、要求されたデータセットが複数の関連部分において層状データ・ストレージ・システム３００の下位ストレージ層３０６に格納されるかどうかを判断するように構成された論理、要求されたデータセットの関連部分の各々を層状データ・ストレージ・システム３００の上位ストレージ層３０２に移動させるように構成された論理、及び関連部分から層状データ・ストレージ・システム３００の上位ストレージ層３０２上の要求されたデータセットを組み立てるように構成された論理を含むことができる。
【００４５】
もちろん、この論理は、種々の実施形態による、いずれかのデバイス及び／又はシステムにおける方法として、又はコンピュータ・プログラム製品として実装することができる。
【００４６】
既述のように、従来のデータ・ストレージ・ネットワークは、ネットワークにわたり異なる位置においてデータを効率的に提供することに関して欠点に直面していた。
【００４７】
例えば、幾つかの従来のストレージ・ネットワークは、ネットワークにわたる異なる位置に同じデータの複数のコピーを格納し、それにより、データの可用性を高めている。しかしながら、マルチサイト・ネットワーク配備においては、これにより、データを種々の地理学にわたって複数回複製し、それにより、かなりの量の遅延が付加され、全体としてネットワークのストレージ要件が増大する。さらに、各ネットワーク・ユーザは、複数のデータのコピーが異なる地理的位置にあるかどうかに関係なく、それらが所有する（それらに関連付けられる）データの各コピーにアクセスすることができる。その結果、そうした従来のネットワークにおいては、アクセス制御の地理的分離は可能でない。
【００４８】
他の従来のストレージ・ネットワークは、データを中央位置に単一方向に移動させる。そこから、理想的には、ネットワーク内の他の位置のいずれかにより、データにアクセスすることができる。しかしながら、この手法により、所定のデータの部分の異なるデータベース・リスティング間に不整合が生じる。例えば、データの部分と関連したメタデータが、データベース内の所定の位置で行われた変更に従って更新される場合、ネットワーク遅延のため、及び／又はネットワークが他の更新により既に消費されている場合があるという事実のため、その変更が、即座に他のデータベース位置に複製されず、それにより、異なる位置におけるデータベース・リスティングにおける不整合が形成される。さらに、単一のデータ・コピーしか存在できないので、そうした従来のストレージ・ネットワークは、全体的に増大したデータ破損並びにデータ損失をもたらす。
【００４９】
明確な対照において、本明細書で説明される種々の実施形態は、改善されたストレージ効率を有する一貫性マルチサイト・データ複製を提供することができる。さらに、以下にさらに詳細に説明されるように、異なる実施形態は、同時マルチサイト・データ・アクセス、サイトにわたる均一な管理データ、及び／又はオブジェクト・データ破損の低減のためのサポートを付加することができる。
【００５０】
ここで図４を参照すると、１つの実施形態による、コンピュータ実施方法４００のフローチャートが示される。以下に説明される方法４００の動作は、好ましくは、例えば図５に示されるような、中央ストレージ位置及び複数の遠隔ストレージ位置を有するストレージ・ネットワークにおいて実行されることに留意されたい。
【００５１】
少しの間図５を参照すると、１つの実施形態により、ストレージ・ネットワーク５００の中央ストレージ位置５０２が、ＷＡＮ５１０上で複数の遠隔ストレージ位置５０６に接続される（例えば、電気的に結合される）ものとして示される。本実施形態においては、中央ストレージ位置を遠隔ストレージ位置及び認証サーバ５０８に接続するために、ＷＡＮ５１０が含められるが、これは、決して本発明を限定することを意図していないことに留意されたい。幾つかの実施形態においては、例えば、中央ストレージ位置及び遠隔ストレージ位置が地理的に十分に接近している場合、ＬＡＮを用いることができる。
【００５２】
しかしながら、図４の方法４００は、種々の実施形態において、とりわけ図１〜図３に示される環境のいずれかにおいて、本発明に従って実行することができる。もちろん、本説明を読むと当業者により理解されるように、図４に具体的に記載されるよりも多い又は少ない動作を、方法４００内に含めることもできる。
【００５３】
方法４００のステップの各々は、動作環境のいずれの適切なコンポーネントにより実行することができる。例えば、種々の実施形態において、方法４００は、コントローラ、プロセッサ等、又は１つ又は複数のプロセッサを内部に有する他の何らかのデバイスにより部分的に又は全体的に実行することができる。ハードウェア及び／又はソフトウェアの形で実施され、好ましくは少なくとも１つのハードウェア・コンポーネントを有するプロセッサ、例えば処理回路、チップ、及び／又はモジュールをいずれかのデバイスにおいて使用し、方法４００の１つ又は複数のステップを実行することができる。例示的なプロセッサとして、これらに限定されるものではないが、中央処理ユニット（ＣＰＵ）、特定用途向け集積回路（ＡＳＩＣ）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）等、それらの組み合わせ、又は当技術分野において周知の他のいずれかの適切なコンピューティング・デバイスが挙げられる。
【００５４】
図４に示されるように、動作４０２は、中央ストレージ位置内に名前空間を作成することを含む。名前空間は、本説明を読むと当業者には明らかないずれかの方法で、中央ストレージ位置内に作成することができる。
【００５５】
幾つかの実施形態において、中央ストレージ位置は、例えば、オブジェクト・ストレージ・アーキテクチャに従って、ノード・グループを実装することができる。１つの手法によると、ノード・グループは、分散負荷処理を実行するように、及び／又は中央ストレージ位置の名前空間へのノード処理要求に応答するように構成することができる。別の手法において、ノード・グループを用いて、メモリ（例えば、磁気ディスク）及び／又はストレージ・サブシステムへの書き込み動作を実行することができ、それにより、ある場合には、ストレージ・ユニット（リポジトリ）として働く。
【００５６】
さらに、動作４０４は、名前空間を、１つより多いセル、例えば少なくとも２つのセルに分割することを含む。名前空間が分割されるセルの数は、好ましくは、例えばデータ・ストレージ・ネットワーク上で、中央ストレージ位置に結合される遠隔ストレージ位置の数に対応する。さらに、名前空間が分割されるセルの数及び／又はサイズは、より多くの遠隔ストレージ位置が中央ストレージ位置に結合される（例えば、データ・ストレージ・ネットワークに付加される）につれて増大し、遠隔ストレージ位置が中央ストレージ位置から分離される（例えば、データ・ストレージ・ネットワークから除去される）につれて減少する。
【００５７】
動作４０４において作成されるセルの１つ（例えば、第１のセル）が、中央ストレージ位置に結合された遠隔ストレージ位置から受け取った管理データを格納するように構成された共通セルであることが好ましい。言い換えれば、名前空間内のセルの１つは、共通セルが配置される中央ストレージ位置に結合された全ての遠隔ストレージ位置から受け取った管理データを格納するように指定されることが好ましい。種々の手法によると、「管理データ」とは、例えば、ユーザ名、最後のログイン、コンテナの数、ＡＣＬ、消費された総バイト等のアカウント関連データ；例えばオブジェクトの数、オブジェクト作成時間、サイズ、Ｅｔａｇ等のコンテナ関連データを含むことができる。１つの手法において、本説明を読むと当業者には明らかなように、新しい遠隔オブジェクト・ノード・グループの調整を用いて、遠隔ストレージ位置を中央ストレージ位置内のそれぞれのセルにマッピングすることができる。
【００５８】
セルの１つだけが管理データを格納するように指定されることが好ましいが、幾つかの手法においては、１つより多いセルを用いられることがある。例えば、かなり多数の遠隔ストレージ位置が中央ストレージ位置に結合され、中央ストレージ位置が多量の管理データ等を受け取ることに応答して、１つより多いセルを用いて管理データを格納することができる。しかしながら、他の手法においては、中央ストレージ位置に格納された管理データの量のあらゆる変化に適合させるように、単に共通セルのサイズを調整することができる。
【００５９】
さらに、残りのセルの各々を、遠隔ストレージ位置のそれぞれのものから受け取った、オブジェクト・データ及び／又はオブジェクト・データに対応するメタデータを格納するように構成することができる。言い換えれば、残りのセルの各々は、それぞれの遠隔ストレージ位置のオブジェクト・データ及び／又は対応するメタデータを格納するように指定することができる。再び少しの間図５のネットワーク５００を参照すると、共通セルを用いて、遠隔ストレージ位置の４つ全てから受け取った管理データを格納することができる。共通セルと共に、中央ストレージ位置の名前空間が、付加的な４つのセルに分割されることが好ましい。４つのセルの各々は、遠隔ストレージ位置のそれぞれのものから受け取ったオブジェクト・データ及び／又はオブジェクト・データに対応するメタデータを格納するように指定される。
【００６０】
再び図４を参照すると、方法４００は、遠隔ストレージ位置から管理データを受け取ることをさらに含む。動作４０６を参照されたい。さらに、動作４０８は、受け取った管理データを中央ストレージ位置の共通セル内に格納することを含む。既述のように、管理データは、遠隔ストレージ位置のいずれか（又は全て）に格納されたオブジェクト・データに対応し得る。従って、管理データは、オブジェクト・データが付加されるとき、そこから除去されるとき、そこに更新されるときなど、時間が経つにつれて更新することができる。さらに、遠隔ストレージ位置自体が中央ストレージ位置に結合されるとき又は中央ストレージ位置から分離されるとき、共通セル内に含まれる管理データを調整し、更新することができる。
【００６１】
共通セルにおいて管理データが更新される速度は、所望の実施形態に応じて変化し得る。幾つかの手法において、共通セル内の管理データは、遠隔ストレージ位置のいずれかにおいてオブジェクト・データに変更が行われるたびに更新される。他の手法においては、指定された期間（例えば、時間の）毎に一度、管理データを更新することができ、それに従ってこの期間を調整することができる。さらに他の手法において、管理データは、例えば、ユーザ要求など所定の条件が満たされたとき、遠隔ストレージ位置から指定された数のオブジェクト・データ要求を受け取ったときに更新することができる。しかしながら、所定の遠隔ストレージ位置に対応する管理データのコピーを、遠隔ストレージ位置自体に格納することもできることに留意されたい。
【００６２】
決して本発明を限定することを意図するものではない１つの実施形態において、オブジェクト要求（例えば、ストレージ位置のいずれかから受け取った）がそれぞれの管理データを更新するたびに、管理データへの変更を、全てのストレージ位置にわたり非同期的に複製することができ、その結果、以下にさらに詳細に説明されるように、管理データはストレージ・ネットワークにわたり一貫性をもち、それによりデータ破損が減少する。
【００６３】
引き続き図４を参照すると、動作４１０は、遠隔ストレージ位置から受け取った管理データに対応するオブジェクト・データを受け取ることを含む。さらに、動作４１２は、受け取ったオブジェクト・データを、中央ストレージ位置のそれぞれのセル内に格納することを含む。既述のように、遠隔ストレージ位置の各々は、中央ストレージ位置の名前空間内の一意のセルに対応し得る。従って、特定の遠隔ストレージ位置から受け取ったオブジェクト・データは、遠隔ストレージ位置自体ではなく、その所定の遠隔ストレージ位置に関連したセル内に格納されることが好ましい。従って、遠隔ストレージ位置と中央ストレージ位置との間のストレージ複製は、実施されないことが好ましい。どちらかと言えば、データベースは、オブジェクトのリスティングにより更新できるに過ぎず、一方、実際のオブジェクト・データは、例えばＷＡＮキャッシングを用いて中央ストレージ位置に転送される。幾つかの手法において、オブジェクト・データは、遠隔ストレージ位置から中央ストレージ位置に自動的にアップロードすることができ、一方、アップロードされたオブジェクト・データに対応する管理データは、中央ストレージ位置及び遠隔ストレージ位置の両方に格納され得る。
【００６４】
例示的な実施形態によると、オブジェクト・データは、例えば独立ライタ・モード（independent writer mode）で実施されるＷＡＮキャッシングを用いて、遠隔ストレージ位置の各々から中央ストレージ位置内のそれぞれのセルに転送することができる。独立ライタ・モードは、中央ストレージ位置に対する変更をプッシュし、データ（ファイル）の更新をチェックしながら、ストレージ・ネットワークにわたり読み取り及び書き込みの両方を行うことを可能にする。１つの手法によると、中央ストレージ位置の名前空間内のオブジェクト・データ・セルの各々に対して、ＷＡＮキャッシングを実施することができる。
【００６５】
幾つかの手法において、遠隔ストレージ位置において独立ライタ・ファイル・セットに書き込まれたデータを、可能な限り迅速に中央ストレージ位置に転送する（プッシュする）ことができる。しかしながら、同じ（又は実質的に類似の）データが既に、遠隔ストレージ位置におけるキャッシュ・ファイル・セット内に存在する場合、オープンにされたとき、それを中央ストレージ位置におけるそのデータのバージョンと比較し、一番最近更新されたデータ・バージョンが使用されることを保証することができる。従って、中央ストレージ位置が最新の（一番最近更新された）データ・バージョンを含む場合、これを用いて遠隔ストレージ位置におけるデータを更新することができる。
【００６６】
管理データのコピーをそれぞれの遠隔ストレージ位置内にも維持しながら、オブジェクト・データを遠隔ストレージ位置の各々から、それぞれの遠隔ストレージ位置の各々に対応する中央ストレージ位置の名前空間内のセルに転送することにより、改善されたストレージ効率を達成することができる。より具体的には、この中央ストレージ位置へのオブジェクト・データの統合は、遠隔ストレージ位置におけるオンデマンド・データ・リコール能力を提供することに加えて、遠隔ストレージ位置の各々で使用されるネットワーク・ストレージの量を低減させる。さらに、例えば、オブジェクト・データの部分にアクセス制限を適用することにより、地理的に分離されたアクセス制御を保持することができる。１つの手法によると、アクセス制限は、地理的位置に基づいて実施することができる。従って、中央ストレージ位置におけるユーザは、それが中央ストレージ位置に格納されている場合でも、特定のオブジェクト・データにアクセスできないことがある。同様に、遠隔ストレージ位置のいずれかが、特定のオブジェクト・データ、オブジェクト・データ・メタデータ、管理データ等を選択的に拒否することがある。まもなく明らかになるように、修正された一貫性ハッシュ・アルゴリズム・リング（modified consistency hashing algorithm ring）を利用することにより、こうした制限を実施することができる。
【００６７】
再び図４を参照すると、方法４００は、修正された一貫性ハッシュ・アルゴリズムを実施することも含む。動作４１４を参照されたい。修正された一貫性ハッシュ・アルゴリズムは、中央ストレージ位置に格納されたオブジェクト・データの更新を、名前空間内の適切なセルに経路指定するように構成されることが好ましい。従って、所定の遠隔ストレージ位置からの中央ストレージ位置で受け取った更新を、その遠隔ストレージ位置に対応する一意のセルに経路指定することができ、その結果、受け取った更新に従って、内部に格納されたオブジェクト・データを補足し、除去し、置換し、又は他の方法で修正することができる。１つの手法において、遠隔ストレージ位置の各々に関する詳細、及びそれと関連したオブジェク・クラスタの詳細を含むように、マルチ領域設定ファイルを更新することができる。従って、修正された一貫性ハッシュ・アルゴリズムを実施することにより、データ・ストレージ・ネットワークが、望ましいことに、ストレージ・ネットワーク内の種々のストレージ位置にわたり一様なデータの管理を達成することが可能になる。
【００６８】
さらに、それに行われた更新に対応するオブジェクト・データの部分（例えば、個々の行）を置換する能力は、オブジェクト・データへの更新を実行するために用いられるネットワークの量及び／又はストレージ位置の帯域幅の著しい低減を可能にする。これは、その部分への更新を実施するために全てのオブジェクト・データを書き直す従来のストレージ・ネットワークと比較すると、特に明らかである。
【００６９】
幾つかの実施形態において、本説明を読むと当業者により理解されるように、修正された一貫性ハッシュ・アルゴリズムは、配置アルゴリズム・リングを含むことができる。１つの手法によると、リングは、経路のハッシュ値からの構成可能なビットの数を、対応するデバイスを指定するパーティション・インデックスとして用いることができる。複製、マイグレーション、ヘルス・チェッカ等のような他の特徴も、修正された一貫性ハッシュ・アルゴリズムにより決定されるストレージ経路を使用することができる。
【００７０】
修正された一貫性ハッシュ・アルゴリズム・リングは、これが入力／出力（Ｉ／Ｏ）を、各遠隔ストレージ位置から中央ストレージ位置内のそれぞれのセルへ経路指定できるように構成され得る。さらに、修正された一貫性ハッシュ・アルゴリズム・リングは、全ての遠隔ストレージ位置及び中央ストレージ位置にわたり複製することができ、そのことは、本明細書で説明されるように、マルチサイトからのデータへのオブジェクト・データ・アクセスを可能にする。手法に応じて、Ｉ／Ｏは、個々の遠隔ストレージ位置又はそれに対応する命名空間セルで開始することができる。
【００７１】
上で触れたように、修正された一貫性ハッシュ・アルゴリズム・リングは、データがクラスタ（ストレージ位置）内にあるべき場所を決定することができる。幾つかの手法によると、アカウント・データベース、コンテナ・データベース、個々のオブジェクト・ストレージ・ポリシー等用に指定された別個のリングもあり得るが、各リングは、同じ又は類似の方法で機能し得る。これらの修正された一貫性ハッシュ・アルゴリズム・リングは、サーバ・プロセス自体がリングを修正せず、これらは、代わりに、他のツールにより修正される所定の新しいリングであるという点で、外部から管理することができる。
【００７２】
１つの実施形態において、修正された一貫性ハッシュ・アルゴリズム・リングは、経路のＭＤ５ハッシュからの構成可能なビットの数を、デバイスを指定するパーティション・インデックスとして使用する。ハッシュから保持されるビットの数は、パーティションのべき乗（partition power）を表すことができ、２を底とするパーティションのべき乗値を用いてパーティション・カウントを示すことができる。さらに、複製（replica）カウントを用いて、所定のリング内に、デバイス割り当てのための幾つのパーティションが含まれるかを示すことができる。本説明を読むと当業者により理解されるように、所定のパーティション数について、各複製をリングにおける異なるデバイスに割り当てることができる。
【００７３】
デバイスをリングに付加し、複製割り当てのために部分に利用可能な能力を説明することができる。幾つかの手法において、デバイスを、領域、区域、サーバ等を含む障害ドメイン（failure domain）内に配置することができる。領域は、低帯域幅、又は異なる領域内のマシン間の高レインテンシにより特徴付けられる地理的システムを説明するために用いることができる。多くのリングは、単一の領域のみからなり得る。区域は、物理的位置、電力分離、ネットワーク分離等、又は同時に利用可能でない複数の複製を減らす他のいずれかの属性に基づいて、デバイスをグループ化するために用いることができる。
【００７４】
他のデバイスに比較してデバイスの相対重量を記述する重量が、デバイに与えられることもある。修正された一貫性ハッシュ・アルゴリズム・リングを構築する際、その重量に従って、各部分の複製の全てをデバイスに割り当てることができる。さらに、幾つかの手法において、ある部分の各複製を、その部分についての複製をまだ有していない障害ドメインを有するデバイスに割り当てようと試みる。幾つかの手法において、ある部分の単一の複製のみを各デバイスに割り当てることができる。言い換えれば、等しい数のデバイス及び複製があるはずである。
【００７５】
修正された一貫性ハッシュ・アルゴリズム・リングは、「リング・ビルダ（ring-builder）」と呼ばれるユーティリティにより手動で構築及び／又は管理することができる。リング・ビルダは、パーティションをデバイスに割り当て、最適化された構造をシリアル化されたファイルに書き込むことができ、それを遠隔ストレージ位置においてサーバにシップ・アウトすることができる。サーバ・プロセスは、場合によってはファイルの修正時間をチェックし、所望のように、修正された一貫性ハッシュ・アルゴリズム・リング構造のそのインメモリ・コピーを再ロードすることができる。
【００７６】
リング・ビルダはまた、将来の修正された一貫性ハッシュ・アルゴリズム・リングを構築するために使用されるリング情報及び付加的なデータと共に一意のビルダ・ファイルを保持することもできる。一意のビルダ・ファイルは、破損及び／又は削除から保護されることが好ましい。一意のビルダ・ファイルが保護されることを保証するための１つの選択肢は、修正された一貫性ハッシュ・アルゴリズム・リング・ファイル自体をコピーしながら、ビルダ・ファイルをあらゆる遠隔ストレージ位置にコピーすることを含むことができる。別の選択肢は、ビルダ・ファイルをクラスタ自体にアップロードすることである。
【００７７】
中央ストレージ位置に格納されたオブジェクト・データは、遠隔ストレージ位置のいずれにおいても要求することができる。幾つかの手法によると、オブジェクト・データは、プリフェッチ・コマンドを中央ストレージ位置に送ることによって、遠隔ストレージ位置において要求され得る。他の手法において、オブジェクト・データは、ファイルが遠隔ストレージ位置においてオープンにされた結果として、中央ストレージ位置から要求されることがある。オブジェクト・データ・コマンドを受け取ることに応答して、中央ストレージ位置は、要求されたオブジェクト・データを独立ライタ・キャッシュに提供することができる。
【００７８】
遠隔ストレージ位置の１つ又は複数から受け取ったオブジェクト・データ要求は、要求されているオブジェクト・データと関連した管理データに影響を与えることがある。例えば、遠隔ストレージ位置は、その遠隔ストレージ位置に対応する、中央ストレージ位置におけるセル内に格納されたオブジェクト・データへのアクセスを要求することがある。ひとたび要求されるオブジェクト・データへのアクセスが与えられると、遠隔ストレージ位置は、アカウント関連データを更新すること（例えば、ファイル名を変更する、ログインする等）により、及び／又はコンテナ関連データを更新すること（例えば、オブジェクトの論理グループ化を調整すること）により、そのオブジェクト・データに対応する管理データを変更することができる。幾つかの手法において、遠隔ストレージ位置は、オブジェクト・データ自体、及び／又はそれに対応するメタデータを修正することができる。従って、動作４１６は、遠隔ストレージ位置の１つ又は複数からオブジェクト要求を受け取ることに応答して、中央ストレージ位置の共通セル内に格納された管理データを更新することを含む。管理データを更新することにより、中央ストレージ位置内の共通セルは、ストレージ・ネットワークにおけるオブジェクト・データの正確な表現を維持することができる。さらに、データ・ストレージ・ネットワークは、ストレージ・ネットワーク内の種々のストレージ位置にわたり一様なデータの管理を達成することができる。
【００７９】
再び少しの間図５を参照すると、ストレージ・ネットワーク５００が、認証サーバ５０８を含むことができる。認証サーバ５０８は、例えばユーザ、別のサーバ等といった、ネットワーク５００へのアクセスを試みるエンティティの認証を容易にするために用いることができる。例示的な手法によると、認証サーバ５０８は、全ての遠隔ストレージ位置５０６及び中央ストレージ位置５０２によりアクセス可能な外部のキーストーン・サーバとすることができる。認証サーバ５０８は、所望の実施形態に応じて、専用コンピュータ、イーサネット・スイッチ、アクセス・ポイント、ネットワーク・アクセス・サーバ等内に常駐することができる。
【００８０】
従って、再び図４の方法４００を参照すると、随意的な動作４１８が、中央ストレージ位置及び遠隔ストレージ位置と通信するように構成された共通の認証サーバを用いることを含む。そのように構成された共通認証サーバを実装することにより、データ・ストレージ・ネットワークは、望ましいことに、ストレージ・ネットワーク内の種々のストレージ位置にわたり一様なデータの管理を達成すること、及び／又はオブジェクト・データ破損の減少を達成することができる。しかしながら、幾つかの実施形態において、１つより多い認証サーバを用いることもできる。
【００８１】
ストレージ・ネットワークの中央ストレージ位置及び遠隔ストレージ位置の各々が、等しい数のＩＰアドレスを含むことも好ましい。例えば、中央ストレージ位置において５つのＩＰアドレスが含まれ、遠隔ストレージ位置の各々において対応する５つのＩＰアドレスが含まれることがある。しかしながら、他の手法においては、ストレージ位置の各々に含まれるＩＰアドレスの数は異なり得る。例えば、中央ストレージ位置は、遠隔ストレージ位置の各々よりも多くのＩＰアドレスを含むことがある。本説明を読むと当業者には明らかなように、ストレージ位置の各々におけるＩＰアドレスを用いて、それらの間の通信を容易にすることができる。従って、データ・ストレージ・ネットワークは、改善された同時マルチサイト・データ・アクセスを達成することができる。
【００８２】
幾つかの手法において、ＩＰアドレスは、クラスタ・エクスポート・サービス（cluster export service、ＣＥＳ）ＩＰアドレスとすることができる。さらに、一貫性ハッシュ・リングの各々を修正して、中央ストレージ位置のクラスタ・エクスポート・サービス（ＣＥＳ）ＩＰアドレスを個々の遠隔ストレージ位置のクラスタＣＥＳ  ＩＰアドレスに変更することができる。
【００８３】
本説明を読むと当業者には明らかなように、ＣＥＳは、プロトコル及び／又はコマンドを通じて高可用性を監視するためのサポートを含むことができる。幾つかの手法において、クラスタ内のノードのサブセットを、ネットワーク・ファイル・システム（ＮＦＳ）、サーバ・メッセージ・ブロック（ＳＭＢ）、オブジェクト・プロトコル等を用いて、ファイル・システムをエクスポートするための高度に利用可能な解決法を提供するように構成することができる。この機能は、Ｇｅｎｅｒａｌ  Ｐａｒａｌｌｅｌ  Ｆｉｌｅ  Ｓｙｓｔｅｍ（ＧＰＦＳ）によって達成することができる。参加しているノードは、ＣＥＳノード（例えば、ＣＥＳクラスタ）又はプロトコル・ノードとして指定することができる。
【００８４】
ＩＰアドレスのセットは、ＣＥＳアドレス・プールと考えることができる。従って、ＩＰアドレスのセットを定め、ＣＥＳノードの間で分散させることができる。ノードがＧＰＦＳクラスタに出入りするとき、プール内のアドレスをＣＥＳノードの間で再分散し、高可用性を与えることができる。さらに、遠隔クライアントは、これらのアドレスを用いて、クラスタにアクセスすることができる。
【００８５】
幾つかの手法によると、各ＣＥＳノードは、ノードの状態を監視する別個のＧＰＦＳユーティリティを実行することができる。このユーティリティは、ノードに割り当てられたＣＥＳアドレスのチェック、及び／又はＣＥＳクラスタ内のイネーブルにされたサービスを実施するプロセスのチェックを含む。障害の検出時、監視ユーティリティは、ノードを、ＣＥＳクラスタ内に一時的に参加できないノードとしてマーク付けし、該ノードに割り当てられたあらゆるアドレスを再割り当てすることができる。
【００８６】
異なる手法において、ＣＥＳは、以下のプロトコル：ＮＦＳ、ＳＭＢ及びオブジェクトのいずれか１つ又は複数をサポートすることができる。さらに、クラスタにおいて、各プロトコルをイネーブル又はディスエーブルにすることができる。１つの手法によると、全てのＣＥＳノードは、プロトコルがＣＥＳクラスタにおいてイネーブルにされたことに応答して、プロトコルのためにサーバを実行することができる。
【００８７】
方法４００内に含まれる動作は、中央ストレージ位置に結合されたコントローラにより、それらを実行できるように調整することができる。方法６００は、１つの実施形態により、遠隔ストレージ位置のいずれか１つ又は複数に結合されたコントローラにより実行することができる類似の動作を含む。以下に述べられる方法６００の動作は、好ましくは、例えば図５に示されるような、中央ストレージ位置及びそれに結合された複数の遠隔ストレージ位置を有するストレージ・ネットワークにおいて実行されることに留意されたい。しかしながら、図６の方法６００は、種々の実施形態において、とりわけ図１〜図５に示される実施形態のいずれかにおいて本発明に従って実行することができる。もちろん、本説明を読むと当業者には明らかなように、図６に具体的に説明されるものより多い又は少ない動作を、方法６００内に含めることもできる。
【００８８】
方法６００のステップの各々は、オペレーティング環境のいずれかの適切なコンポーネントにより実行することができる。例えば、種々の実施形態において、方法６００は、コントローラ、プロセッサ等、又は１つ又は複数のプロセッサを内部に有する他の何らかのデバイスにより、部分的に又は完全に実行することができる。プロセッサ、例えば、処理回路、チップ、及び／又はハードウェア及び／又はソフトウェアで実装され、好ましくは少なくとも１つのハードウェア・コンポーネントを有するモジュールを任意のデバイスにおいて使用し、方法６００の方法の１つ又は複数のステップを実行することができる。例示的なプロセッサとして、これらに限定されるものではないが、中央処理ユニット（ＣＰＵ）、特定用途向け集積回路（ＡＳＩＣ）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）等、それらの組み合わせ、又は当技術分野において周知の他のいずれかの適切なコンピューティング・デバイスが挙げられる。
【００８９】
図６に示されるように、動作６０２は、管理データのコピーを、１つ又は複数の遠隔ストレージ位置から中央ストレージ位置の名前空間内の指定された共通セルに送ることを含む一方で、管理データのオリジナル・コピーは、それぞれの遠隔ストレージ位置に保持することができる。上述のように、中央ストレージ位置における名前空間は、複数のセルに分割されることが好ましい。セルの第１のもの（共通セル）を用いて、中央ストレージ位置に接続された遠隔ストレージ位置の全てから受け取った管理データを格納することができる。他のセルはそれぞれ、好ましくは、遠隔ストレージ位置に個々に割り当てることができ、遠隔ストレージ位置の各々は、中央ストレージ位置における一意のセルに割り当てられる。
【００９０】
動作６０２において送られる管理データは、１つ又は複数の遠隔ストレージ位置において同時に格納されるオブジェクト・データに対応し得る。例えば、ユーザは、それへの書き込み動作を行うことによって、新しいオブジェクト・データを遠隔ストレージ位置に格納することができる。新しいオブジェクト・データを用いて、遠隔ストレージ位置において、管理データを形成することもできる。ひとたび管理データのコピーが中央ストレージ位置に送られると、所定の遠隔ストレージ位置からのオブジェクト・データ及び／又はオブジェクト・データ・メタデータは、その遠隔ストレージ位置に対応する中央ストレージ位置においてセル内に格納されることが好ましい。従って、動作６０４は、１つ又は複数の遠隔ストレージ位置の各々に格納されたオブジェクト・データを、中央ストレージ位置の名前空間内のそれぞれのセルに転送することを含む。
【００９１】
幾つかの実施形態において、動作６０４は、ＷＡＮキャッシング手順を実施することを含むことができる。ＷＡＮキャッシングを実施することにより、種々の遠隔ストレージ位置におけるオブジェクト・データを中央ストレージ位置（例えば、データセンタ）に転送することができ、それにより、遠隔ストレージ位置の各々において要求されるストレージの量が低減される。これは、例えば上述したような独立ライタ・モードで実施されるＷＡＮキャッシング手順を実施する実施形態において特にあてはまる。さらに、例えば本明細書で説明される種々の実施形態において案内されるように、ＷＡＮキャッシング手順は、中央ストレージ位置から、遠隔ストレージ位置におけるオブジェクト・データを、オンデマンドでリコール及び／又はプリフェッチするためのプロビジョンを容易にすることができる。
【００９２】
遠隔ストレージ位置の設定は、所望の実施形態に応じて調整することができる。決して本発明を限定することを意図するものではない１つの実施形態によると、それぞれのコンテナ・サーバ及び／又はアカウント構成ファイルの各々は、データをローカルに作成されたストレージ上に格納するように構成することができる。さらに、各遠隔ストレージ位置のノードを、ＷＡＮキャッシング・ゲートウェイ・ノードとしてイネーブルにすることができる。その結果、遠隔ストレージ位置の各々は、オブジェクト・データを中央ストレージ位置にプッシュすることができる。
【００９３】
方法６００は、修正された一貫性ハッシュ・アルゴリズム構成を実装することをさらに含む。動作６０６を参照されたい。既述のように、修正された一貫性ハッシュ・アルゴリズム構成を用いて、１つ又は複数の遠隔ストレージ位置内の既存のオブジェクト・データの更新を、中央ストレージ位置の名前空間内のそれぞれのセルに経路指定することができる。さらに、遠隔ストレージ位置から送られた管理データに対する要求を中央ストレージ位置内の共通セルに経路指定するように、修正された一貫性ハッシュ・アルゴリズム構成を構成することができる。従って、修正された一貫性ハッシュ・アルゴリズムを実施することにより、望ましいことに、データ・ストレージ・ネットワークが、ストレージ・ネットワーク内の種々のストレージ位置にわたり一様なデータの管理を達成することが可能になる。
【００９４】
幾つかの実施形態において、本説明を読むと当業者により理解されるように、修正された一貫性ハッシュ・アルゴリズムは、配置アルゴリズム・リングを含むことができる。１つの手法によると、リングは、経路のハッシュ値からの構成可能なビットの数を、対応するデバイスを指定するパーティション・インデックスとして用いることができる。
【００９５】
引き続き図６を参照すると、動作６０８は、オブジェクト・データに対するプリフェッチ要求を、オンデマンドで中央ストレージ位置の名前空間内のそれぞれのセルに送ることを含む。また、遠隔ストレージ位置の各々は、中央ストレージ位置における名前空間内の一意のセルに対応することが好ましい。さらに、遠隔ストレージ位置からのオブジェクト・データは、それぞれのセル内に格納されることが好ましい。従って、本説明を読むと当業者により理解されるように、オブジェクト・データのアクセスは、遠隔ストレージ位置から要求を送ることによって達成することができる。そうすることにより、データ・ストレージ・ネットワークは、改善された同時マルチサイト・データ・アクセスを達成することができる。
【００９６】
既述のように、単一の認証サーバが、中央ストレージ位置並びに遠隔ストレージ位置と通信するために用いられることが好ましいことがある（例えば、図５の５０８を参照）。従って、動作６１０は、中央ストレージ位置並びに遠隔ストレージ位置と通信するように構成された共通認証サーバを用いることを含む。既述のように、そのように構成された共通認証サーバを実装することにより、データ・ストレージ・ネットワークは、望ましいことに、ストレージ・ネットワーク内の種々のストレージ位置にわたり一様なデータの管理を達成すること、及び／又はオブジェクト・データ破損の減少を達成することができる。
【００９７】
図７は、使用中の実施形態による、データ・ストレージ・ネットワーク７００を示す。１つの選択肢として、本データ・ストレージ・ネットワーク７００は、図４〜図６のような他の図を参照して説明されるもののような、本明細書に列挙される他のいずれかの実施形態からの特徴と併せて実施することができる。しかしながら、こうしたデータ・ストレージ・ネットワーク７００及び本明細書に提示される他のものは、本明細書で列挙される例示的な実施形態に具体的に説明されていることも又はされていないこともある、種々のアプリケーション及び／又は順列で用いることができる。さらに、本明細書で提示されるデータ・ストレージ・ネットワーク７００は、いずれかの所望の環境で用いることができる。従って、図７（及び他の図）は、あらゆる可能な順列を含むと考えることができる。
【００９８】
図示されるように、図７のデータ・ストレージ・ネットワーク７００は、既述のような使用中の実施形態によるストレージ・ネットワーク７００を含み、認証サーバ５０８を含むことができる。認証サーバ５０８は、例えば、ユーザ、別のサーバ等のような、ネットワーク５００にアクセスしようと試みるエンティティの認証を容易にするために用いることができる。例示的な手法によると、認証サーバ５０８は、全ての遠隔ストレージ位置５０６並びに中央ストレージ位置５０２によりアクセス可能な外部のキーストーン・サーバとすることができる。認証サーバ５０８は、所望の実施形態に応じて、専用コンピュータ、イーサネット・スイッチ、アクセス・ポイント、ネットワーク・アクセス・サーバ等内に常駐することができる。
【００９９】
データ・ストレージ・ネットワーク７００は、３つのストレージ・ポリシー、すなわちストレージ・ポリシー１、ストレージ・ポリシー２、及びストレージ共通／ユニバーサル・ポリシーと関連付けられた２つの遠隔ストレージ位置（例えば、遠隔クラスタ、すなわち遠隔クラスタ−１及び遠隔クラスタ−２）を含む。ストレージ・ポリシーの第１のもの（図７に示されるようなストレージ共通／ユニバーサル・ポリシー）は、管理データを複製するために用いることができ、一方、他の２つのストレージ・ポリシー、すなわちストレージ・ポリシー１及びストレージ・ポリシー２は、オブジェクト・データ・アクセスに関連する。
【０１００】
ストレージ・ポリシー、すなわちストレージ・ポリシー１、ストレージ・ポリシー２、ストレージ共通／ユニバーサル・ポリシーの各々は、セルと関連付けられ、それぞれのセルの各々はさらに、中央ストレージ位置（例えば、ホーム・サイト）のホーム・クラスタに作成された一意のセルとマッピングすることができる。従って、例えば、本明細書で説明される手法の何れかに従って、ストレージ・ポリシーのいずれかからのオブジェクト・データを、中央ストレージ位置内の対応する一意のセルに転送すること、好ましくは、そこに格納することができる。
【０１０１】
ストレージ位置のいずれかに生成された管理データは、好ましくは、オブジェクト・マルチサイト複製を用いて３回複製される（複製係数「ｒｅｐｌ＝３」により表される）。従って、例えば本明細書で説明される及び／又は示唆されるように、全てのストレージ位置にわたり、管理データの一様なリスティングを達成することができる。
【０１０２】
ストレージ・ポリシー１及びストレージ・ポリシー２について、オブジェクト・データについての複製係数が１に設定され（複製係数「ｒｅｐｌ＝１」により表される）、これはストレージ位置のいずれかにおいて生成されたオブジェクト・データが、格納のために中央ストレージ位置のホーム・クラスタに送られ（例えば、転送され又はアップロードされ）、一方、オブジェクト・データと関連したスタブだけが、それぞれのストレージ位置に格納されることを示す。
【０１０３】
「一次アクセス」及び「二次アクセス」は、アクセス制御に関連し、１つの遠隔ストレージ位置からのユーザは、他のいずれかの遠隔ストレージ位置からの該ユーザのオブジェクト・データにもアクセスすることができる。決して本発明を限定することを意図するものではない一例によると、遠隔クラスタ、すなわち遠隔クラスタ−１で生じたオブジェクト・データは、ホーム・クラスタ、すなわちホーム・クラスタに複製される。このデータは、他の遠隔クラスタ、すなわち遠隔クラスタ−２にも複製され、以下同様である。本例によると、「複製される（replicated）」とは、オブジェクト・データがホーム・クラスタ、すなわちホーム・クラスタに移動される（例えば、アップロードされる又は転送される）ことを意味するように意図され、オリジナル・オブジェクト・データに対するスタブは、遠隔クラスタ、すなわち遠隔クラスタ−１及び遠隔クラスタ−２の両方で利用可能である。
【０１０４】
さらに図７を参照すると、各ストレージ・ポリシーに対してアクセス制限を適用することができる。一例によると、ストレージ・ポリシー−１（一次アクセス）は、セルが、他の遠隔ストレージ位置に加えて、所定の遠隔ストレージ位置から中央ストレージ位置に複製されても、所定の遠隔ストレージ位置と関連したユーザだけが、それへのアクセスを許可され得る。幾つかの手法において、特定のデータへのアクセスを有するユーザは、ネットワーク内のあらゆるストレージ位置からそのデータにアクセスすることができる。言い換えれば、遠隔クラスタ−２と関連付けられたユーザには、同じストレージ・ネットワーク内の異なる遠隔ストレージ位置と関連付けられたユーザにより格納されるデータへのアクセスが許可されないことがある。
【０１０５】
本明細書で説明される種々の実施形態は、従来のデータ・ストレージ・ネットワークに優る著しい改善を達成することができる。すなわち、管理データ（例えば、アカウント関連データ、コンテナ関連データ等）のコピーを、遠隔ストレージ位置並びに中央ストレージ位置の共通セルに格納することにより、統一されたデータ及び管理プレーンが達成され、そのことは、オブジェクト・データへのほぼ瞬間的なアクセスを与えることを助け、複数の領域にわたる一様な管理データのリスティングをサポートする。これにより、オブジェクト・データの破損及び／又はデータベースに関する管理データの破損の可能性が著しく低減する。
【０１０６】
さらに、本明細書で説明される実施形態は、オンデマンドで、中央ストレージ位置から遠隔ストレージ位置のいずれか１つ又は複数へのオブジェクト・データ・プリフェッチ能力を達成することができる一方で、遠隔ストレージ位置の各々において必要とされるストレージの量も低減される。上述のように、これは、中央ストレージ位置におけるセル内にオブジェクト・データを維持することにより、達成することができる。さらに、本明細書で説明される実施形態の一部においてＷＡＮキャッシングを実施することにより、従来のデータ経路問題を解決するための適切な解決法を形成することができる。
【０１０７】
本発明は、システム、方法、及び／又はコンピュータ・プログラム製品とすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読ストレージ媒体（単数又は複数）を含むことができる。
【０１０８】
コンピュータ可読ストレージ媒体は、命令実行デバイスにより使用される命令を保持及び格納できる有形デバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、これらに限定されるものではないが、電子記憶装置、磁気記憶装置、光学記憶装置、電磁気記憶装置、半導体記憶装置、又は上記のいずれかの適切な組み合わせとすることができる。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストとして、以下のもの：すなわち、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能プログラム可能読み出し専用メモリ（ＥＰＲＯＭ又はフラッシュメモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、ポータブル・コンパクト・ディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、メモリ・スティック、フロッピー・ディスク、パンチカード若しくは命令がそこに記録された溝内の隆起構造のような機械的にエンコードされたデバイス、及び上記のいずれかの適切な組み合わせが挙げられる。本明細書で使用される場合、コンピュータ可読ストレージ媒体は、電波、又は他の自由に伝搬する電磁波、導波管若しくは他の伝送媒体を通じて伝搬する電磁波（例えば、光ファイバ・ケーブルを通る光パルス）、又はワイヤを通って送られる電気信号などの、一時的信号自体として解釈されない。
【０１０９】
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング／処理デバイスに、又は、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワーク、及び／又は無線ネットワークなどのネットワークを介して外部コンピュータ又は外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、及び／又はエッジ・サーバを含むことができる。各コンピューティング／処理デバイスにおけるネットワーク・アダプタ・カード又はネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、コンピュータ可読プログラム命令を転送して、それぞれのコンピューティング／処理デバイス内のコンピュータ可読ストレージ媒体に格納する。
【０１１０】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ（ＩＳＡ）命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、又は、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋などのオブジェクト指向プログラミング言語、及び、「Ｃ」プログラミング言語若しくは類似のプログラミング言語などの通常の手続き型プログラミング言語を含む１つ又は複数のプログラミング言語の任意の組み合わせで記述することができる。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で、独立型ソフトウェア・パッケージとして実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、又は完全に遠隔コンピュータ若しくはサーバ上で実行される場合もある。最後のシナリオにおいて、遠隔コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）若しくは広域ネットワーク（ＷＡＮ）を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部コンピュータへの接続がなされる場合もある（例えば、インターネットサービスプロバイダを用いたインターネットを通じて）。幾つかの実施形態において、例えば、プログラム可能論理回路、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、又はプログラム可能論理アレイ（ＰＬＡ）を含む電子回路は、コンピュータ可読プログラム命令の状態情報を用いて電子回路を個人化することによりコンピュータ可読プログラム命令を実行し、本発明の態様を実施することができる。
【０１１１】
本発明の態様は、本発明の実施形態による方法、装置（システム）及びコンピュータ・プログラム製品のフローチャート図及び／又はブロック図を参照して説明される。フローチャート図及び／又はブロック図の各ブロック、並びにフローチャート図及び／又はブロック図内のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることが理解されるであろう。
【０１１２】
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えてマシンを製造し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロック内で指定された機能／動作を実施するための手段を作り出すようにすることができる。これらのコンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、及び／又は他のデバイスを特定の方式で機能させるように指示することができるコンピュータ可読媒体内に格納し、それにより、そのコンピュータ可読媒体内に格納された命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作の態様を実施する命令を含む製品を含むようにすることもできる。
【０１１３】
コンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上にロードして、一連の動作ステップをコンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上で行わせてコンピュータ実施のプロセスを生成し、それにより、コンピュータ又は他のプログラム可能装置上で実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実行するためのプロセスを提供するようにすることもできる。
【０１１４】
図面内のフローチャート及びブロック図は、本発明の種々の実施形態による、システム、方法、及びコンピュータ・プログラム製品の可能な実装の、アーキテクチャ、機能及び動作を示す。この点に関して、フローチャート内の各ブロックは、指定された論理機能を実装するための１つ又は複数の実行可能命令を含む、モジュール、セグメント、又はコードの一部を表すことができる。幾つかの代替的な実装において、ブロック内に示される機能は、図に示される順序とは異なる順序で生じることがある。例えば、連続して示される２つのブロックは、関与する機能に応じて、実際には実質的に同時に実行されることもあり、又はこれらのブロックはときとして逆順で実行されることもある。ブロック図及び／又はフローチャート図の各ブロック、及びブロック図及び／又はフローチャート図内のブロックの組み合わせは、指定された機能又は動作を実行する、又は専用のハードウェアとコンピュータ命令との組み合わせを実行する、専用ハードウェア・ベースのシステムによって実装できることにも留意されたい。
【０１１５】
さらに、種々の実施形態によるシステムは、プロセッサと、プロセッサと統合され及び／又はプロセッサにより実行可能な論理とを含むことができ、この論理は、本明細書で列挙されるプロセス・ステップの１つ又は複数を実行するように構成される。プロセッサは、別個のプロセッサ、又は処理ハードウェア、メモリ、Ｉ／Ｏインターフェース等のような多くのコンポーネントを含む処理回路のような、本明細書で説明されるような任意の構成のものとすることができる。統合が意味するのは、プロセッサが、特定用途向け集積回路（ＡＳＩＣ）、ＦＰＧＡ等のようなハードウェア論理としてこれに埋め込まれた論理を有することである。プロセッサにより実行可能が意味するのは、論理が、ハードウェア論理、ファームウェアのようなソフトウェア論理、オペレーティング・システムの部分、アプリケーション・プログラムの部分等、又はプロセッサによりアクセス可能であり、かつ、プロセッサによる実行時にプロセッサに何らかの機能を実施させるように構成された、ハードウェア及びソフトウェア論理の何らかの組み合わせである。ソフトウェア論理は、当技術分野において周知のようないずれかのメモリ・タイプのローカル及び／又は遠隔メモリ上に格納することができる。当技術分野で周知の任意のプロセッサ、例えば、ソフトウェア・プロセッサ・モジュール、及び／又はＡＳＩＣ、ＦＰＧＡ、中央処理ユニット（ＣＰＵ）、集積回路（ＩＣ）、グラフィック処理ユニット（ＧＰＵ）等のハードウェア・プロセッサを用いることができる。
【０１１６】
上記のシステム及び／又は方法の種々の特徴を任意の方式で組み合わせて、上記に提示された説明から複数の組み合わせを作り出すことができることが明らかであろう。
【０１１７】
本発明の実施形態を、カスタマのために展開されるサービスの形態で提供し、オンデマンドでサービスを提供できることがさらに理解されるであろう。
【０１１８】
種々の実施形態を上記で説明してきたが、これらは限定ではなく例示のみの目的で提示されたものであることを理解されたい。従って、好ましい実施形態の幅及び範囲は、上記の例示的な実施形態のいずれかに限定されるべきではなく、以下の特許請求の範囲及びその等価物に従ってのみ定められるべきである。
【符号の説明】
【０１１９】
１００：アーキテクチャ
１０１：ゲートウェイ
１０２、１０４、１０６、１０８、３１０：ネットワーク
１１１、１１６：ユーザ・デバイス
１１４：データ・サーバ
２１０：中央処理ユニット
２１２：システム・バス
３００：ストレージ・システム
３０２：上位ストレージ層
３０４、３０８：ストレージ媒体
３０６：下位ストレージ層
３１２：ストレージ・システム・マネージャ
３１４：ホスト・インターフェース
３１６：付加的なストレージ層
４００、６００：方法
５００：ストレージ・ネットワーク
５０２：中央ストレージ位置
５０６：遠隔ストレージ位置
５０８：認証サーバ
７００：データ・ストレージ・ネットワーク
【図１】
2019537774.tif 000003
【図２】
2019537774.tif 000004
【図３】
2019537774.tif 000005
【図４】
2019537774.tif 000006
【図５】
2019537774.tif 000007
【図６】
2019537774.tif 000008
【図７】
2019537774.tif 000009
【手続補正書】
【提出日】令和1年5月21日(2019.5.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータ実施方法であって、
中央ストレージ位置内に名前空間を作成することと、
前記名前空間を１つより多いセルに分割することであって、第１のセルは、前記中央ストレージ位置に結合された遠隔ストレージ位置から受け取った管理データを格納するように構成された共通セルであり、残りのセルの各々は、前記遠隔ストレージ位置のそれぞれのものから受け取ったオブジェクト・データを格納するように構成される、分割することと、
前記遠隔ストレージ位置から管理データを受け取ることであって、前記管理データは前記遠隔ストレージ位置内に格納されたオブジェクト・データに対応する、受け取ることと、
前記受け取った管理データを前記中央ストレージ位置の前記共通セル内に格納することと、
前記遠隔ストレージ位置から受け取った前記管理データに対応するオブジェクト・データを受け取ることと、
前記受け取ったオブジェクト・データを前記中央ストレージ位置の前記それぞれのセル内に格納することと、
を含む方法。
【請求項２】
前記遠隔ストレージ位置から受け取った前記オブジェクト・データの更新を、前記中央ストレージ位置内の前記それぞれのセルに経路指定するように構成された修正された一貫性ハッシュ・アルゴリズムを実施することを含む、請求項１に記載のコンピュータ実施方法。
【請求項３】
前記中央ストレージ位置及び前記遠隔ストレージ位置の各々は、等しい数のインターネット・プロトコル・アドレスを含む、請求項１に記載のコンピュータ実施方法。
【請求項４】
前記中央ストレージ位置及び前記遠隔ストレージ位置と通信するように構成された共通認証サーバを使用することを含む、請求項１に記載のコンピュータ実施方法。
【請求項５】
前記中央ストレージ位置及び前記遠隔ストレージ位置は、広域ネットワーク上で接続される、請求項１に記載のコンピュータ実施方法。
【請求項６】
前記遠隔ストレージ位置の１つ又は複数からオブジェクト要求を受け取ることに応答して、前記中央ストレージ位置の前記共通セル内に格納された前記管理データを更新することを含む、請求項１に記載のコンピュータ実施方法。
【請求項７】
コンピュータ・プログラムであって、前記コンピュータ・プログラムは、プロセッサにより実行可能であり、前記プロセッサに、請求項１〜６の何れか１項に記載の方法を実行させる、コンピュータ・プログラム。
【請求項８】
プロセッサと、
前記プロセッサと統合された、前記プロセッサにより実行可能である、又は前記プロセッサと統合されかつ前記プロセッサにより実行可能な論理と、
を含み、前記論理は、
前記プロセッサにより、中央ストレージ位置内に名前空間を作成することと、
前記プロセッサにより、前記名前空間を１つより多いセルに分割することであって、第１のセルは、前記中央ストレージ位置に結合された遠隔ストレージ位置から受け取った管理データを格納するように構成された共通セルであり、残りのセルの各々は、前記遠隔ストレージ位置のそれぞれのものから受け取ったオブジェクト・データを格納するように構成される、分割することと、
前記プロセッサにより、前記遠隔ストレージ位置から管理データを受け取ることであって、前記管理データは前記遠隔ストレージ位置内に格納されたオブジェクト・データに対応する、受け取ることと、
前記プロセッサにより、前記受け取った管理データを前記中央ストレージ位置の前記共通のセル内に格納することと、
前記プロセッサにより、前記遠隔ストレージ位置から受け取った前記管理データに対応するオブジェクト・データを受け取ることと、
前記プロセッサにより、前記受け取ったオブジェクト・データを前記中央ストレージ位置の前記それぞれのセル内に格納することと、
を行うように構成される、システム。
【請求項９】
前記論理は、
前記プロセッサにより、前記遠隔ストレージ位置から受け取った前記オブジェクト・データの更新を、前記中央ストレージ位置内の前記それぞれのセルに経路指定するように構成された修正された一貫性ハッシュ・アルゴリズムを実施すること、
を行うように構成される、請求項８に記載のシステム。
【請求項１０】
前記論理は、
前記プロセッサにより、前記中央ストレージ位置及び前記遠隔ストレージ位置と通信するように構成された共通認証サーバを使用すること、
を行うように構成される、請求項８に記載のシステム。
【請求項１１】
前記論理は、
前記プロセッサにより、前記遠隔ストレージ位置の１つ又は複数からオブジェクト要求を受け取ることに応答して、前記中央ストレージ位置の前記共通セル内に格納された前記管理データを更新すること、
を行うように構成される、請求項８に記載のシステム。
【請求項１２】
コンピュータ実施方法であって、
管理データを、１つ又は複数の遠隔ストレージ位置から中央ストレージ位置の名前空間内の指定された共通セルに送ることであって、前記管理データは前記１つ又は複数の遠隔ストレージ位置に格納されたオブジェクト・データに対応する、送ることと、
前記１つ又は複数の遠隔ストレージ位置の各々に格納された前記オブジェクト・データを、前記中央ストレージ位置の前記名前空間内のそれぞれのセルに転送することと、
修正された一貫性ハッシュ・アルゴリズム構成を実施することと、
を含み、
前記修正された一貫性ハッシュ・アルゴリズム構成は、前記１つ又は複数の遠隔ストレージ位置内の既存のオブジェクト・データの更新を前記中央ストレージ位置内の前記それぞれのセルに経路指定する、コンピュータ実施方法。
【請求項１３】
オブジェクト・データに対するプリフェッチ要求を、オンデマンドで前記中央ストレージ位置の前記名前空間内の前記それぞれのセルに送ることを含む、請求項１２に記載のコンピュータ実施方法。
【請求項１４】
前記修正された一貫性ハッシュ・アルゴリズム構成は、前記遠隔ストレージ位置から送られた前記管理データの要求を前記中央ストレージ位置内の前記共通セルに経路指定する、請求項１２に記載のコンピュータ実施方法。
【請求項１５】
前記中央ストレージ位置及び前記遠隔ストレージ位置の各々は、等しい数のインターネット・プロトコル・アドレスを含む、請求項１２に記載のコンピュータ実施方法。
【請求項１６】
前記中央ストレージ位置及び前記遠隔ストレージ位置と通信するように構成された共通認証サーバを使用することを含む、請求項１２に記載のコンピュータ実施方法。
【請求項１７】
プログラム命令を有するコンピュータ・プログラムであって、前記プログラム命令は、プロセッサにより実行可能であり、前記プロセッサに、
前記プロセッサにより、管理データを、１つ又は複数の遠隔ストレージ位置から中央ストレージ位置の名前空間内の指定された共通セルに送ることであって、前記管理データは前記遠隔ストレージ位置内に格納されたオブジェクト・データに対応する、送ることと、
前記プロセッサにより、前記１つ又は複数の遠隔ストレージ位置の各々に格納された前記オブジェクト・データを、前記中央ストレージ位置の名前空間内のそれぞれのセルに転送することと、
前記プロセッサにより、修正された一貫性ハッシュ・プロトコル構成を実施することと、
を行わせ、
前記修正された一貫性ハッシュ・アルゴリズム構成は、前記１つ又は複数の遠隔ストレージ位置内の既存のオブジェクト・データの更新を前記中央ストレージ位置内の前記それぞれのセルに経路指定する、コンピュータ・プログラム。
【請求項１８】
前記プログラム命令は、前記プロセッサにより実行可能であり、前記プロセッサに、
前記プロセッサにより、オブジェクト・データに対するプリフェッチ要求を、オンデマンドで前記中央ストレージ位置の前記名前空間内の前記それぞれのセルに送ること、
を行わせる、請求項１７に記載のコンピュータ・プログラム。
【請求項１９】
前記修正された一貫性ハッシュ・アルゴリズム構成は、前記遠隔ストレージ位置から送られた前記管理データの要求を前記中央ストレージ位置内の前記共通セルに経路指定する、請求項１７に記載のコンピュータ・プログラム。
【請求項２０】
前記中央ストレージ位置及び前記遠隔ストレージ位置の各々は、等しい数のインターネット・プロトコル・アドレスを含む、請求項１７に記載のコンピュータ・プログラム。
【国際調査報告】
2019537774.tif 000010
2019537774.tif 000011