JP6379291B2 - ファイルアクセス方法、システム、及びホスト - Google Patents

ファイルアクセス方法、システム、及びホスト Download PDF

Info

Publication number
JP6379291B2
JP6379291B2 JP2017523430A JP2017523430A JP6379291B2 JP 6379291 B2 JP6379291 B2 JP 6379291B2 JP 2017523430 A JP2017523430 A JP 2017523430A JP 2017523430 A JP2017523430 A JP 2017523430A JP 6379291 B2 JP6379291 B2 JP 6379291B2
Authority
JP
Japan
Prior art keywords
virtual space
address
space
virtual
host
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.)
Active
Application number
JP2017523430A
Other languages
English (en)
Other versions
JP2017534989A (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 JP2017534989A publication Critical patent/JP2017534989A/ja
Application granted granted Critical
Publication of JP6379291B2 publication Critical patent/JP6379291B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/18File system types
    • G06F16/182Distributed file 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/0608Saving storage space on storage systems
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • G06F16/183Provision of network file services by network file servers, e.g. by using NFS, CIFS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • 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/061Improving I/O performance
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement

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)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、ストレージ技術の分野に関し、特に、ファイルアクセス方法、システム、及びホストに関する。
相変化メモリ(Phase Change Memory、PCM)、抵抗性ランダムアクセスメモリ(Resistive RAM、ReRAM)、磁気ランダムアクセスメモリ(Magnetic Random Access Memory、MRAM)のような新しい不揮発性メモリ(non-violate memory、NVM)媒体は、ダイナミックランダムアクセスメモリ(Dynamic Random Access Memory、DRAM)と同様の読み出し及び書き込み特性を有するとともに、アクセスされるべきメモリバス上に実装されることができる。現在、不揮発性メモリ媒体に基づく記憶システムは、業界における研究の焦点である。
ファイルシステムに間接的にアクセスする既存の方法は、ネットワークファイルシステム(Network File System、NFS)又は共通インターネットファイルシステム(Common Internet File System、CIFS)プロトコルなどを使用することを含む。これらの従来のファイルアクセス方法は、本質的にリモートプロシージャコール(Remote Procedure Call、RPC)に基づいているとともに、伝送制御プロトコル/インターネットプロトコル(Transmission Control Protocol/Internet Protocol、TCP/IP)を介したアクセス方法である。NVMベースのストレージシステムでは、ファイルシステムに間接的にアクセスする既存の方法が依然として使用される場合、ホストのカーネルTCP/IPプロトコルスタックが依然としてアクセス要求を処理する必要があり、その結果、アクセス効率は比較的低い。
本発明の実施例は、ファイルアクセス効率を改善するために、ファイルアクセス方法、システム、及びホストを提供する。
第1の態様によれば、ファイルアクセス方法が提供され、当該方法は、分散ストレージシステムに適用され、前記分散ストレージシステムは、管理ノードと、複数のストレージノードと、ネットワークデバイスとを含み、前記分散ストレージシステム内の各ストレージノードのローカル仮想アドレス空間が、前記分散ストレージシステムのグローバル仮想アドレス空間の一部に対応しており、当該方法は、ホストにより、アクセスされるべき対象ファイルの第1の仮想空間に関する情報を取得するステップであって、前記第1の仮想空間が、前記グローバル仮想アドレス空間内で前記管理ノードにより前記対象ファイルに対して割り当てられた空間である、ステップと、前記ホストにより、前記ホストのローカル仮想アドレス空間内で、前記第1の仮想空間に関する前記情報に従って、第2の仮想空間を前記対象ファイルに割り当てるステップと、前記ホストにより、前記第1の仮想空間と前記第2の仮想空間との間に対応関係を確立するステップと、前記ホストにより、前記第1の仮想空間と前記第2の仮想空間との間の前記対応関係に従って、前記第2の仮想空間にアクセスする第2のアクセス要求を前記第1の仮想空間にアクセスする第1のアクセス要求に変換するステップであって、前記第1のアクセス要求が、前記第1の仮想空間のアドレスを含み、前記第1の仮想空間の前記アドレスが、第1のストレージノードのデバイス情報を含み、前記第1のストレージノードが、前記複数のストレージノードに属しているとともに、前記対象ファイルを記憶するように構成されるストレージノードである、ステップと、前記ネットワークデバイスが、前記第1の仮想空間の前記アドレス内に存在する、前記第1のストレージノードの前記デバイス情報に従って、前記第1のアクセス要求を前記第1のストレージノードに経路指定するように、前記ホストにより、前記第1のアクセス要求を前記ネットワークデバイスに送信するステップとを含む。
第1の態様に関連して、第1の可能な実施方法において、ホストにより、前記アクセスされるべき対象ファイルの第1の仮想空間に関する情報を取得する前記ステップは、前記ホストにより、前記対象ファイルのメタデータを取得するとともに、前記対象ファイルの前記メタデータから、前記対象ファイルの前記第1の仮想空間に関する前記情報を取得するステップを含む。
第1の態様、又は第1の態様の第1の可能な実施方法に関連して、第2の可能な実施方法において、前記第1の仮想空間に関する前記情報は、前記第1の仮想空間の開始アドレス及びサイズを含む。
第1の態様の第2の可能な実施方法に関連して、第3の可能な実施方法において、前記ホストにより、前記ホストのローカル仮想アドレス空間内で、前記第1の仮想空間に関する前記情報に従って、第2の仮想空間を前記対象ファイルに割り当てる前記ステップは、前記ホストにより、前記ホストの前記ローカル仮想アドレス空間内で、前記第1の仮想空間と同じサイズを有する前記第2の仮想空間を前記対象ファイルに割り当てるステップを含む。
第1の態様の第3の可能な実施方法に関連して、第4の可能な実施方法において、前記ホストにより、前記第1の仮想空間と前記第2の仮想空間との間に対応関係を確立する前記ステップは、前記ホストにより、前記第1の仮想空間と前記第2の仮想空間との間に下記の対応関係を確立するステップを含み、
LVA=(GVA−GVA_start)+LVA_start、
ここで、GVA_startは前記第1の仮想空間の前記開始アドレスを表し、LVA_startは前記第2の仮想空間の開始アドレスを表し、GVAは前記第1の仮想空間の前記アドレスを表すとともに、LVAは前記第1の仮想空間の前記アドレスに対応する前記第2の仮想空間のアドレスを表す。
第1の態様、又は第1の態様の第1から第4の可能な実施方法のうちのいずれか1つに関連して、第5の可能な実施方法において、前記第1の仮想空間の前記アドレスのビット量は、2Nであり、Nは、前記第1のストレージノードのローカル仮想アドレス空間のアドレスのビット量であり、前記第1の仮想空間の前記アドレスのN個の最上位ビットは、前記第1のストレージノードの前記デバイス情報を含み、前記第1の仮想空間の前記アドレスのN個の最下位ビットは、前記第1のストレージノード内に存在するとともに、前記対象ファイルを記憶するために使用される前記ローカル仮想アドレス空間の前記アドレスである。
第2の態様によれば、ホストと分散ストレージシステムとを備えるシステムが提供され、前記分散ストレージシステムは、管理ノードと、複数のストレージノードと、ネットワークデバイスとを備え、前記分散ストレージシステム内の各ストレージノードのローカル仮想アドレス空間は、前記分散ストレージシステムのグローバル仮想アドレス空間の一部に対応しており、前記ホストは、アクセスされるべき対象ファイルの第1の仮想空間に関する情報を取得し、ここで、前記第1の仮想空間が、前記グローバル仮想アドレス空間内で前記管理ノードにより前記対象ファイルに対して割り当てられた空間であり、前記ホストのローカル仮想アドレス空間内で、前記第1の仮想空間に関する前記情報に従って、第2の仮想空間を前記対象ファイルに割り当て、前記第1の仮想空間と前記第2の仮想空間との間に対応関係を確立し、前記第1の仮想空間と前記第2の仮想空間との間の前記対応関係に従って、前記第2の仮想空間にアクセスする第2のアクセス要求を前記第1の仮想空間にアクセスする第1のアクセス要求に変換し、ここで、前記第1のアクセス要求が、前記第1の仮想空間のアドレスを含み、前記第1の仮想空間の前記アドレスが、第1のストレージノードのデバイス情報を含み、前記第1のストレージノードが、前記複数のストレージノードに属しているとともに、前記対象ファイルを記憶するように構成されるストレージノードであり、前記ネットワークデバイスが、前記第1の仮想空間の前記アドレス内に存在する、前記第1のストレージノードの前記デバイス情報に従って、前記第1のアクセス要求を前記第1のストレージノードに経路指定するように、前記第1のアクセス要求を前記ネットワークデバイスに送信する、ように構成される。
第2の態様に関連して、第1の可能な実施方法において、前記ホストは、前記対象ファイルのメタデータを取得するとともに、前記対象ファイルの前記メタデータから、前記対象ファイルの前記第1の仮想空間に関する前記情報を取得するように具体的に構成される。
第2の態様、又は第2の態様の第1の可能な実施方法に関連して、第2の可能な実施方法において、前記第1の仮想空間に関する前記情報は、前記第1の仮想空間の開始アドレス及びサイズを含む。
第2の態様の第2の可能な実施方法に関連して、第3の可能な実施方法において、前記ホストは、前記ホストの前記ローカル仮想アドレス空間内で、前記第1の仮想空間と同じサイズを有する前記第2の仮想空間を前記対象ファイルに割り当てるように具体的に構成される。
第2の態様の第3の可能な実施方法に関連して、第4の可能な実施方法において、前記ホストは、前記第1の仮想空間と前記第2の仮想空間との間に下記の対応関係を確立するように具体的に構成され、
LVA=(GVA−GVA_start)+LVA_start、
ここで、GVA_startは前記第1の仮想空間の前記開始アドレスを表し、LVA_startは前記第2の仮想空間の開始アドレスを表し、GVAは前記第1の仮想空間の前記アドレスを表すとともに、LVAは前記第1の仮想空間の前記アドレスに対応する前記第2の仮想空間のアドレスを表す。
第2の態様、又は第2の態様の第1から第4の可能な実施方法のうちのいずれか1つに関連して、第5の可能な実施方法において、前記第1の仮想空間の前記アドレスのビット量は、2Nであり、Nは、前記第1のストレージノードのローカル仮想アドレス空間のアドレスのビット量であり、前記第1の仮想空間の前記アドレスのN個の最上位ビットは、前記第1のストレージノードの前記デバイス情報を含み、前記第1の仮想空間の前記アドレスのN個の最下位ビットは、前記第1のストレージノード内に存在するとともに、前記対象ファイルを記憶するために使用される前記ローカル仮想アドレス空間の前記アドレスである。
第3の態様によれば、ホストが提供され、当該ホストは、アクセスされるべき対象ファイルの第1の仮想空間に関する情報を取得し、ここで、前記第1の仮想空間が、分散ストレージシステムのグローバル仮想アドレス空間内で前記分散ストレージシステム内の管理ノードにより前記対象ファイルに対して割り当てられた空間であるとともに、前記分散ストレージシステム内の各ストレージノードのローカル仮想アドレス空間が、前記グローバル仮想アドレス空間の一部に対応しており、前記ホストのローカル仮想アドレス空間内で、前記第1の仮想空間に関する前記情報に従って、第2の仮想空間を前記対象ファイルに割り当て、前記第1の仮想空間と前記第2の仮想空間との間に対応関係を確立し、前記第1の仮想空間と前記第2の仮想空間との間の前記対応関係に従って、前記第2の仮想空間にアクセスする第2のアクセス要求を前記第1の仮想空間にアクセスする第1のアクセス要求に変換し、ここで、前記第1のアクセス要求が、前記第1の仮想空間のアドレスを含み、前記第1の仮想空間の前記アドレスが、第1のストレージノードのデバイス情報を含み、前記第1のストレージノードが、複数のストレージノードに属しているとともに、前記対象ファイルを記憶するように構成されるストレージノードである、ように構成される処理モジュールと、前記分散ストレージシステム内のネットワークデバイスが、前記第1の仮想空間の前記アドレス内に存在する、前記第1のストレージノードの前記デバイス情報に従って、前記第1のアクセス要求を前記第1のストレージノードに経路指定するように、前記第1のアクセス要求を前記ネットワークデバイスに送信するように構成される送信モジュールとを含む。
第3の態様に関連して、第1の可能な実施方法において、前記処理モジュールは、前記対象ファイルのメタデータを取得するとともに、前記対象ファイルの前記メタデータから、前記対象ファイルの前記第1の仮想空間に関する前記情報を取得するように具体的に構成される。
第3の態様、又は第3の態様の第1の可能な実施方法に関連して、第2の可能な実施方法において、前記第1の仮想空間に関する前記情報は、前記第1の仮想空間の開始アドレス及びサイズを含む。
第3の態様の第2の可能な実施方法に関連して、第3の可能な実施方法において、前記処理モジュールは、前記ホストの前記ローカル仮想アドレス空間内で、前記第1の仮想空間と同じサイズを有する前記第2の仮想空間を前記対象ファイルに割り当てるように具体的に構成される。
第3の態様の第3の可能な実施方法に関連して、第4の可能な実施方法において、前記処理モジュールは、前記第1の仮想空間と前記第2の仮想空間との間に下記の対応関係を確立するように具体的に構成され、
LVA=(GVA−GVA_start)+LVA_start、
ここで、GVA_startは前記第1の仮想空間の前記開始アドレスを表し、LVA_startは前記第2の仮想空間の開始アドレスを表し、GVAは前記第1の仮想空間の前記アドレスを表すとともに、LVAは前記第1の仮想空間の前記アドレスに対応する前記第2の仮想空間のアドレスを表す。
第3の態様、又は第3の態様の第1から第4の可能な実施方法のうちのいずれか1つに関連して、第5の可能な実施方法において、前記第1の仮想空間の前記アドレスのビット量は、2Nであり、Nは、前記第1のストレージノードのローカル仮想アドレス空間のアドレスのビット量であり、前記第1の仮想空間の前記アドレスのN個の最上位ビットは、前記第1のストレージノードの前記デバイス情報を含み、前記第1の仮想空間の前記アドレスのN個の最下位ビットは、前記第1のストレージノード内に存在するとともに、前記対象ファイルを記憶するために使用される前記ローカル仮想アドレス空間の前記アドレスである。
第4の態様によれば、コンピュータプログラム製品が提供され、当該コンピュータプログラム製品は、プログラムコードを記憶したコンピュータ読み取り可能な記憶媒体と、前述の第1の態様における方法を実行するために使用される前記プログラムコードに含まれる命令とを含む。
上記の技術的解決法に基づいて、本発明の実施例におけるファイルアクセス方法、システム、及びホストによれば、分散ストレージシステム内のファイルがアクセスされる場合に、ホストのローカル仮想アドレス空間内で、第2の仮想空間がファイルに割り当てられ、第2の仮想空間にアクセスする第2のアクセス要求が、分散ストレージシステム内に存在する、ファイルの第1の仮想空間にアクセスする第1のアクセス要求に変換され、第1のアクセス要求がネットワークに送信される。このようにして、ホストのカーネルを使用せずに、分散ストレージシステム内のファイルが配置されている物理ストレージ空間が直接的にアクセスされることができ、その結果、遅延が低減されることができるとともに、ファイルアクセス効率が改善されることができる。
本発明の実施例における技術的解決法をより明確に説明するために、下記は、本発明の実施例を説明するために必要とされる添付図面を簡単に説明する。明らかに、下記の説明における添付図面は本発明の単にいくつかの実施例を表す。
本発明の一実施例によるアプリケーションシナリオの概略図である。 本発明の一実施例によるファイルアクセス方法の概略フローチャートである。 本発明の一実施例によるファイルの空間の概略図である。 本発明の一実施例によるシステムの概略ブロック図である。 本発明の一実施例によるホストの概略ブロック図である。 本発明の一実施例によるホストの概略構成図である。
下記は、本発明の実施例における添付図面を参照して、本発明の実施例における技術的解決法を明確に説明する。明らかに、説明される実施例は本発明の実施例の全てよりむしろ一部である。
本発明の実施例における技術的解決法は、様々なストレージシステムに適用されることができ、特に、不揮発性ストレージ媒体に基づく分散ストレージシステムに適用されることができる、ということが理解されるべきである。
本発明の実施例では、用語“仮想アドレス空間”は、“仮想空間”と表現されてもよく、すなわち、“仮想アドレス空間”と“仮想空間”とは同じ意味を有する、ということが更に理解されるべきである。同様に、“ローカル物理ストレージ空間”と“ローカル物理空間”とは同じ意味を有する。
図1は、本発明の一実施例によるアプリケーションシナリオの概略図である。図1において、ホスト130、ストレージノード120、及び管理ノード110は、ネットワーク140を使用することにより相互に接続されている。ストレージノード120、管理ノード110、及びネットワーク140は、分散ストレージシステムを形成する。
ホスト130は、コンピュータであってもよいし、又は他のユーザ装置であってもよく、ホスト130は、ネットワークを使用することにより分散ストレージシステムと通信し得る。ホスト130は、サーバ、デスクトップコンピュータ、オペレーティングシステムなどの現在の技術における任意の既知のコンピューティングデバイスを含むことができるとともに、他のアプリケーションプログラムが、ホスト130内にインストールされる。複数のホスト130が存在してもよい。ホスト130は、分散ストレージシステム内のファイルにアクセスすることができる。例えば、ホスト130は、ファイルインタフェースモジュールを使用することにより、ホスト内のアプリケーションプログラムに対してファイルアクセスインタフェースを提供することができる。
ストレージノード120は、ファイルデータを記憶し、そしてファイルアクセス要求を処理するように構成される。ストレージノード120は、少なくとも1つのタイプの不揮発性メモリを含むことができ、例えばPCM、ReRAM、及びMRAMのようなバイト単位のアドレス指定及びアクセスの能力を有する新しいNVMを含むことができる。本発明のこの実施例では、ファイルはNVMメモリに記憶され、そしてストレージノード120はメモリバスを使用することにより新しいNVMにアクセスすることができる。
管理ノード110は、ファイルのメタデータを管理するとともに、ファイルのメタデータに関する、ホストの検索要求や更新要求などを処理するように構成される。ファイルのメタデータは、ファイルの開始アドレス、割り当てられた空間のサイズ、及びファイルの実際のサイズなどの情報を含むことができる。管理ノード110は、分散ストレージシステムのグローバル仮想アドレス空間を管理するように更に構成されてもよい。
管理ノード110及びストレージノード120は結合されることができ、すなわち、ノードは、管理ノードとストレージノードの両方の機能を有することができる。
本発明のこの実施例では、管理ノードは、独立して配置され得る(例えば、図1における管理ノード110)か、又は管理ノードとストレージノードの両方の機能を有するノードであり得る。説明を簡単にするために、下記は、説明のための一例として管理ノードを使用する。
ネットワーク140の物理レイヤ及びリンクレイヤは、イーサネット(登録商標)、PCIEスイッチネットワーク、インフィニバンドネットワーク、光ネットワークなどに基づくことができる。ネットワーク140は、アクセス要求及びアクセス応答を経路指定するように構成され、具体的には、経路指定は、ネットワーク140内のネットワークデバイス(例えば、ルータ又はスイッチ)によって実行され得る。説明を簡単にするために、下記は、説明のための一例としてネットワークデバイスを使用する。
図2は、本発明の一実施例によるファイルアクセス方法200の概略フローチャートを示す。方法200は、分散ストレージシステムに適用され、分散ストレージシステムは、管理ノードと、複数のストレージノードと、ネットワークデバイスとを含む。分散ストレージシステム内の各ストレージノードのローカル仮想アドレス空間は、分散ストレージシステムのグローバル仮想アドレス空間の一部に対応している。方法200は、ホストにより実行される。
S210.ホストが、アクセスされるべき対象ファイルの第1の仮想空間に関する情報を取得し、ここで、第1の仮想空間は、グローバル仮想アドレス空間内で管理ノードにより対象ファイルに対して割り当てられた空間である。
分散ストレージシステムのグローバル仮想アドレス空間は、分散ストレージシステム内のファイル管理のために空間仮想化される(space virtualized)。分散ストレージシステム内の異なるストレージノードのローカル仮想アドレス空間は、分散ストレージシステムのグローバル仮想アドレス空間の異なる部分に対応している。例えば、グローバル仮想アドレス空間の第1の部分の空間は、分散ストレージシステム内の第1のストレージノードのローカル仮想アドレス空間にマッピングされ、グローバル仮想アドレス空間の第2の部分の空間は、分散ストレージシステム内の第2のストレージノードのローカル仮想アドレス空間にマッピングされる。第1の部分の空間と第2の部分の空間は異なる。本発明のこの実施例では、管理ノードは、分散ストレージシステムのグローバル仮想アドレス空間内で、連続空間の一部分(第1の仮想空間として表される)を対象ファイルに割り当てることができる。分散ストレージシステム内の各ストレージノードのローカル仮想アドレス空間が、分散ストレージシステムのグローバル仮想アドレス空間の一部に対応しているので、第1の仮想空間は、グローバル仮想アドレス空間とローカル仮想アドレス空間との間の対応関係に基づいて、ストレージノードのローカル仮想アドレス空間にマッピングされ得る。
任意に、本発明の一実施例として、第1の仮想空間に関する情報は、第1の仮想空間の開始アドレス及びサイズを含み得る。
グローバル仮想アドレス空間のアドレスは、グローバル仮想アドレスである。グローバル仮想アドレスのビット量は、ローカル仮想アドレスのビット量より多くてもよい。第1の仮想空間のアドレスは、第1のストレージノードのデバイス情報(例えば、ID、又はIDとノードタイプの両方)を含む。第1のストレージノードは、複数のストレージノードに属しているとともに、対象ファイルを記憶するように構成されるストレージノードを表す。任意に、第1の仮想空間のアドレスのビット量(すなわち、グローバル仮想アドレスのビット量)は、2Nであり、Nは、分散ストレージシステムにおけるストレージノードのローカル仮想アドレス空間のアドレスのビット量(すなわち、ローカル仮想アドレスのビット量)であり、第1の仮想空間のアドレスのN個の最上位ビットは、第1のストレージノードのデバイス情報を含み、第1の仮想空間のアドレスのN個の最下位ビットは、第1のストレージノード内に存在するとともに、対象ファイルを記憶するために使用されるローカル仮想アドレス空間のアドレスである。
ローカル仮想アドレスのビット量は、オペレーティングシステム(Operating System、OS)のビット量である。例えば、64ビットOSの場合、ローカル仮想アドレスのビット量は64であり、グローバル仮想アドレスのビット量は128であり得る。この場合、グローバル仮想アドレスの64個の最上位ビットは、ストレージノードのデバイス情報を含み得るとともに、グローバル仮想アドレスの64個の最下位ビットは、ローカル仮想アドレスに対応することができる。ストレージノードのデバイス情報は、64個の最上位ビットのうちのいくつかのビットのみを使用することにより搬送されてもよい(例えば、8個の最上位ビットは第1のストレージノードのIDである)とともに、残りのビットは、別の目的のために確保又は保持され得る、ということが理解されるべきである。
第1の仮想空間に関する情報は、第1の仮想空間の開始グローバル仮想アドレス及び第1の仮想空間のサイズを含み得る。
任意に、本発明の一実施例として、ホストは、対象ファイルのメタデータを取得するとともに、対象ファイルのメタデータから、対象ファイルの第1の仮想空間に関する情報を取得することができる。
ホストにより対象ファイルにアクセスする事例は、対象ファイルを作成する、対象ファイルを開く、及び対象ファイルにアクセスすることであり得るか、又は作成された対象ファイルを開いてアクセスすることであり得る。ホストは、対象ファイルを開く際に管理ノードから対象ファイルのメタデータを取得するとともに、対象ファイルのメタデータから、対象ファイルの第1の仮想空間の開始アドレス及びサイズを取得することができる。
S220.ホストが、ホストのローカル仮想アドレス空間内で、第1の仮想空間に関する情報に従って、第2の仮想空間を対象ファイルに割り当てる。
本発明のこの実施例では、任意に、OSの仮想アドレス空間の未使用部分は、ローカル仮想アドレス空間として使用され得る。例えば、64ビットOSの仮想アドレス空間のサイズは264であり、ユーザモードの仮想アドレス空間とカーネルモードの仮想アドレス空間に加えて、予約された仮想アドレス空間があり、OSにおける予約された仮想アドレス空間は、ローカル仮想アドレス空間として使用されることができる。ローカル仮想アドレス空間として使用されるべき仮想アドレス空間の一部分を得るために、オペレーティングシステムの仮想アドレス空間は、同様に、要求に従って再分割されることができる。
ホストは、ローカル仮想アドレス空間内で、仮想アドレス空間の一部分(第2の仮想空間として表される)をアクセスされるべき対象ファイルに割り当てる。任意に、ホストは、ホストのローカル仮想アドレス空間内で、第1の仮想空間と同じサイズを有する第2の仮想空間を対象ファイルに割り当てる。
S230.ホストが、第1の仮想空間と第2の仮想空間との間に対応関係を確立する。
第2の仮想空間を対象ファイルに割り当てた後に、ホストは、グローバル仮想アドレス空間内の第1の仮想空間とホストの仮想アドレス空間内の第2の仮想空間との間に対応関係を確立する。
任意に、本発明の一実施例として、ホストは、第1の仮想空間と第2の仮想空間との間に下記の対応関係を確立することができ、
LVA=(GVA−GVA_start)+LVA_start (1)
ここで、GVA_startは第1の仮想空間の開始アドレスを表し、LVA_startは第2の仮想空間の開始アドレスを表し、GVAは第1の仮想空間のアドレスを表すとともに、LVAは第1の仮想空間のアドレスに対応する第2の仮想空間のアドレスを表す。
式(1)を使用することにより、第1の仮想空間のアドレスGVAと第2の仮想空間のアドレスLVAとの間の対応関係が確立され得る。
第1の仮想空間のアドレスGVAと第2の仮想空間のアドレスLVAとの間には、式(1)に示される対応関係に限らず、他の1対1の対応関係が更に使用され得る、ということが理解されるべきである。例えば、第1の仮想空間のアドレスが第2の仮想空間のアドレスに直接的に対応している1対1の対応関係が更に使用されてもよい。
S240.ホストが、第1の仮想空間と第2の仮想空間との間の対応関係に従って、第2の仮想空間にアクセスする第2のアクセス要求を第1の仮想空間にアクセスする第1のアクセス要求に変換し、ここで、第1のアクセス要求は、第1の仮想空間のアドレスを含み、第1の仮想空間のアドレスは、第1のストレージノードのデバイス情報を含む。
ホストは、第2の仮想空間を対象ファイルに割り当て、第1の仮想空間と第2の仮想空間との間に対応関係を確立する。ホスト内のアプリケーションは、第2の仮想空間にアクセスすることにより、対象ファイルにアクセスする。すなわち、ホスト内のアプリケーションが対象ファイルにアクセスする場合に、第2の仮想空間にアクセスする第2のアクセス要求が生成される。例えば、ホストは、第2の仮想空間の開始アドレスを指し示すファイルハンドルをアプリケーションに送信し、アプリケーションは、ファイルハンドルを使用することにより第2の仮想空間にアクセスし、ホストは第2のアクセス要求を生成する。
ホストは、第1の仮想空間と第2の仮想空間との間の対応関係に従って、第2のアクセス要求を第1の仮想空間にアクセスする第1のアクセス要求に変換する。具体的には、ホストは、第2のアクセス要求における第2の仮想空間のアドレスを第1の仮想空間のアドレスに変換し、第1のアクセス要求を生成する。第1の仮想空間のアドレスは、第1のストレージノードのデバイス情報(例えば、ID、又はIDとノードタイプの両方)を含む。第1のストレージノードは、複数のストレージノードに属しているとともに、対象ファイルを記憶するように構成されるストレージノードである。
S250.ネットワークデバイスが、第1の仮想空間のアドレス内に存在する、第1のストレージノードのデバイス情報に従って、第1のアクセス要求を第1のストレージノードに経路指定するように、ホストが、第1のアクセス要求をネットワークデバイスに送信する。
ホストは、変換によって得られた第1のアクセス要求をネットワークデバイスに送信するとともに、ネットワークデバイスは、第1のアクセス要求における第1の仮想空間のアドレスに従って、第1のアクセス要求を第1のストレージノードに経路指定することができる。例えば、第1の仮想空間のアドレスのビット量が2Nである場合に、第1の仮想空間のアドレスのN個の最上位ビットが、第1のストレージノードのデバイス情報を含み、第1の仮想空間のアドレスのN個の最上位ビット内に含まれる、第1のストレージノードのデバイス情報に従って、ネットワークデバイスは、第1のアクセス要求を第1のストレージノードに経路指定することができる。
ネットワークデバイスにより送信された第1のアクセス要求を受信した後に、第1のストレージノードは、第1のアクセス要求に従って対象ファイルにアクセスする。具体的には、ファイルを記憶するために使用されるローカル仮想アドレス空間とローカル物理ストレージ空間との間のマッピング関係が第1のストレージノードに記憶され、第1のストレージノードは、アクセス要求の宛先アドレス内のローカル仮想アドレス空間のアドレスに従って、対象ファイルを記憶するために使用されるローカル物理ストレージ空間のアドレスを判定することができる。さらに、第1のストレージノードは、判定されたローカル物理ストレージ空間のアドレスに従って、ローカル物理ストレージ空間にアクセスし、それにより、ローカル物理ストレージ空間に記憶された対象ファイルにアクセスすることができる。実際のアプリケーションでは、第1のストレージノードは、第1のアクセス要求に応答するアクセス応答を、ネットワークデバイスに更に送信することができる。ネットワークデバイスは、第1のストレージノードのアクセス応答をホストに送信する。
本発明のこの実施例におけるファイルアクセス方法によれば、ホストのカーネルを使用する必要がなく、そして直接的にアクセスされるアドレスをネゴシエートする必要がなく、分散ストレージシステム内のファイルが配置されている物理ストレージ空間が直接的にアクセスされることができ、したがって、遅延が低減されることができるとともに、ファイルアクセス効率が改善されることができる。
したがって、本発明のこの実施例におけるファイルアクセス方法によれば、分散ストレージシステム内のファイルがアクセスされる場合に、ホストのローカル仮想アドレス空間内で、第2の仮想空間がファイルに割り当てられ、第2の仮想空間にアクセスする第2のアクセス要求が、分散ストレージシステム内に存在する、ファイルの第1の仮想空間にアクセスする第1のアクセス要求に変換され、第1のアクセス要求がネットワークに送信される。このようにして、ホストのカーネルを使用せずに、分散ストレージシステム内のファイルが配置されている物理ストレージ空間が直接的にアクセスされることができ、その結果、遅延が低減されることができるとともに、ファイルアクセス効率が改善されることができる。
図3は、本発明の一実施例によるファイルの空間の概略図を示す。図3において示されるように、分散ストレージシステムには合計でM個のストレージノードが存在する。分散ストレージシステム内のファイルは、分散ストレージシステムのグローバル仮想アドレス空間内の第1の仮想空間を占有し、第1の仮想空間は、第1のストレージノードのローカル仮想アドレス空間の一部分に対応しているとともに、第1のストレージノードのローカル物理ストレージ空間(すなわち、物理ページ、例えば、NVMページ)にマッピングされる。ファイルを開くときに、ホストは、ホストのローカル仮想アドレス空間内で、第2の仮想空間をファイルに割り当てるとともに、第1の仮想空間と第2の仮想空間との間に対応関係を確立し、すなわち、第2の仮想空間が第1の仮想空間に対応することを可能にする。したがって、ファイルのローカル仮想アドレス空間(第2の仮想空間)にアクセスする場合に、ホストは、ファイルのグローバル仮想アドレス空間(第1の仮想空間)にアクセスするアクセス要求を生成するとともに、アクセス要求をネットワークデバイス(例えば、グローバル仮想アドレス空間に基づくスイッチ)に送信することができ、ネットワークデバイスは、グローバル仮想アドレス空間とストレージノードとの間のマッピング関係に基づいてアクセス要求を第1のストレージノードに経路指定し、それにより分散ストレージシステム内のファイルにアクセスする。
本発明の実施例における具体的な例は、当業者が本発明の実施例をよりよく理解するのを助けることを意図しているに過ぎず、本発明の実施例の範囲を限定することを意図していない、ということが理解されるべきである。
前述の処理のシーケンス番号は、本発明の様々な実施例における実行シーケンスを意味するものではない、ということが更に理解されるべきである。処理の実行順序は、処理の機能や内部ロジックに応じて決定されるべきであり、本発明の実施例の実装プロセスの限定として解釈されるべきではない。
上記は、本発明のこの実施例によるファイルアクセス方法を詳細に説明したが、下記は、本発明の一実施例によるシステム及びホストを説明する。
図4は、本発明の一実施例によるシステム400の概略ブロック図を示す。図4において示されるように、システム400は、ホスト410と、分散ストレージシステム420とを含む。
分散ストレージシステム420は、管理ノード421、複数のストレージノード422、及びネットワークデバイス423を含む。
分散ストレージシステム420内の各ストレージノード422のローカル仮想アドレス空間は、分散ストレージシステム420のグローバル仮想アドレス空間の一部に対応している。
ホスト410は、アクセスされるべき対象ファイルの第1の仮想空間に関する情報を取得し、ここで、第1の仮想空間が、グローバル仮想アドレス空間内で管理ノード421により対象ファイルに対して割り当てられた空間であり、ホスト410のローカル仮想アドレス空間内で、第1の仮想空間に関する情報に従って、第2の仮想空間を対象ファイルに割り当て、第1の仮想空間と第2の仮想空間との間に対応関係を確立し、第1の仮想空間と第2の仮想空間との間の対応関係に従って、第2の仮想空間にアクセスする第2のアクセス要求を第1の仮想空間にアクセスする第1のアクセス要求に変換し、ここで、第1のアクセス要求が、第1の仮想空間のアドレスを含み、第1の仮想空間のアドレスが、第1のストレージノードのデバイス情報を含み、第1のストレージノードが、複数のストレージノードに属しているとともに、対象ファイルを記憶するように構成されるストレージノードであり、ネットワークデバイス423が、第1の仮想空間のアドレス内に存在する、第1のストレージノードのデバイス情報に従って、第1のアクセス要求を第1のストレージノードに経路指定するように、第1のアクセス要求をネットワークデバイス423に送信する、ように構成される。
本発明のこの実施例におけるシステムによれば、分散ストレージシステム内のファイルがアクセスされる場合に、ホストのローカル仮想アドレス空間内で、第2の仮想空間がファイルに割り当てられ、第2の仮想空間にアクセスする第2のアクセス要求が、分散ストレージシステム内に存在する、ファイルの第1の仮想空間にアクセスする第1のアクセス要求に変換され、第1のアクセス要求がネットワークに送信される。このようにして、ホストのカーネルを使用せずに、分散ストレージシステム内のファイルが配置されている物理ストレージ空間が直接的にアクセスされることができ、その結果、遅延が低減されることができるとともに、ファイルアクセス効率が改善されることができる。
本発明のこの実施例では、任意に、ホスト410は、対象ファイルのメタデータを取得するとともに、対象ファイルのメタデータから、対象ファイルの第1の仮想空間に関する情報を取得するように具体的に構成される。
本発明のこの実施例では、任意に、第1の仮想空間に関する情報は、第1の仮想空間の開始アドレス及びサイズを含む。
本発明のこの実施例では、任意に、ホスト410は、ホスト410のローカル仮想アドレス空間内で、第1の仮想空間と同じサイズを有する第2の仮想空間を対象ファイルに割り当てるように具体的に構成される。
本発明のこの実施例では、任意に、ホスト410は、第1の仮想空間と第2の仮想空間との間に下記の対応関係を確立するように具体的に構成され、
LVA=(GVA−GVA_start)+LVA_start、
ここで、GVA_startは第1の仮想空間の開始アドレスを表し、LVA_startは第2の仮想空間の開始アドレスを表し、GVAは第1の仮想空間のアドレスを表すとともに、LVAは第1の仮想空間のアドレスに対応する第2の仮想空間のアドレスを表す。
本発明のこの実施例では、任意に、第1の仮想空間のアドレスのビット量は、2Nであり、Nは、第1のストレージノードのローカル仮想アドレス空間のアドレスのビット量であり、第1の仮想空間のアドレスのN個の最上位ビットは、第1のストレージノードのデバイス情報を含み、第1の仮想空間のアドレスのN個の最下位ビットは、第1のストレージノード内に存在するとともに、対象ファイルを記憶するために使用されるローカル仮想アドレス空間のアドレスである。
本発明のこの実施例によるシステム400におけるホスト410及び分散ストレージシステム420は、前述の方法の実施例におけるホスト及び分散ストレージシステムに対応することができ、ホスト410は、前述の方法の対応する処理を実行し得る。簡潔にするために、ここでは詳細は再度説明されない。
図5は、本発明の一実施例によるホスト500の概略ブロック図を示す。図5において示されるように、ホスト500は、アクセスされるべき対象ファイルの第1の仮想空間に関する情報を取得し、ここで、第1の仮想空間が、分散ストレージシステムのグローバル仮想アドレス空間内で分散ストレージシステム内の管理ノードにより対象ファイルに対して割り当てられた空間であるとともに、分散ストレージシステム内の各ストレージノードのローカル仮想アドレス空間が、グローバル仮想アドレス空間の一部に対応しており、ホストのローカル仮想アドレス空間内で、第1の仮想空間に関する情報に従って、第2の仮想空間を対象ファイルに割り当て、第1の仮想空間と第2の仮想空間との間に対応関係を確立し、第1の仮想空間と第2の仮想空間との間の対応関係に従って、第2の仮想空間にアクセスする第2のアクセス要求を第1の仮想空間にアクセスする第1のアクセス要求に変換し、ここで、第1のアクセス要求が、第1の仮想空間のアドレスを含み、第1の仮想空間のアドレスが、第1のストレージノードのデバイス情報を含み、第1のストレージノードが、複数のストレージノードに属しているとともに、対象ファイルを記憶するように構成されるストレージノードである、ように構成される処理モジュール510と、分散ストレージシステム内のネットワークデバイスが、第1の仮想空間のアドレス内に存在する、第1のストレージノードのデバイス情報に従って、第1のアクセス要求を第1のストレージノードに経路指定するように、第1のアクセス要求をネットワークデバイスに送信するように構成される送信モジュール520とを含む。
本発明のこの実施例におけるホストによれば、分散ストレージシステム内のファイルがアクセスされる場合に、ホストのローカル仮想アドレス空間内で、第2の仮想空間がファイルに割り当てられ、第2の仮想空間にアクセスする第2のアクセス要求が、分散ストレージシステム内に存在する、ファイルの第1の仮想空間にアクセスする第1のアクセス要求に変換され、第1のアクセス要求がネットワークに送信される。このようにして、ホストのカーネルを使用せずに、分散ストレージシステム内のファイルが配置されている物理ストレージ空間が直接的にアクセスされることができ、その結果、遅延が低減されることができるとともに、ファイルアクセス効率が改善されることができる。
本発明のこの実施例では、任意に、処理モジュール510は、対象ファイルのメタデータを取得するとともに、対象ファイルのメタデータから、対象ファイルの第1の仮想空間に関する情報を取得するように具体的に構成される。
本発明のこの実施例では、任意に、第1の仮想空間に関する情報は、第1の仮想空間の開始アドレス及びサイズを含む。
本発明のこの実施例では、任意に、処理モジュール510は、ホストのローカル仮想アドレス空間内で、第1の仮想空間と同じサイズを有する第2の仮想空間を対象ファイルに割り当てるように具体的に構成される。
本発明のこの実施例では、任意に、処理モジュール510は、第1の仮想空間と第2の仮想空間との間に下記の対応関係を確立するように具体的に構成され、
LVA=(GVA−GVA_start)+LVA_start、
ここで、GVA_startは第1の仮想空間の開始アドレスを表し、LVA_startは第2の仮想空間の開始アドレスを表し、GVAは第1の仮想空間のアドレスを表すとともに、LVAは第1の仮想空間のアドレスに対応する第2の仮想空間のアドレスを表す。
本発明のこの実施例では、任意に、第1の仮想空間のアドレスのビット量は、2Nであり、Nは、第1のストレージノードのローカル仮想アドレス空間のアドレスのビット量であり、第1の仮想空間のアドレスのN個の最上位ビットは、第1のストレージノードのデバイス情報を含み、第1の仮想空間のアドレスのN個の最下位ビットは、第1のストレージノード内に存在するとともに、対象ファイルを記憶するために使用されるローカル仮想アドレス空間のアドレスである。
本発明のこの実施例によるホスト500は、本発明の一実施例によるファイルアクセス方法200の実行主体に対応することができ、ホスト500内のモジュールの前述のそして他の動作及び/又は機能が、前述の方法の対応する手順を実施するために、それぞれ使用される。簡潔にするために、ここでは詳細は再度説明されない。
図6は、本発明の別の実施例によるホストの構造を示す。ホストは、少なくとも1つのプロセッサ602(例えば、CPU)と、少なくとも1つのネットワークインタフェース605又は別の通信インタフェースと、メモリ606と、少なくとも1つの通信バス603とを含む。
通信バス603は、これらの装置間の接続及び通信を実現するように構成される。
プロセッサ602は、メモリ606に記憶された実行可能なモジュール、例えばコンピュータプログラムを実行するように構成される。
メモリ606は、高速ランダムアクセスメモリ(Random Access Memory、RAM)を含むことができるか、又はNVM、例えば少なくとも1つのディスクメモリを更に含むことができる。
ホストは、少なくとも1つのネットワークインタフェース605(それは有線又は無線であり得る)を使用することにより、ネットワークに対する通信接続を実施する。
いくつかの実装方法では、メモリ606はプログラム6061を記憶し、プロセッサ602はプログラム6061を実行して前述の方法の実施例における全ての方法を実施するように構成される。
本発明の実施例における用語“及び/又は”は、関連するオブジェクトを説明するために対応関係のみを説明するとともに、3つの関係が存在し得ることを表す、ということが理解されるべきである。例えば、A及び/又はBは、下記の3つの場合、すなわち、Aのみが存在する、AとBの両方が存在する、そしてBのみが存在する、を表し得る。さらに、この明細書における記号“/”は、一般に、関連するオブジェクトの間の“又は”の関係を示す。
当業者は、本明細書中で開示される実施例において説明される実例と組み合わせて、ユニット及びアルゴリズムステップが、電子ハードウェア、コンピュータソフトウェア、又はそれらの組み合わせにより実施され得ることに、気付くかもしれない。ハードウェアとソフトウェアとの間の互換性を明確に説明するために、上記は、各例の構成物及びステップを機能に従って一般的に説明した。機能がハードウェアにより実行されるか又はソフトウェアにより実行されるかは、技術的解決法の特定のアプリケーション及び設計制約条件に依存する。当業者は、各特定のアプリケーションに対して説明された機能を実施するために異なる方法を使用し得るが、しかし、実施は本発明の範囲を超えるものと考えられるべきではない。
都合が良くそして簡潔な記述のために、前述のシステム、装置、及びユニットの詳細な作業処理については、前述の方法の実施例の対応する処理に対して参照が行われ得るとともに、詳細は再度ここでは説明されない、ということが当業者によって明らかに理解され得る。
本願において提供されるいくらかの実施例では、開示されたシステム、装置、及び方法は他の様式で実施され得る、ということが理解されるべきである。例えば、説明された装置の実施例は、単なる一例に過ぎない。例えば、ユニットの分割は、単に論理的な機能の分割であるとともに、実際の実装例では他の分割であるかもしれない。例えば、複数のユニット又はコンポーネントは、別のシステムに結合され得るか若しくは統合され得るか、又は、いくつかの特徴は、無視され得るか若しくは実行されないかもしれない。さらに、表示されたか若しくは論じられた相互の結合又は直接的な結合又は通信接続は、いくつかインタフェースを通して実施され得る。装置若しくはユニットの間の間接的な結合又は通信接続は、電子的方式、機械的方式、又は他の方式において実施され得る。
別個の部品として説明されるユニットは、物理的に分離しているかもしれないし、又は物理的に分離していないかもしれないとともに、ユニットとして表示される部品は、物理的なユニットであるかもしれないし、又は物理的なユニットではないかもしれず、1つの位置に位置付けられるかもしれないし、又は複数のネットワークユニットに対して分散されるかもしれない。一部又は全てのユニットは、本発明の実施例の解決法の目的を達成するために、実際のニーズに従って選択され得る。
さらに、本発明の実施例における機能ユニットは1つの演算処理装置に統合され得るか、又は、それぞれのユニットは物理的に単独で存在し得るか、又は、2つ以上のユニットは1つのユニットに統合される。統合されたユニットは、ハードウェアの形式で実施され得るか、又は、ソフトウェア機能ユニットの形式で実施され得る。
統合されたユニットがソフトウェア機能ユニットの形式で実施されるとともに、独立した製品として販売されるか又は使用される場合に、統合されたユニットはコンピュータ読み取り可能な記憶媒体に記憶され得る。そのような理解に基づくと、本発明の技術的解決法は本質的に、又は、従来技術に貢献する部分は、又は、技術的解決法の全て若しくは一部分は、ソフトウェア製品の形式で実施され得る。ソフトウェア製品は、記憶媒体に記憶されるとともに、コンピュータ装置(それはパーソナルコンピュータ、サーバ、若しくはネットワーク装置であり得る)に、本発明の実施例において説明された方法のステップの全て又は一部分を実行するように指示するためのいくらかの命令を含む。前述の記憶媒体は、USBフラッシュドライブ、リムーバブルハードディスク、読出し専用メモリ(Read-Only Memory、ROM)、ランダムアクセスメモリ(Random Access Memory、RAM)、磁気ディスク又は光ディスクのような、プログラムコードを記憶することができるあらゆる媒体を含む。前述の説明は、単に本発明の特定の実施例に過ぎず、本発明の保護範囲を限定することを意図していない。

