(57)【特許請求の範囲】
【請求項１】
ファイルアクセス方法であって、
当該方法が、分散ストレージシステムに適用され、前記分散ストレージシステムが、管理ノードと、複数のストレージノードと、ネットワークデバイスとを備え、前記分散ストレージシステム内の各ストレージノードのローカル仮想アドレス空間が、前記分散ストレージシステムのグローバル仮想アドレス空間の一部に対応しており、当該方法が、ホストにより、アクセスされるべき対象ファイルの第１の仮想空間に関する情報を取得するステップであって、前記第１の仮想空間が、前記グローバル仮想アドレス空間内で前記管理ノードにより前記対象ファイルに対して割り当てられた空間である、ステップと、
前記ホストにより、前記ホストのローカル仮想アドレス空間内で、前記第１の仮想空間に関する前記情報に従って、第２の仮想空間を前記対象ファイルに割り当てるステップと、
前記ホストにより、前記第１の仮想空間と前記第２の仮想空間との間の対応関係に従って、前記第２の仮想空間にアクセスする第２のアクセス要求を前記第１の仮想空間にアクセスする第１のアクセス要求に変換するステップであって、前記第１のアクセス要求が、前記第１の仮想空間のアドレスを含み、前記第１の仮想空間の前記アドレスが、第１のストレージノードのデバイス情報を含み、前記第１のストレージノードが、前記複数のストレージノードに属しているとともに、前記対象ファイルを記憶するように構成されるストレージノードである、ステップと、
前記ネットワークデバイスが、前記第１の仮想空間の前記アドレス内に存在する、前記第１のストレージノードの前記デバイス情報に従って、前記第１のアクセス要求を前記第１のストレージノードに経路指定するように、前記ホストにより、前記第１のアクセス要求を前記ネットワークデバイスに送信するステップとを含む、方法。
【請求項２】
ホストにより、前記アクセスされるべき対象ファイルの第１の仮想空間に関する情報を取得する前記ステップが、
前記ホストにより、前記対象ファイルのメタデータから、前記対象ファイルの前記第１の仮想空間に関する前記情報を取得するステップを含む、請求項１に記載の方法。
【請求項３】
前記第１の仮想空間に関する前記情報が、前記第１の仮想空間の開始アドレス及びサイズを含む、請求項１又は請求項２に記載の方法。
【請求項４】
前記ホストにより、前記ホストのローカル仮想アドレス空間内で、前記第１の仮想空間に関する前記情報に従って、第２の仮想空間を前記対象ファイルに割り当てる前記ステップが、
前記ホストにより、前記ホストの前記ローカル仮想アドレス空間内で、前記第１の仮想空間と同じサイズを有する前記第２の仮想空間を前記対象ファイルに割り当てるステップを含む、請求項３に記載の方法。
【請求項５】
前記ホストにより、前記第１の仮想空間と前記第２の仮想空間との間に下記の対応関係を確立するステップを更に含み、
ＬＶＡ＝（ＧＶＡ−ＧＶＡ＿ｓｔａｒｔ）＋ＬＶＡ＿ｓｔａｒｔ、
ここで、ＧＶＡ＿ｓｔａｒｔが前記第１の仮想空間の前記開始アドレスを表し、ＬＶＡ＿ｓｔａｒｔが前記第２の仮想空間の開始アドレスを表し、ＧＶＡが前記第１の仮想空間の前記アドレスを表すとともに、ＬＶＡが前記第１の仮想空間の前記アドレスに対応する前記第２の仮想空間のアドレスを表す、請求項４に記載の方法。
【請求項６】
前記第１の仮想空間の前記アドレスのビット量が、２Ｎであり、Ｎが、前記第１のストレージノードのローカル仮想アドレス空間のアドレスのビット量であり、前記第１の仮想空間の前記アドレスのＮ個の最上位ビットが、前記第１のストレージノードの前記デバイス情報を含み、前記第１の仮想空間の前記アドレスのＮ個の最下位ビットが、前記第１のストレージノード内に存在するとともに、前記対象ファイルを記憶するために使用される前記ローカル仮想アドレス空間の前記アドレスである、請求項１から請求項５のいずれか一項に記載の方法。
【請求項７】
ホストと分散ストレージシステムとを備えるシステムであって、
前記分散ストレージシステムが、管理ノードと、複数のストレージノードと、ネットワークデバイスとを備え、前記分散ストレージシステム内の各ストレージノードのローカル仮想アドレス空間が、前記分散ストレージシステムのグローバル仮想アドレス空間の一部に対応しており、
前記ホストが、
アクセスされるべき対象ファイルの第１の仮想空間に関する情報を取得し、ここで、前記第１の仮想空間が、前記グローバル仮想アドレス空間内で前記管理ノードにより前記対象ファイルに対して割り当てられた空間であり、
前記ホストのローカル仮想アドレス空間内で、前記第１の仮想空間に関する前記情報に従って、第２の仮想空間を前記対象ファイルに割り当て、
前記第１の仮想空間と前記第２の仮想空間との間の対応関係に従って、前記第２の仮想空間にアクセスする第２のアクセス要求を前記第１の仮想空間にアクセスする第１のアクセス要求に変換し、ここで、前記第１のアクセス要求が、前記第１の仮想空間のアドレスを含み、前記第１の仮想空間の前記アドレスが、第１のストレージノードのデバイス情報を含み、前記第１のストレージノードが、前記複数のストレージノードに属しているとともに、前記対象ファイルを記憶するように構成されるストレージノードであり、
前記ネットワークデバイスが、前記第１の仮想空間の前記アドレス内に存在する、前記第１のストレージノードの前記デバイス情報に従って、前記第１のアクセス要求を前記第１のストレージノードに経路指定するように、前記第１のアクセス要求を前記ネットワークデバイスに送信する、
ように構成される、システム。
【請求項８】
前記ホストが、前記対象ファイルのメタデータから、前記対象ファイルの前記第１の仮想空間に関する前記情報を取得するように構成される、請求項７に記載のシステム。
【請求項９】
前記第１の仮想空間に関する前記情報が、前記第１の仮想空間の開始アドレス及びサイズを含む、請求項７又は請求項８に記載のシステム。
【請求項１０】
前記ホストが、前記ホストの前記ローカル仮想アドレス空間内で、前記第１の仮想空間と同じサイズを有する前記第２の仮想空間を前記対象ファイルに割り当てるように構成される、請求項９に記載のシステム。
【請求項１１】
前記ホストが、前記第１の仮想空間と前記第２の仮想空間との間に下記の対応関係を確立するように更に構成され、
ＬＶＡ＝（ＧＶＡ−ＧＶＡ＿ｓｔａｒｔ）＋ＬＶＡ＿ｓｔａｒｔ、
ここで、ＧＶＡ＿ｓｔａｒｔが前記第１の仮想空間の前記開始アドレスを表し、ＬＶＡ＿ｓｔａｒｔが前記第２の仮想空間の開始アドレスを表し、ＧＶＡが前記第１の仮想空間の前記アドレスを表すとともに、ＬＶＡが前記第１の仮想空間の前記アドレスに対応する前記第２の仮想空間のアドレスを表す、請求項１０に記載のシステム。
【請求項１２】
前記第１の仮想空間の前記アドレスのビット量が、２Ｎであり、Ｎが、前記第１のストレージノードのローカル仮想アドレス空間のアドレスのビット量であり、前記第１の仮想空間の前記アドレスのＮ個の最上位ビットが、前記第１のストレージノードの前記デバイス情報を含み、前記第１の仮想空間の前記アドレスのＮ個の最下位ビットが、前記第１のストレージノード内に存在するとともに、前記対象ファイルを記憶するために使用される前記ローカル仮想アドレス空間の前記アドレスである、請求項７から請求項１１のいずれか一項に記載のシステム。
【請求項１３】
ホストであって、
アクセスされるべき対象ファイルの第１の仮想空間に関する情報を取得し、ここで、前記第１の仮想空間が、分散ストレージシステムのグローバル仮想アドレス空間内で前記分散ストレージシステム内の管理ノードにより前記対象ファイルに対して割り当てられた空間であるとともに、前記分散ストレージシステム内の各ストレージノードのローカル仮想アドレス空間が、前記グローバル仮想アドレス空間の一部に対応しており、前記ホストのローカル仮想アドレス空間内で、前記第１の仮想空間に関する前記情報に従って、第２の仮想空間を前記対象ファイルに割り当て、前記第１の仮想空間と前記第２の仮想空間との間の対応関係に従って、前記第２の仮想空間にアクセスする第２のアクセス要求を前記第１の仮想空間にアクセスする第１のアクセス要求に変換し、ここで、前記第１のアクセス要求が、前記第１の仮想空間のアドレスを含み、前記第１の仮想空間の前記アドレスが、第１のストレージノードのデバイス情報を含み、前記第１のストレージノードが、複数のストレージノードに属しているとともに、前記対象ファイルを記憶するように構成されるストレージノードである、ように構成される処理モジュールと、
前記分散ストレージシステム内のネットワークデバイスが、前記第１の仮想空間の前記アドレス内に存在する、前記第１のストレージノードの前記デバイス情報に従って、前記第１のアクセス要求を前記第１のストレージノードに経路指定するように、前記第１のアクセス要求を前記ネットワークデバイスに送信するように構成される送信モジュールとを備える、ホスト。
【請求項１４】
前記処理モジュールが、前記対象ファイルのメタデータから、前記対象ファイルの前記第１の仮想空間に関する前記情報を取得するように構成される、請求項１３に記載のホスト。
【請求項１５】
前記第１の仮想空間に関する前記情報が、前記第１の仮想空間の開始アドレス及びサイズを含む、請求項１３又は請求項１４に記載のホスト。
【請求項１６】
前記処理モジュールが、前記ホストの前記ローカル仮想アドレス空間内で、前記第１の仮想空間と同じサイズを有する前記第２の仮想空間を前記対象ファイルに割り当てるように構成される、請求項１５に記載のホスト。
【請求項１７】
前記処理モジュールが、前記第１の仮想空間と前記第２の仮想空間との間に下記の対応関係を確立するように更に構成され、
ＬＶＡ＝（ＧＶＡ−ＧＶＡ＿ｓｔａｒｔ）＋ＬＶＡ＿ｓｔａｒｔ、
ここで、ＧＶＡ＿ｓｔａｒｔが前記第１の仮想空間の前記開始アドレスを表し、ＬＶＡ＿ｓｔａｒｔが前記第２の仮想空間の開始アドレスを表し、ＧＶＡが前記第１の仮想空間の前記アドレスを表すとともに、ＬＶＡが前記第１の仮想空間の前記アドレスに対応する前記第２の仮想空間のアドレスを表す、請求項１６に記載のホスト。
【請求項１８】
前記第１の仮想空間の前記アドレスのビット量が、２Ｎであり、Ｎが、前記第１のストレージノードのローカル仮想アドレス空間のアドレスのビット量であり、前記第１の仮想空間の前記アドレスのＮ個の最上位ビットが、前記第１のストレージノードの前記デバイス情報を含み、前記第１の仮想空間の前記アドレスのＮ個の最下位ビットが、前記第１のストレージノード内に存在するとともに、前記対象ファイルを記憶するために使用される前記ローカル仮想アドレス空間の前記アドレスである、請求項１３から請求項１７のいずれか一項に記載のホスト。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ技術の分野に関し、特に、ファイルアクセス方法、システム、及びホストに関する。
【背景技術】
【０００２】
相変化メモリ（Phase  Change  Memory、ＰＣＭ）、抵抗性ランダムアクセスメモリ（Resistive  RAM、ＲｅＲＡＭ）、磁気ランダムアクセスメモリ（Magnetic  Random  Access  Memory、ＭＲＡＭ）のような新しい不揮発性メモリ（non-violate  memory、ＮＶＭ）媒体は、ダイナミックランダムアクセスメモリ（Dynamic  Random  Access  Memory、ＤＲＡＭ）と同様の読み出し及び書き込み特性を有するとともに、アクセスされるべきメモリバス上に実装されることができる。現在、不揮発性メモリ媒体に基づく記憶システムは、業界における研究の焦点である。
【０００３】
ファイルシステムに間接的にアクセスする既存の方法は、ネットワークファイルシステム（Network  File  System、ＮＦＳ）又は共通インターネットファイルシステム（Common  Internet  File  System、ＣＩＦＳ）プロトコルなどを使用することを含む。これらの従来のファイルアクセス方法は、本質的にリモートプロシージャコール（Remote  Procedure  Call、ＲＰＣ）に基づいているとともに、伝送制御プロトコル／インターネットプロトコル（Transmission  Control  Protocol/Internet  Protocol、ＴＣＰ／ＩＰ）を介したアクセス方法である。ＮＶＭベースのストレージシステムでは、ファイルシステムに間接的にアクセスする既存の方法が依然として使用される場合、ホストのカーネルＴＣＰ／ＩＰプロトコルスタックが依然としてアクセス要求を処理する必要があり、その結果、アクセス効率は比較的低い。
【発明の概要】
【０００４】
本発明の実施例は、ファイルアクセス効率を改善するために、ファイルアクセス方法、システム、及びホストを提供する。
【０００５】
第１の態様によれば、ファイルアクセス方法が提供され、当該方法は、分散ストレージシステムに適用され、前記分散ストレージシステムは、管理ノードと、複数のストレージノードと、ネットワークデバイスとを含み、前記分散ストレージシステム内の各ストレージノードのローカル仮想アドレス空間が、前記分散ストレージシステムのグローバル仮想アドレス空間の一部に対応しており、当該方法は、ホストにより、アクセスされるべき対象ファイルの第１の仮想空間に関する情報を取得するステップであって、前記第１の仮想空間が、前記グローバル仮想アドレス空間内で前記管理ノードにより前記対象ファイルに対して割り当てられた空間である、ステップと、前記ホストにより、前記ホストのローカル仮想アドレス空間内で、前記第１の仮想空間に関する前記情報に従って、第２の仮想空間を前記対象ファイルに割り当てるステップと、前記ホストにより、前記第１の仮想空間と前記第２の仮想空間との間に対応関係を確立するステップと、前記ホストにより、前記第１の仮想空間と前記第２の仮想空間との間の前記対応関係に従って、前記第２の仮想空間にアクセスする第２のアクセス要求を前記第１の仮想空間にアクセスする第１のアクセス要求に変換するステップであって、前記第１のアクセス要求が、前記第１の仮想空間のアドレスを含み、前記第１の仮想空間の前記アドレスが、第１のストレージノードのデバイス情報を含み、前記第１のストレージノードが、前記複数のストレージノードに属しているとともに、前記対象ファイルを記憶するように構成されるストレージノードである、ステップと、前記ネットワークデバイスが、前記第１の仮想空間の前記アドレス内に存在する、前記第１のストレージノードの前記デバイス情報に従って、前記第１のアクセス要求を前記第１のストレージノードに経路指定するように、前記ホストにより、前記第１のアクセス要求を前記ネットワークデバイスに送信するステップとを含む。
【０００６】
第１の態様に関連して、第１の可能な実施方法において、ホストにより、前記アクセスされるべき対象ファイルの第１の仮想空間に関する情報を取得する前記ステップは、前記ホストにより、前記対象ファイルのメタデータを取得するとともに、前記対象ファイルの前記メタデータから、前記対象ファイルの前記第１の仮想空間に関する前記情報を取得するステップを含む。
【０００７】
第１の態様、又は第１の態様の第１の可能な実施方法に関連して、第２の可能な実施方法において、前記第１の仮想空間に関する前記情報は、前記第１の仮想空間の開始アドレス及びサイズを含む。
【０００８】
第１の態様の第２の可能な実施方法に関連して、第３の可能な実施方法において、前記ホストにより、前記ホストのローカル仮想アドレス空間内で、前記第１の仮想空間に関する前記情報に従って、第２の仮想空間を前記対象ファイルに割り当てる前記ステップは、前記ホストにより、前記ホストの前記ローカル仮想アドレス空間内で、前記第１の仮想空間と同じサイズを有する前記第２の仮想空間を前記対象ファイルに割り当てるステップを含む。
【０００９】
第１の態様の第３の可能な実施方法に関連して、第４の可能な実施方法において、前記ホストにより、前記第１の仮想空間と前記第２の仮想空間との間に対応関係を確立する前記ステップは、前記ホストにより、前記第１の仮想空間と前記第２の仮想空間との間に下記の対応関係を確立するステップを含み、
ＬＶＡ＝（ＧＶＡ−ＧＶＡ＿ｓｔａｒｔ）＋ＬＶＡ＿ｓｔａｒｔ、
ここで、ＧＶＡ＿ｓｔａｒｔは前記第１の仮想空間の前記開始アドレスを表し、ＬＶＡ＿ｓｔａｒｔは前記第２の仮想空間の開始アドレスを表し、ＧＶＡは前記第１の仮想空間の前記アドレスを表すとともに、ＬＶＡは前記第１の仮想空間の前記アドレスに対応する前記第２の仮想空間のアドレスを表す。
【００１０】
第１の態様、又は第１の態様の第１から第４の可能な実施方法のうちのいずれか１つに関連して、第５の可能な実施方法において、前記第１の仮想空間の前記アドレスのビット量は、２Ｎであり、Ｎは、前記第１のストレージノードのローカル仮想アドレス空間のアドレスのビット量であり、前記第１の仮想空間の前記アドレスのＮ個の最上位ビットは、前記第１のストレージノードの前記デバイス情報を含み、前記第１の仮想空間の前記アドレスのＮ個の最下位ビットは、前記第１のストレージノード内に存在するとともに、前記対象ファイルを記憶するために使用される前記ローカル仮想アドレス空間の前記アドレスである。
【００１１】
第２の態様によれば、ホストと分散ストレージシステムとを備えるシステムが提供され、前記分散ストレージシステムは、管理ノードと、複数のストレージノードと、ネットワークデバイスとを備え、前記分散ストレージシステム内の各ストレージノードのローカル仮想アドレス空間は、前記分散ストレージシステムのグローバル仮想アドレス空間の一部に対応しており、前記ホストは、アクセスされるべき対象ファイルの第１の仮想空間に関する情報を取得し、ここで、前記第１の仮想空間が、前記グローバル仮想アドレス空間内で前記管理ノードにより前記対象ファイルに対して割り当てられた空間であり、前記ホストのローカル仮想アドレス空間内で、前記第１の仮想空間に関する前記情報に従って、第２の仮想空間を前記対象ファイルに割り当て、前記第１の仮想空間と前記第２の仮想空間との間に対応関係を確立し、前記第１の仮想空間と前記第２の仮想空間との間の前記対応関係に従って、前記第２の仮想空間にアクセスする第２のアクセス要求を前記第１の仮想空間にアクセスする第１のアクセス要求に変換し、ここで、前記第１のアクセス要求が、前記第１の仮想空間のアドレスを含み、前記第１の仮想空間の前記アドレスが、第１のストレージノードのデバイス情報を含み、前記第１のストレージノードが、前記複数のストレージノードに属しているとともに、前記対象ファイルを記憶するように構成されるストレージノードであり、前記ネットワークデバイスが、前記第１の仮想空間の前記アドレス内に存在する、前記第１のストレージノードの前記デバイス情報に従って、前記第１のアクセス要求を前記第１のストレージノードに経路指定するように、前記第１のアクセス要求を前記ネットワークデバイスに送信する、ように構成される。
【００１２】
第２の態様に関連して、第１の可能な実施方法において、前記ホストは、前記対象ファイルのメタデータを取得するとともに、前記対象ファイルの前記メタデータから、前記対象ファイルの前記第１の仮想空間に関する前記情報を取得するように具体的に構成される。
【００１３】
第２の態様、又は第２の態様の第１の可能な実施方法に関連して、第２の可能な実施方法において、前記第１の仮想空間に関する前記情報は、前記第１の仮想空間の開始アドレス及びサイズを含む。
【００１４】
第２の態様の第２の可能な実施方法に関連して、第３の可能な実施方法において、前記ホストは、前記ホストの前記ローカル仮想アドレス空間内で、前記第１の仮想空間と同じサイズを有する前記第２の仮想空間を前記対象ファイルに割り当てるように具体的に構成される。
【００１５】
第２の態様の第３の可能な実施方法に関連して、第４の可能な実施方法において、前記ホストは、前記第１の仮想空間と前記第２の仮想空間との間に下記の対応関係を確立するように具体的に構成され、
ＬＶＡ＝（ＧＶＡ−ＧＶＡ＿ｓｔａｒｔ）＋ＬＶＡ＿ｓｔａｒｔ、
ここで、ＧＶＡ＿ｓｔａｒｔは前記第１の仮想空間の前記開始アドレスを表し、ＬＶＡ＿ｓｔａｒｔは前記第２の仮想空間の開始アドレスを表し、ＧＶＡは前記第１の仮想空間の前記アドレスを表すとともに、ＬＶＡは前記第１の仮想空間の前記アドレスに対応する前記第２の仮想空間のアドレスを表す。
【００１６】
第２の態様、又は第２の態様の第１から第４の可能な実施方法のうちのいずれか１つに関連して、第５の可能な実施方法において、前記第１の仮想空間の前記アドレスのビット量は、２Ｎであり、Ｎは、前記第１のストレージノードのローカル仮想アドレス空間のアドレスのビット量であり、前記第１の仮想空間の前記アドレスのＮ個の最上位ビットは、前記第１のストレージノードの前記デバイス情報を含み、前記第１の仮想空間の前記アドレスのＮ個の最下位ビットは、前記第１のストレージノード内に存在するとともに、前記対象ファイルを記憶するために使用される前記ローカル仮想アドレス空間の前記アドレスである。
【００１７】
第３の態様によれば、ホストが提供され、当該ホストは、アクセスされるべき対象ファイルの第１の仮想空間に関する情報を取得し、ここで、前記第１の仮想空間が、分散ストレージシステムのグローバル仮想アドレス空間内で前記分散ストレージシステム内の管理ノードにより前記対象ファイルに対して割り当てられた空間であるとともに、前記分散ストレージシステム内の各ストレージノードのローカル仮想アドレス空間が、前記グローバル仮想アドレス空間の一部に対応しており、前記ホストのローカル仮想アドレス空間内で、前記第１の仮想空間に関する前記情報に従って、第２の仮想空間を前記対象ファイルに割り当て、前記第１の仮想空間と前記第２の仮想空間との間に対応関係を確立し、前記第１の仮想空間と前記第２の仮想空間との間の前記対応関係に従って、前記第２の仮想空間にアクセスする第２のアクセス要求を前記第１の仮想空間にアクセスする第１のアクセス要求に変換し、ここで、前記第１のアクセス要求が、前記第１の仮想空間のアドレスを含み、前記第１の仮想空間の前記アドレスが、第１のストレージノードのデバイス情報を含み、前記第１のストレージノードが、複数のストレージノードに属しているとともに、前記対象ファイルを記憶するように構成されるストレージノードである、ように構成される処理モジュールと、前記分散ストレージシステム内のネットワークデバイスが、前記第１の仮想空間の前記アドレス内に存在する、前記第１のストレージノードの前記デバイス情報に従って、前記第１のアクセス要求を前記第１のストレージノードに経路指定するように、前記第１のアクセス要求を前記ネットワークデバイスに送信するように構成される送信モジュールとを含む。
【００１８】
第３の態様に関連して、第１の可能な実施方法において、前記処理モジュールは、前記対象ファイルのメタデータを取得するとともに、前記対象ファイルの前記メタデータから、前記対象ファイルの前記第１の仮想空間に関する前記情報を取得するように具体的に構成される。
【００１９】
第３の態様、又は第３の態様の第１の可能な実施方法に関連して、第２の可能な実施方法において、前記第１の仮想空間に関する前記情報は、前記第１の仮想空間の開始アドレス及びサイズを含む。
【００２０】
第３の態様の第２の可能な実施方法に関連して、第３の可能な実施方法において、前記処理モジュールは、前記ホストの前記ローカル仮想アドレス空間内で、前記第１の仮想空間と同じサイズを有する前記第２の仮想空間を前記対象ファイルに割り当てるように具体的に構成される。
【００２１】
第３の態様の第３の可能な実施方法に関連して、第４の可能な実施方法において、前記処理モジュールは、前記第１の仮想空間と前記第２の仮想空間との間に下記の対応関係を確立するように具体的に構成され、
ＬＶＡ＝（ＧＶＡ−ＧＶＡ＿ｓｔａｒｔ）＋ＬＶＡ＿ｓｔａｒｔ、
ここで、ＧＶＡ＿ｓｔａｒｔは前記第１の仮想空間の前記開始アドレスを表し、ＬＶＡ＿ｓｔａｒｔは前記第２の仮想空間の開始アドレスを表し、ＧＶＡは前記第１の仮想空間の前記アドレスを表すとともに、ＬＶＡは前記第１の仮想空間の前記アドレスに対応する前記第２の仮想空間のアドレスを表す。
【００２２】
第３の態様、又は第３の態様の第１から第４の可能な実施方法のうちのいずれか１つに関連して、第５の可能な実施方法において、前記第１の仮想空間の前記アドレスのビット量は、２Ｎであり、Ｎは、前記第１のストレージノードのローカル仮想アドレス空間のアドレスのビット量であり、前記第１の仮想空間の前記アドレスのＮ個の最上位ビットは、前記第１のストレージノードの前記デバイス情報を含み、前記第１の仮想空間の前記アドレスのＮ個の最下位ビットは、前記第１のストレージノード内に存在するとともに、前記対象ファイルを記憶するために使用される前記ローカル仮想アドレス空間の前記アドレスである。
【００２３】
第４の態様によれば、コンピュータプログラム製品が提供され、当該コンピュータプログラム製品は、プログラムコードを記憶したコンピュータ読み取り可能な記憶媒体と、前述の第１の態様における方法を実行するために使用される前記プログラムコードに含まれる命令とを含む。
【００２４】
上記の技術的解決法に基づいて、本発明の実施例におけるファイルアクセス方法、システム、及びホストによれば、分散ストレージシステム内のファイルがアクセスされる場合に、ホストのローカル仮想アドレス空間内で、第２の仮想空間がファイルに割り当てられ、第２の仮想空間にアクセスする第２のアクセス要求が、分散ストレージシステム内に存在する、ファイルの第１の仮想空間にアクセスする第１のアクセス要求に変換され、第１のアクセス要求がネットワークに送信される。このようにして、ホストのカーネルを使用せずに、分散ストレージシステム内のファイルが配置されている物理ストレージ空間が直接的にアクセスされることができ、その結果、遅延が低減されることができるとともに、ファイルアクセス効率が改善されることができる。
【００２５】
本発明の実施例における技術的解決法をより明確に説明するために、下記は、本発明の実施例を説明するために必要とされる添付図面を簡単に説明する。明らかに、下記の説明における添付図面は本発明の単にいくつかの実施例を表す。
【図面の簡単な説明】
【００２６】
【図１】本発明の一実施例によるアプリケーションシナリオの概略図である。
【図２】本発明の一実施例によるファイルアクセス方法の概略フローチャートである。
【図３】本発明の一実施例によるファイルの空間の概略図である。
【図４】本発明の一実施例によるシステムの概略ブロック図である。
【図５】本発明の一実施例によるホストの概略ブロック図である。
【図６】本発明の一実施例によるホストの概略構成図である。
【発明を実施するための形態】
【００２７】
下記は、本発明の実施例における添付図面を参照して、本発明の実施例における技術的解決法を明確に説明する。明らかに、説明される実施例は本発明の実施例の全てよりむしろ一部である。
【００２８】
本発明の実施例における技術的解決法は、様々なストレージシステムに適用されることができ、特に、不揮発性ストレージ媒体に基づく分散ストレージシステムに適用されることができる、ということが理解されるべきである。
【００２９】
本発明の実施例では、用語“仮想アドレス空間”は、“仮想空間”と表現されてもよく、すなわち、“仮想アドレス空間”と“仮想空間”とは同じ意味を有する、ということが更に理解されるべきである。同様に、“ローカル物理ストレージ空間”と“ローカル物理空間”とは同じ意味を有する。
【００３０】
図１は、本発明の一実施例によるアプリケーションシナリオの概略図である。図１において、ホスト１３０、ストレージノード１２０、及び管理ノード１１０は、ネットワーク１４０を使用することにより相互に接続されている。ストレージノード１２０、管理ノード１１０、及びネットワーク１４０は、分散ストレージシステムを形成する。
【００３１】
ホスト１３０は、コンピュータであってもよいし、又は他のユーザ装置であってもよく、ホスト１３０は、ネットワークを使用することにより分散ストレージシステムと通信し得る。ホスト１３０は、サーバ、デスクトップコンピュータ、オペレーティングシステムなどの現在の技術における任意の既知のコンピューティングデバイスを含むことができるとともに、他のアプリケーションプログラムが、ホスト１３０内にインストールされる。複数のホスト１３０が存在してもよい。ホスト１３０は、分散ストレージシステム内のファイルにアクセスすることができる。例えば、ホスト１３０は、ファイルインタフェースモジュールを使用することにより、ホスト内のアプリケーションプログラムに対してファイルアクセスインタフェースを提供することができる。
【００３２】
ストレージノード１２０は、ファイルデータを記憶し、そしてファイルアクセス要求を処理するように構成される。ストレージノード１２０は、少なくとも１つのタイプの不揮発性メモリを含むことができ、例えばＰＣＭ、ＲｅＲＡＭ、及びＭＲＡＭのようなバイト単位のアドレス指定及びアクセスの能力を有する新しいＮＶＭを含むことができる。本発明のこの実施例では、ファイルはＮＶＭメモリに記憶され、そしてストレージノード１２０はメモリバスを使用することにより新しいＮＶＭにアクセスすることができる。
【００３３】
管理ノード１１０は、ファイルのメタデータを管理するとともに、ファイルのメタデータに関する、ホストの検索要求や更新要求などを処理するように構成される。ファイルのメタデータは、ファイルの開始アドレス、割り当てられた空間のサイズ、及びファイルの実際のサイズなどの情報を含むことができる。管理ノード１１０は、分散ストレージシステムのグローバル仮想アドレス空間を管理するように更に構成されてもよい。
【００３４】
管理ノード１１０及びストレージノード１２０は結合されることができ、すなわち、ノードは、管理ノードとストレージノードの両方の機能を有することができる。
【００３５】
本発明のこの実施例では、管理ノードは、独立して配置され得る（例えば、図１における管理ノード１１０）か、又は管理ノードとストレージノードの両方の機能を有するノードであり得る。説明を簡単にするために、下記は、説明のための一例として管理ノードを使用する。
【００３６】
ネットワーク１４０の物理レイヤ及びリンクレイヤは、イーサネット（登録商標）、ＰＣＩＥスイッチネットワーク、インフィニバンドネットワーク、光ネットワークなどに基づくことができる。ネットワーク１４０は、アクセス要求及びアクセス応答を経路指定するように構成され、具体的には、経路指定は、ネットワーク１４０内のネットワークデバイス（例えば、ルータ又はスイッチ）によって実行され得る。説明を簡単にするために、下記は、説明のための一例としてネットワークデバイスを使用する。
【００３７】
図２は、本発明の一実施例によるファイルアクセス方法２００の概略フローチャートを示す。方法２００は、分散ストレージシステムに適用され、分散ストレージシステムは、管理ノードと、複数のストレージノードと、ネットワークデバイスとを含む。分散ストレージシステム内の各ストレージノードのローカル仮想アドレス空間は、分散ストレージシステムのグローバル仮想アドレス空間の一部に対応している。方法２００は、ホストにより実行される。
【００３８】
Ｓ２１０．ホストが、アクセスされるべき対象ファイルの第１の仮想空間に関する情報を取得し、ここで、第１の仮想空間は、グローバル仮想アドレス空間内で管理ノードにより対象ファイルに対して割り当てられた空間である。
【００３９】
分散ストレージシステムのグローバル仮想アドレス空間は、分散ストレージシステム内のファイル管理のために空間仮想化される（space  virtualized）。分散ストレージシステム内の異なるストレージノードのローカル仮想アドレス空間は、分散ストレージシステムのグローバル仮想アドレス空間の異なる部分に対応している。例えば、グローバル仮想アドレス空間の第１の部分の空間は、分散ストレージシステム内の第１のストレージノードのローカル仮想アドレス空間にマッピングされ、グローバル仮想アドレス空間の第２の部分の空間は、分散ストレージシステム内の第２のストレージノードのローカル仮想アドレス空間にマッピングされる。第１の部分の空間と第２の部分の空間は異なる。本発明のこの実施例では、管理ノードは、分散ストレージシステムのグローバル仮想アドレス空間内で、連続空間の一部分（第１の仮想空間として表される）を対象ファイルに割り当てることができる。分散ストレージシステム内の各ストレージノードのローカル仮想アドレス空間が、分散ストレージシステムのグローバル仮想アドレス空間の一部に対応しているので、第１の仮想空間は、グローバル仮想アドレス空間とローカル仮想アドレス空間との間の対応関係に基づいて、ストレージノードのローカル仮想アドレス空間にマッピングされ得る。
【００４０】
任意に、本発明の一実施例として、第１の仮想空間に関する情報は、第１の仮想空間の開始アドレス及びサイズを含み得る。
【００４１】
グローバル仮想アドレス空間のアドレスは、グローバル仮想アドレスである。グローバル仮想アドレスのビット量は、ローカル仮想アドレスのビット量より多くてもよい。第１の仮想空間のアドレスは、第１のストレージノードのデバイス情報（例えば、ＩＤ、又はＩＤとノードタイプの両方）を含む。第１のストレージノードは、複数のストレージノードに属しているとともに、対象ファイルを記憶するように構成されるストレージノードを表す。任意に、第１の仮想空間のアドレスのビット量（すなわち、グローバル仮想アドレスのビット量）は、２Ｎであり、Ｎは、分散ストレージシステムにおけるストレージノードのローカル仮想アドレス空間のアドレスのビット量（すなわち、ローカル仮想アドレスのビット量）であり、第１の仮想空間のアドレスのＮ個の最上位ビットは、第１のストレージノードのデバイス情報を含み、第１の仮想空間のアドレスのＮ個の最下位ビットは、第１のストレージノード内に存在するとともに、対象ファイルを記憶するために使用されるローカル仮想アドレス空間のアドレスである。
【００４２】
ローカル仮想アドレスのビット量は、オペレーティングシステム（Operating  System、ＯＳ）のビット量である。例えば、６４ビットＯＳの場合、ローカル仮想アドレスのビット量は６４であり、グローバル仮想アドレスのビット量は１２８であり得る。この場合、グローバル仮想アドレスの６４個の最上位ビットは、ストレージノードのデバイス情報を含み得るとともに、グローバル仮想アドレスの６４個の最下位ビットは、ローカル仮想アドレスに対応することができる。ストレージノードのデバイス情報は、６４個の最上位ビットのうちのいくつかのビットのみを使用することにより搬送されてもよい（例えば、８個の最上位ビットは第１のストレージノードのＩＤである）とともに、残りのビットは、別の目的のために確保又は保持され得る、ということが理解されるべきである。
【００４３】
第１の仮想空間に関する情報は、第１の仮想空間の開始グローバル仮想アドレス及び第１の仮想空間のサイズを含み得る。
【００４４】
任意に、本発明の一実施例として、ホストは、対象ファイルのメタデータを取得するとともに、対象ファイルのメタデータから、対象ファイルの第１の仮想空間に関する情報を取得することができる。
【００４５】
ホストにより対象ファイルにアクセスする事例は、対象ファイルを作成する、対象ファイルを開く、及び対象ファイルにアクセスすることであり得るか、又は作成された対象ファイルを開いてアクセスすることであり得る。ホストは、対象ファイルを開く際に管理ノードから対象ファイルのメタデータを取得するとともに、対象ファイルのメタデータから、対象ファイルの第１の仮想空間の開始アドレス及びサイズを取得することができる。
【００４６】
Ｓ２２０．ホストが、ホストのローカル仮想アドレス空間内で、第１の仮想空間に関する情報に従って、第２の仮想空間を対象ファイルに割り当てる。
【００４７】
本発明のこの実施例では、任意に、ＯＳの仮想アドレス空間の未使用部分は、ローカル仮想アドレス空間として使用され得る。例えば、６４ビットＯＳの仮想アドレス空間のサイズは２６４であり、ユーザモードの仮想アドレス空間とカーネルモードの仮想アドレス空間に加えて、予約された仮想アドレス空間があり、ＯＳにおける予約された仮想アドレス空間は、ローカル仮想アドレス空間として使用されることができる。ローカル仮想アドレス空間として使用されるべき仮想アドレス空間の一部分を得るために、オペレーティングシステムの仮想アドレス空間は、同様に、要求に従って再分割されることができる。
【００４８】
ホストは、ローカル仮想アドレス空間内で、仮想アドレス空間の一部分（第２の仮想空間として表される）をアクセスされるべき対象ファイルに割り当てる。任意に、ホストは、ホストのローカル仮想アドレス空間内で、第１の仮想空間と同じサイズを有する第２の仮想空間を対象ファイルに割り当てる。
【００４９】
Ｓ２３０．ホストが、第１の仮想空間と第２の仮想空間との間に対応関係を確立する。
【００５０】
第２の仮想空間を対象ファイルに割り当てた後に、ホストは、グローバル仮想アドレス空間内の第１の仮想空間とホストの仮想アドレス空間内の第２の仮想空間との間に対応関係を確立する。
【００５１】
任意に、本発明の一実施例として、ホストは、第１の仮想空間と第２の仮想空間との間に下記の対応関係を確立することができ、
ＬＶＡ＝（ＧＶＡ−ＧＶＡ＿ｓｔａｒｔ）＋ＬＶＡ＿ｓｔａｒｔ  （１）
ここで、ＧＶＡ＿ｓｔａｒｔは第１の仮想空間の開始アドレスを表し、ＬＶＡ＿ｓｔａｒｔは第２の仮想空間の開始アドレスを表し、ＧＶＡは第１の仮想空間のアドレスを表すとともに、ＬＶＡは第１の仮想空間のアドレスに対応する第２の仮想空間のアドレスを表す。
【００５２】
式（１）を使用することにより、第１の仮想空間のアドレスＧＶＡと第２の仮想空間のアドレスＬＶＡとの間の対応関係が確立され得る。
【００５３】
第１の仮想空間のアドレスＧＶＡと第２の仮想空間のアドレスＬＶＡとの間には、式（１）に示される対応関係に限らず、他の１対１の対応関係が更に使用され得る、ということが理解されるべきである。例えば、第１の仮想空間のアドレスが第２の仮想空間のアドレスに直接的に対応している１対１の対応関係が更に使用されてもよい。
【００５４】
Ｓ２４０．ホストが、第１の仮想空間と第２の仮想空間との間の対応関係に従って、第２の仮想空間にアクセスする第２のアクセス要求を第１の仮想空間にアクセスする第１のアクセス要求に変換し、ここで、第１のアクセス要求は、第１の仮想空間のアドレスを含み、第１の仮想空間のアドレスは、第１のストレージノードのデバイス情報を含む。
【００５５】
ホストは、第２の仮想空間を対象ファイルに割り当て、第１の仮想空間と第２の仮想空間との間に対応関係を確立する。ホスト内のアプリケーションは、第２の仮想空間にアクセスすることにより、対象ファイルにアクセスする。すなわち、ホスト内のアプリケーションが対象ファイルにアクセスする場合に、第２の仮想空間にアクセスする第２のアクセス要求が生成される。例えば、ホストは、第２の仮想空間の開始アドレスを指し示すファイルハンドルをアプリケーションに送信し、アプリケーションは、ファイルハンドルを使用することにより第２の仮想空間にアクセスし、ホストは第２のアクセス要求を生成する。
【００５６】
ホストは、第１の仮想空間と第２の仮想空間との間の対応関係に従って、第２のアクセス要求を第１の仮想空間にアクセスする第１のアクセス要求に変換する。具体的には、ホストは、第２のアクセス要求における第２の仮想空間のアドレスを第１の仮想空間のアドレスに変換し、第１のアクセス要求を生成する。第１の仮想空間のアドレスは、第１のストレージノードのデバイス情報（例えば、ＩＤ、又はＩＤとノードタイプの両方）を含む。第１のストレージノードは、複数のストレージノードに属しているとともに、対象ファイルを記憶するように構成されるストレージノードである。
【００５７】
Ｓ２５０．ネットワークデバイスが、第１の仮想空間のアドレス内に存在する、第１のストレージノードのデバイス情報に従って、第１のアクセス要求を第１のストレージノードに経路指定するように、ホストが、第１のアクセス要求をネットワークデバイスに送信する。
【００５８】
ホストは、変換によって得られた第１のアクセス要求をネットワークデバイスに送信するとともに、ネットワークデバイスは、第１のアクセス要求における第１の仮想空間のアドレスに従って、第１のアクセス要求を第１のストレージノードに経路指定することができる。例えば、第１の仮想空間のアドレスのビット量が２Ｎである場合に、第１の仮想空間のアドレスのＮ個の最上位ビットが、第１のストレージノードのデバイス情報を含み、第１の仮想空間のアドレスのＮ個の最上位ビット内に含まれる、第１のストレージノードのデバイス情報に従って、ネットワークデバイスは、第１のアクセス要求を第１のストレージノードに経路指定することができる。
【００５９】
ネットワークデバイスにより送信された第１のアクセス要求を受信した後に、第１のストレージノードは、第１のアクセス要求に従って対象ファイルにアクセスする。具体的には、ファイルを記憶するために使用されるローカル仮想アドレス空間とローカル物理ストレージ空間との間のマッピング関係が第１のストレージノードに記憶され、第１のストレージノードは、アクセス要求の宛先アドレス内のローカル仮想アドレス空間のアドレスに従って、対象ファイルを記憶するために使用されるローカル物理ストレージ空間のアドレスを判定することができる。さらに、第１のストレージノードは、判定されたローカル物理ストレージ空間のアドレスに従って、ローカル物理ストレージ空間にアクセスし、それにより、ローカル物理ストレージ空間に記憶された対象ファイルにアクセスすることができる。実際のアプリケーションでは、第１のストレージノードは、第１のアクセス要求に応答するアクセス応答を、ネットワークデバイスに更に送信することができる。ネットワークデバイスは、第１のストレージノードのアクセス応答をホストに送信する。
【００６０】
本発明のこの実施例におけるファイルアクセス方法によれば、ホストのカーネルを使用する必要がなく、そして直接的にアクセスされるアドレスをネゴシエートする必要がなく、分散ストレージシステム内のファイルが配置されている物理ストレージ空間が直接的にアクセスされることができ、したがって、遅延が低減されることができるとともに、ファイルアクセス効率が改善されることができる。
【００６１】
したがって、本発明のこの実施例におけるファイルアクセス方法によれば、分散ストレージシステム内のファイルがアクセスされる場合に、ホストのローカル仮想アドレス空間内で、第２の仮想空間がファイルに割り当てられ、第２の仮想空間にアクセスする第２のアクセス要求が、分散ストレージシステム内に存在する、ファイルの第１の仮想空間にアクセスする第１のアクセス要求に変換され、第１のアクセス要求がネットワークに送信される。このようにして、ホストのカーネルを使用せずに、分散ストレージシステム内のファイルが配置されている物理ストレージ空間が直接的にアクセスされることができ、その結果、遅延が低減されることができるとともに、ファイルアクセス効率が改善されることができる。
【００６２】
図３は、本発明の一実施例によるファイルの空間の概略図を示す。図３において示されるように、分散ストレージシステムには合計でＭ個のストレージノードが存在する。分散ストレージシステム内のファイルは、分散ストレージシステムのグローバル仮想アドレス空間内の第１の仮想空間を占有し、第１の仮想空間は、第１のストレージノードのローカル仮想アドレス空間の一部分に対応しているとともに、第１のストレージノードのローカル物理ストレージ空間（すなわち、物理ページ、例えば、ＮＶＭページ）にマッピングされる。ファイルを開くときに、ホストは、ホストのローカル仮想アドレス空間内で、第２の仮想空間をファイルに割り当てるとともに、第１の仮想空間と第２の仮想空間との間に対応関係を確立し、すなわち、第２の仮想空間が第１の仮想空間に対応することを可能にする。したがって、ファイルのローカル仮想アドレス空間（第２の仮想空間）にアクセスする場合に、ホストは、ファイルのグローバル仮想アドレス空間（第１の仮想空間）にアクセスするアクセス要求を生成するとともに、アクセス要求をネットワークデバイス（例えば、グローバル仮想アドレス空間に基づくスイッチ）に送信することができ、ネットワークデバイスは、グローバル仮想アドレス空間とストレージノードとの間のマッピング関係に基づいてアクセス要求を第１のストレージノードに経路指定し、それにより分散ストレージシステム内のファイルにアクセスする。
【００６３】
本発明の実施例における具体的な例は、当業者が本発明の実施例をよりよく理解するのを助けることを意図しているに過ぎず、本発明の実施例の範囲を限定することを意図していない、ということが理解されるべきである。
【００６４】
前述の処理のシーケンス番号は、本発明の様々な実施例における実行シーケンスを意味するものではない、ということが更に理解されるべきである。処理の実行順序は、処理の機能や内部ロジックに応じて決定されるべきであり、本発明の実施例の実装プロセスの限定として解釈されるべきではない。
【００６５】
上記は、本発明のこの実施例によるファイルアクセス方法を詳細に説明したが、下記は、本発明の一実施例によるシステム及びホストを説明する。
【００６６】
図４は、本発明の一実施例によるシステム４００の概略ブロック図を示す。図４において示されるように、システム４００は、ホスト４１０と、分散ストレージシステム４２０とを含む。
【００６７】
分散ストレージシステム４２０は、管理ノード４２１、複数のストレージノード４２２、及びネットワークデバイス４２３を含む。
【００６８】
分散ストレージシステム４２０内の各ストレージノード４２２のローカル仮想アドレス空間は、分散ストレージシステム４２０のグローバル仮想アドレス空間の一部に対応している。
【００６９】
ホスト４１０は、アクセスされるべき対象ファイルの第１の仮想空間に関する情報を取得し、ここで、第１の仮想空間が、グローバル仮想アドレス空間内で管理ノード４２１により対象ファイルに対して割り当てられた空間であり、ホスト４１０のローカル仮想アドレス空間内で、第１の仮想空間に関する情報に従って、第２の仮想空間を対象ファイルに割り当て、第１の仮想空間と第２の仮想空間との間に対応関係を確立し、第１の仮想空間と第２の仮想空間との間の対応関係に従って、第２の仮想空間にアクセスする第２のアクセス要求を第１の仮想空間にアクセスする第１のアクセス要求に変換し、ここで、第１のアクセス要求が、第１の仮想空間のアドレスを含み、第１の仮想空間のアドレスが、第１のストレージノードのデバイス情報を含み、第１のストレージノードが、複数のストレージノードに属しているとともに、対象ファイルを記憶するように構成されるストレージノードであり、ネットワークデバイス４２３が、第１の仮想空間のアドレス内に存在する、第１のストレージノードのデバイス情報に従って、第１のアクセス要求を第１のストレージノードに経路指定するように、第１のアクセス要求をネットワークデバイス４２３に送信する、ように構成される。
【００７０】
本発明のこの実施例におけるシステムによれば、分散ストレージシステム内のファイルがアクセスされる場合に、ホストのローカル仮想アドレス空間内で、第２の仮想空間がファイルに割り当てられ、第２の仮想空間にアクセスする第２のアクセス要求が、分散ストレージシステム内に存在する、ファイルの第１の仮想空間にアクセスする第１のアクセス要求に変換され、第１のアクセス要求がネットワークに送信される。このようにして、ホストのカーネルを使用せずに、分散ストレージシステム内のファイルが配置されている物理ストレージ空間が直接的にアクセスされることができ、その結果、遅延が低減されることができるとともに、ファイルアクセス効率が改善されることができる。
【００７１】
本発明のこの実施例では、任意に、ホスト４１０は、対象ファイルのメタデータを取得するとともに、対象ファイルのメタデータから、対象ファイルの第１の仮想空間に関する情報を取得するように具体的に構成される。
【００７２】
本発明のこの実施例では、任意に、第１の仮想空間に関する情報は、第１の仮想空間の開始アドレス及びサイズを含む。
【００７３】
本発明のこの実施例では、任意に、ホスト４１０は、ホスト４１０のローカル仮想アドレス空間内で、第１の仮想空間と同じサイズを有する第２の仮想空間を対象ファイルに割り当てるように具体的に構成される。
【００７４】
本発明のこの実施例では、任意に、ホスト４１０は、第１の仮想空間と第２の仮想空間との間に下記の対応関係を確立するように具体的に構成され、
ＬＶＡ＝（ＧＶＡ−ＧＶＡ＿ｓｔａｒｔ）＋ＬＶＡ＿ｓｔａｒｔ、
ここで、ＧＶＡ＿ｓｔａｒｔは第１の仮想空間の開始アドレスを表し、ＬＶＡ＿ｓｔａｒｔは第２の仮想空間の開始アドレスを表し、ＧＶＡは第１の仮想空間のアドレスを表すとともに、ＬＶＡは第１の仮想空間のアドレスに対応する第２の仮想空間のアドレスを表す。
【００７５】
本発明のこの実施例では、任意に、第１の仮想空間のアドレスのビット量は、２Ｎであり、Ｎは、第１のストレージノードのローカル仮想アドレス空間のアドレスのビット量であり、第１の仮想空間のアドレスのＮ個の最上位ビットは、第１のストレージノードのデバイス情報を含み、第１の仮想空間のアドレスのＮ個の最下位ビットは、第１のストレージノード内に存在するとともに、対象ファイルを記憶するために使用されるローカル仮想アドレス空間のアドレスである。
【００７６】
本発明のこの実施例によるシステム４００におけるホスト４１０及び分散ストレージシステム４２０は、前述の方法の実施例におけるホスト及び分散ストレージシステムに対応することができ、ホスト４１０は、前述の方法の対応する処理を実行し得る。簡潔にするために、ここでは詳細は再度説明されない。
【００７７】
図５は、本発明の一実施例によるホスト５００の概略ブロック図を示す。図５において示されるように、ホスト５００は、アクセスされるべき対象ファイルの第１の仮想空間に関する情報を取得し、ここで、第１の仮想空間が、分散ストレージシステムのグローバル仮想アドレス空間内で分散ストレージシステム内の管理ノードにより対象ファイルに対して割り当てられた空間であるとともに、分散ストレージシステム内の各ストレージノードのローカル仮想アドレス空間が、グローバル仮想アドレス空間の一部に対応しており、ホストのローカル仮想アドレス空間内で、第１の仮想空間に関する情報に従って、第２の仮想空間を対象ファイルに割り当て、第１の仮想空間と第２の仮想空間との間に対応関係を確立し、第１の仮想空間と第２の仮想空間との間の対応関係に従って、第２の仮想空間にアクセスする第２のアクセス要求を第１の仮想空間にアクセスする第１のアクセス要求に変換し、ここで、第１のアクセス要求が、第１の仮想空間のアドレスを含み、第１の仮想空間のアドレスが、第１のストレージノードのデバイス情報を含み、第１のストレージノードが、複数のストレージノードに属しているとともに、対象ファイルを記憶するように構成されるストレージノードである、ように構成される処理モジュール５１０と、分散ストレージシステム内のネットワークデバイスが、第１の仮想空間のアドレス内に存在する、第１のストレージノードのデバイス情報に従って、第１のアクセス要求を第１のストレージノードに経路指定するように、第１のアクセス要求をネットワークデバイスに送信するように構成される送信モジュール５２０とを含む。
【００７８】
本発明のこの実施例におけるホストによれば、分散ストレージシステム内のファイルがアクセスされる場合に、ホストのローカル仮想アドレス空間内で、第２の仮想空間がファイルに割り当てられ、第２の仮想空間にアクセスする第２のアクセス要求が、分散ストレージシステム内に存在する、ファイルの第１の仮想空間にアクセスする第１のアクセス要求に変換され、第１のアクセス要求がネットワークに送信される。このようにして、ホストのカーネルを使用せずに、分散ストレージシステム内のファイルが配置されている物理ストレージ空間が直接的にアクセスされることができ、その結果、遅延が低減されることができるとともに、ファイルアクセス効率が改善されることができる。
【００７９】
本発明のこの実施例では、任意に、処理モジュール５１０は、対象ファイルのメタデータを取得するとともに、対象ファイルのメタデータから、対象ファイルの第１の仮想空間に関する情報を取得するように具体的に構成される。
【００８０】
本発明のこの実施例では、任意に、第１の仮想空間に関する情報は、第１の仮想空間の開始アドレス及びサイズを含む。
【００８１】
本発明のこの実施例では、任意に、処理モジュール５１０は、ホストのローカル仮想アドレス空間内で、第１の仮想空間と同じサイズを有する第２の仮想空間を対象ファイルに割り当てるように具体的に構成される。
【００８２】
本発明のこの実施例では、任意に、処理モジュール５１０は、第１の仮想空間と第２の仮想空間との間に下記の対応関係を確立するように具体的に構成され、
ＬＶＡ＝（ＧＶＡ−ＧＶＡ＿ｓｔａｒｔ）＋ＬＶＡ＿ｓｔａｒｔ、
ここで、ＧＶＡ＿ｓｔａｒｔは第１の仮想空間の開始アドレスを表し、ＬＶＡ＿ｓｔａｒｔは第２の仮想空間の開始アドレスを表し、ＧＶＡは第１の仮想空間のアドレスを表すとともに、ＬＶＡは第１の仮想空間のアドレスに対応する第２の仮想空間のアドレスを表す。
【００８３】
本発明のこの実施例では、任意に、第１の仮想空間のアドレスのビット量は、２Ｎであり、Ｎは、第１のストレージノードのローカル仮想アドレス空間のアドレスのビット量であり、第１の仮想空間のアドレスのＮ個の最上位ビットは、第１のストレージノードのデバイス情報を含み、第１の仮想空間のアドレスのＮ個の最下位ビットは、第１のストレージノード内に存在するとともに、対象ファイルを記憶するために使用されるローカル仮想アドレス空間のアドレスである。
【００８４】
本発明のこの実施例によるホスト５００は、本発明の一実施例によるファイルアクセス方法２００の実行主体に対応することができ、ホスト５００内のモジュールの前述のそして他の動作及び／又は機能が、前述の方法の対応する手順を実施するために、それぞれ使用される。簡潔にするために、ここでは詳細は再度説明されない。
【００８５】
図６は、本発明の別の実施例によるホストの構造を示す。ホストは、少なくとも１つのプロセッサ６０２（例えば、ＣＰＵ）と、少なくとも１つのネットワークインタフェース６０５又は別の通信インタフェースと、メモリ６０６と、少なくとも１つの通信バス６０３とを含む。
【００８６】
通信バス６０３は、これらの装置間の接続及び通信を実現するように構成される。
【００８７】
プロセッサ６０２は、メモリ６０６に記憶された実行可能なモジュール、例えばコンピュータプログラムを実行するように構成される。
【００８８】
メモリ６０６は、高速ランダムアクセスメモリ（Random  Access  Memory、ＲＡＭ）を含むことができるか、又はＮＶＭ、例えば少なくとも１つのディスクメモリを更に含むことができる。
【００８９】
ホストは、少なくとも１つのネットワークインタフェース６０５（それは有線又は無線であり得る）を使用することにより、ネットワークに対する通信接続を実施する。
【００９０】
いくつかの実装方法では、メモリ６０６はプログラム６０６１を記憶し、プロセッサ６０２はプログラム６０６１を実行して前述の方法の実施例における全ての方法を実施するように構成される。
【００９１】
本発明の実施例における用語“及び／又は”は、関連するオブジェクトを説明するために対応関係のみを説明するとともに、３つの関係が存在し得ることを表す、ということが理解されるべきである。例えば、Ａ及び／又はＢは、下記の３つの場合、すなわち、Ａのみが存在する、ＡとＢの両方が存在する、そしてＢのみが存在する、を表し得る。さらに、この明細書における記号“／”は、一般に、関連するオブジェクトの間の“又は”の関係を示す。
【００９２】
当業者は、本明細書中で開示される実施例において説明される実例と組み合わせて、ユニット及びアルゴリズムステップが、電子ハードウェア、コンピュータソフトウェア、又はそれらの組み合わせにより実施され得ることに、気付くかもしれない。ハードウェアとソフトウェアとの間の互換性を明確に説明するために、上記は、各例の構成物及びステップを機能に従って一般的に説明した。機能がハードウェアにより実行されるか又はソフトウェアにより実行されるかは、技術的解決法の特定のアプリケーション及び設計制約条件に依存する。当業者は、各特定のアプリケーションに対して説明された機能を実施するために異なる方法を使用し得るが、しかし、実施は本発明の範囲を超えるものと考えられるべきではない。
【００９３】
都合が良くそして簡潔な記述のために、前述のシステム、装置、及びユニットの詳細な作業処理については、前述の方法の実施例の対応する処理に対して参照が行われ得るとともに、詳細は再度ここでは説明されない、ということが当業者によって明らかに理解され得る。
【００９４】
本願において提供されるいくらかの実施例では、開示されたシステム、装置、及び方法は他の様式で実施され得る、ということが理解されるべきである。例えば、説明された装置の実施例は、単なる一例に過ぎない。例えば、ユニットの分割は、単に論理的な機能の分割であるとともに、実際の実装例では他の分割であるかもしれない。例えば、複数のユニット又はコンポーネントは、別のシステムに結合され得るか若しくは統合され得るか、又は、いくつかの特徴は、無視され得るか若しくは実行されないかもしれない。さらに、表示されたか若しくは論じられた相互の結合又は直接的な結合又は通信接続は、いくつかインタフェースを通して実施され得る。装置若しくはユニットの間の間接的な結合又は通信接続は、電子的方式、機械的方式、又は他の方式において実施され得る。
【００９５】
別個の部品として説明されるユニットは、物理的に分離しているかもしれないし、又は物理的に分離していないかもしれないとともに、ユニットとして表示される部品は、物理的なユニットであるかもしれないし、又は物理的なユニットではないかもしれず、１つの位置に位置付けられるかもしれないし、又は複数のネットワークユニットに対して分散されるかもしれない。一部又は全てのユニットは、本発明の実施例の解決法の目的を達成するために、実際のニーズに従って選択され得る。
【００９６】
さらに、本発明の実施例における機能ユニットは１つの演算処理装置に統合され得るか、又は、それぞれのユニットは物理的に単独で存在し得るか、又は、２つ以上のユニットは１つのユニットに統合される。統合されたユニットは、ハードウェアの形式で実施され得るか、又は、ソフトウェア機能ユニットの形式で実施され得る。
【００９７】
統合されたユニットがソフトウェア機能ユニットの形式で実施されるとともに、独立した製品として販売されるか又は使用される場合に、統合されたユニットはコンピュータ読み取り可能な記憶媒体に記憶され得る。そのような理解に基づくと、本発明の技術的解決法は本質的に、又は、従来技術に貢献する部分は、又は、技術的解決法の全て若しくは一部分は、ソフトウェア製品の形式で実施され得る。ソフトウェア製品は、記憶媒体に記憶されるとともに、コンピュータ装置（それはパーソナルコンピュータ、サーバ、若しくはネットワーク装置であり得る）に、本発明の実施例において説明された方法のステップの全て又は一部分を実行するように指示するためのいくらかの命令を含む。前述の記憶媒体は、ＵＳＢフラッシュドライブ、リムーバブルハードディスク、読出し専用メモリ（Read-Only  Memory、ＲＯＭ）、ランダムアクセスメモリ（Random  Access  Memory、ＲＡＭ）、磁気ディスク又は光ディスクのような、プログラムコードを記憶することができるあらゆる媒体を含む。前述の説明は、単に本発明の特定の実施例に過ぎず、本発明の保護範囲を限定することを意図していない。
【図１】
0006379291.tif 000002
【図２】
0006379291.tif 000003
【図３】
0006379291.tif 000004
【図４】
0006379291.tif 000005
【図５】
0006379291.tif 000006
【図６】
0006379291.tif 000007