JP2017525054A - ファイル管理方法、分散記憶システムおよび管理ノード - Google Patents

ファイル管理方法、分散記憶システムおよび管理ノード Download PDF

Info

Publication number
JP2017525054A
JP2017525054A JP2017507763A JP2017507763A JP2017525054A JP 2017525054 A JP2017525054 A JP 2017525054A JP 2017507763 A JP2017507763 A JP 2017507763A JP 2017507763 A JP2017507763 A JP 2017507763A JP 2017525054 A JP2017525054 A JP 2017525054A
Authority
JP
Japan
Prior art keywords
space
file
virtual address
address space
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017507763A
Other languages
English (en)
Other versions
JP6344675B2 (ja
Inventor
君 徐
君 徐
俊峰 ▲趙▼
俊峰 ▲趙▼
元▲鋼▼ 王
元▲鋼▼ 王
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of JP2017525054A publication Critical patent/JP2017525054A/ja
Application granted granted Critical
Publication of JP6344675B2 publication Critical patent/JP6344675B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本発明は、ファイル管理方法、分散記憶システムおよび管理ノードを開示する。方法は、管理ノードによって、ホストによって送信されるファイル作成要求を受信するステップであって、ここで、ファイル作成要求は、分散記憶システム内にファイルを作成するために使用される、ステップと、管理ノードによって、ファイル作成要求に従って、分散記憶システムのグローバル仮想アドレス空間から第1の仮想空間をファイルに割り当てるステップであって、ここで、分散記憶システム内の各記憶ノードのローカル仮想アドレス空間は、グローバル仮想アドレス空間の一部に対応している、ステップと、管理ノードによって、ファイルのメタデータを記録するステップであって、ここで、ファイルのメタデータは、ファイルに割り当てられた第1の仮想空間に関する情報を含み、第1の仮想空間に関する情報は、ファイルを記憶するために使用される記憶ノードのローカル仮想アドレス空間を指し示すために使用される、ステップと、管理ノードによって、ファイル作成成功応答をホストに送信するステップであって、ここで、ファイル作成成功応答は、第1の仮想空間に関する情報を搬送する、ステップとを含む。本発明の実施形態では、ファイル管理効率は改善されることができる。

Description

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

Claims (21)

  1. ファイル管理方法であって、前記方法は分散記憶システムに適用され、前記分散記憶システムは管理ノードおよび複数の記憶ノードを含み、前記方法は、
    前記管理ノードによって、ホストによって送信されるファイル作成要求を受信するステップであって、前記ファイル作成要求は、前記分散記憶システム内にファイルを作成するために使用される、ステップと、
    前記管理ノードによって、前記ファイル作成要求に従って、前記分散記憶システムのグローバル仮想アドレス空間から第1の仮想空間を前記ファイルに割り当てるステップであって、前記分散記憶システム内の各記憶ノードのローカル仮想アドレス空間は、前記グローバル仮想アドレス空間の一部に対応している、ステップと、
    前記管理ノードによって、前記ファイルのメタデータを記録するステップであって、前記ファイルの前記メタデータは、前記ファイルに割り当てられた前記第1の仮想空間に関する情報を含み、前記第1の仮想空間に関する前記情報は、前記ファイルを記憶するために使用される記憶ノードのローカル仮想アドレス空間を指し示すために使用される、ステップと、
    前記管理ノードによって、ファイル作成成功応答を前記ホストに送信するステップであって、前記ファイル作成成功応答は、前記第1の仮想空間に関する前記情報を搬送する、ステップとを含む方法。
  2. 前記グローバル仮想アドレス空間のアドレスビット量は、前記分散記憶システム内の記憶ノードのローカル仮想アドレス空間のアドレスビット量よりも大きい、請求項1に記載の方法。
  3. 前記グローバル仮想アドレス空間の前記アドレスビット量は、前記分散記憶システム内の前記記憶ノードの前記ローカル仮想アドレス空間の前記アドレスビット量の2倍であり、前記グローバル仮想アドレス空間のアドレスのN個の最上位ビットは、前記記憶ノードを指し示すために使用され、前記グローバル仮想アドレス空間の前記アドレスのN個の最下位ビットは、前記記憶ノードの前記ローカル仮想アドレス空間を指し示すために使用され、Nは、前記記憶ノードの前記ローカル仮想アドレス空間の前記アドレスビット量である、請求項1または2に記載の方法。
  4. 前記第1の仮想空間に関する前記情報は、前記ファイルの、前記グローバル仮想アドレス空間における開始アドレスおよびサイズを含む、請求項1乃至3のいずれか1項に記載の方法。
  5. 前記グローバル仮想アドレス空間は複数の領域を含み、且つ、前記複数の領域における異なる領域は、異なる空間割り当て粒度を有し、
    前記管理ノードによって、前記ファイル作成要求に従って、前記分散記憶システムのグローバル仮想アドレス空間から第1の仮想空間を前記ファイルに割り当てる前記ステップは、
    前記管理ノードによって、前記ファイル作成要求および第1の領域の空間割り当て粒度に従って、前記分散記憶システムの前記グローバル仮想アドレス空間内の前記第1の領域から前記第1の仮想空間を前記ファイルに割り当てるステップであって、前記第1の領域は、その空間割り当て粒度が、現在割り当てられることができる領域における最小のものである領域である、ステップを含む、請求項1乃至4のいずれか1項に記載の方法。
  6. 前記方法は、
    前記管理ノードによって、前記ホストによって送信されるファイル空間拡張要求を受信するステップであって、前記ファイル空間拡張要求は、前記ファイルの空間を拡張するように要求するために使用される、ステップと、
    前記ファイル空間拡張要求および第2の領域の空間割り当て粒度に従って、前記グローバル仮想アドレス空間内の前記第2の領域から第2の仮想空間を前記ファイルに割り当てるステップであって、前記第2の領域の前記空間割り当て粒度は、前記第1の領域の前記空間割り当て粒度よりも大きい、ステップと、
    前記ファイルの前記メタデータを更新するステップであって、前記ファイルの更新されたメタデータは、前記ファイルに割り当てられた前記第2の仮想空間に関する情報を含む、ステップと、
    ファイル空間拡張応答を前記ホストに送信するステップであって、前記ファイル空間拡張応答は、前記第2の仮想空間に関する前記情報を搬送する、ステップとをさらに含む、請求項5に記載の方法。
  7. 前記方法は、
    前記管理ノードによって、前記ファイルの前記メタデータを削除して、前記グローバル仮想アドレス空間から前記ファイルに割り当てられた前記空間を回収するステップと、
    前記グローバル仮想アドレス空間と前記ローカル仮想アドレス空間との間の事前に設定された対応関係に従って、前記ファイルを記憶するために使用される前記記憶ノードを決定するステップと、
    前記ファイルを記憶するために使用される前記記憶ノードに、空間回収メッセージを送信するステップであって、前記空間回収メッセージは、前記ファイルを記憶するために使用される前記記憶ノードに、前記ファイルに対応している前記ローカル仮想アドレス空間およびローカル物理記憶空間を回収するように命令するために使用される、ステップとをさらに含む、請求項1乃至6のいずれか1項に記載の方法。
  8. 管理ノードおよび複数の記憶ノードを含む分散記憶システムであって、
    前記複数の記憶ノードの各々のローカル仮想アドレス空間は、前記分散記憶システムのグローバル仮想アドレス空間の一部に対応しており、
    前記管理ノードは、
    ホストによって送信されるファイル作成要求を受信し、
    前記ファイル作成要求に従って、前記グローバル仮想アドレス空間から第1の仮想空間を前記ファイルに割り当て、
    前記ファイルのメタデータを記録し、
    ファイル作成成功応答を前記ホストに送信するように構成され、
    前記ファイル作成要求は、前記分散記憶システム内にファイルを作成するために使用され、
    前記ファイルの前記メタデータは、前記ファイルに割り当てられた前記第1の仮想空間に関する情報を含み、前記第1の仮想空間に関する前記情報は、前記ファイルを記憶するために使用される記憶ノードのローカル仮想アドレス空間を指し示すために使用され、
    前記ファイル作成成功応答は、前記第1の仮想空間に関する前記情報を搬送する、分散記憶システム。
  9. 前記グローバル仮想アドレス空間のアドレスビット量は、前記分散記憶システム内の記憶ノードのローカル仮想アドレス空間のアドレスビット量よりも大きい、請求項8に記載の分散記憶システム。
  10. 前記グローバル仮想アドレス空間の前記アドレスビット量は、前記分散記憶システム内の前記記憶ノードの前記ローカル仮想アドレス空間の前記アドレスビット量の2倍であり、前記グローバル仮想アドレス空間のアドレスのN個の最上位ビットは、前記記憶ノードを指し示すために使用され、前記グローバル仮想アドレス空間の前記アドレスのN個の最下位ビットは、前記記憶ノードの前記ローカル仮想アドレス空間を指し示すために使用され、Nは、前記記憶ノードの前記ローカル仮想アドレス空間の前記アドレスビット量である、請求項8または9に記載の分散記憶システム。
  11. 前記第1の仮想空間に関する前記情報は、前記ファイルの、前記グローバル仮想アドレス空間における開始アドレスおよびサイズを含む、請求項8乃至10のいずれか1項に記載の分散記憶システム。
  12. 前記グローバル仮想アドレス空間は複数の領域を含み、且つ、前記複数の領域における異なる領域は、異なる空間割り当て粒度を有し、
    前記管理ノードは、具体的には、前記ファイル作成要求および第1の領域の空間割り当て粒度に従って、前記分散記憶システムの前記グローバル仮想アドレス空間内の前記第1の領域から前記第1の仮想空間を前記ファイルに割り当てるように構成され、前記第1の領域は、その空間割り当て粒度が、現在割り当てられることができる領域における最小のものである領域である、請求項8乃至11のいずれか1項に記載の分散記憶システム。
  13. 前記管理ノードは、
    前記ホストによって送信されるファイル空間拡張要求を受信し、
    前記ファイル空間拡張要求および第2の領域の空間割り当て粒度に従って、前記グローバル仮想アドレス空間内の前記第2の領域から第2の仮想空間を前記ファイルに割り当て、
    前記ファイルの前記メタデータを更新し、
    ファイル空間拡張応答を前記ホストに送信するようにさらに構成され、
    前記ファイル空間拡張要求は、前記ファイルの空間を拡張するように要求するために使用され、
    前記第2の領域の前記空間割り当て粒度は、前記第1の領域の前記空間割り当て粒度よりも大きく、
    前記ファイルの更新されたメタデータは、前記ファイルに割り当てられた前記第2の仮想空間に関する情報を含み、
    前記ファイル空間拡張応答は、前記第2の仮想空間に関する前記情報を搬送する、請求項12に記載の分散記憶システム。
  14. 前記管理ノードは、
    前記ファイルの前記メタデータを削除して、前記グローバル仮想アドレス空間から前記ファイルに割り当てられた前記空間を回収し、
    前記グローバル仮想アドレス空間と前記ローカル仮想アドレス空間との間の事前に設定された対応関係に従って、前記ファイルを記憶するために使用される前記記憶ノードを決定し、
    前記ファイルを記憶するために使用される前記記憶ノードに、空間回収メッセージを送信するようにさらに構成され、前記空間回収メッセージは、前記ファイルを記憶するために使用される前記記憶ノードに、前記ファイルに対応している前記ローカル仮想アドレス空間およびローカル物理記憶空間を回収するように命令するために使用され、
    前記ファイルを記憶するために使用される前記記憶ノードは、前記空間回収メッセージに従って、前記ファイルに対応している前記ローカル仮想アドレス空間および前記ローカル物理記憶空間を回収するように構成される、請求項8乃至13のいずれか1項に記載の分散記憶システム。
  15. 管理ノードであって、
    ホストによって送信されるファイル作成要求を受信するように構成される受信ユニットであって、前記ファイル作成要求は、分散記憶システム内にファイルを作成するために使用される、受信ユニットと、
    前記ファイル作成要求に従って、前記分散記憶システムのグローバル仮想アドレス空間から第1の仮想空間を前記ファイルに割り当て、前記ファイルのメタデータを記録するように構成される管理ユニットであって、前記分散記憶システム内の各記憶ノードのローカル仮想アドレス空間は、前記グローバル仮想アドレス空間の一部に対応しており、前記ファイルの前記メタデータは、前記ファイルに割り当てられた前記第1の仮想空間に関する情報を含み、前記第1の仮想空間に関する前記情報は、前記ファイルを記憶するために使用される記憶ノードのローカル仮想アドレス空間を指し示すために使用される、管理ユニットと、
    ファイル作成成功応答を前記ホストに送信するように構成される送信ユニットであって、前記ファイル作成成功応答は、前記第1の仮想空間に関する前記情報を搬送する、送信ユニットとを含む管理ノード。
  16. 前記グローバル仮想アドレス空間のアドレスビット量は、前記分散記憶システム内の記憶ノードのローカル仮想アドレス空間のアドレスビット量よりも大きい、請求項15に記載の管理ノード。
  17. 前記グローバル仮想アドレス空間の前記アドレスビット量は、前記分散記憶システム内の前記記憶ノードの前記ローカル仮想アドレス空間の前記アドレスビット量の2倍であり、前記グローバル仮想アドレス空間のアドレスのN個の最上位ビットは、前記記憶ノードを指し示すために使用され、前記グローバル仮想アドレス空間の前記アドレスのN個の最下位ビットは、前記記憶ノードの前記ローカル仮想アドレス空間を指し示すために使用され、Nは、前記記憶ノードの前記ローカル仮想アドレス空間の前記アドレスビット量である、請求項15または16に記載の管理ノード。
  18. 前記第1の仮想空間に関する前記情報は、前記ファイルの、前記グローバル仮想アドレス空間における開始アドレスおよびサイズを含む、請求項15乃至17のいずれか1項に記載の管理ノード。
  19. 前記グローバル仮想アドレス空間は複数の領域を含み、且つ、前記複数の領域における異なる領域は、異なる空間割り当て粒度を有し、
    前記管理ユニットは、具体的には、前記ファイル作成要求および第1の領域の空間割り当て粒度に従って、前記分散記憶システムの前記グローバル仮想アドレス空間内の前記第1の領域から前記第1の仮想空間を前記ファイルに割り当てるように構成され、前記第1の領域は、その空間割り当て粒度が、現在割り当てられることができる領域における最小のものである領域である、請求項15乃至18のいずれか1項に記載の管理ノード。
  20. 前記受信ユニットは、前記ホストによって送信されるファイル空間拡張要求を受信するようにさらに構成され、前記ファイル空間拡張要求は、前記ファイルの空間を拡張するように要求するために使用され、
    前記管理ユニットは、前記ファイル空間拡張要求および第2の領域の空間割り当て粒度に従って、前記グローバル仮想アドレス空間内の前記第2の領域から第2の仮想空間を前記ファイルに割り当て、前記ファイルの前記メタデータを更新するようにさらに構成され、前記第2の領域の前記空間割り当て粒度は、前記第1の領域の前記空間割り当て粒度よりも大きく、前記ファイルの更新されたメタデータは、前記ファイルに割り当てられた前記第2の仮想空間に関する情報を含み、
    前記送信ユニットは、ファイル空間拡張応答を前記ホストに送信するようにさらに構成され、前記ファイル空間拡張応答は、前記第2の仮想空間に関する前記情報を搬送する、請求項19に記載の管理ノード。
  21. 前記管理ユニットは、前記ファイルの前記メタデータを削除するとともに、前記グローバル仮想アドレス空間から前記ファイルに割り当てられた前記空間を回収して、前記グローバル仮想アドレス空間と前記ローカル仮想アドレス空間との間の事前に設定された対応関係に従って、前記ファイルを記憶するために使用される前記記憶ノードを決定するようにさらに構成され、
    前記送信ユニットは、前記ファイルを記憶するために使用される前記記憶ノードに、空間回収メッセージを送信するようにさらに構成され、前記空間回収メッセージは、前記ファイルを記憶するために使用される前記記憶ノードに、前記ファイルに対応している前記ローカル仮想アドレス空間およびローカル物理記憶空間を回収するように命令するために使用される、請求項15乃至20のいずれか1項に記載の管理ノード。
JP2017507763A 2014-08-12 2014-08-12 ファイル管理方法、分散記憶システムおよび管理ノード Active JP6344675B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/084196 WO2016023166A1 (zh) 2014-08-12 2014-08-12 管理文件的方法、分布式存储系统和管理节点

Publications (2)

Publication Number Publication Date
JP2017525054A true JP2017525054A (ja) 2017-08-31
JP6344675B2 JP6344675B2 (ja) 2018-06-20

Family

ID=55303771

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017507763A Active JP6344675B2 (ja) 2014-08-12 2014-08-12 ファイル管理方法、分散記憶システムおよび管理ノード

Country Status (7)

Country Link
US (3) US10152233B2 (ja)
EP (2) EP3905054B1 (ja)
JP (1) JP6344675B2 (ja)
CN (2) CN105593828B (ja)
RU (1) RU2658886C1 (ja)
SG (1) SG11201700413RA (ja)
WO (1) WO2016023166A1 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9442944B2 (en) * 2013-11-12 2016-09-13 Dropbox, Inc. Content item purging
WO2015172107A1 (en) 2014-05-09 2015-11-12 Nutanix, Inc. Mechanism for providing external access to a secured networked virtualization environment
US8868825B1 (en) * 2014-07-02 2014-10-21 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
CN105830059B (zh) * 2014-11-28 2019-09-27 华为技术有限公司 文件访问方法、装置及存储设备
US10809998B2 (en) 2016-02-12 2020-10-20 Nutanix, Inc. Virtualized file server splitting and merging
US11218418B2 (en) 2016-05-20 2022-01-04 Nutanix, Inc. Scalable leadership election in a multi-processing computing environment
US10728090B2 (en) 2016-12-02 2020-07-28 Nutanix, Inc. Configuring network segmentation for a virtualization environment
US10824455B2 (en) 2016-12-02 2020-11-03 Nutanix, Inc. Virtualized server systems and methods including load balancing for virtualized file servers
US11568073B2 (en) 2016-12-02 2023-01-31 Nutanix, Inc. Handling permissions for virtualized file servers
US11562034B2 (en) 2016-12-02 2023-01-24 Nutanix, Inc. Transparent referrals for distributed file servers
US11294777B2 (en) 2016-12-05 2022-04-05 Nutanix, Inc. Disaster recovery for distributed file servers, including metadata fixers
US11281484B2 (en) 2016-12-06 2022-03-22 Nutanix, Inc. Virtualized server systems and methods including scaling of file system virtual machines
US11288239B2 (en) 2016-12-06 2022-03-29 Nutanix, Inc. Cloning virtualized file servers
US11086826B2 (en) 2018-04-30 2021-08-10 Nutanix, Inc. Virtualized server systems and methods including domain joining techniques
US11194680B2 (en) 2018-07-20 2021-12-07 Nutanix, Inc. Two node clusters recovery on a failure
US11023333B2 (en) * 2018-10-30 2021-06-01 EMC IP Holding Company LLC Online recovery approach to space accounting
US11770447B2 (en) 2018-10-31 2023-09-26 Nutanix, Inc. Managing high-availability file servers
US10769076B2 (en) * 2018-11-21 2020-09-08 Nvidia Corporation Distributed address translation in a multi-node interconnect fabric
CN111638995A (zh) * 2020-05-08 2020-09-08 杭州海康威视系统技术有限公司 元数据备份方法、装置及设备、存储介质
US11768809B2 (en) 2020-05-08 2023-09-26 Nutanix, Inc. Managing incremental snapshots for fast leader node bring-up
CN112558870B (zh) * 2020-12-08 2023-08-01 机械工业仪器仪表综合技术经济研究所 一种针对地址空间的数据处理方法及装置
US20240028466A1 (en) * 2022-07-20 2024-01-25 Dell Products L.P. Storing Namespace Metadata in a Key Value Store to Facilitate Space Efficient Point In Time Snapshots

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02141863A (ja) * 1988-11-24 1990-05-31 Fujitsu Ltd 分散メモリアクセス方式
JP2000267979A (ja) * 1999-03-12 2000-09-29 Nec Corp 記憶システム
JP2004013276A (ja) * 2002-06-04 2004-01-15 Victor Co Of Japan Ltd ファイルシステム及び記録媒体
US20050235005A1 (en) * 2004-04-20 2005-10-20 Nec Corporation Computer system configuring file system on virtual storage device, virtual storage management apparatus, method and signal-bearing medium thereof

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5430850A (en) * 1991-07-22 1995-07-04 Massachusetts Institute Of Technology Data processing system with synchronization coprocessor for multiple threads
JP2974526B2 (ja) * 1992-12-18 1999-11-10 富士通株式会社 データ転送処理方法及びデータ転送処理装置
JP3098344B2 (ja) * 1992-12-18 2000-10-16 富士通株式会社 データ転送処理方法及びデータ転送処理装置
CN1149736A (zh) * 1995-06-05 1997-05-14 北京航空航天大学 一种分布式存储器共享管理方法
US7301541B2 (en) * 1995-08-16 2007-11-27 Microunity Systems Engineering, Inc. Programmable processor and method with wide operations
US6101590A (en) * 1995-10-10 2000-08-08 Micro Unity Systems Engineering, Inc. Virtual memory system with local and global virtual address translation
US5848254A (en) * 1996-07-01 1998-12-08 Sun Microsystems, Inc. Multiprocessing system using an access to a second memory space to initiate software controlled data prefetch into a first address space
US6205528B1 (en) * 1997-08-29 2001-03-20 International Business Machines Corporation User specifiable allocation of memory for processes in a multiprocessor computer having a non-uniform memory architecture
US6370585B1 (en) * 1997-09-05 2002-04-09 Sun Microsystems, Inc. Multiprocessing computer system employing a cluster communication launching and addressing mechanism
US6591355B2 (en) * 1998-09-28 2003-07-08 Technion Research And Development Foundation Ltd. Distributed shared memory system with variable granularity
DE10127198A1 (de) * 2001-06-05 2002-12-19 Infineon Technologies Ag Vorrichtung und Verfahren zum Ermitteln einer physikalischen Adresse aus einer virtuellen Adresse unter Verwendung einer hierarchischen Abbildungsvorschrift mit komprimierten Knoten
US6912612B2 (en) * 2002-02-25 2005-06-28 Intel Corporation Shared bypass bus structure
JP3869769B2 (ja) * 2002-07-24 2007-01-17 株式会社日立製作所 ストレージ・ネットワーク用のスイッチングノード装置および遠隔ストレージ装置のアクセス方法
US6948044B1 (en) * 2002-07-30 2005-09-20 Cisco Systems, Inc. Methods and apparatus for storage virtualization
US7577816B2 (en) * 2003-08-18 2009-08-18 Cray Inc. Remote translation mechanism for a multinode system
US6922766B2 (en) * 2002-09-04 2005-07-26 Cray Inc. Remote translation mechanism for a multi-node system
US6920521B2 (en) 2002-10-10 2005-07-19 International Business Machines Corporation Method and system of managing virtualized physical memory in a data processing system
CN1206600C (zh) * 2002-11-14 2005-06-15 华中科技大学 一种全分布式的集群网络服务器系统
US20040117587A1 (en) 2002-12-12 2004-06-17 International Business Machines Corp. Hardware managed virtual-to-physical address translation mechanism
JP2004192483A (ja) * 2002-12-13 2004-07-08 Hitachi Ltd 分散ストレージシステムの管理方法
US7765381B2 (en) * 2003-04-04 2010-07-27 Oracle America, Inc. Multi-node system in which home memory subsystem stores global to local address translation information for replicating nodes
US7334108B1 (en) * 2004-01-30 2008-02-19 Nvidia Corporation Multi-client virtual address translation system with translation units of variable-range size
CN101317448B (zh) 2005-11-29 2010-06-16 皇家飞利浦电子股份有限公司 管理分布存储系统的方法
US7877540B2 (en) 2005-12-13 2011-01-25 Sandisk Corporation Logically-addressed file storage methods
US20090089537A1 (en) * 2007-09-28 2009-04-02 Sun Microsystems, Inc. Apparatus and method for memory address translation across multiple nodes
CN101187930B (zh) * 2007-12-04 2010-06-09 浙江大学 分布式文件系统虚拟目录及命名空间的实现方法
US8195912B2 (en) * 2007-12-06 2012-06-05 Fusion-io, Inc Apparatus, system, and method for efficient mapping of virtual and physical addresses
JP5221157B2 (ja) * 2008-02-04 2013-06-26 株式会社日立製作所 コンピュータシステム及び物理ディスク回収方法
CN101477495B (zh) * 2008-10-28 2011-03-16 北京航空航天大学 分布式内存虚拟化技术的实现方法
CN101398768B (zh) * 2008-10-28 2011-06-15 北京航空航天大学 一种分布式虚拟机监视器系统的构建方法
CN101477496B (zh) * 2008-12-29 2011-08-31 北京航空航天大学 基于分布式内存虚拟化的numa结构的实现方法
US8918619B2 (en) * 2009-10-04 2014-12-23 Infinidat Ltd. Virtualized storage system and method of operating thereof
US8549231B2 (en) * 2010-01-08 2013-10-01 Oracle America, Inc. Performing high granularity prefetch from remote memory into a cache on a device without change in address
KR20120132820A (ko) * 2011-05-30 2012-12-10 삼성전자주식회사 스토리지 디바이스, 스토리지 시스템 및 스토리지 디바이스의 가상화 방법
US8868882B2 (en) 2011-06-08 2014-10-21 Microsoft Corporation Storage architecture for backup application
CN102255962B (zh) * 2011-07-01 2013-11-06 华为数字技术(成都)有限公司 一种分布式存储方法、装置和系统
CN103049334B (zh) * 2012-12-14 2015-09-30 华为技术有限公司 一种任务处理的方法和虚拟机
CN103797770B (zh) * 2012-12-31 2015-12-02 华为技术有限公司 一种共享存储资源的方法和系统
CN103414761B (zh) * 2013-07-23 2017-02-08 北京工业大学 一种基于Hadoop架构的移动终端云资源调度方法
CN103617175A (zh) 2013-11-04 2014-03-05 广东电子工业研究院有限公司 一种用于大规模分布异构数据的虚拟化方法
US10769076B2 (en) * 2018-11-21 2020-09-08 Nvidia Corporation Distributed address translation in a multi-node interconnect fabric
US11327665B2 (en) * 2019-09-20 2022-05-10 International Business Machines Corporation Managing data on volumes

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02141863A (ja) * 1988-11-24 1990-05-31 Fujitsu Ltd 分散メモリアクセス方式
JP2000267979A (ja) * 1999-03-12 2000-09-29 Nec Corp 記憶システム
JP2004013276A (ja) * 2002-06-04 2004-01-15 Victor Co Of Japan Ltd ファイルシステム及び記録媒体
US20050235005A1 (en) * 2004-04-20 2005-10-20 Nec Corporation Computer system configuring file system on virtual storage device, virtual storage management apparatus, method and signal-bearing medium thereof
JP2005309648A (ja) * 2004-04-20 2005-11-04 Nec Corp ファイル配置システム

Also Published As

Publication number Publication date
US20190073130A1 (en) 2019-03-07
RU2658886C1 (ru) 2018-06-25
EP3171277A4 (en) 2017-08-02
CN105593828B (zh) 2018-12-07
CN109376123A (zh) 2019-02-22
US20170153822A1 (en) 2017-06-01
EP3905054A1 (en) 2021-11-03
EP3171277B1 (en) 2021-03-03
JP6344675B2 (ja) 2018-06-20
US20210255775A1 (en) 2021-08-19
CN105593828A (zh) 2016-05-18
EP3905054B1 (en) 2023-12-20
CN109376123B (zh) 2022-08-19
US11656763B2 (en) 2023-05-23
SG11201700413RA (en) 2017-03-30
WO2016023166A1 (zh) 2016-02-18
US11029848B2 (en) 2021-06-08
EP3171277A1 (en) 2017-05-24
US10152233B2 (en) 2018-12-11

Similar Documents

Publication Publication Date Title
JP6344675B2 (ja) ファイル管理方法、分散記憶システムおよび管理ノード
TWI791647B (zh) 非揮發性記憶體設備中的命名空間分配
JP6734807B2 (ja) テナントアウェアストレージシェアリングプラットフォームのための処理装置及びその方法
JP6725120B2 (ja) データ処理方法、記憶装置、ソリッドステートディスク及び記憶システム
US20160371186A1 (en) Access-based eviction of blocks from solid state drive cache memory
CN107209714B (zh) 分布式存储系统及分布式存储系统的控制方法
CN110235098B (zh) 存储系统访问方法及装置
WO2020052321A1 (zh) 数据处理方法和系统
JP6526235B2 (ja) データチェック方法および記憶システム
CN109522154B (zh) 数据恢复方法及相关设备与系统
CN110199512B (zh) 存储系统中存储设备的管理方法及装置
EP3779705A1 (en) Data writing method, client server, and system
CN107423301B (zh) 一种数据处理的方法、相关设备及存储系统
WO2017107015A1 (zh) 存储空间的分配方法及存储设备
US20210278983A1 (en) Node Capacity Expansion Method in Storage System and Storage System
JP6653370B2 (ja) ストレージシステム
CN107798063B (zh) 快照处理方法和快照处理装置
CN109814805B (zh) 存储系统中分条重组的方法及分条服务器
WO2016106757A1 (zh) 一种存储数据的管理方法、存储管理器及存储系统
CN110199270B (zh) 存储系统中存储设备的管理方法及装置
WO2016065610A1 (zh) 访问文件的方法、分布式存储系统和存储节点
CN104426965A (zh) 自管理存储方法和系统
CN110659216A (zh) Nid分配方法及其存储设备
WO2023165448A1 (zh) 一种地址管理方法及存储装置
JP6657990B2 (ja) ストレージ装置、仮想ボリューム制御システム、仮想ボリューム制御方法および仮想ボリューム制御プログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170302

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170302

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180130

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180131

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180410

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180424

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180510

R150 Certificate of patent or registration of utility model

Ref document number: 6344675

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250