Claims (18)

  1. ファイルアクセス方法であって、
    当該方法が、分散ストレージシステムに適用され、前記分散ストレージシステムが、管理ノードと、複数のストレージノードと、ネットワークデバイスとを備え、前記分散ストレージシステム内の各ストレージノードのローカル仮想アドレス空間が、前記分散ストレージシステムのグローバル仮想アドレス空間の一部に対応しており、当該方法が、ホストにより、アクセスされるべき対象ファイルの第1の仮想空間に関する情報を取得するステップであって、前記第1の仮想空間が、前記グローバル仮想アドレス空間内で前記管理ノードにより前記対象ファイルに対して割り当てられた空間である、ステップと、
    前記ホストにより、前記ホストのローカル仮想アドレス空間内で、前記第1の仮想空間に関する前記情報に従って、第2の仮想空間を前記対象ファイルに割り当てるステップと、
    記ホストにより、前記第1の仮想空間と前記第2の仮想空間との間の対応関係に従って、前記第2の仮想空間にアクセスする第2のアクセス要求を前記第1の仮想空間にアクセスする第1のアクセス要求に変換するステップであって、前記第1のアクセス要求が、前記第1の仮想空間のアドレスを含み、前記第1の仮想空間の前記アドレスが、第1のストレージノードのデバイス情報を含み、前記第1のストレージノードが、前記複数のストレージノードに属しているとともに、前記対象ファイルを記憶するように構成されるストレージノードである、ステップと、
    前記ネットワークデバイスが、前記第1の仮想空間の前記アドレス内に存在する、前記第1のストレージノードの前記デバイス情報に従って、前記第1のアクセス要求を前記第1のストレージノードに経路指定するように、前記ホストにより、前記第1のアクセス要求を前記ネットワークデバイスに送信するステップとを含む、方法。
  2. ホストにより、前記アクセスされるべき対象ファイルの第1の仮想空間に関する情報を取得する前記ステップが、
    前記ホストにより、前記対象ファイルのメタデータから、前記対象ファイルの前記第1の仮想空間に関する前記情報を取得するステップを含む、請求項1に記載の方法。
  3. 前記第1の仮想空間に関する前記情報が、前記第1の仮想空間の開始アドレス及びサイズを含む、請求項1又は請求項2に記載の方法。
  4. 前記ホストにより、前記ホストのローカル仮想アドレス空間内で、前記第1の仮想空間に関する前記情報に従って、第2の仮想空間を前記対象ファイルに割り当てる前記ステップが、
    前記ホストにより、前記ホストの前記ローカル仮想アドレス空間内で、前記第1の仮想空間と同じサイズを有する前記第2の仮想空間を前記対象ファイルに割り当てるステップを含む、請求項3に記載の方法。
  5. 記ホストにより、前記第1の仮想空間と前記第2の仮想空間との間に下記の対応関係を確立するステップを更に含み、
    LVA=(GVA−GVA_start)+LVA_start、
    ここで、GVA_startが前記第1の仮想空間の前記開始アドレスを表し、LVA_startが前記第2の仮想空間の開始アドレスを表し、GVAが前記第1の仮想空間の前記アドレスを表すとともに、LVAが前記第1の仮想空間の前記アドレスに対応する前記第2の仮想空間のアドレスを表す、請求項4に記載の方法。
  6. 前記第1の仮想空間の前記アドレスのビット量が、2Nであり、Nが、前記第1のストレージノードのローカル仮想アドレス空間のアドレスのビット量であり、前記第1の仮想空間の前記アドレスのN個の最上位ビットが、前記第1のストレージノードの前記デバイス情報を含み、前記第1の仮想空間の前記アドレスのN個の最下位ビットが、前記第1のストレージノード内に存在するとともに、前記対象ファイルを記憶するために使用される前記ローカル仮想アドレス空間の前記アドレスである、請求項1から請求項5のいずれか一項に記載の方法。
  7. ホストと分散ストレージシステムとを備えるシステムであって、
    前記分散ストレージシステムが、管理ノードと、複数のストレージノードと、ネットワークデバイスとを備え、前記分散ストレージシステム内の各ストレージノードのローカル仮想アドレス空間が、前記分散ストレージシステムのグローバル仮想アドレス空間の一部に対応しており、
    前記ホストが、
    アクセスされるべき対象ファイルの第1の仮想空間に関する情報を取得し、ここで、前記第1の仮想空間が、前記グローバル仮想アドレス空間内で前記管理ノードにより前記対象ファイルに対して割り当てられた空間であり、
    前記ホストのローカル仮想アドレス空間内で、前記第1の仮想空間に関する前記情報に従って、第2の仮想空間を前記対象ファイルに割り当て、
    記第1の仮想空間と前記第2の仮想空間との間の対応関係に従って、前記第2の仮想空間にアクセスする第2のアクセス要求を前記第1の仮想空間にアクセスする第1のアクセス要求に変換し、ここで、前記第1のアクセス要求が、前記第1の仮想空間のアドレスを含み、前記第1の仮想空間の前記アドレスが、第1のストレージノードのデバイス情報を含み、前記第1のストレージノードが、前記複数のストレージノードに属しているとともに、前記対象ファイルを記憶するように構成されるストレージノードであり、
    前記ネットワークデバイスが、前記第1の仮想空間の前記アドレス内に存在する、前記第1のストレージノードの前記デバイス情報に従って、前記第1のアクセス要求を前記第1のストレージノードに経路指定するように、前記第1のアクセス要求を前記ネットワークデバイスに送信する、
    ように構成される、システム。
  8. 前記ホストが、前記対象ファイルのメタデータから、前記対象ファイルの前記第1の仮想空間に関する前記情報を取得するように構成される、請求項7に記載のシステム。
  9. 前記第1の仮想空間に関する前記情報が、前記第1の仮想空間の開始アドレス及びサイズを含む、請求項7又は請求項8に記載のシステム。
  10. 前記ホストが、前記ホストの前記ローカル仮想アドレス空間内で、前記第1の仮想空間と同じサイズを有する前記第2の仮想空間を前記対象ファイルに割り当てるように構成される、請求項9に記載のシステム。
  11. 前記ホストが、前記第1の仮想空間と前記第2の仮想空間との間に下記の対応関係を確立するように更に構成され、
    LVA=(GVA−GVA_start)+LVA_start、
    ここで、GVA_startが前記第1の仮想空間の前記開始アドレスを表し、LVA_startが前記第2の仮想空間の開始アドレスを表し、GVAが前記第1の仮想空間の前記アドレスを表すとともに、LVAが前記第1の仮想空間の前記アドレスに対応する前記第2の仮想空間のアドレスを表す、請求項10に記載のシステム。
  12. 前記第1の仮想空間の前記アドレスのビット量が、2Nであり、Nが、前記第1のストレージノードのローカル仮想アドレス空間のアドレスのビット量であり、前記第1の仮想空間の前記アドレスのN個の最上位ビットが、前記第1のストレージノードの前記デバイス情報を含み、前記第1の仮想空間の前記アドレスのN個の最下位ビットが、前記第1のストレージノード内に存在するとともに、前記対象ファイルを記憶するために使用される前記ローカル仮想アドレス空間の前記アドレスである、請求項7から請求項11のいずれか一項に記載のシステム。
  13. ホストであって、
    アクセスされるべき対象ファイルの第1の仮想空間に関する情報を取得し、ここで、前記第1の仮想空間が、分散ストレージシステムのグローバル仮想アドレス空間内で前記分散ストレージシステム内の管理ノードにより前記対象ファイルに対して割り当てられた空間であるとともに、前記分散ストレージシステム内の各ストレージノードのローカル仮想アドレス空間が、前記グローバル仮想アドレス空間の一部に対応しており、前記ホストのローカル仮想アドレス空間内で、前記第1の仮想空間に関する前記情報に従って、第2の仮想空間を前記対象ファイルに割り当て、前記第1の仮想空間と前記第2の仮想空間との間の対応関係に従って、前記第2の仮想空間にアクセスする第2のアクセス要求を前記第1の仮想空間にアクセスする第1のアクセス要求に変換し、ここで、前記第1のアクセス要求が、前記第1の仮想空間のアドレスを含み、前記第1の仮想空間の前記アドレスが、第1のストレージノードのデバイス情報を含み、前記第1のストレージノードが、複数のストレージノードに属しているとともに、前記対象ファイルを記憶するように構成されるストレージノードである、ように構成される処理モジュールと、
    前記分散ストレージシステム内のネットワークデバイスが、前記第1の仮想空間の前記アドレス内に存在する、前記第1のストレージノードの前記デバイス情報に従って、前記第1のアクセス要求を前記第1のストレージノードに経路指定するように、前記第1のアクセス要求を前記ネットワークデバイスに送信するように構成される送信モジュールとを備える、ホスト。
  14. 前記処理モジュールが、前記対象ファイルのメタデータから、前記対象ファイルの前記第1の仮想空間に関する前記情報を取得するように構成される、請求項13に記載のホスト。
  15. 前記第1の仮想空間に関する前記情報が、前記第1の仮想空間の開始アドレス及びサイズを含む、請求項13又は請求項14に記載のホスト。
  16. 前記処理モジュールが、前記ホストの前記ローカル仮想アドレス空間内で、前記第1の仮想空間と同じサイズを有する前記第2の仮想空間を前記対象ファイルに割り当てるように構成される、請求項15に記載のホスト。
  17. 前記処理モジュールが、前記第1の仮想空間と前記第2の仮想空間との間に下記の対応関係を確立するように更に構成され、
    LVA=(GVA−GVA_start)+LVA_start、
    ここで、GVA_startが前記第1の仮想空間の前記開始アドレスを表し、LVA_startが前記第2の仮想空間の開始アドレスを表し、GVAが前記第1の仮想空間の前記アドレスを表すとともに、LVAが前記第1の仮想空間の前記アドレスに対応する前記第2の仮想空間のアドレスを表す、請求項16に記載のホスト。
  18. 前記第1の仮想空間の前記アドレスのビット量が、2Nであり、Nが、前記第1のストレージノードのローカル仮想アドレス空間のアドレスのビット量であり、前記第1の仮想空間の前記アドレスのN個の最上位ビットが、前記第1のストレージノードの前記デバイス情報を含み、前記第1の仮想空間の前記アドレスのN個の最下位ビットが、前記第1のストレージノード内に存在するとともに、前記対象ファイルを記憶するために使用される前記ローカル仮想アドレス空間の前記アドレスである、請求項13から請求項17のいずれか一項に記載のホスト。
