(57)【特許請求の範囲】
【請求項１】
ファイル管理方法であって、前記方法は分散記憶システムに適用され、前記分散記憶システムは管理ノードおよび複数の記憶ノードを含み、前記方法は、
前記管理ノードによって、ホストによって送信されるファイル作成要求を受信するステップであって、前記ファイル作成要求は、前記分散記憶システム内にファイルを作成するように要求するために使用される、ステップと、
前記管理ノードによって、前記ファイル作成要求に従って、前記分散記憶システムのグローバル仮想アドレス空間から第１の仮想空間を前記ファイルに割り当てるステップであって、前記グローバル仮想アドレス空間は各記憶ノードのローカル仮想アドレス空間にマッピングされ、記憶ノードの前記ローカル仮想アドレス空間は前記記憶ノードのローカル物理記憶空間にマッピングされ、前記記憶ノードの前記ローカル仮想アドレス空間はオペレーティングシステムの仮想アドレス空間における使用されていない空間のセグメントである、ステップと、
前記管理ノードによって、前記ファイルのメタデータを記録するステップであって、前記ファイルの前記メタデータは、前記ファイルに割り当てられた前記第１の仮想空間に関する情報を含み、前記第１の仮想空間に関する前記情報は、前記ファイルを記憶するために使用される記憶ノードのローカル仮想アドレス空間を指し示すために使用される、ステップと、
前記管理ノードによって、ファイル作成成功応答を前記ホストに送信するステップであって、前記ファイル作成成功応答は、前記第１の仮想空間に関する前記情報を搬送する、ステップとを含む方法。
【請求項２】
前記グローバル仮想アドレス空間のアドレスビット量は、前記分散記憶システム内の記憶ノードのローカル仮想アドレス空間のアドレスビット量よりも大きい、請求項１に記載の方法。
【請求項３】
前記グローバル仮想アドレス空間の前記アドレスビット量は、前記分散記憶システム内の前記記憶ノードの前記ローカル仮想アドレス空間の前記アドレスビット量の２倍であり、前記グローバル仮想アドレス空間のアドレスのN個の最上位ビットは、前記記憶ノードを指し示すために使用され、前記グローバル仮想アドレス空間の前記アドレスのN個の最下位ビットは、前記記憶ノードの前記ローカル仮想アドレス空間を指し示すために使用され、Nは、前記記憶ノードの前記ローカル仮想アドレス空間の前記アドレスビット量である、請求項２に記載の方法。
【請求項４】
前記第１の仮想空間に関する前記情報は、前記ファイルの、前記グローバル仮想アドレス空間における開始アドレスおよびサイズを含む、請求項１乃至３のいずれか１項に記載の方法。
【請求項５】
前記グローバル仮想アドレス空間は複数の領域を含み、且つ、前記複数の領域における異なる領域は、異なる空間割り当て粒度を有し、
前記管理ノードによって、前記ファイル作成要求に従って、前記分散記憶システムのグローバル仮想アドレス空間から第１の仮想空間を前記ファイルに割り当てる前記ステップは、
前記管理ノードによって、前記ファイル作成要求および第１の領域の空間割り当て粒度に従って、前記分散記憶システムの前記グローバル仮想アドレス空間内の前記第１の領域から前記第１の仮想空間を前記ファイルに割り当てるステップであって、前記第１の領域は、その空間割り当て粒度が、現在割り当てられることができる領域における最小のものである領域である、ステップを含む、請求項１乃至４のいずれか１項に記載の方法。
【請求項６】
前記方法は、
前記管理ノードによって、前記ホストによって送信されるファイル空間拡張要求を受信するステップであって、前記ファイル空間拡張要求は、前記ファイルの空間を拡張するように要求するために使用される、ステップと、
前記ファイル空間拡張要求および第２の領域の空間割り当て粒度に従って、前記グローバル仮想アドレス空間内の前記第２の領域から第２の仮想空間を、前記管理ノードによって、且つ、前記ファイルに割り当てるステップであって、前記第２の領域の前記空間割り当て粒度は、前記第１の領域の前記空間割り当て粒度よりも大きい、ステップと、
前記管理ノードによって、前記ファイルの前記メタデータを更新するステップであって、前記ファイルの更新されたメタデータは、前記ファイルに割り当てられた前記第２の仮想空間に関する情報を含む、ステップと、
前記管理ノードによって、ファイル空間拡張応答を前記ホストに送信するステップであって、前記ファイル空間拡張応答は、前記第２の仮想空間に関する前記情報を搬送する、ステップとをさらに含む、請求項５に記載の方法。
【請求項７】
前記方法は、
前記管理ノードによって、前記ファイルの前記メタデータを削除して、前記グローバル仮想アドレス空間から前記ファイルに割り当てられた前記第１の仮想空間を回収するステップと、
前記管理ノードによって、且つ、前記グローバル仮想アドレス空間と前記ローカル仮想アドレス空間との間の事前に設定された対応関係に従って、前記ファイルを記憶するために使用される前記記憶ノードを決定するステップと、
前記管理ノードによって、前記ファイルを記憶するために使用される前記記憶ノードに、空間回収メッセージを送信するステップであって、前記空間回収メッセージは、前記ファイルを記憶するために使用される前記記憶ノードに、前記ファイルに対応している前記ローカル仮想アドレス空間およびローカル物理記憶空間を回収するように命令するために使用される、ステップとをさらに含む、請求項１乃至６のいずれか１項に記載の方法。
【請求項８】
管理ノードおよび複数の記憶ノードを含む分散記憶システムであって、
前記管理ノードは、
ホストによって送信されるファイル作成要求を受信し、
前記ファイル作成要求に従って、グローバル仮想アドレス空間から第１の仮想空間を前記ファイルに割り当て、
前記ファイルのメタデータを記録し、
ファイル作成成功応答を前記ホストに送信するように構成され、
前記ファイル作成要求は、前記分散記憶システム内にファイルを作成するように要求するために使用され、
前記グローバル仮想アドレス空間は各記憶ノードのローカル仮想アドレス空間にマッピングされ、記憶ノードの前記ローカル仮想アドレス空間は前記記憶ノードのローカル物理記憶空間にマッピングされ、前記記憶ノードの前記ローカル仮想アドレス空間はオペレーティングシステムの仮想アドレス空間における使用されていない空間のセグメントであり、
前記ファイルの前記メタデータは、前記ファイルに割り当てられた前記第１の仮想空間に関する情報を含み、前記第１の仮想空間に関する前記情報は、前記ファイルを記憶するために使用される記憶ノードのローカル仮想アドレス空間を指し示すために使用され、
前記ファイル作成成功応答は、前記第１の仮想空間に関する前記情報を搬送する、分散記憶システム。
【請求項９】
前記グローバル仮想アドレス空間のアドレスビット量は、前記分散記憶システム内の記憶ノードのローカル仮想アドレス空間のアドレスビット量よりも大きい、請求項８に記載の分散記憶システム。
【請求項１０】
前記グローバル仮想アドレス空間の前記アドレスビット量は、前記分散記憶システム内の前記記憶ノードの前記ローカル仮想アドレス空間の前記アドレスビット量の２倍であり、前記グローバル仮想アドレス空間のアドレスのN個の最上位ビットは、前記記憶ノードを指し示すために使用され、前記グローバル仮想アドレス空間の前記アドレスのN個の最下位ビットは、前記記憶ノードの前記ローカル仮想アドレス空間を指し示すために使用され、Nは、前記記憶ノードの前記ローカル仮想アドレス空間の前記アドレスビット量である、請求項９に記載の分散記憶システム。
【請求項１１】
前記第１の仮想空間に関する前記情報は、前記ファイルの、前記グローバル仮想アドレス空間における開始アドレスおよびサイズを含む、請求項８乃至１０のいずれか１項に記載の分散記憶システム。
【請求項１２】
前記グローバル仮想アドレス空間は複数の領域を含み、且つ、前記複数の領域における異なる領域は、異なる空間割り当て粒度を有し、
前記管理ノードは、具体的には、前記ファイル作成要求および第１の領域の空間割り当て粒度に従って、前記分散記憶システムの前記グローバル仮想アドレス空間内の前記第１の領域から前記第１の仮想空間を前記ファイルに割り当てるように構成され、前記第１の領域は、その空間割り当て粒度が、現在割り当てられることができる領域における最小のものである領域である、請求項８乃至１１のいずれか１項に記載の分散記憶システム。
【請求項１３】
前記管理ノードは、
前記ホストによって送信されるファイル空間拡張要求を受信し、
前記ファイル空間拡張要求および第２の領域の空間割り当て粒度に従って、前記グローバル仮想アドレス空間内の前記第２の領域から第２の仮想空間を前記ファイルに割り当て、
前記ファイルの前記メタデータを更新し、
ファイル空間拡張応答を前記ホストに送信するようにさらに構成され、
前記ファイル空間拡張要求は、前記ファイルの空間を拡張するように要求するために使用され、
前記第２の領域の前記空間割り当て粒度は、前記第１の領域の前記空間割り当て粒度よりも大きく、
前記ファイルの更新されたメタデータは、前記ファイルに割り当てられた前記第２の仮想空間に関する情報を含み、
前記ファイル空間拡張応答は、前記第２の仮想空間に関する前記情報を搬送する、請求項１２に記載の分散記憶システム。
【請求項１４】
前記管理ノードは、
前記ファイルの前記メタデータを削除して、前記グローバル仮想アドレス空間から前記ファイルに割り当てられた前記第１の仮想空間を回収し、
前記グローバル仮想アドレス空間と前記ローカル仮想アドレス空間との間の事前に設定された対応関係に従って、前記ファイルを記憶するために使用される前記記憶ノードを決定し、
前記ファイルを記憶するために使用される前記記憶ノードに、空間回収メッセージを送信するようにさらに構成され、前記空間回収メッセージは、前記ファイルを記憶するために使用される前記記憶ノードに、前記ファイルに対応している前記ローカル仮想アドレス空間およびローカル物理記憶空間を回収するように命令するために使用され、
前記ファイルを記憶するために使用される前記記憶ノードは、前記空間回収メッセージに従って、前記ファイルに対応している前記ローカル仮想アドレス空間および前記ローカル物理記憶空間を回収するように構成される、請求項８乃至１３のいずれか１項に記載の分散記憶システム。
【請求項１５】
管理ノードであって、
ホストによって送信されるファイル作成要求を受信するように構成される受信ユニットであって、前記ファイル作成要求は、分散記憶システム内にファイルを作成するように要求するために使用される、受信ユニットと、
前記ファイル作成要求に従って、前記分散記憶システムのグローバル仮想アドレス空間から第１の仮想空間を前記ファイルに割り当て、前記ファイルのメタデータを記録するように構成される管理ユニットであって、前記グローバル仮想アドレス空間は各記憶ノードのローカル仮想アドレス空間にマッピングされ、記憶ノードの前記ローカル仮想アドレス空間は前記記憶ノードのローカル物理記憶空間にマッピングされ、前記記憶ノードの前記ローカル仮想アドレス空間はオペレーティングシステムの仮想アドレス空間における使用されていない空間のセグメントであり、前記ファイルの前記メタデータは、前記ファイルに割り当てられた前記第１の仮想空間に関する情報を含み、前記第１の仮想空間に関する前記情報は、前記ファイルを記憶するために使用される記憶ノードのローカル仮想アドレス空間を指し示すために使用される、管理ユニットと、
ファイル作成成功応答を前記ホストに送信するように構成される送信ユニットであって、前記ファイル作成成功応答は、前記第１の仮想空間に関する前記情報を搬送する、送信ユニットとを含む管理ノード。
【請求項１６】
前記グローバル仮想アドレス空間のアドレスビット量は、前記分散記憶システム内の記憶ノードのローカル仮想アドレス空間のアドレスビット量よりも大きい、請求項１５に記載の管理ノード。
【請求項１７】
前記グローバル仮想アドレス空間の前記アドレスビット量は、前記分散記憶システム内の前記記憶ノードの前記ローカル仮想アドレス空間の前記アドレスビット量の２倍であり、前記グローバル仮想アドレス空間のアドレスのN個の最上位ビットは、前記記憶ノードを指し示すために使用され、前記グローバル仮想アドレス空間の前記アドレスのN個の最下位ビットは、前記記憶ノードの前記ローカル仮想アドレス空間を指し示すために使用され、Nは、前記記憶ノードの前記ローカル仮想アドレス空間の前記アドレスビット量である、請求項１６に記載の管理ノード。
【請求項１８】
前記第１の仮想空間に関する前記情報は、前記ファイルの、前記グローバル仮想アドレス空間における開始アドレスおよびサイズを含む、請求項１５乃至１７のいずれか１項に記載の管理ノード。
【請求項１９】
前記グローバル仮想アドレス空間は複数の領域を含み、且つ、前記複数の領域における異なる領域は、異なる空間割り当て粒度を有し、
前記管理ユニットは、具体的には、前記ファイル作成要求および第１の領域の空間割り当て粒度に従って、前記分散記憶システムの前記グローバル仮想アドレス空間内の前記第１の領域から前記第１の仮想空間を前記ファイルに割り当てるように構成され、前記第１の領域は、その空間割り当て粒度が、現在割り当てられることができる領域における最小のものである領域である、請求項１５乃至１８のいずれか１項に記載の管理ノード。
【請求項２０】
前記受信ユニットは、前記ホストによって送信されるファイル空間拡張要求を受信するようにさらに構成され、前記ファイル空間拡張要求は、前記ファイルの空間を拡張するように要求するために使用され、
前記管理ユニットは、前記ファイル空間拡張要求および第２の領域の空間割り当て粒度に従って、前記グローバル仮想アドレス空間内の前記第２の領域から第２の仮想空間を前記ファイルに割り当て、前記ファイルの前記メタデータを更新するようにさらに構成され、前記第２の領域の前記空間割り当て粒度は、前記第１の領域の前記空間割り当て粒度よりも大きく、前記ファイルの更新されたメタデータは、前記ファイルに割り当てられた前記第２の仮想空間に関する情報を含み、
前記送信ユニットは、ファイル空間拡張応答を前記ホストに送信するようにさらに構成され、前記ファイル空間拡張応答は、前記第２の仮想空間に関する前記情報を搬送する、請求項１９に記載の管理ノード。
【請求項２１】
前記管理ユニットは、前記ファイルの前記メタデータを削除するとともに、前記グローバル仮想アドレス空間から前記ファイルに割り当てられた前記第１の仮想空間を回収して、前記グローバル仮想アドレス空間と前記ローカル仮想アドレス空間との間の事前に設定された対応関係に従って、前記ファイルを記憶するために使用される前記記憶ノードを決定するようにさらに構成され、
前記送信ユニットは、前記ファイルを記憶するために使用される前記記憶ノードに、空間回収メッセージを送信するようにさらに構成され、前記空間回収メッセージは、前記ファイルを記憶するために使用される前記記憶ノードに、前記ファイルに対応している前記ローカル仮想アドレス空間およびローカル物理記憶空間を回収するように命令するために使用される、請求項１５乃至２０のいずれか１項に記載の管理ノード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶技術の分野に関し、具体的には、ファイル管理方法、分散記憶システムおよび管理ノードに関する。
【背景技術】
【０００２】
次世代の不揮発性メモリは、相変化メモリ（Phase Change Memory, PCM）、抵抗性ランダムアクセスメモリ（Resistive RAM, ReRAM）または磁気抵抗ランダムアクセスメモリ（Magnetoresistive Random Access Memory, MRAM）等の、バイト（byte）によってアドレッシングされ、且つアクセスされる能力を有する不揮発性メモリを含んでよい。次世代の不揮発性メモリは、ダイナミック・ランダム・アクセス・メモリ（Dynamic Random Access Memory, DRAM）のインタフェースと同様のインタフェースを提供することができる。実際の適用においては、次世代の不揮発性メモリは、DRAMのページ管理方式と同様のページ管理方式において管理されてよい。現在、次世代の不揮発性メモリに基づく記憶システムは、業界における研究の焦点である。
【０００３】
一般に、従来の記憶システム、分散ファイルシステム等は、ファイルデータを管理するために、メタデータを使用することによって、記憶媒体内にファイルデータの位置を記録する。メタデータは、グローバルなコンテンツベースの名前空間を使用するとともに、一般に、B-tree（B-ツリー）等のデータ構造を使用する。ファイルのデータブロックに関しては、ファイルのデータブロックは、その上にデータブロックが配置される記憶ノードを記録するか、または記憶ノード上の位置をさらに記録する方式でトレースされる。この方式は、従来のハードディスクドライブ（Hard Disk Drive, HDD）、ソリッドステートドライブ（Solid State Drive, SSD）等が使用されるブロックのデバイスベースのシナリオに適用可能である。記憶システムが新しい不揮発性メモリ（non-volatile memory, NVM）を使用した後、元の方法は新しいNVMに適用されることができるが、メタデータは比較的大きな記憶空間を占め、且つ、ファイルの各データブロックに対応する記憶位置等の情報はメタデータ内に記録される必要があるため、管理の負担は比較的重く、メタデータを取得することによって、ホストによって記憶ノードにアクセスする効率もまた低く、結果として、ファイル管理効率は比較的低い。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の実施形態は、ファイル管理方法、分散記憶システムおよび管理ノードを提供するとともに、ファイル管理効率を改善することができる。
【０００５】
第１の態様によると、ファイル管理方法が提供され、ここで、方法は分散記憶システムに適用され、分散記憶システムは管理ノードおよび複数の記憶ノードを含み、方法は、
管理ノードによって、ホストによって送信されるファイル作成要求を受信するステップであって、ここで、ファイル作成要求は、分散記憶システム内にファイルを作成するように要求するために使用される、ステップと、
管理ノードによって、ファイル作成要求に従って、分散記憶システムのグローバル仮想アドレス空間から第１の仮想空間をファイルに割り当てるステップであって、ここで、分散記憶システム内の各記憶ノードのローカル仮想アドレス空間は、グローバル仮想アドレス空間の一部に対応している、ステップと、
管理ノードによって、ファイルのメタデータを記録するステップであって、ここで、ファイルのメタデータは、ファイルに割り当てられた第１の仮想空間に関する情報を含み、第１の仮想空間に関する情報は、ファイルを記憶するために使用される記憶ノードのローカル仮想アドレス空間を指し示すために使用される、ステップと、
管理ノードによって、ファイル作成成功応答をホストに送信するステップであって、ここで、ファイル作成成功応答は、第１の仮想空間に関する情報を搬送する、ステップとを含む。
【０００６】
第１の態様を参照すると、第１の可能な実施方式では、グローバル仮想アドレス空間のアドレスビット量は、分散記憶システム内の記憶ノードのローカル仮想アドレス空間のアドレスビット量よりも大きい。
【０００７】
第１の態様または第１の態様の第１の可能な実施方式を参照すると、第２の可能な実施方式では、グローバル仮想アドレス空間のアドレスビット量は、分散記憶システム内の記憶ノードのローカル仮想アドレス空間のアドレスビット量の２倍であり、ここで、グローバル仮想アドレス空間のアドレスのN個の最上位ビットは、記憶ノードを指し示すために使用され、グローバル仮想アドレス空間のアドレスのN個の最下位ビットは、記憶ノードのローカル仮想アドレス空間を指し示すために使用され、Nは、記憶ノードのローカル仮想アドレス空間のアドレスビット量である。
【０００８】
第１の態様、または第１の態様の第１または第２の可能な実施方式を参照すると、第３の可能な実施方式では、第１の仮想空間に関する情報は、ファイルの、グローバル仮想アドレス空間における開始アドレスおよびサイズを含む。
【０００９】
第１の態様、または第１の態様の第１乃至第３の可能な実施方式のうちのいずれか１つを参照すると、第４の可能な実施方式では、グローバル仮想アドレス空間は複数の領域を含み、且つ、複数の領域における異なる領域は、異なる空間割り当て粒度を有し、
管理ノードによって、ファイル作成要求に従って、分散記憶システムのグローバル仮想アドレス空間から第１の仮想空間をファイルに割り当てるステップは、
管理ノードによって、ファイル作成要求および第１の領域の空間割り当て粒度に従って、分散記憶システムのグローバル仮想アドレス空間内の第１の領域から第１の仮想空間をファイルに割り当てるステップであって、ここで、第１の領域は、その空間割り当て粒度が、現在割り当てられることができる領域における最小のものである領域である、ステップを含む。
【００１０】
第１の態様の第４の可能な実施方式を参照すると、第５の可能な実施方式では、方法は、
管理ノードによって、ホストによって送信されるファイル空間拡張要求を受信するステップであって、ここで、ファイル空間拡張要求は、ファイルの空間を拡張するように要求するために使用される、ステップと、
ファイル空間拡張要求および第２の領域の空間割り当て粒度に従って、グローバル仮想アドレス空間内の第２の領域から第２の仮想空間をファイルに割り当てるステップであって、ここで、第２の領域の空間割り当て粒度は、第１の領域の空間割り当て粒度よりも大きい、ステップと、
ファイルのメタデータを更新するステップであって、ここで、ファイルの更新されたメタデータは、ファイルに割り当てられた第２の仮想空間に関する情報を含む、ステップと、
ファイル空間拡張応答をホストに送信するステップであって、ここで、ファイル空間拡張応答は、第２の仮想空間に関する情報を搬送する、ステップとをさらに含む。
【００１１】
第１の態様、または第１の態様の第１乃至第５の可能な実施方式のうちのいずれか１つを参照すると、第６の可能な実施方式では、方法は、
管理ノードによって、ファイルのメタデータを削除して、グローバル仮想アドレス空間からファイルに割り当てられた空間を回収するステップと、
グローバル仮想アドレス空間とローカル仮想アドレス空間との間の事前に設定された対応関係に従って、ファイルを記憶するために使用される記憶ノードを決定するステップと、
ファイルを記憶するために使用される記憶ノードに、空間回収メッセージを送信するステップであって、ここで、空間回収メッセージは、ファイルを記憶するために使用される記憶ノードに、ファイルに対応しているローカル仮想アドレス空間およびローカル物理記憶空間を回収するように命令するために使用される、ステップとをさらに含む。
【００１２】
第２の態様によると、管理ノードおよび複数の記憶ノードを含む分散記憶システムが提供され、ここで、
複数の記憶ノードの各々のローカル仮想アドレス空間は、分散記憶システムのグローバル仮想アドレス空間の一部に対応しており、且つ、
管理ノードは、ホストによって送信されるファイル作成要求を受信し、ファイル作成要求に従って、グローバル仮想アドレス空間から第１の仮想空間をファイルに割り当て、ファイルのメタデータを記録し、ファイル作成成功応答をホストに送信するように構成され、ここで、ファイル作成要求は、分散記憶システム内にファイルを作成するように要求するために使用され、ファイルのメタデータは、ファイルに割り当てられた第１の仮想空間に関する情報を含み、第１の仮想空間に関する情報は、ファイルを記憶するために使用される記憶ノードのローカル仮想アドレス空間を指し示すために使用され、ファイル作成成功応答は、第１の仮想空間に関する情報を搬送する。
【００１３】
第２の態様を参照すると、第１の可能な実施方式では、グローバル仮想アドレス空間のアドレスビット量は、分散記憶システム内の記憶ノードのローカル仮想アドレス空間のアドレスビット量よりも大きい。
【００１４】
第２の態様または第２の態様の第１の可能な実施方式を参照すると、第２の可能な実施方式では、グローバル仮想アドレス空間のアドレスビット量は、分散記憶システム内の記憶ノードのローカル仮想アドレス空間のアドレスビット量の２倍であり、ここで、グローバル仮想アドレス空間のアドレスのN個の最上位ビットは、記憶ノードを指し示すために使用され、グローバル仮想アドレス空間のアドレスのN個の最下位ビットは、記憶ノードのローカル仮想アドレス空間を指し示すために使用され、Nは、記憶ノードのローカル仮想アドレス空間のアドレスビット量である。
【００１５】
第２の態様、または第２の態様の第１または第２の可能な実施方式を参照すると、第３の可能な実施方式では、第１の仮想空間に関する情報は、ファイルの、グローバル仮想アドレス空間における開始アドレスおよびサイズを含む。
【００１６】
第２の態様、または第２の態様の第１乃至第３の可能な実施方式のうちのいずれか１つを参照すると、第４の可能な実施方式では、グローバル仮想アドレス空間は複数の領域を含み、且つ、複数の領域における異なる領域は、異なる空間割り当て粒度を有し、且つ、
管理ノードは、具体的には、ファイル作成要求および第１の領域の空間割り当て粒度に従って、分散記憶システムのグローバル仮想アドレス空間内の第１の領域から第１の仮想空間をファイルに割り当てるように構成され、ここで、第１の領域は、その空間割り当て粒度が、現在割り当てられることができる領域における最小のものである領域である。
【００１７】
第２の態様の第４の可能な実施方式を参照すると、第５の可能な実施方式では、管理ノードは、ホストによって送信されるファイル空間拡張要求を受信し、ファイル空間拡張要求および第２の領域の空間割り当て粒度に従って、グローバル仮想アドレス空間内の第２の領域から第２の仮想空間をファイルに割り当て、ファイルのメタデータを更新し、ファイル空間拡張応答をホストに送信するようにさらに構成され、ここで、ファイル空間拡張要求は、ファイルの空間を拡張するように要求するために使用され、第２の領域の空間割り当て粒度は、第１の領域の空間割り当て粒度よりも大きく、ファイルの更新されたメタデータは、ファイルに割り当てられた第２の仮想空間に関する情報を含み、ファイル空間拡張応答は、第２の仮想空間に関する情報を搬送する。
【００１８】
第２の態様、または第２の態様の第１乃至第５の可能な実施方式のうちのいずれか１つを参照すると、第６の可能な実施方式では、管理ノードは、ファイルのメタデータを削除して、グローバル仮想アドレス空間からファイルに割り当てられた空間を回収し、グローバル仮想アドレス空間とローカル仮想アドレス空間との間の事前に設定された対応関係に従って、ファイルを記憶するために使用される記憶ノードを決定し、ファイルを記憶するために使用される記憶ノードに、空間回収メッセージを送信するようにさらに構成され、ここで、空間回収メッセージは、ファイルを記憶するために使用される記憶ノードに、ファイルに対応しているローカル仮想アドレス空間およびローカル物理記憶空間を回収するように命令するために使用され、ここで、
ファイルを記憶するために使用される記憶ノードは、空間回収メッセージに従って、ファイルに対応しているローカル仮想アドレス空間およびローカル物理記憶空間を回収するように構成される。
【００１９】
第３の態様によると、管理ノードが提供され、
ホストによって送信されるファイル作成要求を受信するように構成される受信ユニットであって、ここで、ファイル作成要求は、分散記憶システム内にファイルを作成するように要求するために使用される、受信ユニットと、
ファイル作成要求に従って、分散記憶システムのグローバル仮想アドレス空間から第１の仮想空間をファイルに割り当て、ファイルのメタデータを記録するように構成される管理ユニットであって、ここで、分散記憶システム内の各記憶ノードのローカル仮想アドレス空間は、グローバル仮想アドレス空間の一部に対応しており、ファイルのメタデータは、ファイルに割り当てられた第１の仮想空間に関する情報を含み、第１の仮想空間に関する情報は、ファイルを記憶するために使用される記憶ノードのローカル仮想アドレス空間を指し示すために使用される、管理ユニットと、
ファイル作成成功応答をホストに送信するように構成される送信ユニットであって、ここで、ファイル作成成功応答は、第１の仮想空間に関する情報を搬送する、送信ユニットとを含む。
【００２０】
第３の態様を参照すると、第１の可能な実施方式では、グローバル仮想アドレス空間のアドレスビット量は、分散記憶システム内の記憶ノードのローカル仮想アドレス空間のアドレスビット量よりも大きい。
【００２１】
第３の態様または第３の態様の第１の可能な実施方式を参照すると、第２の可能な実施方式では、グローバル仮想アドレス空間のアドレスビット量は、分散記憶システム内の記憶ノードのローカル仮想アドレス空間のアドレスビット量の２倍であり、ここで、グローバル仮想アドレス空間のアドレスのN個の最上位ビットは、記憶ノードを指し示すために使用され、グローバル仮想アドレス空間のアドレスのN個の最下位ビットは、記憶ノードのローカル仮想アドレス空間を指し示すために使用され、Nは、記憶ノードのローカル仮想アドレス空間のアドレスビット量である。
【００２２】
第３の態様、または第３の態様の第１または第２の可能な実施方式を参照すると、第３の可能な実施方式では、第１の仮想空間に関する情報は、ファイルの、グローバル仮想アドレス空間における開始アドレスおよびサイズを含む。
【００２３】
第３の態様、または第３の態様の第１乃至第３の可能な実施方式のうちのいずれか１つを参照すると、第４の可能な実施方式では、グローバル仮想アドレス空間は複数の領域を含み、且つ、複数の領域における異なる領域は、異なる空間割り当て粒度を有し、
管理ユニットは、具体的には、ファイル作成要求および第１の領域の空間割り当て粒度に従って、分散記憶システムのグローバル仮想アドレス空間内の第１の領域から第１の仮想空間をファイルに割り当てるように構成され、ここで、第１の領域は、その空間割り当て粒度が、現在割り当てられることができる領域における最小のものである領域である。
【００２４】
第３の態様の第４の可能な実施方式を参照すると、第５の可能な実施方式では、受信ユニットは、ホストによって送信されるファイル空間拡張要求を受信するようにさらに構成され、ここで、ファイル空間拡張要求は、ファイルの空間を拡張するように要求するために使用され、
管理ユニットは、ファイル空間拡張要求および第２の領域の空間割り当て粒度に従って、グローバル仮想アドレス空間内の第２の領域から第２の仮想空間をファイルに割り当て、ファイルのメタデータを更新するようにさらに構成され、ここで、第２の領域の空間割り当て粒度は、第１の領域の空間割り当て粒度よりも大きく、ファイルの更新されたメタデータは、ファイルに割り当てられた第２の仮想空間に関する情報を含み、
送信ユニットは、ファイル空間拡張応答をホストに送信するようにさらに構成され、ここで、ファイル空間拡張応答は、第２の仮想空間に関する情報を搬送する。
【００２５】
第３の態様、または第３の態様の第１乃至第５の可能な実施方式のうちのいずれか１つを参照すると、第６の可能な実施方式では、管理ユニットは、ファイルのメタデータを削除するとともに、グローバル仮想アドレス空間からファイルに割り当てられた空間を回収して、グローバル仮想アドレス空間とローカル仮想アドレス空間との間の事前に設定された対応関係に従って、ファイルを記憶するために使用される記憶ノードを決定するようにさらに構成され、
送信ユニットは、ファイルを記憶するために使用される記憶ノードに、空間回収メッセージを送信するようにさらに構成され、ここで、空間回収メッセージは、ファイルを記憶するために使用される記憶ノードに、ファイルに対応しているローカル仮想アドレス空間およびローカル物理記憶空間を回収するように命令するために使用される。
【００２６】
第４の態様によると、本発明の実施形態はコンピュータプログラム製品を提供し、ここで、コンピュータプログラム製品は、プログラムコードを記憶するコンピュータ可読記憶媒体を含み、且つ、プログラムコードに含まれる命令は、前述の第１の態様において説明された方法を実行するために使用される。
【００２７】
前述の技術的解決手段に基づくと、本発明の実施形態におけるファイル管理方法、分散記憶システムおよび管理ノードによると、空間は、分散記憶システムのグローバル仮想アドレス空間からファイルに割り当てられ、且つ、ファイルは、ファイルのデータブロックの複雑な記憶位置情報を処理する必要無しに、割り当てられたグローバル仮想アドレス空間に基づいて管理されてよく、その結果、ファイル管理効率は改善されることができる。
【図面の簡単な説明】
【００２８】
本発明の実施形態における技術的解決手段をより明確に説明するために、以下では、本発明の実施形態を説明するために必要とされる添付図面を簡潔に説明する。明らかに、以下の説明における添付図面は、単に本発明のいくつかの実施形態を示し、且つ、当業者は、創造的努力無しにこれらの添付図面から他の図面をさらに導出することができる。
【００２９】
【図１】図１は、本発明の実施形態に係るアプリケーションシナリオの概略図である。
【図２】図２は、本発明の実施形態に係るファイル管理方法の概略フローチャートである。
【図３】図３は、本発明の実施形態に係るグローバル仮想アドレス空間の例の概略図である。
【図４】図４は、本発明の実施形態に係るグローバル仮想アドレス空間における領域の概略図である。
【図５】図５は、本発明の別の実施形態に係るファイル管理方法の概略フローチャートである。
【図６】図６は、本発明のさらに別の実施形態に係るファイル管理方法の概略フローチャートである。
【図７】図７は、本発明のまた別の実施形態に係るファイル管理方法の概略フローチャートである。
【図８】図８は、本発明の実施形態に係る分散記憶システムの概略ブロック図である。
【図９】図９は、本発明の実施形態に係る管理ノードの概略ブロック図である。
【図１０】図１０は、本発明の別の実施形態に係る管理ノードの概略ブロック図である。
【発明を実施するための形態】
【００３０】
以下では、本発明の実施形態における添付図面を参照して、本発明の実施形態における技術的解決手段を明確且つ完全に説明する。明らかに、説明される実施形態は、本発明の実施形態の全てではなく一部である。創造的努力無しに、本発明の実施形態に基づいて当業者によって取得される全ての他の実施形態は、本発明の保護範囲に包含されるべきである。
【００３１】
本発明の実施形態の技術的解決手段は、様々な記憶システムに適用されてよいとともに、詳細には、不揮発性メモリに基づいている分散記憶システムに適用されてよいことは理解されるべきである。
【００３２】
本発明の実施形態において、「仮想アドレス空間」という用語は、「仮想空間」として表現されてもまたよく、すなわち、「仮想アドレス空間」と「仮想空間」とは互いを参照することもまた理解されるべきである。
【００３３】
図１は、本発明の実施形態に係るアプリケーションシナリオの概略図である。図１では、ホスト１３０、記憶ノード１２０およびメタデータ管理ノード１１０は、ネットワークを使用することによって相互接続される。記憶ノード１２０およびメタデータ管理ノード１１０は、分散記憶システムを構成する。
【００３４】
ホスト１３０は、分散記憶システム内のファイルにアクセスすることができる。ホスト１３０は、コンピュータであってよく、または他のユーザ機器であってよく、且つ、ホスト１３０は、ネットワークを使用することによって、分散記憶システムと通信してよい。ホスト１３０は、サーバまたはデスクトップコンピュータ等の従来技術において知られている任意の演算デバイスを含んでよい。オペレーティングシステムおよび別のアプリケーションプログラムは、ホスト１３０内にインストールされる。複数のホスト１３０があってよい。
【００３５】
記憶ノード１２０はファイルデータを記憶するために使用される。記憶ノード１２０は、少なくとも１つのメモリを含んでよい。例えば、メモリは、相変化メモリ（Phase Change Memory, PCM）、抵抗性ランダムアクセスメモリ（Resistive RAM, ReRAM）または磁気抵抗ランダムアクセスメモリ（MagnetoresistiveRandom Access Memory, MRAM）等の、バイト（byte）によってアドレッシングされ、且つアクセスされる能力を有する新しい不揮発性メモリNVMを含んでよく、または別のメモリを含んでよい。図１は、記憶ノード１２０が記憶ノード１２０上のNVM等を含む物理記憶空間を管理する例として、NVMのみを使用する。
【００３６】
メタデータ管理ノード１１０は、グローバル仮想アドレス空間管理を担当するとともに、ファイルメタデータ問い合わせ等の機能を提供する。
【００３７】
メタデータ管理ノード１１０および記憶ノード１２０は、共に結合されてよく、すなわち、１つのノードは、メタデータ管理ノードと記憶ノードとの両方の機能を有してよい。
【００３８】
本発明の実施形態では、管理ノードはメタデータ管理ノード（図１におけるメタデータ管理ノード１１０等）であってよく、または、メタデータ管理ノードと記憶ノードとの両方の機能を有するノードであってよい。説明の容易さのために、以下では、説明のための例として管理ノードを使用する。
【００３９】
図２は、本発明の実施形態に係るファイル管理方法２００の概略フローチャートを示す。方法２００は分散記憶システムに適用され、且つ、分散記憶システムは、管理ノードおよび複数の記憶ノードを含む。方法２００は、管理ノードによって実行される。
【００４０】
Ｓ２１０．管理ノードは、ホストによって送信されるファイル作成要求を受信し、ここで、ファイル作成要求は、分散記憶システム内にファイルを作成するように要求するために使用される。
【００４１】
Ｓ２２０．管理ノードは、ファイル作成要求に従って、分散記憶システムのグローバル仮想アドレス空間から第１の仮想空間をファイルに割り当て、ここで、本発明の本実施形態では、分散記憶システム内の各記憶ノードのローカル仮想アドレス空間は、グローバル仮想アドレス空間の一部に対応している。
【００４２】
本発明の本実施形態では、分散記憶システム内のファイルがグローバル仮想アドレス空間に基づいて管理される。グローバル仮想アドレス空間は、分散記憶システムの仮想空間である。分散記憶システム内の各記憶ノードのローカル仮想アドレス空間は、グローバル仮想アドレス空間の一部に対応している。
【００４３】
ローカル仮想アドレス空間のアドレスビット量は、オペレーティングシステム（Operating System, OS）のビット量である。例えば、64ビットのOSについては、ローカル仮想アドレス空間のアドレスビット量は64ビットであり、且つ、ローカル仮想アドレス空間のサイズは、2^64バイト（^は累乗を表す）である。グローバル仮想アドレス空間のアドレスビット量は128ビットであってよく、且つ、グローバル仮想アドレス空間のサイズは2^128バイトである。この場合、各記憶ノードのローカル仮想アドレス空間は、グローバル仮想アドレス空間の一部に対応していてよい。
【００４４】
ある場合では、グローバル仮想アドレス空間とローカル仮想アドレス空間との間の対応関係（マッピング関係と呼ばれてもまたよい）が事前に確立されてよい。例えば、グローバル仮想アドレス空間とローカル仮想アドレス空間との間の対応関係は、管理ノード上に事前に構成される。管理ノードが空間をファイルに割り当てた後、割り当てられたグローバル仮想アドレス空間は、事前に確立された対応関係に従って、記憶ノードのローカル仮想アドレス空間に対応していてよい。別の場合では、グローバル仮想アドレス空間とローカル仮想アドレス空間との間の対応関係（マッピング関係と呼ばれてもまたよい）は、空間がファイルに割り当てられているときに確立されてよい。例えば、空間をファイルに割り当てるとき、管理ノードは、割り当てられたグローバル仮想アドレス空間とローカル仮想アドレス空間との間の対応関係を確立してよいとともに、割り当てられたグローバル仮想アドレス空間とローカル仮想アドレス空間との間の対応関係を保存してよい。割り当てられたグローバル仮想アドレス空間は、対応関係に従って、記憶ノードのローカル仮想アドレス空間に対応していてよい。本発明の本実施形態では、グローバル仮想アドレス空間とローカル仮想アドレス空間との間の対応関係を確立する方法は限定されない。
【００４５】
ホストによって送信されるファイル作成要求を受信するとき、管理ノードは、分散記憶システムのグローバル仮想アドレス空間から、空間の連続的なセグメント（第１の仮想空間として表される）をファイルに割り当てる。グローバル仮想アドレス空間とローカル仮想アドレス空間との間の対応関係に基づいて、第１の仮想空間は、記憶ノードのローカル仮想アドレス空間にマッピングされてよい。
【００４６】
Ｓ２３０．管理ノードは、ファイルのメタデータを記録し、ここで、ファイルのメタデータは、ファイルに割り当てられた第１の仮想空間に関する情報を含み、第１の仮想空間に関する情報は、ファイルを記憶するために使用される記憶ノードのローカル仮想アドレス空間を指し示すために使用される。
【００４７】
グローバル仮想アドレス空間から第１の仮想空間をファイルに割り当てた後、管理ノードは、ファイルのメタデータを記録し、ここで、ファイルのメタデータは、ファイルに割り当てられた第１の仮想空間に関する情報を含む。
【００４８】
任意で、第１の仮想空間に関する情報は、グローバル仮想アドレス空間における、ファイルの開始アドレスおよびサイズを含んでよい。第１の仮想空間に関する情報は、ファイルを記憶するために使用される記憶ノードのローカル仮想アドレス空間を指し示すために使用される。すなわち、グローバル仮想アドレス空間とローカル仮想アドレス空間との間の対応関係に基づいて、ファイルに割り当てられた第１の仮想空間は、ファイルを記憶するために使用される記憶ノードのローカル仮想アドレス空間にマッピングされるとともに、ローカル仮想アドレス空間を使用することによって、ローカル物理記憶空間にさらにマッピングされる。
【００４９】
Ｓ２４０．管理ノードは、ファイル作成成功応答をホストに送信し、ここで、ファイル作成成功応答は、第１の仮想空間に関する情報を搬送する。
【００５０】
管理ノードによってホストに送信されるファイル作成成功応答は、第１の仮想空間に関する情報を搬送する。この場合、ホストは、第１の仮想空間に関する情報に従って、ファイルにアクセスしてよい。例えば、ホストは、ファイルにアクセスするための要求をグローバル仮想アドレス空間にアクセスするための要求に変更するとともに、第１の仮想空間にアクセスし、それによって、ファイルにアクセスする目的を達成する。加えて、管理ノードは、ファイルのデータブロックの複雑な記憶位置情報を処理する必要無しに、グローバル仮想アドレス空間に基づいてファイルのメタデータおよびファイルを管理してよく、その結果、ファイル管理効率は改善されることができる。
【００５１】
従って、本発明の本実施形態におけるファイル管理方法によると、空間は、分散記憶システムのグローバル仮想アドレス空間からファイルに割り当てられ、且つ、ファイルは、ファイルのデータブロックの複雑な記憶位置情報を処理する必要無しに、割り当てられたグローバル仮想アドレス空間に基づいて管理されてよく、その結果、ファイル管理効率は改善されることができる。
【００５２】
本発明の本実施形態では、任意で、記憶ノードのローカル仮想アドレス空間は、OSの仮想アドレス空間における使用されていない空間のセグメントであってよい。例えば、64ビットのOSの仮想アドレス空間のサイズは、2の64乗である。64ビットのOSの仮想アドレス空間は、ユーザモードプロセス仮想アドレス空間およびカーネル仮想アドレス空間に加えて、予約済み仮想アドレス空間を含む。ローカル仮想アドレス空間は、OSの予約済み仮想アドレス空間であってよい。あるいは、オペレーティングシステムの仮想アドレス空間は、必要に応じて再分割されてよく、且つ、仮想アドレス空間のセグメントは、分割によって取得されるとともに、記憶ノードによって、データ記憶のためにローカル仮想アドレス空間として使用される。
【００５３】
本発明の本実施形態では、グローバル仮想アドレス空間は、分散記憶システムにおける全てのファイルをまとめて管理するために使用される。グローバル仮想アドレス空間は、分散記憶システムにおける全ての記憶ノードのローカル仮想アドレス空間よりも小さくない。
【００５４】
本発明の実施形態では、任意で、グローバル仮想アドレス空間のアドレスビット量は、分散記憶システム内の記憶ノードのローカル仮想アドレス空間のアドレスビット量よりも大きい。ローカル仮想アドレス空間のアドレスビット量がOSのビット量であるとき、グローバル仮想アドレス空間のアドレスビット量は、OSのビット量よりも大きい。この場合、グローバル仮想アドレス空間のいくつかのアドレスビットは、記憶ノードを指し示すために使用されてよく、且つ、他のアドレスビットは、記憶ノードのローカル仮想アドレス空間を指し示すために使用されてよい。具体的には、グローバル仮想アドレス空間のアドレスビット量がMであり、且つ、記憶ノードのローカル仮想アドレス空間のアドレスビット量がNである場合、グローバル仮想アドレス空間のアドレスのM-N個の最上位ビットは、記憶ノードを指し示すために使用されてよい。例えば、M-N個の最上位ビットは、記憶ノードの識別子および／またはルーティング情報に対応していてよい。グローバル仮想アドレス空間のアドレスのN個の最下位ビットは、記憶ノードのローカル仮想アドレス空間を指し示すために使用される。例えば、N個の最下位ビットは、記憶ノードのローカル仮想アドレス空間のアドレスに対応していてよい。
【００５５】
本発明の実施形態では、任意で、グローバル仮想アドレス空間のアドレスビット量は、分散記憶システム内の記憶ノードのローカル仮想アドレス空間のアドレスビット量の２倍である。すなわち、記憶ノードのローカル仮想アドレス空間のアドレスビット量がNである場合、グローバル仮想アドレス空間のアドレスビット量は2Nであってよい。例えば、記憶ノードのローカル仮想アドレス空間のアドレスが64ビットを有し、且つ、グローバル仮想アドレス空間のアドレスが128ビットを有するとき、この場合、記憶ノードのローカル仮想アドレス空間のサイズは、2^64バイトであり、且つ、グローバル仮想アドレス空間のサイズは、2^128バイトである。
【００５６】
任意で、グローバル仮想アドレス空間のアドレスのN個の最上位ビットは、記憶ノードを指し示すために使用され、グローバル仮想アドレス空間のアドレスのN個の最下位ビットは、記憶ノードのローカル仮想アドレス空間を指し示すために使用される。具体的には、グローバル仮想アドレス空間のアドレスのN個の最下位ビットは、記憶ノードのローカル仮想アドレス空間のアドレスに対応しており、且つ、グローバル仮想アドレス空間のアドレスのN個の最上位ビットは、記憶ノードの識別子および／またはルーティング情報に対応している。例えば、記憶ノードのローカル仮想アドレス空間のアドレスが64ビットを有し、且つ、グローバル仮想アドレス空間のアドレスが128ビットを有するとき、グローバル仮想アドレス空間のアドレスの64個の最下位ビットは、記憶ノードのローカル仮想アドレス空間のアドレスに対応しており、且つ、グローバル仮想アドレス空間のアドレスの64個の最上位ビットは、記憶ノードの識別子および／またはルーティング情報に対応している。
【００５７】
グローバル仮想アドレス空間とローカル仮想アドレス空間との間の対応関係が別の対応関係であってよいことは理解されるべきである。例えば、複数の記憶ノードが１つのグループを形成し、グローバル仮想アドレス空間のアドレスのN個の最上位ビットは、グループ番号に対応しており、N個の最下位ビットは、グループ内の位置に対応している。空間がファイルに割り当てられているとき、グループ番号が最初に決定され、次いで、グループ内の記憶ノードの連続的な仮想アドレス空間セグメントが決定され、その結果、ファイルの仮想ページは、グループ内のストリップにおいて分配される。例えば、８個のノードが１つのグループを形成する場合、ファイルの第１のページがグループ内の第１のノード上に記憶され、第８のページが第８のノード上に置かれ、第９のページが第１のノード上に置かれ、第１６のページが第８のノード上に置かれる等々である。
【００５８】
図３は、グローバル仮想アドレス空間の例の概略図である。図３に示されるように、記憶ノードのローカル仮想アドレス空間は、記憶ノードのローカル物理記憶空間にマッピングされてよい。図３に示される実施形態では、記憶ノードのローカル仮想アドレス空間のアドレスは64ビットを有し、且つ、記憶ノードのローカル仮想アドレス空間のサイズは2^64バイトである。グローバル仮想アドレス空間のアドレスは128ビットを有し、且つ、グローバル仮想アドレス空間のサイズは2^128バイトである。記憶ノードのローカル仮想アドレス空間は、グローバル仮想アドレス空間の一部に対応していてよい。すなわち、グローバル仮想アドレス空間は、各記憶ノードのローカル仮想アドレス空間にマッピングされてよい。
【００５９】
本発明の本実施形態では、分散記憶システム内のファイルは、そのサイズが2^128バイトである、前述のグローバル仮想アドレス空間において管理されてよい。各ファイルは、グローバル仮想アドレス空間の連続的なセグメントを占める。ファイルに割り当てられたグローバル仮想アドレス空間のセグメントは、各記憶ノードのローカル仮想アドレス空間にマッピングされるとともに、ローカル仮想アドレス空間を使用することによって、記憶ノードのローカル物理記憶空間にマッピングされる。例えば、空間の連続的なセグメントは、グローバル仮想アドレス空間からファイル１に割り当てられ、ここで、ファイル１に割り当てられた空間の連続的なセグメントは、第１の記憶ノードのローカル仮想アドレス空間のセグメントに対応しているとともに、第１の記憶ノードのローカル物理記憶空間にマッピングされる。
【００６０】
本発明の実施形態では、任意で、グローバル仮想アドレス空間は複数の領域を含み、且つ、複数の領域における異なる領域は、異なる空間割り当て粒度を有する。具体的には、グローバル仮想アドレス空間は、異なる空間割り当て粒度を有する複数の領域に分割されてよい。例えば、図４に示されるように、グローバル仮想アドレス空間は、大ファイル領域、中ファイル領域、小ファイル領域およびスペア領域に分割される。小ファイル領域の空間割り当て粒度は最も小さく、中ファイル領域の空間割り当て粒度は２番目に小さく、大ファイル領域の空間割り当て粒度は最も大きい。例えば、小ファイル領域の空間割り当て粒度は1MBであってよく、且つ、空間が小ファイル領域からファイルに割り当てられる場合、1-MB空間がファイルに割り当てられる。中ファイル領域の空間割り当て粒度は100MBであってよく、且つ、空間が中ファイル領域からファイルに割り当てられる場合、100-MB空間がファイルに割り当てられてよい。大ファイル領域の空間割り当て粒度は1GBであってよく、且つ、空間が大ファイル領域からファイルに割り当てられる場合、1-GB空間がファイルに割り当てられる。ファイルの作成中、最初に、空間は、小ファイル領域の空間割り当て粒度に従って、小ファイル領域からファイルに割り当てられてよい。次いで、ファイルのサイズが前に割り当てられた空間を超えるとき、空間は、ファイル領域の空間割り当て粒度に従って、小ファイル領域よりも１つレベルが高いファイル領域からファイルに再割り当てされる。
【００６１】
任意で、図５に示されるように、本発明の実施形態では、方法２００のＳ２２０は、具体的には、以下のようであってよい：
【００６２】
Ｓ２２１．管理ノードは、ファイル作成要求および第１の領域の空間割り当て粒度に従って、分散記憶システムのグローバル仮想アドレス空間内の第１の領域から第１の仮想空間をファイルに割り当てる。
【００６３】
第１の領域は、その空間割り当て粒度が、現在割り当てられることができる領域における最小のものである領域である。例えば、第１の領域は、図４における小ファイル領域であってよい。ファイルの作成中、最初に、空間は、小ファイル領域の空間割り当て粒度に従って、小ファイル領域からファイルに割り当てられる。
【００６４】
図５におけるＳ２１０、Ｓ２３０およびＳ２４０は、図２におけるそれらと同じであり、且つ、詳細は、ここでは繰り返し説明されない。
【００６５】
任意で、図６に示されるように、本発明の実施形態では、方法２００は、以下のステップをさらに含んでよい：
【００６６】
Ｓ２５１．管理ノードは、ホストによって送信されるファイル空間拡張要求を受信し、ここで、ファイル空間拡張要求は、ファイルの空間を拡張するように要求するために使用される。
【００６７】
Ｓ２５２．ファイル空間拡張要求および第２の領域の空間割り当て粒度に従って、グローバル仮想アドレス空間内の第２の領域から第２の仮想空間をファイルに割り当て、ここで、第２の領域の空間割り当て粒度は、第１の領域の空間割り当て粒度よりも大きい。
【００６８】
Ｓ２５３．ファイルのメタデータを更新し、ここで、ファイルの更新されたメタデータは、ファイルに割り当てられた第２の仮想空間に関する情報を含む。
【００６９】
Ｓ２５４．ファイル空間拡張応答をホストに送信し、ここで、ファイル空間拡張応答は、第２の仮想空間に関する情報を搬送する。
【００７０】
具体的には、ファイルの空間が拡張される必要があるとき、ホストは、ファイル空間拡張要求を管理ノードに送信する。管理ノードは、ファイル空間拡張要求および第２の領域の空間割り当て粒度に従って、グローバル仮想アドレス空間における第２の領域から空間（第２の仮想空間として表される）をファイルに割り当てる。第２の領域の空間割り当て粒度は、第１の領域の空間割り当て粒度よりも大きい。具体的には、第２の領域は、その空間割り当て粒度が、その空間割り当て粒度が第１の領域の空間割り当て粒度よりも大きく、且つ、現在割り当てられることができる領域内にある領域における最小のものである領域であってよい。例えば、第１の領域が図４における小ファイル領域であるとき、第２の領域は図４における中ファイル領域であってよく、第１の領域が図４における中ファイル領域であるとき、第２の領域は図４における大ファイル領域であってよい。空間をファイルに再割り当てした後、管理ノードはファイルのメタデータを更新し、すなわち、ファイルのメタデータをファイルに割り当てられた第２の仮想空間に関する情報に更新し、第１の領域からファイルに割り当てられた空間、すなわち、第１の仮想空間を回収し、次いで、ファイル空間拡張応答をホストに送信し、ここで、ファイル空間拡張応答は、第２の仮想空間に関する情報を搬送する。
【００７１】
任意で、図７に示されるように、本発明の実施形態では、方法２００は以下のステップをさらに含んでよい：
【００７２】
Ｓ２６１．管理ノードは、ファイルのメタデータを削除して、グローバル仮想アドレス空間からファイルに割り当てられた空間を回収する。
【００７３】
Ｓ２６２．グローバル仮想アドレス空間とローカル仮想アドレス空間との間の事前に設定された対応関係に従って、ファイルを記憶するために使用される記憶ノードを決定する。
【００７４】
Ｓ２６３．ファイルを記憶するために使用される記憶ノードに、空間回収メッセージを送信し、ここで、空間回収メッセージは、ファイルを記憶するために使用される記憶ノードに、ファイルに対応しているローカル仮想アドレス空間およびローカル物理記憶空間を回収するように命令するために使用される。
【００７５】
ファイルを削除するとき、管理ノードは、ファイルのメタデータを削除し、グローバル仮想アドレス空間からファイルに割り当てられた空間、すなわち、第１の仮想空間または第２の仮想空間を回収し、グローバル仮想アドレス空間とローカル仮想アドレス空間との間の事前に設定された対応関係に従って、ファイルを記憶するために使用される記憶ノードを決定し、空間回収メッセージを記憶ノードに送信し、ここで、対応関係は、空間がファイルに割り当てられる前に、または空間がファイルに割り当てられているときに設定されてよい。記憶ノードは、空間回収メッセージに従って、ファイルに対応しているローカル仮想アドレス空間およびローカル物理記憶空間を回収する。
【００７６】
本発明の本実施形態におけるファイル管理方法によると、分散記憶システムのグローバル仮想アドレス空間では、空間はファイルに割り当てられ、且つ、空間は回収され、従って、管理の複雑性は低く、且つ、ファイル管理効率は改善されることができる。
【００７７】
本発明の本実施形態における具体的な例は、単に、当業者が本発明の本実施形態をより良く理解することを助けるように意図されているが、本発明の本実施形態の範囲を限定するようには意図されないことは理解されるべきである。
【００７８】
前述のプロセスの順序番号は、本発明の様々な実施形態における実行順序を意味しないこともまた理解されるべきである。プロセスの実行順序は、プロセスの機能及び内部ロジックに従って決定されるべきであるとともに、本発明の実施形態の実施プロセスに対するいかなる限定としても解釈されるべきでない。
【００７９】
前述では、本発明の実施形態に係るファイル管理方法を詳細に説明する。以下では、本発明の実施形態に係る分散記憶システムおよび管理ノードを詳細に説明する。
【００８０】
図８は、本発明の実施形態に係る分散記憶システム８００の概略ブロック図を示す。図８に示されるように、分散記憶システム８００は、管理ノード８１０および複数の記憶ノード８２０を含む。
【００８１】
複数の記憶ノード８２０の各々のローカル仮想アドレス空間は、分散記憶システム８００のグローバル仮想アドレス空間の一部に対応している。
【００８２】
管理ノード８１０は、ホストによって送信されるファイル作成要求を受信し、ファイル作成要求に従って、グローバル仮想アドレス空間から第１の仮想空間をファイルに割り当て、ファイルのメタデータを記録し、ファイル作成成功応答をホストに送信するように構成され、ここで、ファイル作成要求は、分散記憶システム８００内にファイルを作成するように要求するために使用され、ファイルのメタデータは、ファイルに割り当てられた第１の仮想空間に関する情報を含み、第１の仮想空間に関する情報は、ファイルを記憶するために使用される記憶ノード８２０のローカル仮想アドレス空間を指し示すために使用され、ファイル作成成功応答は、第１の仮想空間に関する情報を搬送する。
【００８３】
本発明の本実施形態における分散記憶システムによると、空間は、グローバル仮想アドレス空間からファイルに割り当てられ、且つ、ファイルは、ファイルのデータブロックの複雑な記憶位置情報を処理する必要無しに、割り当てられたグローバル仮想アドレス空間に基づいて管理されてよく、その結果、ファイル管理効率は改善されることができる。
【００８４】
本発明の本実施形態では、任意で、グローバル仮想アドレス空間のアドレスビット量は、分散記憶システム８００内の記憶ノード８２０のローカル仮想アドレス空間のアドレスビット量よりも大きい。
【００８５】
本発明の本実施形態では、任意で、グローバル仮想アドレス空間のアドレスビット量は、分散記憶システム８００内の記憶ノード８２０のローカル仮想アドレス空間のアドレスビット量の２倍であり、ここで、グローバル仮想アドレス空間のアドレスのN個の最上位ビットは、記憶ノード８２０を指し示すために使用され、グローバル仮想アドレス空間のアドレスのN個の最下位ビットは、記憶ノード８２０のローカル仮想アドレス空間を指し示すために使用され、Nは、記憶ノード８２０のローカル仮想アドレス空間のアドレスビット量である。
【００８６】
本発明の本実施形態では、任意で、第１の仮想空間に関する情報は、ファイルの、グローバル仮想アドレス空間における開始アドレスおよびサイズを含む。
【００８７】
本発明の本実施形態では、任意で、グローバル仮想アドレス空間は複数の領域を含み、且つ、複数の領域における異なる領域は、異なる空間割り当て粒度を有する。
【００８８】
管理ノード８１０は、具体的には、ファイル作成要求および第１の領域の空間割り当て粒度に従って、分散記憶システム８００のグローバル仮想アドレス空間内の第１の領域から第１の仮想空間をファイルに割り当てるように構成され、ここで、第１の領域は、その空間割り当て粒度が、現在割り当てられることができる領域における最小のものである領域である。
【００８９】
本発明の本実施形態では、任意で、管理ノード８１０は、ホストによって送信されるファイル空間拡張要求を受信し、ファイル空間拡張要求および第２の領域の空間割り当て粒度に従って、グローバル仮想アドレス空間内の第２の領域から第２の仮想空間をファイルに割り当て、ファイルのメタデータを更新し、ファイル空間拡張応答をホストに送信するようにさらに構成され、ここで、ファイル空間拡張要求は、ファイルの空間を拡張するように要求するために使用され、第２の領域の空間割り当て粒度は、第１の領域の空間割り当て粒度よりも大きく、ファイルの更新されたメタデータは、ファイルに割り当てられた第２の仮想空間に関する情報を含み、ファイル空間拡張応答は、第２の仮想空間に関する情報を搬送する。
【００９０】
本発明の本実施形態では、任意で、管理ノード８１０は、ファイルのメタデータを削除して、グローバル仮想アドレス空間からファイルに割り当てられた空間を回収し、グローバル仮想アドレス空間とローカル仮想アドレス空間との間の事前に設定された対応関係に従って、ファイルを記憶するために使用される記憶ノード８２０を決定し、ファイルを記憶するために使用される記憶ノード８２０に、空間回収メッセージを送信するようにさらに構成され、ここで、空間回収メッセージは、ファイルを記憶するために使用される記憶ノード８２０に、ファイルに対応しているローカル仮想アドレス空間およびローカル物理記憶空間を回収するように命令するために使用される。
【００９１】
ファイルを記憶するために使用される記憶ノード８２０は、空間回収メッセージに従って、ファイルに対応しているローカル仮想アドレス空間およびローカル物理記憶空間を回収するように構成される。
【００９２】
本発明の本実施形態による、分散記憶システム８００内の管理ノード８１０および記憶ノード８２０は、前述の方法の実施形態における管理ノードおよび記憶ノードに対応していてよく、且つ、管理ノード８１０は、前述の方法の対応する手順を実行することができる。簡潔さのために、詳細はここでは説明されない。
【００９３】
図９は、本発明の実施形態に係る管理ノード９００の概略ブロック図を示す。図９に示されるように、管理ノード９００は、
ホストによって送信されるファイル作成要求を受信するように構成される受信ユニット９１０であって、ここで、ファイル作成要求は、分散記憶システム内にファイルを作成するように要求するために使用される、受信ユニット９１０と、
ファイル作成要求に従って、分散記憶システムのグローバル仮想アドレス空間から第１の仮想空間をファイルに割り当て、ファイルのメタデータを記録するように構成される管理ユニット９２０であって、ここで、分散記憶システム内の各記憶ノードのローカル仮想アドレス空間は、グローバル仮想アドレス空間の一部に対応しており、ファイルのメタデータは、ファイルに割り当てられた第１の仮想空間に関する情報を含み、第１の仮想空間に関する情報は、ファイルを記憶するために使用される記憶ノードのローカル仮想アドレス空間を指し示すために使用される、管理ユニット９２０と、
ファイル作成成功応答をホストに送信するように構成される送信ユニット９３０であって、ここで、ファイル作成成功応答は、第１の仮想空間に関する情報を搬送する、送信ユニット９３０とを含む。
【００９４】
本発明の本実施形態における管理ノードによると、空間は、分散記憶システムのグローバル仮想アドレス空間からファイルに割り当てられ、且つ、ファイルは、ファイルのデータブロックの複雑な記憶位置情報を処理する必要無しに、割り当てられたグローバル仮想アドレス空間に基づいて管理されてよく、その結果、ファイル管理効率は改善されることができる。
【００９５】
本発明の本実施形態では、任意で、グローバル仮想アドレス空間のアドレスビット量は、分散記憶システム内の記憶ノードのローカル仮想アドレス空間のアドレスビット量よりも大きい。
【００９６】
本発明の本実施形態では、任意で、グローバル仮想アドレス空間のアドレスビット量は、分散記憶システム内の記憶ノードのローカル仮想アドレス空間のアドレスビット量の２倍であり、ここで、グローバル仮想アドレス空間のアドレスのN個の最上位ビットは、記憶ノードを指し示すために使用され、グローバル仮想アドレス空間のアドレスのN個の最下位ビットは、記憶ノードのローカル仮想アドレス空間を指し示すために使用され、Nは、記憶ノードのローカル仮想アドレス空間のアドレスビット量である。
【００９７】
本発明の本実施形態では、任意で、第１の仮想空間に関する情報は、ファイルの、グローバル仮想アドレス空間における開始アドレスおよびサイズを含む。
【００９８】
本発明の本実施形態では、任意で、グローバル仮想アドレス空間は複数の領域を含み、且つ、複数の領域における異なる領域は、異なる空間割り当て粒度を有する。
【００９９】
管理ユニット９２０は、具体的には、ファイル作成要求および第１の領域の空間割り当て粒度に従って、分散記憶システムのグローバル仮想アドレス空間内の第１の領域から第１の仮想空間をファイルに割り当てるように構成され、ここで、第１の領域は、その空間割り当て粒度が、現在割り当てられることができる領域における最小のものである領域である。
【０１００】
本発明の本実施形態では、任意で、受信ユニット９１０は、ホストによって送信されるファイル空間拡張要求を受信するようにさらに構成され、ここで、ファイル空間拡張要求は、ファイルの空間を拡張するように要求するために使用される。
【０１０１】
管理ユニット９２０は、ファイル空間拡張要求および第２の領域の空間割り当て粒度に従って、グローバル仮想アドレス空間内の第２の領域から第２の仮想空間をファイルに割り当て、ファイルのメタデータを更新するようにさらに構成され、ここで、第２の領域の空間割り当て粒度は、第１の領域の空間割り当て粒度よりも大きく、ファイルの更新されたメタデータは、ファイルに割り当てられた第２の仮想空間に関する情報を含む。
【０１０２】
送信ユニット９３０は、ファイル空間拡張応答をホストに送信するようにさらに構成され、ここで、ファイル空間拡張応答は、第２の仮想空間に関する情報を搬送する。
【０１０３】
本発明の本実施形態では、任意で、管理ユニット９２０は、ファイルのメタデータを削除して、グローバル仮想アドレス空間からファイルに割り当てられた空間を回収し、グローバル仮想アドレス空間とローカル仮想アドレス空間との間の事前に設定された対応関係に従って、ファイルを記憶するために使用される記憶ノードを決定するようにさらに構成される。
【０１０４】
送信ユニット９３０は、ファイルを記憶するために使用される記憶ノードに、空間回収メッセージを送信するようにさらに構成され、ここで、空間回収メッセージは、ファイルを記憶するために使用される記憶ノードに、ファイルに対応しているローカル仮想アドレス空間およびローカル物理記憶空間を回収するように命令するために使用される。
【０１０５】
本発明の本実施形態に係る管理ノード９００は、本発明の実施形態に係るファイル管理方法２００の実行主体に対応していてよい。加えて、管理ノード９００におけるモジュールの前述のおよび他の操作および／または機能は、前述の方法の対応する手順を実施するためにそれぞれ使用される。簡潔さのために、詳細はここでは説明されない。
【０１０６】
本発明の本実施形態における管理ノードによると、分散記憶システムのグローバル仮想アドレス空間では、空間はファイルに割り当てられ、且つ、空間は回収され、従って、管理の複雑性は低く、且つ、ファイル管理効率は改善されることができる。
【０１０７】
図１０は、本発明の別の実施形態に係る管理ノードの構成を示す。管理ノードは、少なくとも１つのプロセッサ１００２（例えば、CPU）、少なくとも１つのネットワークインタフェース１００５または別の通信インタフェース、メモリ１００６および少なくとも１つの通信バス１００３を含む。
【０１０８】
通信バス１００３は、これらの装置間の接続および通信を実施するように構成される。
【０１０９】
プロセッサ１００２は、メモリ１００６内に記憶される、コンピュータプログラム等の実行可能モジュールを実行するように構成される。
【０１１０】
メモリ１００６は、高速ランダムアクセスメモリ（RAM, Random Access Memory）を含んでよいとともに、少なくとも１つの磁気ディスクメモリ等のNVMをさらに含んでよい。
【０１１１】
管理ノードは、少なくとも１つのネットワークインタフェース１００５（有線または無線であってよい）を使用することによって、少なくとも１つの他のネットワーク要素（記憶ノードまたはホスト等）への通信接続を実施する。
【０１１２】
いくつかの実施方式では、メモリ１００６はプログラム１００６１を記憶する。プロセッサ１００２は、前述の方法の実施形態における各方法を実施するために、プログラム１００６１を実行するように構成される。
【０１１３】
本発明の実施形態における「および／または」という用語は、関連オブジェクトを説明するための関連関係のみを説明するとともに、３つの関係が存在し得ることを表すことは理解されるべきである。例えば、Aおよび／またはBは、Aのみが存在する、AおよびBの両方が存在する、Bのみが存在するという３つのケースを表すことができる。加えて、本明細書における記号「／」は一般に、関連オブジェクト間の「または」の関係を示す。
【０１１４】
当業者は、本明細書において開示される実施形態で説明される例と組み合わせて、ユニットおよびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェアまたはそれらの組合せによって実施されてよいことを認識することができる。ハードウェアとソフトウェアとの間の互換性を明確に説明するために、前述では、機能に応じて、各例の構成およびステップを一般に説明した。機能がハードウェアによって実行されるかソフトウェアによって実行されるかは、特定の適用および技術的解決手段の設計制約条件に依存する。当業者は、各特定の適用に対して、説明された機能を実施するために異なる方法を使用してよいが、実施は本発明の範囲を超えると考えられるべきではない。
【０１１５】
便利且つ簡潔な説明のために、前述のシステム、ノードおよびユニットの詳細な動作プロセスについて、前述の方法の実施形態における対応するプロセスに対して参照が行われてよく、且つ、詳細はここでは説明されないことは、当業者によって明確に理解されることができる。
【０１１６】
本願で提供される実施形態では、開示されるシステム、ノードおよび方法は、他の方式で実施されてよいことは理解されるべきである。例えば、説明されるノードの実施形態は単に例示的なものである。例えば、ユニット分割は単に、論理的な機能の分割であるとともに、実際の実施において他の分割であってよい。例えば、複数のユニットまたはコンポーネントは、別のシステムに結合されるか、または統合されてよく、またはいくつかの特徴は無視されるか、または実行されなくてよい。加えて、表示された、または議論された相互結合または直接結合または通信接続は、いくつかのインタフェースを使用することによって実施されてよい。ノードまたユニット間の間接結合または通信接続は、電子的、機械的または他の形態で実施されてよい。
【０１１７】
分離した部分として説明されるユニットは、物理的に分離していてもしていなくてもよく、ユニットとして表示された部分は、物理ユニットであってもなくてもよく、１つの位置に配置されてよく、または複数のネットワークユニットに分配されてよい。ユニットのいくつかまたは全ては、本発明の実施形態の解決手段の目的を達成するための実際のニーズに従って選択されてよい。
【０１１８】
加えて、本発明の実施形態における機能ユニットは、１つの処理ユニットに統合されてよく、または、ユニットの各々は、物理的に孤立して存在してよく、または、２つ以上のユニットは１つのユニットに統合される。統合されたユニットは、ハードウェアの形態で実施されてよく、または、ソフトウェア機能ユニットの形態で実施されてよい。
【０１１９】
統合されたユニットが、ソフトウェア機能ユニットの形態で実施され、且つ、独立した製品として販売または使用されるとき、統合されたユニットはコンピュータ可読記憶媒体内に記憶されてよい。このような理解に基づくと、本発明の技術的解決手段は、本質的に、または、従来技術に貢献する部分は、または技術的解決手段の全てまたは一部は、ソフトウェア製品の形態で実施されてよい。ソフトウェア製品は記憶媒体内に記憶されるとともに、コンピュータデバイス（パーソナルコンピュータ、サーバ、またはネットワークデバイスであってよい）に、本発明の実施形態において説明された方法のステップの全てまたはいくつかを実行するように命令するための複数の命令を含む。前述の記憶媒体は、USBフラッシュドライブ、リムーバブルハードディスク、読出し専用メモリ（ROM, Read-Only Memory）、ランダムアクセスメモリ（RAM, Random Access Memory）、磁気ディスクまたは光ディスク等の、プログラムコードを記憶することができる任意の媒体を含む。
【０１２０】
前述の説明は単に、本発明の具体的な実施形態であるが、本発明の保護範囲を限定するように意図されない。本発明で開示された技術的範囲内で当業者によって容易に理解されるいかなる修正または置換も、本発明の保護範囲に包含されるべきである。従って、本発明の保護範囲は、請求項の保護範囲に従うべきである。
【符号の説明】
【０１２１】
110  メタデータ管理ノード
120  記憶ノード
130  ホスト
800  分散記憶システム
810  管理ノード
820  記憶ノード
900  管理ノード
910  受信ユニット
920  管理ユニット
930  送信ユニット
1002  プロセッサ
1005  ネットワークインタフェース
1006  メモリ
10061  プログラム
【図１】
0006344675.tif 000002
【図２】
0006344675.tif 000003
【図３】
0006344675.tif 000004
【図４】
0006344675.tif 000005
【図５】
0006344675.tif 000006
【図６】
0006344675.tif 000007
【図７】
0006344675.tif 000008
【図８】
0006344675.tif 000009
【図９】
0006344675.tif 000010
【図１０】
0006344675.tif 000011