(57)【要約】  本開示は、クラスタファイルがその上に記憶される分散ファイルシステムのクラスタを管理するための方法およびシステムに関する。その上で動作するアプリケーションを有するユーザデバイスと、クラスタファイルに関するメタデータを使用して、複数のクラスタにわたる操作を管理および調整するための分散ファイルシステムのクラスタとの間に中間層が提供される。
2018537736.tif 000002
【特許請求の範囲】
【請求項１】
分散ファイルシステムの複数のクラスタを管理するためのシステムであって、前記複数のクラスタはクラスタファイルを有し、前記システムは、
少なくとも1つの処理ユニットと、
前記少なくとも1つの処理ユニットに通信可能に結合された非一時的メモリとを含み、前記非一時的メモリは、前記少なくとも1つの処理ユニットによって実行可能な、
ユーザデバイス上のアプリケーションから、新しいクラスタファイルを作成するための要求を受信し、
前記新しいクラスタファイルに対応するクラスタ管理ファイルを作成し、
前記クラスタ管理ファイルに論理ファイル名を割り当て、且つ、前記新しいクラスタファイルに物理ファイル名を割り当て、
前記複数のクラスタにおいて、前記新しいクラスタファイルのための物理ファイル位置を割り当て、
前記クラスタ管理ファイルを前記新しいクラスタファイルにマッピングするメタデータを、前記クラスタ管理ファイルに記憶し、前記メタデータは、前記物理ファイル名および前記物理ファイル位置を含み、
前記物理ファイル名を使用して、前記新しいクラスタファイルを作成するための前記要求を、前記物理ファイル位置に対応する前記クラスタの1つに送信し、
前記論理ファイル名を使用して、前記クラスタファイルの作成を前記アプリケーションに確認応答するためのコンピュータ可読プログラム命令を含む、システム。
【請求項２】
前記分散ファイルシステムは、Hadoop分散ファイルシステムまたはHadoop互換ファイルシステムである、請求項1に記載のシステム。
【請求項３】
前記プログラム命令は、前記アプリケーションおよび前記クラスタと通信するための少なくとも1つのクライアントコンポーネント、および、前記メタデータを生成および記憶するための少なくとも1つのマネージャコンポーネントを実施するために実行可能である、請求項1に記載のシステム。
【請求項４】
前記少なくとも1つのクライアントコンポーネントは、各々が異なるユーザアプリケーションとインタフェースするように構成される、複数のクライアントコンポーネントを含む、請求項3に記載のシステム。
【請求項５】
前記少なくとも1つのマネージャコンポーネントは、各々が前記複数のクラスタの異なるグループとインタフェースするように構成される、複数のマネージャコンポーネントを含む、請求項3に記載のシステム。
【請求項６】
前記プログラム命令は、前記システムを仮想マシンとして実施するために実行可能である、請求項1に記載のシステム。
【請求項７】
分散ファイルシステムの複数のクラスタを管理するための方法であって、前記複数のクラスタはクラスタファイルを有し、前記方法は、
ユーザデバイス上のアプリケーションから、新しいクラスタファイルを作成するための要求を受信するステップと、
前記新しいクラスタファイルに対応するクラスタ管理ファイルを作成するステップと、
前記クラスタ管理ファイルに論理ファイル名を割り当て、且つ、前記新しいクラスタファイルに物理ファイル名を割り当てるステップと、
前記複数のクラスタから、前記新しいクラスタファイルのための物理ファイル位置を割り当てるステップと、
前記クラスタ管理ファイルを前記新しいクラスタファイルにマッピングするメタデータを、前記クラスタ管理ファイルに記憶するステップであって、前記メタデータは、前記物理ファイル名および前記物理ファイル位置を含む、ステップと、
前記物理ファイル名を使用して、前記新しいクラスタファイルを作成するための前記要求を、前記物理ファイル位置に対応する前記クラスタの1つに送信するステップと、
前記論理ファイル名を使用して、前記クラスタファイルの作成を前記アプリケーションに確認応答するステップとを含む方法。
【請求項８】
新しいクラスタファイルを作成するための前記要求を、第1のフォーマットから第2のフォーマットへ変換するステップをさらに含み、前記アプリケーションは前記第1のフォーマットをサポートし、且つ、前記クラスタは前記第2のフォーマットをサポートする、請求項7に記載の方法。
【請求項９】
前記新しいクラスタファイルのための物理ファイル位置を割り当てるステップは、前記新しいクラスタファイルを要求する前記アプリケーションに関して、前記クラスタのうちの最も近い1つを選択するステップを含む、請求項7に記載の方法。
【請求項１０】
前記新しいクラスタファイルのための物理ファイル位置を割り当てるステップは、他のクラスタと比較して、利用可能な空間の最大量を有するクラスタを、前記クラスタから選択するステップを含む、請求項7に記載の方法。
【請求項１１】
前記新しいクラスタファイルにアクセスするための要求を受信するステップであって、前記要求は、前記論理ファイル名を含む、ステップと、
前記論理ファイル名を使用して、前記新しいクラスタファイルに対応する前記メタデータを検索するステップと、
前記メタデータから、前記物理ファイルの位置を決定するステップと、
前記物理ファイル名を使用して、前記新しいクラスタファイルにアクセスするための前記要求を、前記クラスタのうちの少なくとも1つに送信するステップとをさらに含む、請求項7に記載の方法。
【請求項１２】
前記新しいクラスタファイルにアクセスするための前記要求を送信するステップは、システム性能、システム一貫性、ローカルデータ利用可能性および前記クラスタにわたるロードバランシングのうちの少なくとも1つを考慮することによって、前記少なくとも1つのクラスタを選択するステップを含む、請求項11に記載の方法。
【請求項１３】
分散ファイルシステムの複数のクラスタを管理するための、プロセッサによって実行可能なプログラム命令がその上に記憶されるコンピュータ可読媒体であって、前記複数のクラスタはクラスタファイルを有し、前記プログラム命令は、
ユーザデバイス上のアプリケーションから、新しいクラスタファイルを作成するための要求を受信し、
前記新しいクラスタファイルに対応するクラスタ管理ファイルを作成し、
前記クラスタ管理ファイルに論理ファイル名を割り当て、且つ、前記新しいクラスタファイルに物理ファイル名を割り当て、
前記複数のクラスタにおいて、前記新しいクラスタファイルのための物理ファイル位置を割り当て、
前記クラスタ管理ファイルを前記新しいクラスタファイルにマッピングするメタデータを、前記クラスタ管理ファイルに記憶し、前記メタデータは、前記物理ファイル名および前記物理ファイル位置を含み、
前記物理ファイル名を使用して、前記新しいクラスタファイルを作成するための前記要求を、前記物理ファイル位置に対応する前記クラスタの1つに送信し、
前記論理ファイル名を使用して、前記クラスタファイルの作成を前記アプリケーションに確認応答するように構成される、コンピュータ可読媒体。
【請求項１４】
分散ファイルシステムの複数のクラスタを管理するためのシステムであって、前記複数のクラスタはクラスタファイルを有し、前記システムは、
少なくとも1つの処理ユニットと、
前記少なくとも1つの処理ユニットに通信可能に結合された非一時的メモリとを含み、前記非一時的メモリは、前記少なくとも1つの処理ユニットによって実行可能な、
前記クラスタのうちの少なくとも1つにおいてクラスタファイルにアクセスするための要求を受信し、前記要求は論理ファイル名を含み、前記要求は、ユーザデバイス上のアプリケーションから受信され、
前記論理ファイル名を使用して、メタデータを検索し、前記メタデータは、論理ファイルを前記クラスタファイルに対応する物理ファイルにマッピングし、
前記メタデータから、前記物理ファイルの位置を決定し、
前記物理ファイル名を使用して、前記クラスタファイルにアクセスするための前記要求を、前記物理ファイルの前記位置に対応する前記クラスタのうちの1つに送信するためのコンピュータ可読プログラム命令を含む、システム。
【請求項１５】
前記分散ファイルシステムは、Hadoop分散ファイルシステムまたはHadoop互換ファイルシステムである、請求項14に記載のシステム。
【請求項１６】
前記プログラム命令は、前記アプリケーションおよび前記クラスタと通信するための少なくとも1つのクライアントコンポーネント、および、前記メタデータを生成および記憶するための少なくとも1つのマネージャコンポーネントを実施するために実行可能である、請求項1４に記載のシステム。
【請求項１７】
前記少なくとも1つのクライアントコンポーネントは、各々が異なるユーザアプリケーションとインタフェースするように構成される、複数のクライアントコンポーネントを含む、請求項16に記載のシステム。
【請求項１８】
前記少なくとも1つのマネージャコンポーネントは、各々が前記複数のクラスタの異なるグループとインタフェースするように構成される、複数のマネージャコンポーネントを含む、請求項16に記載のシステム。
【請求項１９】
前記プログラム命令は、前記システムを仮想マシンとして実施するために実行可能である、請求項14に記載のシステム。
【請求項２０】
分散ファイルシステムの複数のクラスタを管理するための方法であって、前記複数のクラスタはクラスタファイルを有し、前記方法は、
前記クラスタのうちの少なくとも1つにおいてクラスタファイルにアクセスするための要求を受信するステップであって、前記要求は論理ファイル名を含み、前記要求は、ユーザデバイス上のアプリケーションから受信される、ステップと、
前記論理ファイル名を使用して、メタデータを検索するステップであって、前記メタデータは、論理ファイルを前記クラスタファイルに対応する物理ファイルにマッピングする、ステップと、
前記メタデータから、前記物理ファイルの位置を決定するステップと、
前記物理ファイル名を使用して、前記クラスタファイルにアクセスするための前記要求を、前記クラスタのうちの少なくとも1つに送信するステップとを含む方法。
【請求項２１】
新しいクラスタファイルにアクセスするための前記要求を、第1のフォーマットから第2のフォーマットへ変換するステップをさらに含み、前記アプリケーションは前記第1のフォーマットをサポートし、且つ、前記クラスタは前記第2のフォーマットをサポートする、請求項20に記載の方法。
【請求項２２】
前記新しいクラスタファイルにアクセスするための前記要求を送信するステップは、前記メタデータから、前記物理ファイルの前記位置に対応する前記クラスタのうちの前記少なくとも1つに、前記要求を送信するステップを含む、請求項20に記載の方法。
【請求項２３】
前記新しいクラスタファイルにアクセスするための前記要求を送信するステップは、システム性能、システム一貫性、ローカルデータ利用可能性および前記クラスタにわたるロードバランシングのうちの少なくとも1つを考慮することによって、前記クラスタのうちの前記少なくとも1つを選択するステップを含む、請求項20に記載の方法。
【請求項２４】
前記新しいクラスタファイルを修正するための要求を受信するステップであって、前記要求は前記論理ファイル名を含む、ステップと、
前記論理ファイル名を使用して、前記新しいクラスタファイルに対応する前記メタデータを検索するステップと、
前記新しいクラスタファイルを修正するための前記要求に従って、新しいメタデータを生成するステップと、
前記メタデータから、前記物理ファイルの位置を決定するステップと、
前記新しいクラスタファイルを修正するための前記要求を、前記物理ファイル名を使用して、前記クラスタのうちの少なくとも1つに送信するステップと、
前記新しいクラスタファイルに関連して、前記新しいメタデータを記憶するステップとをさらに含む、請求項20に記載の方法。
【請求項２５】
前記新しいクラスタファイルを修正するための前記要求を送信するステップは、前記メタデータから、前記物理ファイルの前記位置に対応する前記クラスタのうちの前記少なくとも1つに、前記要求を送信するステップを含む、請求項24に記載の方法。
【請求項２６】
分散ファイルシステムの複数のクラスタを管理するための、プロセッサによって実行可能なプログラム命令がその上に記憶されるコンピュータ可読媒体であって、前記複数のクラスタはクラスタファイルを有し、前記プログラム命令は、
前記クラスタのうちの少なくとも1つにおいてクラスタファイルにアクセスするための要求を受信し、前記要求は論理ファイル名を含み、前記要求は、ユーザデバイス上のアプリケーションから受信され、
前記論理ファイル名を使用して、メタデータを検索し、前記メタデータは、論理ファイルを前記クラスタファイルに対応する物理ファイルにマッピングし、
前記メタデータから、前記物理ファイルの位置を決定し、
前記物理ファイル名を使用して、前記クラスタファイルにアクセスするための前記要求を、前記クラスタのうちの少なくとも1つに送信するように構成される、コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願との相互参照
【０００２】
本願は、2016年11月16日に出願された、米国仮特許出願番号62/422,751の利益を主張し、その内容は、その全体が参照によって本明細書に組み込まれる。本願はまた、2017年5月3日に出願された、米国仮特許出願番号15/585,815の利益を主張し、その内容もまた、その全体が参照によって本明細書に組み込まれる。
【０００３】
本開示は、分散ファイルシステムの複数のクラスタを集中管理することに関する。
【背景技術】
【０００４】
分散ファイルシステムのクラスタは、ユーザが（クライアントを介して）、コンピュータネットワークを介して共有する複数のホストからのデータにアクセスおよび処理することを可能にする、クライアント/サーバベースのアプリケーションである。
【０００５】
ファイルシステムのサイズが増加し、組織にわたって異なるニーズが発生すると、分散ファイルシステムの複数のクラスタは、互いに独立して作成および管理されることに行き着く。このことは、異なるクラスタで必要とされるデータが1つのクラスタで生成されること、複数のクラスタにわたるアプリケーションのロードバランシングおよび障害回復の目的のためのデータ複製のニーズに関連する課題等の、いくつかの課題を引き起こす。
【０００６】
これらの問題に対処するいくつかの手段が存在するが、それらは複雑であり、且つ、データの複製または名前空間の同期等の個々のニーズに向けられている。従って、分散ファイルシステムの複数のクラスタを管理することへの全体論的なアプローチが必要である。
【発明の概要】
【課題を解決するための手段】
【０００７】
本開示は、クラスタファイルがその上に記憶される分散ファイルシステムのクラスタを管理するための方法およびシステムに関する。その上で動作するアプリケーションを有するユーザデバイスと、クラスタファイルに関するメタデータを使用して、複数のクラスタにわたる操作を管理および調整するための分散ファイルシステムのクラスタとの間に中間層が提供される。
【０００８】
第1の広い態様によると、分散ファイルシステムの複数のクラスタを管理するためのシステムが提供され、複数のクラスタはクラスタファイルを有する。システムは、少なくとも1つの処理ユニットと、少なくとも1つの処理ユニットに通信可能に結合され、コンピュータ可読プログラム命令を含む非一時的メモリとを含む。プログラム命令は、ユーザデバイス上のアプリケーションから、新しいクラスタファイルを作成するための要求を受信し、新しいクラスタファイルに対応するクラスタ管理ファイルを作成し、新しいクラスタファイルに論理ファイル名および物理ファイル名を割り当て、複数のクラスタにおいて、新しいクラスタファイルのための物理ファイル位置を割り当て、クラスタ管理ファイルを新しいクラスタファイルにマッピングするメタデータを、クラスタ管理ファイルに記憶し、メタデータは、物理ファイル名および物理ファイル位置を含み、物理ファイル名を使用して、新しいクラスタファイルを作成するための要求を、物理ファイル位置に対応するクラスタの1つに送信し、論理ファイル名を使用して、クラスタファイルの作成をアプリケーションに確認応答するために、少なくとも1つの処理ユニットによって実行可能である。
【０００９】
先の実施形態のいずれか1つにおいて、分散ファイルシステムは、Hadoop分散ファイルシステムまたはHadoop互換ファイルシステムである。
【００１０】
先の実施形態のいずれか1つにおいて、プログラム命令は、アプリケーションおよびクラスタと通信するための少なくとも1つのクライアントコンポーネント、および、メタデータを生成および記憶するための少なくとも1つのマネージャコンポーネントを実施するために実行可能である。
【００１１】
先の実施形態のいずれか1つにおいて、少なくとも1つのクライアントコンポーネントは、各々が異なるユーザアプリケーションとインタフェースするように構成される、複数のクライアントコンポーネントを含む。
【００１２】
先の実施形態のいずれか1つにおいて、少なくとも1つのマネージャコンポーネントは、各々が複数のクラスタの異なるグループとインタフェースするように構成される、複数のマネージャコンポーネントを含む。
【００１３】
先の実施形態のいずれか1つにおいて、プログラム命令は、システムを仮想マシンとして実施するために実行可能である。
【００１４】
別の広い態様によると、分散ファイルシステムの複数のクラスタを管理するための方法が提供され、複数のクラスタはクラスタファイルを有する。ユーザデバイス上のアプリケーションから、新しいクラスタファイルを作成するための要求が受信される。新しいクラスタファイルに対応するクラスタ管理ファイルが作成される。新しいクラスタファイルに論理ファイル名および物理ファイル名が割り当てられる。複数のクラスタから、新しいクラスタファイルのための物理ファイル位置が割り当てられる。クラスタ管理ファイルにメタデータが記憶され、従って、クラスタ管理ファイルを新しいクラスタファイルにマッピングし、メタデータは、物理ファイル名および物理ファイル位置を含む。物理ファイル名を使用して、新しいクラスタファイルを作成するための要求が、物理ファイル位置に対応するクラスタの1つに送信される。論理ファイル名を使用して、クラスタファイルの作成がアプリケーションに確認応答される。
【００１５】
先の実施形態のいずれか1つにおいて、方法は、新しいクラスタファイルを作成するための要求を、第1のフォーマットから第2のフォーマットへ変換することをさらに含み、アプリケーションは第1のフォーマットをサポートし、且つ、クラスタは第2のフォーマットをサポートする。
【００１６】
先の実施形態のいずれか1つにおいて、新しいクラスタファイルのための物理ファイル位置を割り当てることは、新しいクラスタファイルを要求するアプリケーションに関して、クラスタのうちの最も近い1つを選択することを含む。
【００１７】
先の実施形態のいずれか1つにおいて、新しいクラスタファイルのための物理ファイル位置を割り当てることは、他のクラスタと比較して、利用可能な空間の最大量を有するクラスタを、クラスタから選択することを含む。
【００１８】
先の実施形態のいずれか1つにおいて、方法は、新しいクラスタファイルにアクセスするための要求を受信することであって、要求は、論理ファイル名を含む、受信することと、論理ファイル名を使用して、新しいクラスタファイルに対応するメタデータを検索することと、メタデータから、物理ファイルの位置を決定することと、物理ファイル名を使用して、新しいクラスタファイルにアクセスするための要求を、クラスタのうちの少なくとも1つに送信することとをさらに含む。
【００１９】
先の実施形態のいずれか1つにおいて、新しいクラスタファイルにアクセスするための要求を送信することは、システム性能、システム一貫性、ローカルデータ利用可能性およびクラスタにわたるロードバランシングのうちの少なくとも1つを考慮することによって、少なくとも1つのクラスタを選択することを含む。
【００２０】
別の広い態様によると、分散ファイルシステムの複数のクラスタを管理するための、プロセッサによって実行可能なプログラム命令がその上に記憶されるコンピュータ可読媒体が提供され、複数のクラスタはクラスタファイルを有する。プログラム命令は、本明細書で記載される方法のいずれか1つを実行するように構成される。
【００２１】
さらに別の広い態様によると、分散ファイルシステムの複数のクラスタを管理するためのシステムが提供され、複数のクラスタはクラスタファイルを有する。システムは、少なくとも1つの処理ユニットと、少なくとも1つの処理ユニットに通信可能に結合され、コンピュータ可読プログラム命令を含む非一時的メモリとを含む。プログラム命令は、クラスタのうちの少なくとも1つにおいてクラスタファイルにアクセスするための要求を受信し、要求は論理ファイル名を含み、要求は、ユーザデバイス上のアプリケーションから受信され、論理ファイル名を使用して、メタデータを検索し、メタデータは、論理ファイルをクラスタファイルに対応する物理ファイルにマッピングし、メタデータから、物理ファイルの位置を決定し、物理ファイル名を使用して、クラスタファイルにアクセスするための要求を、物理ファイルの位置に対応するクラスタのうちの1つに送信するために、少なくとも1つの処理ユニットによって実行可能である。
【００２２】
先の実施形態のいずれか1つにおいて、分散ファイルシステムは、Hadoop分散ファイルシステムまたはHadoop互換ファイルシステムである。
【００２３】
先の実施形態のいずれか1つにおいて、プログラム命令は、アプリケーションおよびクラスタと通信するための少なくとも1つのクライアントコンポーネント、および、メタデータを生成および記憶するための少なくとも1つのマネージャコンポーネントを実施するために実行可能である。
【００２４】
先の実施形態のいずれか1つにおいて、少なくとも1つのクライアントコンポーネントは、各々が異なるユーザアプリケーションとインタフェースするように構成される、複数のクライアントコンポーネントを含む。
【００２５】
先の実施形態のいずれか1つにおいて、少なくとも1つのマネージャコンポーネントは、各々が複数のクラスタの異なるグループとインタフェースするように構成される、複数のマネージャコンポーネントを含む。
【００２６】
先の実施形態のいずれか1つにおいて、プログラム命令は、システムを仮想マシンとして実施するために実行可能である。
【００２７】
別の広い態様によると、分散ファイルシステムの複数のクラスタを管理するための方法が提供され、複数のクラスタはクラスタファイルを有する。クラスタのうちの少なくとも1つにおいてクラスタファイルにアクセスするための要求が受信され、要求は論理ファイル名を含み、要求は、ユーザデバイス上のアプリケーションから受信される。論理ファイル名を使用して、メタデータが検索され、メタデータは、論理ファイルをクラスタファイルに対応する物理ファイルにマッピングする。メタデータから、物理ファイルの位置が決定され、物理ファイル名を使用して、クラスタファイルにアクセスするための要求が、クラスタのうちの少なくとも1つに送信される。
【００２８】
先の実施形態のいずれか1つにおいて、方法は、新しいクラスタファイルにアクセスするための要求を、第1のフォーマットから第2のフォーマットへ変換することをさらに含み、アプリケーションは第1のフォーマットをサポートし、且つ、クラスタは第2のフォーマットをサポートする。
【００２９】
先の実施形態のいずれか1つにおいて、新しいクラスタファイルにアクセスするための要求を送信することは、メタデータから、物理ファイルの位置に対応するクラスタのうちの少なくとも1つに、要求を送信することを含む。
【００３０】
先の実施形態のいずれか1つにおいて、新しいクラスタファイルにアクセスするための要求を送信することは、システム性能、システム一貫性、ローカルデータ利用可能性およびクラスタにわたるロードバランシングのうちの少なくとも1つを考慮することによって、クラスタのうちの少なくとも1つを選択することを含む。
【００３１】
先の実施形態のいずれか1つにおいて、方法は、新しいクラスタファイルを修正するための要求を受信することであって、要求は論理ファイル名を含む、受信することと、論理ファイル名を使用して、新しいクラスタファイルに対応するメタデータを検索することと、新しいクラスタファイルを修正するための要求に従って、新しいメタデータを生成することと、メタデータから、物理ファイルの位置を決定することと、新しいクラスタファイルを修正するための要求を、物理ファイル名を使用して、クラスタのうちの少なくとも1つに送信することと、新しいクラスタファイルに関連して、新しいメタデータを記憶することとをさらに含む。
【００３２】
先の実施形態のいずれか1つにおいて、新しいクラスタファイルを修正するための要求を送信することは、メタデータから、物理ファイルの位置に対応するクラスタのうちの少なくとも1つに、要求を送信することを含む。
【図面の簡単な説明】
【００３３】
本発明のさらなる特徴および利点が、添付図面と組み合わせてされる、以下の詳細な説明から明らかになり、添付図面は以下を含む：
【００３４】
【図１】図1は、例示的なコンピューティング環境のブロック図である。
【図２】図2は、例示的なクラスタ管理システムのブロック図である。
【図３】図3は、ファイル作成要求のための例示的な実施形態を示すフローチャートである。
【図４】図4は、ファイルオープン要求のための例示的な実施形態を示すフローチャートである。
【図５】図5は、複数のクライアントコンポーネントを持つ例示的なクラスタ管理システムのブロック図である。
【図６】図6は、複数のマネージャコンポーネントを持つ例示的なクラスタ管理システムのブロック図である。
【図７】図7は、互いに接続された複数のサブユニットを持つ例示的なクラスタ管理システムのブロック図である。
【図８】図8は、クラスタ管理システムにおける複数のサブユニットを持つ例示的なコンピューティング環境のブロック図である。
【図９Ａ】図9Aは、クラスタ管理システムを実施するための例示的なコンピューティングデバイスのブロック図である。
【図９Ｂ】図9Bは、図9Bのコンピューティングデバイスによって実施される例示的な仮想マシンのブロック図である。
【図１０Ａ】図10Aは、ファイル作成のための様々なシナリオを示す。
【図１０Ｂ】図10Bは、ファイルアクセスのための様々なシナリオを示す。
【図１０Ｃ】図10Cは、ファイル複製のための様々なシナリオを示す。
【図１１Ａ】図11Aは、第1のモードで動作するクラスタ管理システムの例を示す。
【図１１Ｂ】図11Bは、第2のモードで動作するクラスタ管理システムの例を示す。
【００３５】
添付図面を通して、同様の特徴は同様の参照番号によって識別されることは留意されたい。
【発明を実施するための形態】
【００３６】
本実施形態によると、ユーザデバイス上のアプリケーションと1つまたは複数の分散ファイルシステムのクラスタとの間に中間層が提供される。中間層は、本明細書では、クラスタ管理システムと呼ばれる。クラスタ管理システムは、ユーザデバイス上のアプリケーションから、分散ファイルシステムに記憶されたファイルへの要求を受信する。クラスタ管理システムは、クラスタ管理ファイルを作成し、これは、分散ファイルシステムに記憶された物理ファイルである、クラスタファイルを管理するために、中間層において記憶された論理ファイルである。メタデータは、論理ファイルを物理ファイルにマップするために、クラスタ管理ファイルに記憶される。メタデータは、従って、マッピング情報ならびに分散ファイルシステム内の物理ファイルの名前および位置等の他の情報を含む。
【００３７】
図1を参照すると、コンピューティング環境100が示される。少なくとも1つのユーザデバイス1021、1022（集合的にユーザデバイス102と呼ばれる）は、その上で動作する、少なくとも1つのアプリケーション1141、1142（集合的にアプリケーション114と呼ばれる）を有する。コンピューティング環境100は、複数のクラスタ1041、1042、1043（集合的にクラスタ104と呼ばれる）を含む。クラスタ104のそれぞれ1つは、1つまたは複数の分散ファイルシステム1081、1082、1083、1084、1085、1086、1087（集合的にDFS 108と呼ばれる）を含む。DFS 108のそれぞれ1つは、ユーザデバイス102上のアプリケーション114によってアクセス可能な、1つまたは複数のファイル1101、1102、1103、1104、1105（集合的にクラスタファイル110と呼ばれる）を記憶する。クラスタファイル110は、DFS 108上の様々なフォーマットで記憶されたデータおよび/またはディレクトリに対応し、且つ、それらがユーザデバイス102上にあるかのように、アプリケーション114によってアクセスおよび処理されることができる。クラスタファイル110はまた、クラスタ104の実際の基礎となるファイルシステム内に作成されるため、物理ファイルと呼ばれてもよい。
【００３８】
いくつかの実施形態では、DFS 108は、Amazon S3、Azure Blob Storage、Google Cloud Storage Connector等のような、Hadoop分散ファイルシステム（HDFS）および/またはHadoop互換ファイルシステム（HCFS）である。クラスタ104のそれぞれ1つは、HDFS等の単一タイプのDFS 108、または、1つのHDFSおよび2つのHCFS等の、互換性のある分散ファイルシステム108の1つまたは複数のタイプを含むことができる。分散ファイルシステム108の他のタイプがまた使用されてもよい。
【００３９】
クラスタ1041等の所定のクラスタのDFS 108は、同じ位置または異なる位置にある。例えば、DFS 1081は、組織の構内に配置され、DFS 1082は、クラウドに配置される。別の例では、DFS 1081は、組織の第1の支部に配置され、DFS 1082は、同じ組織の第2の支部に配置され、第1および第2の支部は、異なる都市、異なる国、異なる大陸等のような、異なる地理的位置にある。さらに別の例では、DFS 1081およびDFS 1082は、いずれも同じ地理的位置に配置されるが、異なる部門に対応するか、または、組織の異なるフロアに配置される。クラスタ104はまた、同じ位置または異なる位置に提供されてよい。例えば、クラスタ1041は中国内の複数の都市にあり、クラスタ1042はヨーロッパ全体に広がっており、クラスタ1043はフロリダ州マイアミにある。
【００４０】
クラスタ管理システム106は、クラスタ104とユーザデバイス102との間の中間層として提供される。クラスタ管理システム106は、クラスタ104の操作を管理および調整するエンティティである。クラスタ管理システム106は、ユーザデバイス102からのアプリケーション104とインタフェースして、クラスタファイル110に関する要求を受信する。クラスタファイル110に関する要求は、クラスタファイルの作成、クラスタファイルの修正、クラスタファイルへのアクセスおよびクラスタファイルの移動等のような、クラスタファイル110に対する様々な操作を含んでよい。クラスタ管理システム106は、ファイルを作成するための要求、ファイル名を変更するための要求、ファイルを移動するための要求等のような、受信された要求が、ファイルが作成または修正されることを必要とする場合、クラスタファイル110のための生成または更新されたメタデータをそれぞれ生成または更新し、次いで、それらを記憶する。ファイルは、最終的に、クラスタファイル110として、クラスタ104の1つに、且つ、より具体的には、DCS 108に作成される。クラスタファイルに関するメタデータは、クラスタ104におけるファイル名およびその位置を含む。受信された要求が、それらへの修正無しで、ファイルへのアクセスを要求する場合、クラスタ管理システム106は、クラスタファイルに関するメタデータを使用して、ファイルを探し出し、それに応じてアクセスを提供する。
【００４１】
図2は、クラスタ管理システム106の例示的な実施形態を示す。例示的な実施形態として、クラスタ管理システム106は、グローバルな名前空間において、クラスタ104を管理するために協調しているクライアントコンポーネント200およびマネージャコンポーネント202を含む。クラスタファイルは、従って、クラスタ104における複数の物理的な位置に存在するが、グローバルな名前空間の統一された構造の下で管理される。クラスタファイル110に関する要求は、アプリケーション114から、クライアントコンポーネント200によって受信される。クライアントコンポーネント200は、要求に関する命令を、マネージャコンポーネント202に送信する。
【００４２】
要求がファイルの作成または更新に関するとき、マネージャコンポーネント202は、要求に基づいて、クラスタファイル110のメタデータを作成および/または更新する。
【００４３】
図3は、方法300による、新しいクラスタファイル110の作成のための例示的な実施形態を示す。ステップ302では、新しいファイルを作成するための要求が受信される。要求は、クラスタ管理システム106のクライアントコンポーネント200によって、ユーザデバイス102のいずれか1つの上のアプリケーション114のいずれか1つから受信される。いくつかの実施形態では、ファイル作成要求において提供される唯一の情報が、要求それ自体であり、すなわち、ファイルを作成するためのコマンドラインである。いくつかの実施形態では、要求はまた、ファイル名および/またはファイルの宛先を含む。ファイルの宛先は、クラスタ104のいずれかにおける、または、クラスタ104の所定の1つのDFS 108のいずれかにおける所定の位置を指す。新しいファイルがクラスタ104のいずれか1つに既に存在する既存のファイルと何らかの関係を持つ場合、この情報もまた、要求内で提供されてよい。
【００４４】
ステップ304では、新しいクラスタファイルのためにクラスタ管理ファイルが作成される。クラスタ管理ファイルはまた、グローバルファイル名前空間において作成および管理される論理ファイルと呼ばれてもよい。各論理ファイルは、1つまたは複数の対応する物理ファイル（すなわち、クラスタファイル110）を有してよい。この例では、クラスタ管理ファイルのためのファイル名は、“LOGICAL_FILE1”である。
【００４５】
ステップ306では、物理ファイルのためのファイル名が生成される。この例では、物理ファイルのためのファイル名は、“PHYSICAL_FILE1”と呼ばれる。物理ファイルのファイル名は、作成されるべき新しいファイルに関するメタデータである。
【００４６】
ステップ308では、物理ファイル“PHYSICAL_FILE1”のための位置は、クラスタ管理システム106によって管理される様々なクラスタ104から選択される。位置が、要求によって提供される情報の部分でない場合、位置は、以下でより詳細に説明されるように、様々な要因の関数として選択されてよい。物理ファイルのための位置はまた、クラスタファイルに関するメタデータの部分を形成する。
【００４７】
クラスタ管理システム106は、論理ファイル名、すなわち、この場合では“LOGICAL_FILE1”を使用して、アプリケーション114と対話する。例えば、アプリケーション114から受信された、このファイルを開くための要求は、“open LOGICAL_FILE1”の形式をとる。クラスタ管理システム106は、物理ファイル名、すなわち、この場合では“PHYSICAL_FILE1”を使用して、クラスタ104と対話する。例えば、クラスタ104の適切な1つから送信された、“LOGICAL_FILE1”を開くための要求は、“open PHYSICAL FILE1”の形式をとる。クラスタ管理システム106は、従って、ステップ310により、“LOGICAL_FILE1”の“PHYSICAL_FILE1”へのマッピングを“RECORD1”に記憶する。このマッピングは、新しいファイルを作成するための要求に応答して、マネージャコンポーネント202によって前に生成されたメタデータを含み、クラスタ管理ファイルに記憶される。メタデータは、従って、クラスタ104内の物理ファイルの名前およびその位置を含む。
【００４８】
ステップ312では、ファイル作成要求が、適切なクラスタ、すなわち、物理ファイル名“PHYSICAL_FILE1”を持つ“CLUSTER1”に送信される。クラスタは、次いで、それに応じて、クラスタファイル110を作成する。
【００４９】
クラスタ管理システム106のための図2の例示的なアーキテクチャを使用して、要求は、クライアントコンポーネント200によってアプリケーションから受信され、メタデータは、クラスタ管理ファイル内のマネージャコンポーネント202によって生成および記憶され、要求は、クライアントコンポーネント200によって適切なクラスタに送信される。クラスタ管理システム106のための他のアーキテクチャもまた、方法300を実施するために使用されてよい。
【００５０】
メタデータは、クラスタ管理システム106に対してローカルまたはリモートであってよい、ストレージデバイス204等の1つまたは複数のストレージデバイス内のクラスタ管理ファイルに記憶される。
【００５１】
図4は、既に作成されているファイルを開くための要求を処理するための例示的な実施形態を示す方法400である。アプリケーション114は、物理ファイルではなく、論理ファイルの存在を認識している。従って、ステップ402により、アプリケーション114から受信されたファイルを開くための任意の要求は、論理ファイルの名前を含む。要求は、クラスタ管理システム106のクライアントコンポーネント200によって、ユーザデバイス102のいずれか1つの上のアプリケーション114のいずれか1つから受信される。要求は、開かれるべきファイルの名前、すなわち、“LOGICAL_FILE1”を含み、クライアントコンポーネント200からマネージャコンポーネント202に送信される。
【００５２】
ステップ404では、マネージャコンポーネント202は、ステップ406で、クラスタ104における“PHYSICAL_FILE1”の位置を決定するために、“LOGICAL_FILE1”を“PHYSICAL_FILE1”にマップするメタデータを検索する。メタデータは、ストレージデバイス204における、クラスタ管理ファイル内に記憶される。ステップ408では、物理ファイルを開くための要求は、適切なクラスタに送信される。要求は、“open PHYSICAL_FILE1”の形式をとってよく、“CLUSTER1”に送信されてよい。
【００５３】
いくつかの実施形態では、クライアントコンポーネント200は、“LOGICAL_FILE1”を開くための要求をマネージャコンポーネント202に送信する。マネージャコンポーネント202は、“LOGICAL_FILE1”の“PHYSICAL_FILE1”へのマッピングを“RECORD1”から検索し、“PHYSICAL_FILE1”の位置として“CLUSTER1”を検索する。マネージャコンポーネント202は、次いで、“CLUSTER1”をクライアントコンポーネント200に返し、クライアントコンポーネント200は、“PHYSICAL_FILE1”を開くための要求を“CLUSTER1”に送信する。
【００５４】
図2を再び参照すると、クラスタ104間の情報を共有し、クラスタ104にわたって一貫性を保証するために、マネージャコンポーネント202においてレプリケータ206が提供される。レプリケータ206は、必要に応じて、クラスタ1041等の1つのクラスタからクラスタ1042等の別のクラスタにデータを複製することができる。このことは、例えば、DFS 1084が、前はDFS 1082でのみ利用可能であったデータをローカルに記憶することを可能にし、このことは、クラスタ1042が、前はクラスタ1041によってのみ実行可能であった操作を実行することを可能にする。これは、例えば、クラスタ104にわたるロードバランシングの目的のために、または、クラスタ1041とクラスタ1042の両方からのデータを使用した結合操作のために使用されることができる。いくつかの実施形態では、データ複製は、アプリケーション114から受信された要求に基づいて、選択的に、または、必要に応じて実行される。いくつかの実施形態では、データ複製は、定義されたスケジュールに従って実行されて、データが全てのクラスタ104にわたって常に利用可能であることを保証する。いくつかの実施形態では、データ複製は、選択的且つ周期的に実行される。データの複製は、アプリケーション114およびユーザデバイス102に対して透過的である。
【００５５】
ロードバランシングは、クラスタ104にわたる作業負荷の分配を改善するために、データ管理システム106によって使用される。ロードバランシングは、リソース使用を最適化し、スループットを最大化し、応答時間を最小化し、任意の単一リソースの過負荷を回避することを目的とする。いくつかの実施形態では、クラスタ管理システム106、例えば、マネージャコンポーネント202は、所定のタスクを受信された要求の関数として実行するために、クラスタ104の中からクラスタを選択することによって、クラスタ104の性能を最適化するように構成される。タスクは、従って、クラスタ104全体により均一に広がり、且つ/または、様々な理由により、クラスタ104の特定の1つに集中することができる。新しい要求が受信されたときに、クラスタを選択するために使用される選択基準のいくつかは、所定のクラスタにおけるデータの利用可能性、容量、速度、クラスタの可用性および要求のタイプである。データはあるクラスタから別のクラスタに複製されることができるため、所定のクラスタにおけるデータの利用可能性は、コンピューティング環境100の最適化された性能のための他の基準と比較される唯一の基準である。
【００５６】
いくつかの実施形態では、クラスタ管理システム106、例えば、クライアントコンポーネント200は、トランスレータ208を含む。トランスレータ208は、クラスタ104内で見出される1つまたは複数のDFSタイプとは異なるDFSタイプに基づいて、アプリケーションから要求を受信するために使用される。例えば、アプリケーション1141はHCFSベースであり、且つ、クラスタ管理システム106が、DFS 1085、1086、1087がHDFSであるクラスタ1043に要求を送信することを選択した場合、次いで、トランスレータ208は、HCFSからHDFSに要求を変換する。アプリケーション1141から受信された要求は、HCFSフォーマットであり、且つ、クラスタ管理システム106によってクラスタ1043に送信された要求は、HDFSフォーマットである。トランスレータ208は、HDFS-HCFSおよびHCFS-HDFS以外の変換を実行するように構成されることができる。
【００５７】
図1に示されるように、クラスタ104の任意の1つと、クラスタ管理システム106との間にプロキシ112が提供されてよい。いくつかの実施形態では、プロキシ112は、クラスタ管理システム106の内部に組み込まれる。他の実施形態では、プロキシ112は、クラスタ管理システム106の外部に提供される。プロキシは、クラスタ104へのアクセスをアプリケーション114に提供するために使用される。1つのプロキシ112のみが示されるが、コンピューティング環境100内に1つまたは複数のプロキシ112が存在してもよい。
【００５８】
図5により、いくつかの実施形態では、クラスタ管理システム106は、複数のクライアントコンポーネント5001,…,500nを含む。クライアントコンポーネント5001,…,500nのそれぞれ1つは、マネージャコンポーネント202に動作可能に接続され、ユーザデバイス102のための1つまたは複数のアプリケーション114とインタフェースするように構成される。いくつかの実施形態では、クラスタ管理システム106は、それから要求が受信されることができる、アプリケーション114毎に、1つのクライアントコンポーネント500nを含む。各クライアントコンポーネント500nは、要求を第1のフォーマットから第2のフォーマットに変換するためのトランスレータ3081,…, 308nを含む。あるいは、1つまたは複数のトランスレータ208は、クラスタ管理システム106の内部のクライアントコンポーネント5001,…,500nによって共有される。
【００５９】
図6は、n個のクライアントコンポーネント5001,…,500nおよびm個のマネージャコンポーネント6001,…,600mを含む、実施形態を示す。マネージャコンポーネント6001,…,600mの各々は、クラスタファイルのセットのためのメタデータを記憶するための記憶媒体6041,…,604mおよびクラスタ104にわたるデータを複製するためのレプリケータ6061,…, 606mを含む。あるいは、1つまたは複数の記憶メディア604i（ここで、i=1からm）および/または1つまたは複数のレプリケータ606 iは、クラスタ管理システム106の内部の管理コンポーネント6001,…,600mによって共有される。マネージャコンポーネント6001,…,600mは、互いに動作可能に接続されており、それぞれのコンセンサスエンジン6081,…, 608mを介して情報交換および/またはデータ操作を調整することができる。
【００６０】
コンセンサスエンジン6081,…, 608mは、異なるマネージャコンポーネント6001,…,600mによって管理されるクラスタ104に関する操作を扱う方法に関して、マネージャコンポーネント6001,…,600mの間で同意を保証するために使用される。コンセンサスを必要とする操作の例は、データ複製、データ共有およびクラスタ104にわたる負荷の再分配である。コンセンサスはまた、他の操作と共に使用されてもよい。いくつかの実施形態では、1つまたは複数のコンセンサスプロトコルは、クラスタファイル110に対する操作を調整するために定義される。コンセンサスプロトコルのいくつかの例は、Paxos、Chubby、Phase King、作業証明、Lockstep、MSRタイプおよびハッシュグラフである。他のコンセンサスプロトコルが使用されてよい。
【００６１】
いくつかの実施形態では、1つまたは複数のクラスタ管理ファイルからのメタデータの作成、更新および/または削除は、コンセンサスエンジンによるコンセンサスプロトコルを介して実行される。例えば、アプリケーション1141は、クラスタファイル1105を削除するための要求を送信する。要求は、クライアントコンポーネント5001によって受信され、マネージャコンポーネント6001に送信される。コンセンサスエンジン6081は、修正のための（すなわち、クラスタファイル1105に関連するメタデータを削除するための）コンセンサス要求を、マネージャコンポーネント6002から600mのコンセンサスエンジン6082から608ｍに送信する。各コンセンサスエンジン6082から608ｍは、他のコンセンサスエンジンとは独立して現在の状態に基づいて修正に投票する。コンセンサスエンジンの大部分が修正要求に同意する場合、コンセンサスエンジン6081は、修正確認を、コンセンサスエンジン6082から608ｍに送信する。各マネージャコンポーネント6001から600mは、次いで、そのローカルストレージデバイス6041から604m内のそのローカルクラスタ管理ファイルに修正を適用する。コンセンサスエンジンの大部分が修正要求に同意しない場合、修正は拒否され、マネージャコンポーネント6001から600mのいずれによっても適用されない。
【００６２】
各マネージャコンポーネント6001,…,600mは、1つまたは複数のクライアントコンポーネント5001,…,500nに関連付けられて、サブユニットを形成し、サブユニットの全ては互いに接続されて、クラスタ管理システム106を形成する。3つのサブユニット7001、7002、7003によって、例が図7に示される。m=3について、クラスタ管理システム106内に、3つのマネージャコンポーネント6001、6002、6003および３つのサブユニット7001、7002、7003がある。各マネージャコンポーネント6001、6002、6003は、1つまたは複数のクライアントコンポーネント5001,…,500nと共にサブユニット7001、7002、7003を形成する。
【００６３】
図8に示されるように、各サブユニット7001、7002、7003は、クラスタ8001、8002、8003の別個のセットおよびユーザデバイス8021、8022、8023の別個のセットとインタフェースする。いくつかの実施形態では、ユーザデバイス102は、サブユニット7001、7002、7003の間で共有され、且つ/または、クラスタ104は、サブユニット7001、7002、7003の間で共有される。
【００６４】
クラスタ管理システム106とユーザデバイス102との間の、および/または、クラスタ管理システム106とクラスタ104との間の、サブユニット7001、7002、7003の間のコンピューティング環境100における通信は、1つまたは複数のネットワークを介した直接的および間接的な方法を含む、様々な方法で発生する。ネットワークは、有線接続、無線接続またはそれらの組合せを含むことができる。ネットワークは、例えば、モバイル通信用グローバルシステム（GSM（登録商標））、符号分割多元接続（CDMA）、無線ローカルループ、WiMAX、Wi-Fi、ブルートゥース（登録商標）、ロングタームエボリューション（LTE）等々の、異なるネットワーク通信技術、規格およびプロトコルを含んでよい。ネットワークは、例えば、同軸ケーブル、ファイバーオプティックス、トランシーバ局等々の異なる物理的メディアを含んでよい。例示的なネットワークタイプは、インターネット、イーサネット（登録商標）、従来型電話サービス（POTS）回線、公衆交換電話網（PSTN）、統合サービスデジタル網（ISDN）、デジタル加入者線（DSL）およびその他を含み、これらの任意の組合せを含む。ネットワークは、ローカルエリアネットワークおよび/またはワイドエリアネットワークを含むことができる。
【００６５】
図9Aは、クラスタ管理システム106を実施するためのコンピューティングデバイス910の例示的な実施形態である。コンピューティングデバイス910は、処理ユニット912と、その中にコンピュータ実行可能命令916を記憶しているメモリ914とを含む。処理ユニット912は、コンピューティングデバイス910または他のプログラマブル装置によって実行されると、命令916が、本明細書に記載される方法で指定される機能/動作/ステップが実行されるようにすることができるように、一連のステップが実行されるようにするように構成される任意の適切なデバイスを含んでよい。処理ユニット912は、例えば、任意のタイプの汎用マイクロプロセッサまたはマイクロコントローラ、デジタル信号処理（DSP）プロセッサ、中央処理装置（CPU）、集積回路、フィールドプログラマブルゲートアレイ（FPGA）、再構成可能プロセッサ、他の適切にプログラムされた、またはプログラム可能な論理回路またはそれらの任意の組合せを含んでよい。
【００６６】
メモリ914は、任意の適切な既知の、または他の機械可読記憶媒体を含んでよい。メモリ914は、例えば、それらに限定はされないが、電子、磁気、光、電磁気、赤外線または半導体のシステム、装置またはデバイス、または前述の任意の適切な組合せ等の非一時的なコンピュータ可読記憶媒体を含んでよい。メモリ914は、例えば、ランダムアクセスメモリ（RAM）、読出し専用メモリ（ROM）、コンパクトディスク読出し専用メモリ（CDROM）、電気光学メモリ、磁気光学メモリ、消去可能なプログラマブル読出し専用メモリ（EPROM）および電気的に消去可能なプログラマブル読出し専用メモリ（EEPROM）、強誘導性RAM（FRAM（登録商標））等の、デバイスの内部または外部のいずれかに配置されるコンピュータメモリの任意のタイプの適切な組合せを含んでよい。メモリ914は、処理ユニット912によって実行可能な機械可読命令916を検索可能に記憶するために適した任意の記憶手段（例えば、デバイス）を含んでよい。
【００６７】
いくつかの実施形態では、コンピューティングデバイス910は、1つまたは複数の仮想マシンが実装される物理サーバであり、その例が図9Bに示される。仮想マシン950は、コンピュータシステムのエミュレーションであり、仮想ハードウェア956のセットを使用して、オペレーティングシステム954上で動作するアプリケーション952を含む。仮想ハードウェア956は、例えば、CPU、メモリ、ネットワークインタフェース、ディスク等を含む。各仮想マシン950は、外界からは実マシンのように見え、且つ、自己完結型であるとともに同じ物理サーバ上の他の仮想マシンから保護される。いくつかの実施形態では、クラスタ管理システム106は、1つまたは複数の仮想マシン950を使用して実施される。
【００６８】
個々のファイルおよび/またはディレクトリのためのメタデータを生成することは、アプリケーション114からの要求に応答することに柔軟性を提供する。要求は、クラスタ管理システム106によって、元のデータが記憶されている所定のクラスタにダイレクトされてよく、または、要求を送信したアプリケーション114が動作しているユーザデバイス102に地理的により近いクラスタ等の、別のクラスタにリダイレクトされてよい。要求をリダイレクトすることは、大規模なネットワーク待ち時間を持つワイドエリアネットワーク（WAN）環境においてシステム性能を改善することができる。要求のリダイレクションは、データが修正されない読出し操作等の特定のタイプの要求に対して利用可能であることは留意されたい。書込み操作等のデータの修正を伴う要求は、元のファイルを持つクラスタにダイレクトされる。
【００６９】
実際、クラスタ管理システム106は、クラスタにわたってデータを作成、アクセスおよび複製するために構成可能な柔軟なポリシーをサポートする。図10Aは、様々なデータ作成シナリオのための例を示す。クラスタ管理システム106は、性能を最適化するために、最も近いクラスタ上にファイルを作成するように構成されてよい。この例は、パス1002によって示され、ここで、アプリケーション1142は、クラスタ1041上にファイルを作成する。システム106は、クラスタにわたるデータのより均一な分配のために、最も利用可能な空間を持つクラスタ上にファイルを作成するように構成されてよい。この例は、パス1004によって示され、ここで、アプリケーション1143は、クラスタ1042上にファイルを作成する。システム106は、特定のクラスタ上にファイルを作成するように構成されてよく、アプリケーション1146がクラスタ1043上にファイルを作成するパス1006によって示されてよい。他の構成および組合せが使用されてもよい。
【００７０】
図10Bは、様々なデータアクセスシナリオを示す。クラスタ管理システム106は、最良の性能のために最も近いクラスタからファイルにアクセスするように構成されてよい。例えば、アプリケーション1141によって要求された場合、ファイルは、パス1008を介して、クラスタ1041でアクセスされる。アプリケーション1146によって要求されると、同じファイルは、パス1010を介して、クラスタ1043内でアクセスされる。いくつかの実施形態では、システム106は、最新の更新データで、クラスタからファイルにアクセスして、強い一貫性を保証するように構成される。例えば、アプリケーション1143と1144のうちのいずれか1つがファイルを要求すると、アプリケーション1143は、クラスタ1041内でローカルにファイルにアクセスできたとしても、ファイルは、それぞれパス1012および1014を介して、クラスタ1042内でアクセスされる。いくつかの実施形態では、システム106は、ローカルクラスタが利用可能なコピーを有しない場合、リモートクラスタからファイルにアクセスするように構成される。例えば、アプリケーション1145は、ファイルを要求し、ファイルは、パス1016を介して、クラスタ1041内でアクセスされる。いくつかの実施形態では、システム106は、ロードバランシングの目的で、最も軽い作業負荷を持つクラスタから要求されたファイルにアクセスするように構成される。例えば、アプリケーション1142がファイルへのアクセスを要求すると、クラスタ1041上でも利用可能であるとしても、クラスタ1043において、パス1018を介して提供される。他の構成および組合せが使用されてもよい。
【００７１】
図10Cは、様々なデータ複製シナリオを示す。システムは、選択されたファイルまたは全てのファイルを複製するように構成されてよい。ファイルは、選択されたクラスタにのみ、または、全てのクラスタに複製されてよい。例えば、ファイル1024は、2つのクラスタのみで複製されるが、ファイル1026は、3つのクラスタで複製される。ファイルは、パス1020A、1020Bによって示されるような、パイプラインパスを使用して複製されてよい。ファイルはまた、例えば、パス1022A、1022Bを使用して、中心クラスタから複製されてもよい。いくつかの実施形態では、クラスタ管理システム106は、最良の可用性のためにストリーミングモードを使用して、より良い性能のために周期的なバッチによって、またはそれらの組合せで、データを複製するように構成される。他の構成および組合せが使用されてもよい。
【００７２】
クラスタ104間のデータの複製は、それが個々のファイルおよび/またはディレクトリであるかどうかに関わらず、様々なメカニズムを使用して生じ得る。いくつかの実施形態では、複製は、アプリケーション114によって受信された要求に基づいてトリガされる。いくつかの実施形態では、複製は、規則的なスケジュールに従って計画される。いくつかの実施形態では、複製は、1つまたは複数のポリシーに従ってトリガされる。これらの実施形態のいずれかの組合せもまた実施されることができる。
【００７３】
クラスタ管理システム106は、従って、異なるクラスタの一部を形成する全てのDFS 108のための単一の管理システムを提供する。クラスタ104のクラスタファイルおよび一般機能は、クラスタ管理システム106の追加によって変更されないままである。
【００７４】
いくつかの実施形態では、クラスタ104は、HDFS/HCFSクラスタである。クライアントコンポーネント200は、アプリケーション114とインタフェースするHCFS互換ライブラリである。アプリケーション114は、HDFS/HCFSプロトコルに基づいて、クライアントコンポーネント200を動的にロードすることができる。換言すると、クライアントコンポーネント200は、アプリケーション114によって必要に応じてロードされてよい。加えて、クライアントコンポーネント200は、異なるクラスタ104に対して異なるドライバをロードしてよい。例えば、第1のドライバは、クラスタ1041のためにクライアントコンポーネント200によってロードされ、且つ、第2のドライバは、クラスタ1042のためにクライアントコンポーネントによってロードされる。第1のドライバはHDFSバージョン 1用である一方、第2のドライバはHCFSバージョン x用である。第3のドライバは、HDFSバージョン2に適した、クラスタ1043のためにロードされてよい。
【００７５】
アプリケーション114は、アクセスされるべきデータファイルを表すために、ユニフォームリソース識別子（URI）を使用することができる。例示的なURIフォーマットは、“scheme://authority/path”である。HDFSベースのアプリケーションのために、HDFSスキームが使用される。HCFSベースのアプリケーションのために、Amazon S3ベースのHCFSシステム用の“s3”等の、様々なスキームタイプおよびファイルシステムプラグインが使用されてよい。クライアントコンポーネント200は、HDFSベースのURIおよびHCFSベースのURIの両方またはいずれかをアプリケーション114に提供するように構成される。上述の実施形態を使用する例は、HCFSスキーム用の“Pylon://user/LOGICAL_FILE1”またはHDFSスキーム用の“hdfs://temp/LOGICAL_FILE1”である。
【００７６】
いくつかの実施形態では、クライアントコンポーネントは、2つ以上のモードの下で動作するように構成され、各モードは、使用中の対応するスキームの機能として、アプリケーション114のために所定の動作を設定する。表1は、2つのモード、および2つのスキームを持つ例を示す。
【００７７】
【表１】
2018537736.tif 000003
【００７８】
図11Aは、モード1のための例を示す。示されるように、HDFSスキームに基づく、アプリケーション1141によって送信された要求は、クラスタ1041に直接送信される。HCFSスキームに基づく、アプリケーション1141によって送信された要求は、クラスタ1041にリダイレクトされる前に、クライアントコンポーネント200に行く。図11Bは、モード2のための例を示す。示されるように、HDFSおよびHCFSベースの要求の両方は、クラスタ1041にリダイレクトされる前に、クライアントコンポーネント200に送信される。クライアントコンポーネント200がHCFSベースである場合、トランスレータ208は、HDFSベースの要求をHCFSスキームに変換する。
【００７９】
マネージャコンポーネント202は、記憶媒体204に記憶されるメタデータを使用して、複数のHDFS/HCFSベースのクラスタ114のためにグローバルな名前空間を提供する。マネージャコンポーネントは、複数のクラスタ114を監督し、レプリケータ206を介して、クラスタ114間のデータフローをスケジュールする。レプリケータ206は、ファイルに対する変更を追跡し、クラスタ114にわたる複製タスクを計画するように構成される。
【００８０】
メタデータは、クラスタファイル110を管理するために、記憶媒体204または他の場所に作成および記憶される。いくつかの実施形態では、各クラスタファイル110は、対応するクラスタ管理ファイルを有する。クラスタ管理ファイルは、論理ファイルの物理ファイルへのマッピングと、クラスタファイル110を管理するために必要とされる任意の他の情報とを含む。論理ファイルの物理ファイルへのマッピングおよびクラスタファイル110を管理するために必要とされる任意の他の情報はメタデータである。クラスタファイルに対する操作は、複数のマネージャコンポーネント400が存在するときに、コンセンサスプロトコルを介して調整される。
【００８１】
いくつかの実施形態では、クラスタファイル110は、ディレクトリカタログ構造に従って編成され、クラスタ管理ファイルは、クラスタディレクトリに関する情報（すなわち、メタデータ）およびディレクトリ間の関係を記憶するために使用される。各クラスタディレクトリは、1つまたは複数のクラスタファイル110と、いくつかのケースでは、サブディレクトリへの参照とを含んでよい。あるクラスタから別のクラスタにクラスタファイルを複製するだけでなく、クラスタファイルを含むディレクトリおよびディレクトリ間の関係は、クラスタ間で複製されることができる。
【００８２】
いくつかの実施形態では、ディレクトリは、メタデータ管理層で論理コンセプトとして使用され、従って、物理クラスタ層では一対一マッピングを必要としない。この場合、いくつかのディレクトリ関連の操作は、基礎となるクラスタにアクセスする必要がない。例えば、アプリケーション114は、ディレクトリを作成するための要求を送信する。要求は、クラスタ管理システム106のクライアントコンポーネント200によって受信される。クライアントコンポーネント200は、要求をマネージャコンポーネント202に転送し、マネージャコンポーネント202は、要求に関するメタデータを作成する。メタデータは、新しいクラスタ管理ファイル内、または、既存のクラスタ管理ファイル内に記憶されてよい。いくつかの実施形態では、新しいディレクトリが作成されると、ディレクトリに対して、新しいクラスタ管理ファイルが作成される。新しいクラスタ管理ファイルに記憶されるメタデータは、“DIRECTORY1”等のディレクトリ名を含み、且つ、新しいクラスタ管理ファイルを“DIRECTORY1”にマッピングするメタデータが、例えば、“RECORD2”内に、作成および記憶される。メタデータはまた、ディレクトリの一部を形成する任意のファイルを含んでよい。ディレクトリ名は、クライアントコンポーネント200によって、アプリケーション114に返される。ディレクトリの作成は、いかなる方式でも、クラスタファイルの構造に影響を及ぼさないため、この操作のためにクラスタにアクセスする必要はない。
【００８３】
アプリケーション114は、例えば、“DIRECTORY1”の内容をリストするように要求することによって、ディレクトリ名を使用して、クラスタ管理システム106と対話してよい。要求は、クライアントコンポーネント200によって受信されて、マネージャコンポーネント202に転送される。マネージャコンポーネント202は、クラスタ管理ファイルにアクセスして、“DIRECTORY1”に関するメタデータを検索する。この情報は、クライアントコンポーネント200によって、アプリケーション114に返される。ここでも、ディレクトリファイルのリストは、いかなる方式でも、クラスタファイルの構造に影響を及ぼさないため、この操作のためにクラスタにアクセスする必要はない。
【００８４】
同様に、ディレクトリの名前を変更することは、メタデータ管理のみに関係し、基礎となる物理クラスタファイルへのアクセスを必要としない。ディレクトリの名前を変更するための要求がアプリケーション114から受信されると、クラスタ管理システム106は、ディレクトリのためのクラスタ管理ファイル、ならびに、ディレクトリ内の各ファイルのクラスタ管理ファイルの全てを更新する。これは、ディレクトリ内に多数のファイルがある場合、時間がかかる操作であり得るが、名前の変更は、他の進行中の書込み操作と同時に行われることができる。
【００８５】
ディレクトリの削除等の他の要求は、クラスタファイルの基礎となる構造が修正されるため、クラスタファイルへのアクセスを伴う。ディレクトリ削除操作の第1のパートは、ディレクトリ作成操作と同じである。ディレクトリを削除するための要求は、クライアントコンポーネント200によって受信され、マネージャコンポーネント202に送信される。全てのクラスタ管理ファイルが、それに応じて、ディレクトリ自身のエントリ（名前、内容、状態）、並びに、ディレクトリ下のファイルのエントリ（名前、状態）を削除することによって、更新される。削除の確認は、クライアントコンポーネント200によってアプリケーション114に送信される。加えて、クラスタ管理システム106はまた、ディレクトリを削除するために、クラスタ104に通知を送信する。
【００８６】
本明細書で説明される各コンピュータプログラムは、コンピュータシステムと通信するために、高レベル手順のまたはオブジェクト指向のプログラミングまたはスクリプト言語、またはそれらの組合せで実施されてよい。あるいは、プログラムは、アセンブリまたは機械語で実施されてよい。言語は、コンパイルまたは解釈された言語であってよい。このようなコンピュータプログラムの各々は、記憶メディアまたはデバイス、例えば、ROM、磁気ディスク、光ディスク、フラッシュドライブまたは任意の他の適切な記憶メディアまたはデバイス上に記憶されてよい。
【００８７】
クラスタ管理システム106の実施形態はまた、その上にコンピュータプログラムが記憶される非一時的なコンピュータ可読記憶媒体によって実施されると考えられてもよい。
【００８８】
コンピュータ実行可能命令は、1つまたは複数のコンピュータまたは他のデバイスによって実行される、プログラムモジュールを含む、多くの形態であってよい。一般に、プログラムモジュールは、特定のタスクを実行する、または、特定の抽象データ型を実施する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含む。典型的には、プログラムモジュールの機能性は、様々な実施形態で所望されるように組み合せ、または分配されてよい。
【００８９】
本コンピューティング環境100の様々な態様は、孤立して、組み合わせて、または、前述の実施形態で具体的に議論されていない多様な配置で使用されてよく、従って、前述の説明で明らかにされた、または図面に示された詳細およびコンポーネントの配置への適用において限定されない。例えば、1つの実施形態で説明される態様は、他の実施形態で説明される態様と任意の方式で組み合わされてよい。特定の実施形態が示され、説明されたが、この発明から逸脱することなく、より広い態様において、変更および修正が行われることができることは、当業者には明らかである。添付の特許請求の範囲は、このような変更および修正全てをその範囲内に包含するものである。
【符号の説明】
【００９０】
1021  ユーザデバイス
1022  ユーザデバイス
1041  クラスタ
1042  クラスタ
1043  クラスタ
106  クラスタ管理システム
112  プロキシ
200  クライアントコンポーネント
202  マネージャコンポーネント
206  レプリケータ
208  トランスレータ
5001  クライアントコンポーネント
500n  クライアントコンポーネント
5081  トランスレータ
508n  トランスレータ
6001  マネージャコンポーネント
6002  マネージャコンポーネント
6003  マネージャコンポーネント
600m  マネージャコンポーネント
6061  レプリケータ
606m  レプリケータ
6081  コンセンサスエンジン
608m  コンセンサスエンジン
8001  クラスタ
8002  クラスタ
8003  クラスタ
8021  ユーザデバイス
8022  ユーザデバイス
8023  ユーザデバイス
912  処理ユニット
914  メモリ
916  命令
950  仮想マシン
952  アプリケーション
954  オペレーティングシステム
956  仮想ハードウェア
【図１】
2018537736.tif 000004
【図２】
2018537736.tif 000005
【図３】
2018537736.tif 000006
【図４】
2018537736.tif 000007
【図５】
2018537736.tif 000008
【図６】
2018537736.tif 000009
【図７】
2018537736.tif 000010
【図８】
2018537736.tif 000011
【図９Ａ】
2018537736.tif 000012
【図９Ｂ】
2018537736.tif 000013
【図１０Ａ】
2018537736.tif 000014
【図１０Ｂ】
2018537736.tif 000015
【図１０Ｃ】
2018537736.tif 000016
【図１１Ａ】
2018537736.tif 000017
【図１１Ｂ】
2018537736.tif 000018
【手続補正書】
【提出日】平成29年11月29日(2017.11.29)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
分散ファイルシステムの複数のクラスタを管理するためのシステムであって、前記複数のクラスタはクラスタファイルを有し、前記システムは、
少なくとも1つの処理ユニットと、
前記少なくとも1つの処理ユニットに通信可能に結合された非一時的メモリとを含み、前記非一時的メモリは、前記少なくとも1つの処理ユニットによって実行可能な、
ユーザデバイス上のアプリケーションから、新しいクラスタファイルを作成するための要求を受信し、
前記新しいクラスタファイルに対応するクラスタ管理ファイルを作成し、
前記クラスタ管理ファイルに論理ファイル名を割り当て、且つ、前記新しいクラスタファイルに物理ファイル名を割り当て、
前記複数のクラスタにおいて、前記新しいクラスタファイルのための物理ファイル位置を割り当て、
前記クラスタ管理ファイルを前記新しいクラスタファイルにマッピングするメタデータを、前記クラスタ管理ファイルに記憶し、前記メタデータは、前記物理ファイル名および前記物理ファイル位置を含み、
前記物理ファイル名を使用して、前記新しいクラスタファイルを作成するための前記要求を、前記物理ファイル位置に対応する前記クラスタの1つに送信し、
前記論理ファイル名を使用して、前記クラスタファイルの作成を前記アプリケーションに確認応答するためのコンピュータ可読プログラム命令を含む、システム。
【請求項２】
前記分散ファイルシステムは、Hadoop分散ファイルシステムまたはHadoop互換ファイルシステムである、請求項1に記載のシステム。
【請求項３】
前記プログラム命令は、前記アプリケーションおよび前記クラスタと通信するための少なくとも1つのクライアントコンポーネント、および、前記メタデータを生成および記憶するための少なくとも1つのマネージャコンポーネントを実施するために実行可能である、請求項1または2に記載のシステム。
【請求項４】
前記少なくとも1つのクライアントコンポーネントは、各々が異なるユーザアプリケーションとインタフェースするように構成される、複数のクライアントコンポーネントを含む、請求項3に記載のシステム。
【請求項５】
前記少なくとも1つのマネージャコンポーネントは、各々が前記複数のクラスタの異なるグループとインタフェースするように構成される、複数のマネージャコンポーネントを含む、請求項3に記載のシステム。
【請求項６】
前記プログラム命令は、前記システムを仮想マシンとして実施するために実行可能である、請求項1乃至5のいずれか1項に記載のシステム。
【請求項７】
分散ファイルシステムの複数のクラスタを管理するための方法であって、前記複数のクラスタはクラスタファイルを有し、前記方法は、
ユーザデバイス上のアプリケーションから、新しいクラスタファイルを作成するための要求を受信するステップと、
前記新しいクラスタファイルに対応するクラスタ管理ファイルを作成するステップと、
前記クラスタ管理ファイルに論理ファイル名を割り当て、且つ、前記新しいクラスタファイルに物理ファイル名を割り当てるステップと、
前記複数のクラスタから、前記新しいクラスタファイルのための物理ファイル位置を割り当てるステップと、
前記クラスタ管理ファイルを前記新しいクラスタファイルにマッピングするメタデータを、前記クラスタ管理ファイルに記憶するステップであって、前記メタデータは、前記物理ファイル名および前記物理ファイル位置を含む、ステップと、
前記物理ファイル名を使用して、前記新しいクラスタファイルを作成するための前記要求を、前記物理ファイル位置に対応する前記クラスタの1つに送信するステップと、
前記論理ファイル名を使用して、前記クラスタファイルの作成を前記アプリケーションに確認応答するステップとを含む方法。
【請求項８】
新しいクラスタファイルを作成するための前記要求を、第1のフォーマットから第2のフォーマットへ変換するステップをさらに含み、前記アプリケーションは前記第1のフォーマットをサポートし、且つ、前記クラスタは前記第2のフォーマットをサポートする、請求項7に記載の方法。
【請求項９】
前記新しいクラスタファイルのための物理ファイル位置を割り当てるステップは、前記新しいクラスタファイルを要求する前記アプリケーションに関して、前記クラスタのうちの最も近い1つを選択するステップを含む、請求項7または8に記載の方法。
【請求項１０】
前記新しいクラスタファイルのための物理ファイル位置を割り当てるステップは、他のクラスタと比較して、利用可能な空間の最大量を有するクラスタを、前記クラスタから選択するステップを含む、請求項7または8に記載の方法。
【請求項１１】
前記新しいクラスタファイルにアクセスするための要求を受信するステップであって、前記要求は、前記論理ファイル名を含む、ステップと、
前記論理ファイル名を使用して、前記新しいクラスタファイルに対応する前記メタデータを検索するステップと、
前記メタデータから、前記物理ファイルの位置を決定するステップと、
前記物理ファイル名を使用して、前記新しいクラスタファイルにアクセスするための前記要求を、前記クラスタのうちの少なくとも1つに送信するステップとをさらに含む、請求項7乃至10のいずれか1項に記載の方法。
【請求項１２】
前記新しいクラスタファイルにアクセスするための前記要求を送信するステップは、システム性能、システム一貫性、ローカルデータ利用可能性および前記クラスタにわたるロードバランシングのうちの少なくとも1つを考慮することによって、前記少なくとも1つのクラスタを選択するステップを含む、請求項11に記載の方法。
【請求項１３】
分散ファイルシステムの複数のクラスタを管理するための、プロセッサによって実行可能なプログラム命令がその上に記憶されるコンピュータ可読媒体であって、前記複数のクラスタはクラスタファイルを有し、前記プログラム命令は、
ユーザデバイス上のアプリケーションから、新しいクラスタファイルを作成するための要求を受信し、
前記新しいクラスタファイルに対応するクラスタ管理ファイルを作成し、
前記クラスタ管理ファイルに論理ファイル名を割り当て、且つ、前記新しいクラスタファイルに物理ファイル名を割り当て、
前記複数のクラスタにおいて、前記新しいクラスタファイルのための物理ファイル位置を割り当て、
前記クラスタ管理ファイルを前記新しいクラスタファイルにマッピングするメタデータを、前記クラスタ管理ファイルに記憶し、前記メタデータは、前記物理ファイル名および前記物理ファイル位置を含み、
前記物理ファイル名を使用して、前記新しいクラスタファイルを作成するための前記要求を、前記物理ファイル位置に対応する前記クラスタの1つに送信し、
前記論理ファイル名を使用して、前記クラスタファイルの作成を前記アプリケーションに確認応答するように構成される、コンピュータ可読媒体。
【請求項１４】
分散ファイルシステムの複数のクラスタを管理するためのシステムであって、前記複数のクラスタはクラスタファイルを有し、前記システムは、
少なくとも1つの処理ユニットと、
前記少なくとも1つの処理ユニットに通信可能に結合された非一時的メモリとを含み、前記非一時的メモリは、前記少なくとも1つの処理ユニットによって実行可能な、
前記クラスタのうちの少なくとも1つにおいてクラスタファイルにアクセスするための要求を受信し、前記要求は論理ファイル名を含み、前記要求は、ユーザデバイス上のアプリケーションから受信され、
前記論理ファイル名を使用して、メタデータを検索し、前記メタデータは、論理ファイルを前記クラスタファイルに対応する物理ファイルにマッピングし、
前記メタデータから、前記物理ファイルの位置を決定し、
前記物理ファイル名を使用して、前記クラスタファイルにアクセスするための前記要求を、前記物理ファイルの前記位置に対応する前記クラスタのうちの1つに送信するためのコンピュータ可読プログラム命令を含む、システム。
【請求項１５】
前記分散ファイルシステムは、Hadoop分散ファイルシステムまたはHadoop互換ファイルシステムである、請求項14に記載のシステム。
【請求項１６】
前記プログラム命令は、前記アプリケーションおよび前記クラスタと通信するための少なくとも1つのクライアントコンポーネント、および、前記メタデータを生成および記憶するための少なくとも1つのマネージャコンポーネントを実施するために実行可能である、請求項14または15に記載のシステム。
【請求項１７】
前記少なくとも1つのクライアントコンポーネントは、各々が異なるユーザアプリケーションとインタフェースするように構成される、複数のクライアントコンポーネントを含む、請求項16に記載のシステム。
【請求項１８】
前記少なくとも1つのマネージャコンポーネントは、各々が前記複数のクラスタの異なるグループとインタフェースするように構成される、複数のマネージャコンポーネントを含む、請求項16に記載のシステム。
【請求項１９】
前記プログラム命令は、前記システムを仮想マシンとして実施するために実行可能である、請求項14乃至18のいずれか1項に記載のシステム。
【請求項２０】
分散ファイルシステムの複数のクラスタを管理するための方法であって、前記複数のクラスタはクラスタファイルを有し、前記方法は、
前記クラスタのうちの少なくとも1つにおいてクラスタファイルにアクセスするための要求を受信するステップであって、前記要求は論理ファイル名を含み、前記要求は、ユーザデバイス上のアプリケーションから受信される、ステップと、
前記論理ファイル名を使用して、メタデータを検索するステップであって、前記メタデータは、論理ファイルを前記クラスタファイルに対応する物理ファイルにマッピングする、ステップと、
前記メタデータから、前記物理ファイルの位置を決定するステップと、
前記物理ファイル名を使用して、前記クラスタファイルにアクセスするための前記要求を、前記クラスタのうちの少なくとも1つに送信するステップとを含む方法。
【請求項２１】
新しいクラスタファイルにアクセスするための前記要求を、第1のフォーマットから第2のフォーマットへ変換するステップをさらに含み、前記アプリケーションは前記第1のフォーマットをサポートし、且つ、前記クラスタは前記第2のフォーマットをサポートする、請求項20に記載の方法。
【請求項２２】
前記新しいクラスタファイルにアクセスするための前記要求を送信するステップは、前記メタデータから、前記物理ファイルの前記位置に対応する前記クラスタのうちの前記少なくとも1つに、前記要求を送信するステップを含む、請求項20または21に記載の方法。
【請求項２３】
前記新しいクラスタファイルにアクセスするための前記要求を送信するステップは、システム性能、システム一貫性、ローカルデータ利用可能性および前記クラスタにわたるロードバランシングのうちの少なくとも1つを考慮することによって、前記クラスタのうちの前記少なくとも1つを選択するステップを含む、請求項20または21に記載の方法。
【請求項２４】
前記新しいクラスタファイルを修正するための要求を受信するステップであって、前記要求は前記論理ファイル名を含む、ステップと、
前記論理ファイル名を使用して、前記新しいクラスタファイルに対応する前記メタデータを検索するステップと、
前記新しいクラスタファイルを修正するための前記要求に従って、新しいメタデータを生成するステップと、
前記メタデータから、前記物理ファイルの位置を決定するステップと、
前記新しいクラスタファイルを修正するための前記要求を、前記物理ファイル名を使用して、前記クラスタのうちの少なくとも1つに送信するステップと、
前記新しいクラスタファイルに関連して、前記新しいメタデータを記憶するステップとをさらに含む、請求項20乃至23のいずれか1項に記載の方法。
【請求項２５】
前記新しいクラスタファイルを修正するための前記要求を送信するステップは、前記メタデータから、前記物理ファイルの前記位置に対応する前記クラスタのうちの前記少なくとも1つに、前記要求を送信するステップを含む、請求項24に記載の方法。
【請求項２６】
分散ファイルシステムの複数のクラスタを管理するための、プロセッサによって実行可能なプログラム命令がその上に記憶されるコンピュータ可読媒体であって、前記複数のクラスタはクラスタファイルを有し、前記プログラム命令は、
前記クラスタのうちの少なくとも1つにおいてクラスタファイルにアクセスするための要求を受信し、前記要求は論理ファイル名を含み、前記要求は、ユーザデバイス上のアプリケーションから受信され、
前記論理ファイル名を使用して、メタデータを検索し、前記メタデータは、論理ファイルを前記クラスタファイルに対応する物理ファイルにマッピングし、
前記メタデータから、前記物理ファイルの位置を決定し、
前記物理ファイル名を使用して、前記クラスタファイルにアクセスするための前記要求を、前記クラスタのうちの少なくとも1つに送信するように構成される、コンピュータ可読媒体。
【国際調査報告】
2018537736.tif 000019
2018537736.tif 000020