JP2017523430A 2014-10-31 2014-10-31 ファイルアクセス方法、システム、及びホスト Active JP6379291B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/090018 WO2016065611A1 (zh) 2014-10-31 2014-10-31 访问文件的方法、系统和主机

Publications (2)

Publication Number Publication Date
JP2017534989A JP2017534989A (ja) 2017-11-24
JP6379291B2 true JP6379291B2 (ja) 2018-08-22

Family

ID=55856429

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017523430A Active JP6379291B2 (ja) 2014-10-31 2014-10-31 ファイルアクセス方法、システム、及びホスト

Country Status (6)

Country Link
US (1) US10372336B2 (ja)
EP (1) EP3206132B1 (ja)
JP (1) JP6379291B2 (ja)
KR (1) KR101944757B1 (ja)
CN (1) CN105745640B (ja)
WO (1) WO2016065611A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190028542A1 (en) * 2016-02-03 2019-01-24 Surcloud Corp. Method and device for transmitting data
CN105830059B (zh) * 2014-11-28 2019-09-27 华为技术有限公司 文件访问方法、装置及存储设备
US11734192B2 (en) 2018-12-10 2023-08-22 International Business Machines Corporation Identifying location of data granules in global virtual address space
US11016908B2 (en) * 2018-12-11 2021-05-25 International Business Machines Corporation Distributed directory of named data elements in coordination namespace
WO2020214757A1 (en) * 2019-04-17 2020-10-22 John Rankin Virtual memory pool within a network which is accessible from multiple platforms
US11372773B2 (en) 2019-05-28 2022-06-28 Rankin Labs, Llc Supporting a virtual memory area at a remote computing machine
JP7321917B2 (ja) 2019-12-16 2023-08-07 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置およびファイルアクセス方法
JP7316204B2 (ja) * 2019-12-16 2023-07-27 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置およびファイルアクセス方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3004278B2 (ja) * 1988-11-24 2000-01-31 富士通株式会社 マルチプロセッサシステム
US6823398B1 (en) * 2000-03-31 2004-11-23 Dphi Acquisitions, Inc. File system management embedded in a storage device
US20030061462A1 (en) * 2001-09-26 2003-03-27 Fister James D.M. Memory expansion and enhanced system interaction using network-distributed memory mapping
JP4258768B2 (ja) 2004-04-20 2009-04-30 日本電気株式会社 ファイル配置システム
US7456380B2 (en) 2005-06-01 2008-11-25 Eastman Kodak Company Asymmetrical microlenses on pixel arrays
US7711711B1 (en) * 2006-03-29 2010-05-04 Emc Corporation Networked storage system employing information lifecycle management in conjunction with a distributed global file system
US7765339B2 (en) * 2006-10-27 2010-07-27 Stec, Inc. Distributed addressing in solid-state storage
CN101187931A (zh) * 2007-12-12 2008-05-28 浙江大学 分布式文件系统多文件副本的管理方法
US8880843B2 (en) * 2010-02-10 2014-11-04 International Business Machines Corporation Providing redundancy in a virtualized storage system for a computer system
US20120110259A1 (en) * 2010-10-27 2012-05-03 Enmotus Inc. Tiered data storage system with data management and method of operation thereof
CN102024020B (zh) * 2010-11-04 2013-02-06 曙光信息产业(北京)有限公司 一种分布式文件系统中高效的元数据访存方法
CN102136003A (zh) * 2011-03-25 2011-07-27 上海交通大学 大规模分布式存储系统
CN103870202B (zh) * 2012-12-10 2018-08-21 上海优刻得信息科技有限公司 一种块设备的分布式存储方法和系统

Also Published As

Publication number Publication date
CN105745640A (zh) 2016-07-06
US20170235499A1 (en) 2017-08-17
CN105745640B (zh) 2018-09-11
KR101944757B1 (ko) 2019-02-01
US10372336B2 (en) 2019-08-06
EP3206132B1 (en) 2018-09-05
EP3206132A1 (en) 2017-08-16
JP2017534989A (ja) 2017-11-24
KR20170075009A (ko) 2017-06-30
WO2016065611A1 (zh) 2016-05-06
EP3206132A4 (en) 2017-11-01

Similar Documents

Publication Publication Date Title
JP6379291B2 (ja) ファイルアクセス方法、システム、及びホスト
JP6231679B2 (ja) 周辺コンポーネント相互接続エクスプレスドメインのためのリソース管理
US9678918B2 (en) Data processing system and data processing method
JP6344675B2 (ja) ファイル管理方法、分散記憶システムおよび管理ノード
CN106164898B (zh) 数据处理方法和装置
US10466935B2 (en) Methods for sharing NVM SSD across a cluster group and devices thereof
WO2016093895A1 (en) Generating and/or employing a descriptor associated with a memory translation table
US10467179B2 (en) Method and device for sharing PCIe I/O device, and interconnection system
CN105765542A (zh) 访问文件的方法、分布式存储系统和存储节点
WO2016065613A1 (zh) 访问文件的方法、分布式存储系统和网络设备
CN107155307B (zh) 访问文件的方法、系统和主机

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180522

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180619

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: 20180703

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180730

R150 Certificate of patent or registration of utility model

Ref document number: 6379291

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