(57)【要約】  本発明の実施形態は、ホストによって実行されるデータ処理方法を提供する。ホストおよびストレージシステムは、NVMeoFプロトコルを使用することによって互いに通信する。ストレージシステムは論理ディスクを含み、ホストは、ストレージシステムの中の制御ノードを使用することによって論理ディスクにアクセスする。方法は、状態照会コマンドを制御ノードへ送ることであって、ここで、状態照会コマンドが、制御ノードに対応する経路の経路状態を報告するように制御ノードに命令するために使用されることと、制御ノードによって報告される経路状態を受信することと、受信された経路状態が、論理ディスクがアクセス区間を含むことを示すとき、区間照会コマンドを制御ノードへ送ることと、制御ノードによって報告されるアクセス区間情報を受信することであって、ここで、アクセス区間情報によって示されるアクセス区間が、制御ノードに事前に割り振られることと、制御ノードとアクセス区間情報との間のマッピング関係を記録することとを含む。
2021510215.tif 000002
【特許請求の範囲】
【請求項１】
データ処理方法であって、前記方法がホストによって実行され、前記ホストおよびストレージシステムが、NVMeoF(Non-Volatile Memory express over Fabric)プロトコルを使用することによって互いに通信し、前記ストレージシステムが論理ディスクを備え、前記ホストが、前記ストレージシステムの中の制御ノードを使用することによって前記論理ディスクにアクセスし、前記方法が、
状態照会コマンドを前記制御ノードへ送るステップであって、前記状態照会コマンドが、前記制御ノードに対応する経路の経路状態を報告するように前記制御ノードに命令するために使用される、ステップと、
前記制御ノードによって報告される前記経路状態を受信するステップと、
前記受信された経路状態が、前記論理ディスクがアクセス区間を備えることを示すとき、区間照会コマンドを前記制御ノードへ送るステップと、
前記制御ノードによって報告されるアクセス区間情報を受信するステップであって、前記アクセス区間情報によって示されるアクセス区間が前記制御ノードに事前に割り振られる、ステップと、
前記制御ノードと前記アクセス区間情報との間のマッピング関係を記録するステップとを備える、
データ処理方法。
【請求項２】
I/O要求を受信するステップであって、前記I/O要求が、アクセスされるべきデータの論理アドレスを搬送する、ステップと、
前記論理アドレスに対応するアクセス区間を決定するステップと、
前記アクセス区間に対応する制御ノードを前記マッピング関係に基づいて決定するステップと、
前記アクセス区間に対応する前記制御ノードへ前記I/O要求を送るステップと
をさらに備える、請求項1に記載の方法。
【請求項３】
前記論理ディスクが前記アクセス区間を備えることを決定すると、前記制御ノードが、前記論理ディスクが前記アクセス区間を備えることを示す前記経路状態を前記ホストに報告する、請求項1に記載の方法。
【請求項４】
前記アクセス区間照会コマンドが、前記NVMeoFプロトコルにおけるコマンドGet Log Page command Dword 10に従って規定され、前記アクセス区間照会コマンドのコマンド識別子が、前記コマンドのlog page identifierフィールドに追加される、請求項1から3のいずれか一項に記載の方法。
【請求項５】
前記アクセス区間情報によって示される前記アクセス区間が、連続するアドレス空間である、請求項1から4のいずれか一項に記載の方法。
【請求項６】
前記アクセス区間情報が、アクセス区間開始アドレスおよびアクセス区間長を備える、請求項5に記載の方法。
【請求項７】
前記制御ノードに対応する前記アクセス区間が、第1のアクセス部分区間および第2のアクセス部分区間を備え、前記第1のアクセス部分区間と前記第2のアクセス部分区間との間に間隔がある、請求項1から4のいずれか一項に記載の方法。
【請求項８】
前記第1のアクセス部分区間が前記第2のアクセス部分区間に隣接し、前記アクセス区間情報が、アクセス区間開始アドレス、各アクセス部分区間の長さ、および隣接する2つのアクセス部分区間の間の間隔を備える、請求項7に記載の方法。
【請求項９】
データ処理方法であって、前記方法がストレージシステムの中の制御ノードによって実行され、前記ストレージシステムおよびホストが、NVMeoF(Non-Volatile Memory express over Fabric)プロトコルを使用することによって互いに通信し、前記ストレージシステムが論理ディスクを備え、前記方法が、
前記ホストによって送られる状態照会コマンドを受信するステップであって、前記状態照会コマンドが、前記制御ノードに対応する経路の経路状態を報告するように前記制御ノードに命令するために使用される、ステップと、
前記論理ディスクがアクセス区間を備えるとき、前記論理ディスクが前記アクセス区間を備えることを示す経路状態を前記ホストに報告するステップと、
前記経路状態に基づいて前記ホストによって送られるアクセス区間照会コマンドを受信するステップと、
前記ホストが前記アクセス区間情報と前記制御ノードとの間のマッピング関係を記録するように、前記制御ノードに割り振られたアクセス区間のアクセス区間情報を、前記区間照会情報に基づいて前記ホストに報告するステップとを備える、
データ処理方法。
【請求項１０】
前記アクセス区間照会コマンドが、前記NVMeoFプロトコルにおけるコマンドGet Log Page command Dword 10に従って規定され、前記アクセス区間照会コマンドのコマンド識別子が、前記コマンドのlog page identifierフィールドに追加される、請求項9に記載の方法。
【請求項１１】
前記アクセス区間情報によって示される前記アクセス区間が、連続するアドレス空間である、請求項9または10に記載の方法。
【請求項１２】
前記アクセス区間情報が、アクセス区間開始アドレスおよびアクセス区間長を備える、請求項11に記載の方法。
【請求項１３】
前記制御ノードに対応する前記アクセス区間が、第1のアクセス部分区間および第2のアクセス部分区間を備え、前記第1のアクセス部分区間と前記第2のアクセス部分区間との間に間隔がある、請求項9または10に記載の方法。
【請求項１４】
前記第1のアクセス部分区間が前記第2のアクセス部分区間に隣接し、前記アクセス区間情報が、アクセス区間開始アドレス、各アクセス部分区間の長さ、および隣接する2つのアクセス部分区間の間の間隔を備える、請求項13に記載の方法。
【請求項１５】
データ処理方法であって、前記方法がホストによって実行され、前記ホストがストレージシステムに接続され、前記ストレージシステムが複数の制御ノードを備え、前記ホストが、前記複数の制御ノードを使用することによって前記ストレージシステムの中の論理ディスクにアクセスし、前記方法が、
I/O要求を受信するステップであって、前記I/O要求が、アクセスされるべきデータの論理アドレスを搬送する、ステップと、
前記論理アドレスに対応するアクセス区間を決定するステップであって、前記論理ディスクが複数のアクセス区間を備え、前記ホストが、各アクセス区間と制御ノードとの間のマッピング関係を記録する、ステップと、
前記決定されたアクセス区間に対応する制御ノードに前記I/O要求を配信するステップとを備える、
データ処理方法。
【請求項１６】
前記複数の制御ノードへ状態照会コマンドを送るステップであって、前記状態照会コマンドが、前記制御ノードに対応する経路の経路状態を報告するように前記複数の制御ノードの各々に命令するために使用される、ステップと、
前記複数の制御ノードによって報告される前記経路状態を受信するステップと、
前記受信された経路状態が、前記論理ディスクがアクセス区間を備えることを示すとき、前記経路状態を報告する制御ノードへ区間照会コマンドを送るステップと、
前記経路状態を報告する前記制御ノードによって報告されるアクセス区間情報を受信するステップと、
前記アクセス区間情報と前記経路状態を報告する前記制御ノードとの間のマッピング関係を記録するステップと
をさらに備える、請求項15に記載の方法。
【請求項１７】
前記論理ディスクが前記アクセス区間を備えることを決定すると、前記状態照会コマンドを受信する前記制御ノードが、前記論理ディスクが前記アクセス区間を備えることを示す前記経路状態を前記ホストに報告する、請求項16に記載の方法。
【請求項１８】
前記アクセス区間照会コマンドが、前記NVMeoFプロトコルにおけるコマンドGet Log Page command Dword 10に従って規定され、前記アクセス区間照会コマンドのコマンド識別子が、前記コマンドのlog page identifierフィールドに追加される、請求項15から17のいずれか一項に記載の方法。
【請求項１９】
前記アクセス区間情報によって示される前記アクセス区間が、連続するアドレス空間である、請求項15から18のいずれか一項に記載の方法。
【請求項２０】
前記アクセス区間情報が、アクセス区間開始アドレスおよびアクセス区間長を備える、請求項19に記載の方法。
【請求項２１】
前記制御ノードに対応する前記アクセス区間が、第1のアクセス部分区間および第2のアクセス部分区間を備え、前記第1のアクセス部分区間と前記第2のアクセス部分区間との間に間隔がある、請求項15から18のいずれか一項に記載の方法。
【請求項２２】
前記第1のアクセス部分区間が前記第2のアクセス部分区間に隣接し、前記アクセス区間情報が、アクセス区間開始アドレス、各アクセス部分区間の長さ、および隣接する2つのアクセス部分区間の間の間隔を備える、請求項21に記載の方法。
【請求項２３】
データ処理方法であって、前記方法がホストによって実行され、前記ホストおよびストレージシステムが、外部ネットワークを使用することによって互いに通信し、前記方法が、
外部ネットワークプロトコル区間照会コマンドを取得するために不揮発性メモリエクスプレスNVMe区間照会コマンドを外部ネットワークプロトコルの中にカプセル化するステップであって、前記NVMe区間照会コマンドが、前記ストレージシステムの中のコントローラに割り振られたアクセス区間を照会するために使用され、前記アクセス区間が前記ストレージシステムの名前空間に属する、ステップと、
前記外部ネットワークプロトコル区間照会コマンドを前記制御ノードへ送るステップと、
前記制御ノードによって送られる外部ネットワークプロトコル区間応答メッセージを受信するステップであって、前記外部ネットワークプロトコル区間応答メッセージが、前記NVMe区間照会コマンドへの応答を備え、前記NVMe区間照会コマンドへの前記応答が、前記名前空間のアクセス区間情報を備える、ステップと、
前記NVMe区間照会コマンドの応答情報を取得するために前記外部ネットワークプロトコル区間応答メッセージを構文解析するステップと、
前記制御ノードのアクセス区間情報を前記NVMe区間照会コマンドへの前記応答から取得し、前記アクセス区間情報を記録するステップとを備える、
データ処理方法。
【請求項２４】
外部ネットワークプロトコル区間照会コマンドを取得するために不揮発性メモリエクスプレスNVMe区間照会コマンドを前記外部ネットワークプロトコルの中にカプセル化する前記ステップの前に、前記方法が、
外部ネットワークプロトコル状態照会コマンドを取得するためにNVMe状態照会コマンドを前記外部ネットワークプロトコルの中にカプセル化するステップであって、前記NVMe状態照会コマンドが、前記制御ノードに対応する経路の経路状態を照会するために使用される、ステップと、
前記外部ネットワークプロトコル状態照会コマンドを前記制御ノードへ送るステップと、
前記制御ノードによって送られる外部ネットワークプロトコル状態応答メッセージを受信するステップであって、前記外部ネットワークプロトコル状態応答メッセージが前記NVMe状態照会コマンドへの応答を備え、前記NVMe状態照会コマンドへの前記応答が経路状態情報を備え、前記経路状態情報が、前記名前空間がアクセス区間を備えることを示す、ステップと、
前記NVMe状態照会コマンドの応答情報を取得するために前記外部ネットワークプロトコル状態応答メッセージを構文解析するステップとをさらに備える、
請求項23に記載の方法。
【請求項２５】
前記NVMeアクセス区間照会コマンドが、前記NVMeプロトコルにおけるコマンドGet Log Page command Dword 10に従って規定され、前記アクセス区間照会コマンドのコマンド識別子が、前記コマンドのlog page identifierフィールドに追加される、
請求項23に記載の方法。
【請求項２６】
データ処理方法であって、前記方法がストレージシステムの中の制御ノードによって実行され、ホストおよび前記ストレージシステムが、外部ネットワークを使用することによって互いに通信し、前記方法が、
前記ホストによって送られる外部ネットワークプロトコル区間照会コマンドを受信し、NVMe区間照会コマンドを取得するために前記外部ネットワークプロトコル区間照会コマンドを構文解析するステップと、
前記NVMe区間照会コマンドの応答情報を生成することであって、前記NVMe区間照会コマンドの前記応答情報が、前記制御ノードに対応するアクセス区間情報を備えること、および外部ネットワークプロトコル区間照会コマンドを取得するために前記NVMe区間照会コマンドを外部ネットワークプロトコルの中にカプセル化することを行うステップと、
前記外部ネットワークプロトコル区間照会コマンドを前記ホストに報告するステップとを備える、
データ処理方法。
【請求項２７】
前記ホストによって送られる外部ネットワークプロトコル区間照会コマンドを受信する前記ステップの前に、前記方法が、
外部ネットワークプロトコル状態照会コマンドを受信し、不揮発性メモリエクスプレスNVMe状態照会コマンドを取得するために前記外部ネットワークプロトコル状態照会コマンドを構文解析するステップであって、前記NVMe状態照会コマンドが、前記制御ノードに対応する経路の経路状態を報告するように前記制御ノードに命令するために使用される、ステップと、
前記NVMe状態照会コマンドの応答情報を生成し、名前空間がアクセス区間を備えるとき、前記名前空間が前記アクセス区間を備えることを示す経路状態を、前記NVMe状態照会コマンドの前記応答情報に追加するステップと、
前記外部ネットワークプロトコル状態照会コマンドの応答情報を取得するために前記NVMe状態照会コマンドをカプセル化し、前記外部ネットワークプロトコル状態照会コマンドの前記応答情報を前記ホストに報告するステップとをさらに備える、
請求項26に記載の方法。
【請求項２８】
ホストであって、前記ホストおよびストレージシステムが、NVMeoF(Non-Volatile Memory express over Fabric)プロトコルを使用することによって互いに通信し、前記ストレージシステムが論理ディスクを備え、前記ホストが、前記ストレージシステムの中の制御ノードを使用することによって前記論理ディスクにアクセスし、前記ホストが、
状態照会コマンドを前記制御ノードへ送ることであって、前記状態照会コマンドが、前記制御ノードに対応する経路の経路状態を報告するように前記制御ノードに命令するために使用されることと、前記制御ノードによって報告される前記経路状態を受信することとを行うように構成された、経路状態照会モジュール、
前記受信された経路状態が、前記論理ディスクがアクセス区間を備えることを示すとき、区間照会コマンドを前記制御ノードへ送ることと、前記制御ノードによって報告されるアクセス区間情報を受信することであって、前記アクセス区間情報によって示されるアクセス区間が前記制御ノードに事前に割り振られることとを行うように構成された、区間照会モジュール、ならびに
前記制御ノードと前記アクセス区間情報との間のマッピング関係を記録するように構成された、区間記録モジュールを備える、
ホスト。
【請求項２９】
I/O要求を受信することであって、前記I/O要求が、アクセスされるべきデータの論理アドレスを搬送することと、前記論理アドレスに対応するアクセス区間を決定することとを行うように構成された、区間決定モジュール、ならびに
前記アクセス区間に対応する制御ノードを前記マッピング関係に基づいて決定することと、前記アクセス区間に対応する前記制御ノードへ前記I/O要求を送ることとを行うように構成された、I/O配信モジュール
をさらに備える、請求項28に記載のホスト。
【請求項３０】
前記論理ディスクが前記アクセス区間を備えることを決定すると、前記制御ノードが、前記論理ディスクが前記アクセス区間を備えることを示す前記経路状態を前記ホストに報告する、請求項28に記載のホスト。
【請求項３１】
前記アクセス区間照会コマンドが、前記NVMeoFプロトコルにおけるコマンドGet Log Page command Dword 10に従って規定され、前記アクセス区間照会コマンドのコマンド識別子が、前記コマンドのlog page identifierフィールドに追加される、請求項28から30のいずれか一項に記載のホスト。
【請求項３２】
前記アクセス区間情報によって示される前記アクセス区間が、連続するアドレス空間である、請求項28から31のいずれか一項に記載のホスト。
【請求項３３】
前記アクセス区間情報が、アクセス区間開始アドレスおよびアクセス区間長を備える、請求項32に記載のホスト。
【請求項３４】
前記制御ノードに対応する前記アクセス区間が、第1のアクセス部分区間および第2のアクセス部分区間を備え、前記第1のアクセス部分区間と前記第2のアクセス部分区間との間に間隔がある、請求項28から31のいずれか一項に記載のホスト。
【請求項３５】
前記第1のアクセス部分区間が前記第2のアクセス部分区間に隣接し、前記アクセス区間情報が、アクセス区間開始アドレス、各アクセス部分区間の長さ、および隣接する2つのアクセス部分区間の間の間隔を備える、請求項34に記載のホスト。
【請求項３６】
ストレージシステムの中の制御ノードであって、前記ストレージシステムおよびホストが、NVMeoF(Non-Volatile Memory express over Fabric)プロトコルを使用することによって互いに通信し、前記ストレージシステムが論理ディスクを備え、前記方法が、
前記ホストによって送られる状態照会コマンドを受信することであって、前記状態照会コマンドが、前記制御ノードに対応する経路の経路状態を報告するように前記制御ノードに命令するために使用されることと、前記論理ディスクがアクセス区間を備えるとき、前記論理ディスクが前記アクセス区間を備えることを示す経路状態を前記ホストに報告することとを行うように構成された、経路状態報告モジュール、ならびに
前記経路状態に基づいて前記ホストによって送られるアクセス区間照会コマンドを受信することと、前記ホストが前記アクセス区間情報と前記制御ノードとの間のマッピング関係を記録するように、前記制御ノードに割り振られたアクセス区間のアクセス区間情報を、前記区間照会情報に基づいて前記ホストに報告することとを行うように構成された、区間報告モジュールを備える、
制御ノード。
【請求項３７】
前記アクセス区間照会コマンドが、前記NVMeoFプロトコルにおけるコマンドGet Log Page command Dword 10に従って規定され、前記アクセス区間照会コマンドのコマンド識別子が、前記コマンドのlog page identifierフィールドに追加される、請求項36に記載の制御ノード。
【請求項３８】
前記アクセス区間情報によって示される前記アクセス区間が、連続するアドレス空間である、請求項36または37に記載の制御ノード。
【請求項３９】
前記アクセス区間情報が、アクセス区間開始アドレスおよびアクセス区間長を備える、請求項38に記載の制御ノード。
【請求項４０】
前記制御ノードに対応する前記アクセス区間が、第1のアクセス部分区間および第2のアクセス部分区間を備え、前記第1のアクセス部分区間と前記第2のアクセス部分区間との間に間隔がある、請求項36または37に記載の制御ノード。
【請求項４１】
前記第1のアクセス部分区間が前記第2のアクセス部分区間に隣接し、前記アクセス区間情報が、アクセス区間開始アドレス、各アクセス部分区間の長さ、および隣接する2つのアクセス部分区間の間の間隔を備える、請求項40に記載の制御ノード。
【請求項４２】
ホストであって、前記ホストがストレージシステムに接続され、前記ストレージシステムが複数の制御ノードを備え、前記ホストが、前記複数の制御ノードを使用することによって前記ストレージシステムの中の論理ディスクにアクセスし、前記方法が、
I/O要求を受信することであって、前記I/O要求が、アクセスされるべきデータの論理アドレスを搬送することと、前記論理アドレスに対応するアクセス区間を決定することであって、前記論理ディスクが複数のアクセス区間を備え、前記ホストが、各アクセス区間と制御ノードとの間のマッピング関係を記録することとを行うように構成された、区間決定モジュール、ならびに
前記決定されたアクセス区間に対応する制御ノードに前記I/O要求を配信するように構成された、I/O配信モジュールを備える、
ホスト。
【請求項４３】
前記複数の制御ノードへ状態照会コマンドを送ることであって、前記状態照会コマンドが、前記制御ノードに対応する経路の経路状態を報告するように前記複数の制御ノードの各々に命令するために使用されることと、前記複数の制御ノードによって報告される前記経路状態を受信することとを行うように構成された、経路状態照会モジュール、
前記受信された経路状態が、前記論理ディスクがアクセス区間を備えることを示すとき、前記経路状態を報告する制御ノードへ区間照会コマンドを送ることと、前記経路状態を報告する前記制御ノードによって報告されるアクセス区間情報を受信することとを行うように構成された、区間照会モジュール、ならびに
前記アクセス区間情報と前記経路状態を報告する前記制御ノードとの間のマッピング関係を記録するように構成された、区間記録モジュール
をさらに備える、請求項42に記載のホスト。
【請求項４４】
前記論理ディスクが前記アクセス区間を備えることを決定すると、前記状態照会コマンドを受信する前記制御ノードが、前記論理ディスクが前記アクセス区間を備えることを示す前記経路状態を前記ホストに報告する、請求項43に記載のホスト。
【請求項４５】
前記アクセス区間照会コマンドが、前記NVMeoFプロトコルにおけるコマンドGet Log Page command Dword 10に従って規定され、前記アクセス区間照会コマンドのコマンド識別子が、前記コマンドのlog page identifierフィールドに追加される、請求項42から44のいずれか一項に記載のホスト。
【請求項４６】
前記アクセス区間情報によって示される前記アクセス区間が、連続するアドレス空間である、請求項43から45のいずれか一項に記載のホスト。
【請求項４７】
前記アクセス区間情報が、アクセス区間開始アドレスおよびアクセス区間長を備える、請求項46に記載のホスト。
【請求項４８】
前記制御ノードに対応する前記アクセス区間が、第1のアクセス部分区間および第2のアクセス部分区間を備え、前記第1のアクセス部分区間と前記第2のアクセス部分区間との間に間隔がある、請求項43から45のいずれか一項に記載のホスト。
【請求項４９】
前記第1のアクセス部分区間が前記第2のアクセス部分区間に隣接し、前記アクセス区間情報が、アクセス区間開始アドレス、各アクセス部分区間の長さ、および隣接する2つのアクセス部分区間の間の間隔を備える、請求項48に記載のホスト。
【請求項５０】
ホストであって、前記ホストおよびストレージシステムが、外部ネットワークを使用することによって互いに通信し、前記方法が、
外部ネットワークプロトコル区間照会コマンドを取得するために不揮発性メモリエクスプレスNVMe区間照会コマンドを外部ネットワークプロトコルの中にカプセル化することであって、前記NVMe区間照会コマンドが、前記ストレージシステムの中のコントローラに割り振られたアクセス区間を照会するために使用され、前記アクセス区間が前記ストレージシステムの名前空間に属することと、前記外部ネットワークプロトコル区間照会コマンドを前記制御ノードへ送ることと、前記制御ノードによって送られる外部ネットワークプロトコル区間応答メッセージを受信することであって、前記外部ネットワークプロトコル区間応答メッセージが、前記NVMe区間照会コマンドへの応答を備え、前記NVMe区間照会コマンドへの前記応答が、前記名前空間のアクセス区間情報を備えることとを行うように構成された、区間照会モジュール、ならびに
前記NVMe区間照会コマンドの応答情報を取得するために前記外部ネットワークプロトコル区間応答メッセージを構文解析することと、前記制御ノードのアクセス区間情報を前記NVMe区間照会コマンドへの前記応答から取得し、前記アクセス区間情報を記録することとを行うように構成された、区間記録モジュールを備える、
ホスト。
【請求項５１】
前記外部ネットワークプロトコル区間照会コマンドを取得するために前記不揮発性メモリエクスプレスNVMe区間照会コマンドを前記外部ネットワークプロトコルの中にカプセル化する前に、前記ホストが、
外部ネットワークプロトコル状態照会コマンドを取得するためにNVMe状態照会コマンドを前記外部ネットワークプロトコルの中にカプセル化することであって、前記NVMe状態照会コマンドが、前記制御ノードに対応する経路の経路状態を照会するために使用されること、および前記外部ネットワークプロトコル状態照会コマンドを前記制御ノードへ送ることと、
前記制御ノードによって送られる外部ネットワークプロトコル状態応答メッセージを受信することであって、前記外部ネットワークプロトコル状態応答メッセージが前記NVMe状態照会コマンドへの応答を備え、前記NVMe状態照会コマンドへの前記応答が経路状態情報を備え、前記経路状態情報が、前記名前空間がアクセス区間を備えることを示すことと、
前記NVMe状態照会コマンドの応答情報を取得するために前記外部ネットワークプロトコル状態応答メッセージを構文解析することと
を行うように構成された経路状態照会モジュールをさらに備える、
請求項50に記載のホスト。
【請求項５２】
ストレージシステムの中の制御ノードであって、ホストおよび前記ストレージシステムが、外部ネットワークを使用することによって互いに通信し、前記制御ノードが、
前記ホストによって送られる外部ネットワークプロトコル区間照会コマンドを受信し、NVMe区間照会コマンドを取得するために前記外部ネットワークプロトコル区間照会コマンドを構文解析することと、
前記NVMe区間照会コマンドの応答情報を生成することであって、前記NVMe区間照会コマンドの前記応答情報が、前記制御ノードに対応するアクセス区間情報を備えること、および前記外部ネットワークプロトコル区間照会コマンドを取得するために前記NVMe区間照会コマンドを外部ネットワークプロトコルの中にカプセル化することと、
前記外部ネットワークプロトコル区間照会コマンドを前記ホストに報告することと
を行うように構成された区間報告モジュールを備える、
制御ノード。
【請求項５３】
外部ネットワークプロトコル状態照会コマンドを受信し、不揮発性メモリエクスプレスNVMe状態照会コマンドを取得するために前記外部ネットワークプロトコル状態照会コマンドを構文解析することであって、前記NVMe状態照会コマンドが、前記制御ノードに対応する経路の経路状態を報告するように前記制御ノードに命令するために使用されることと、
前記NVMe状態照会コマンドの応答情報を生成し、名前空間がアクセス区間を備えるとき、前記名前空間が前記アクセス区間を備えることを示す経路状態を、前記NVMe状態照会コマンドの前記応答情報に追加することと、
前記外部ネットワークプロトコル状態照会コマンドの応答情報を取得するために前記NVMe状態照会コマンドをカプセル化し、前記外部ネットワークプロトコル状態照会コマンドの前記応答情報を前記ホストに報告することと
を行うように構成された経路状態報告モジュール
をさらに備える、請求項52に記載の制御ノード。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、ストレージ分野に関し、詳細には、I/O要求処理方法およびデバイスに関する。
【背景技術】
【０００２】
NVMe over Fabrics(NVMeoF)プロトコルに基づく既存のストレージアーキテクチャでは、ストレージシステムは、複数の制御ノードおよび論理ディスク(たとえば、Namespace)を含む。ホストは、複数の制御ノードを使用することによって論理ディスクにアクセスし、したがって、ホストと論理ディスクとの間に複数の経路がある。ホストは、ストレージシステムにI/O要求を配信するために、ポーリングを通じて経路を選択する。ストレージシステムの中にありI/O要求を受信する制御ノードは、I/O要求の中で搬送された論理アドレスに基づいて、かつ特定のアルゴリズムに従って、I/O要求を実行する制御ノードを推定する。たとえば、ホストは、複数の経路の中の第1の経路を使用することによって、第1の制御ノードにI/O要求を配信する。第1の制御ノードは、I/O要求が第2の制御ノードによって実行される必要があることを、I/O要求の中の論理アドレスに基づいて、かつ事前設定されたアルゴリズムに従って、推定を実行することによって学習し、第1の制御ノードは、第2の制御ノードにI/O要求を転送する。したがって、I/O要求の転送がI/O遅延を大きくする。
【発明の概要】
【課題を解決するための手段】
【０００３】
本発明の実施形態は、ストレージシステムの中の制御ノードごとにアクセス区間を設定するための、I/O要求処理方法、デバイス、およびホストを提供する。
【０００４】
本発明の実施形態の第1の態様は、ホストによって実行されるデータ処理方法を提供する。ホストおよびストレージシステムは、NVMeoFプロトコルを使用することによって互いに通信する。ストレージシステムは論理ディスクを含み、ホストは、ストレージシステムの中の制御ノードを使用することによって論理ディスクにアクセスする。方法は、状態照会コマンドを制御ノードへホストによって送ることであって、ここで、状態照会コマンドが、制御ノードに対応する経路の経路状態を報告するように制御ノードに命令するために使用されることと、次いで、制御ノードによって報告される経路状態を受信することと、ホストによって受信された経路状態が、論理ディスクがアクセス区間を含むことを示すとき、区間照会コマンドを制御ノードへ送ることと、次いで、制御ノードによって報告されるアクセス区間情報を受信することと、制御ノードとアクセス区間情報との間のマッピング関係を記録することであって、ここで、アクセス区間情報によって示されるアクセス区間が制御ノードに事前に割り振られることとを含む。
【０００５】
制御ノードごとにストレージシステムによって設定されるアクセス区間が、NVMeoFプロトコルの状態照会コマンドおよび新たに追加された区間照会コマンドを使用することによって取得される。このようにして、後でI/O要求が受信されると、I/O要求は、I/O要求の中の論理アドレスに対応する区分区間に基づいて、区分区間に対応するコントローラに配信されてよく、それによって、I/O要求の転送を回避する。
【０００６】
可能な設計では、方法は、I/O要求を受信することであって、ここで、I/O要求が、アクセスされるべきデータの論理アドレスを搬送することと、論理アドレスに対応するアクセス区間を決定することと、アクセス区間に対応する制御ノードをマッピング関係に基づいて決定することと、アクセス区間に対応する制御ノードへI/O要求を送ることとをさらに含む。
【０００７】
ホストは、制御ノードとアクセス区間情報との間のマッピング関係を記録し、したがって、I/O要求を受信すると、ホストは、I/O要求の中の論理アドレスに対応する区分区間に基づいて、区分区間に対応するコントローラにI/O要求を配信してよく、それによって、I/O要求の転送を回避する。
【０００８】
可能な設計では、論理ディスクがアクセス区間を含むことを決定すると、制御ノードは、論理ディスクがアクセス区間を含むことを示す経路状態をホストに報告する。
【０００９】
論理ディスクがアクセス区間を含むことを示す経路状態は、区分区間を照会すべきかどうかをホストが経路状態に基づいて決定できるようにNVMeプロトコルに追加される。
【００１０】
可能な設計では、アクセス区間照会コマンドは、NVMeoFプロトコルにおけるコマンドGet Log Page command Dword 10に従って規定され、アクセス区間照会コマンドのコマンド識別子が、コマンドのlog page identifierフィールドに追加される。
【００１１】
区間照会コマンドは、既存のNVMeoFプロトコルにおけるコマンドを使用することによって規定され、既存のNVMeoFプロトコルは修正される必要がない。
【００１２】
可能な設計では、アクセス区間情報によって示されるアクセス区間は、連続するアドレス空間である。
【００１３】
可能な設計では、アクセス区間情報は、アクセス区間開始アドレスおよびアクセス区間長を含む。
【００１４】
可能な設計では、制御ノードに対応するアクセス区間は、第1のアクセス部分区間および第2のアクセス部分区間を含み、第1のアクセス部分区間と第2のアクセス部分区間との間に間隔がある。
【００１５】
可能な設計では、第1のアクセス部分区間は第2のアクセス部分区間に隣接し、アクセス区間情報は、アクセス区間開始アドレス、各アクセス部分区間の長さ、および隣接する2つのアクセス部分区間の間の間隔を含む。
【００１６】
可能な設計では、アクセス区間情報は、アクセス区間照会コマンドに対して規定される応答情報を使用することによってホストに報告され、アクセス区間情報は、応答情報の区間記述フィールドに追加される。
【００１７】
本発明の第2の態様はデータ処理方法を提供し、方法は、ストレージシステムの中の制御ノードによって実行される。ストレージシステムおよびホストは、NVMeoFプロトコルを使用することによって互いに通信し、ストレージシステムは論理ディスクを含む。方法は、ホストによって送られる状態照会コマンドを受信することであって、ここで、状態照会コマンドが、制御ノードに対応する経路の経路状態を報告するように制御ノードに命令するために使用されることと、論理ディスクがアクセス区間を含むとき、論理ディスクがアクセス区間を含むことを示す経路状態をホストに報告することと、経路状態に基づいてホストによって送られるアクセス区間照会コマンドを受信することと、ホストがアクセス区間情報と制御ノードとの間のマッピング関係を記録するように、制御ノードに割り振られたアクセス区間のアクセス区間情報を、区間照会情報に基づいてホストに報告することとを含む。
【００１８】
制御ノードごとにストレージシステムによって設定されるアクセス区間が、NVMeoFプロトコルの状態照会コマンドおよび新たに追加された区間照会コマンドを使用することによって取得される。このようにして、後でI/O要求が受信されると、I/O要求は、I/O要求の中の論理アドレスに対応する区分区間に基づいて、区分区間に対応するコントローラに配信されてよく、それによって、I/O要求の転送を回避する。
【００１９】
本発明の実施形態の第2の態様の様々な可能な設計は、第1の態様の様々な可能な設計と基本的に同じであり、詳細は本明細書で再び説明しない。
【００２０】
本発明の実施形態の第3の態様は、ホストによって実行されるデータ処理方法を提供する。ホストはストレージシステムに接続される。ストレージシステムは複数の制御ノードを含み、ホストは、複数の制御ノードを使用することによってストレージシステムの中の論理ディスクにアクセスする。方法は、I/O要求を受信することであって、ここで、I/O要求が、アクセスされるべきデータの論理アドレスを搬送することと、論理アドレスに対応するアクセス区間を決定することであって、ここで、論理ディスクが複数のアクセス区間を含み、ホストが、各アクセス区間と制御ノードとの間のマッピング関係を記録することと、決定されたアクセス区間に対応する制御ノードにI/O要求を配信することとを含む。
【００２１】
アクセス区間は、ストレージシステムの中の制御ノードごとに設定される。I/O要求が受信されると、I/O要求は、I/O要求の中の論理アドレスに対応する区分区間に基づいて、区分区間に対応するコントローラに配信されてよく、それによって、I/O要求の転送を回避する。
【００２２】
可能な設計では、方法は、複数の制御ノードへ状態照会コマンドを送ることであって、ここで、状態照会コマンドが、制御ノードに対応する経路の経路状態を報告するように複数の制御ノードの各々に命令するために使用されることと、
複数の制御ノードによって報告される経路状態を受信することと、受信された経路状態が、論理ディスクがアクセス区間を含むことを示すとき、経路状態を報告する制御ノードへ区間照会コマンドを送ることと、経路状態を報告する制御ノードによって報告されるアクセス区間情報を受信することと、アクセス区間情報と経路状態を報告する制御ノードとの間のマッピング関係を記録することとをさらに含む。
【００２３】
制御ノードごとにストレージシステムによって設定されるアクセス区間が、NVMeoFプロトコルの状態照会コマンドおよび新たに追加された区間照会コマンドを使用することによって取得され、その結果、ホストは、I/O要求の中の論理アドレスに対応する区分区間に基づいて、区分区間に対応するコントローラにI/O要求を配信してよく、それによって、I/O要求の転送を回避する。
【００２４】
可能な設計では、論理ディスクがアクセス区間を含むことを決定すると、状態照会コマンドを受信する制御ノードは、論理ディスクがアクセス区間を含むことを示す経路状態をホストに報告する。
【００２５】
論理ディスクがアクセス区間を含むことを示す経路状態は、区分区間を照会すべきかどうかをホストが経路状態に基づいて決定できるようにNVMeプロトコルに追加される。
【００２６】
本発明のこの実施形態の他の可能な設計は、第1の態様のいくつかの可能な設計と同じであり、詳細は本明細書で再び説明しない。
【００２７】
本発明の実施形態の第4の態様は、ホストによって実行されるデータ処理方法を提供する。ホストおよびストレージシステムは、外部ネットワークを使用することによって互いに通信する。方法は、外部ネットワークプロトコル区間照会コマンドを取得するために不揮発性メモリエクスプレスNVMe区間照会コマンドを外部ネットワークプロトコルの中にカプセル化することであって、ここで、NVMe区間照会コマンドが、ストレージシステムの中のコントローラに割り振られたアクセス区間を照会するために使用され、アクセス区間がストレージシステムの名前空間に属することと、外部ネットワークプロトコル区間照会コマンドを制御ノードへ送ることと、制御ノードによって送られる外部ネットワークプロトコル区間応答メッセージを受信することであって、ここで、外部ネットワークプロトコル区間応答メッセージが、NVMe区間照会コマンドへの応答を含み、NVMe区間照会コマンドへの応答が、名前空間のアクセス区間情報を含むことと、NVMe区間照会コマンドの応答情報を取得するために外部ネットワークプロトコル区間応答メッセージを構文解析することと、制御ノードのアクセス区間情報をNVMe区間照会コマンドへの応答から取得し、アクセス区間情報を記録することとを含む。
【００２８】
制御ノードごとにストレージシステムによって設定されるアクセス区間が、NVMeoFプロトコルの新たに追加された区間照会コマンドを使用することによって取得される。このようにして、後でI/O要求が受信されると、I/O要求は、I/O要求の中の論理アドレスに対応する区分区間に基づいて、区分区間に対応するコントローラに配信されてよく、それによって、I/O要求の転送を回避する。
【００２９】
可能な設計では、外部ネットワークプロトコル区間照会コマンドを取得するために不揮発性メモリエクスプレスNVMe区間照会コマンドを外部ネットワークプロトコルの中にカプセル化する前に、方法は、
外部ネットワークプロトコル状態照会コマンドを取得するためにNVMe状態照会コマンドを外部ネットワークプロトコルの中にカプセル化することであって、ここで、NVMe状態照会コマンドが、制御ノードに対応する経路の経路状態を照会するために使用されることと、
外部ネットワークプロトコル状態照会コマンドを制御ノードへ送ることと、
制御ノードによって送られる外部ネットワークプロトコル状態応答メッセージを受信することであって、ここで、外部ネットワークプロトコル状態応答メッセージがNVMe状態照会コマンドへの応答を含み、NVMe状態照会コマンドへの応答が経路状態情報を含み、経路状態情報が、名前空間がアクセス区間を含むことを示すことと、
NVMe状態照会コマンドの応答情報を取得するために外部ネットワークプロトコル状態応答メッセージを構文解析することとをさらに含む。
【００３０】
ホストが論理ディスクに対してアクセス区間が割り振られるかどうかを経路状態情報に基づいて決定できるように、経路状態情報は、NVMe経路状態照会コマンドを使用することによってホストに報告されてよい。
【００３１】
本発明のこの実施形態の他の可能な実装形態は、第1の態様の可能な実装形態と同じであり、詳細は本明細書で再び説明しない。
【００３２】
本発明の実施形態の第5の態様は、ストレージシステムの中の制御ノードによって実行されるデータ処理方法を提供する。ホストおよびストレージシステムは、外部ネットワークを使用することによって互いに通信する。方法は、ホストによって送られる外部ネットワークプロトコル区間照会コマンドを受信し、NVMe区間照会コマンドを取得するために外部ネットワークプロトコル区間照会コマンドを構文解析することと、NVMe区間照会コマンドの応答情報を生成することであって、ここで、NVMe区間照会コマンドの応答情報が、制御ノードに対応するアクセス区間情報を含むこと、および外部ネットワークプロトコル区間照会コマンドを取得するためにNVMe区間照会コマンドを外部ネットワークプロトコルの中にカプセル化することと、外部ネットワークプロトコル区間照会コマンドをホストに報告することとを含む。
【００３３】
制御ノードごとにストレージシステムによって設定されるアクセス区間が、NVMeoFプロトコルの新たに追加された区間照会コマンドを使用することによって取得される。このようにして、後でI/O要求が受信されると、I/O要求は、I/O要求の中の論理アドレスに対応する区分区間に基づいて、区分区間に対応するコントローラに配信されてよく、それによって、I/O要求の転送を回避する。
【００３４】
可能な設計では、ホストによって送られる外部ネットワークプロトコル区間照会コマンドを受信する前に、方法は、外部ネットワークプロトコル状態照会コマンドを受信し、不揮発性メモリエクスプレスNVMe状態照会コマンドを取得するために外部ネットワークプロトコル状態照会コマンドを構文解析することであって、ここで、NVMe状態照会コマンドが、制御ノードに対応する経路の経路状態を報告するように制御ノードに命令するために使用されることと、NVMe状態照会コマンドの応答情報を生成し、名前空間がアクセス区間を含むとき、名前空間がアクセス区間を含むことを示す経路状態を、NVMe状態照会コマンドの応答情報に追加することと、外部ネットワークプロトコル状態照会コマンドの応答情報を取得するためにNVMe状態照会コマンドをカプセル化し、外部ネットワークプロトコル状態照会コマンドの応答情報をホストに報告することとをさらに含む。
【００３５】
ホストが論理ディスクに対してアクセス区間が作成されるかどうかを経路状態情報に基づいて決定できるように、経路状態情報は、NVMe経路状態照会コマンドを使用することによってホストに報告されてよい。
【００３６】
本発明のこの実施形態の他の可能な実装形態は、第1の態様の可能な実装形態と同じであり、詳細は本明細書で再び説明しない。
【００３７】
第6の態様によれば、本発明の一実施形態は、ホストをさらに提供する。ホストおよびストレージシステムは、NVMeoFプロトコルを使用することによって互いに通信し、ストレージシステムは論理ディスクを含み、ホストは、ストレージシステムの中の制御ノードを使用することによって論理ディスクにアクセスし、ホストは、第1の態様におけるステップを実行するように構成されたユニットまたは手段をさらに含む。
【００３８】
第7の態様によれば、本発明の一実施形態は、ストレージシステムの中の制御ノードをさらに提供する。ホストおよびストレージシステムは、NVMeoFプロトコルを使用することによって互いに通信し、ストレージシステムは論理ディスクを含み、ホストは、ストレージシステムの中の制御ノードを使用することによって論理ディスクにアクセスし、ホストは、第2の態様におけるステップを実行するように構成されたユニットまたは手段をさらに含む。
【００３９】
第8の態様によれば、本発明の一実施形態は、ホストをさらに提供する。ホストおよびストレージシステムは、NVMeoFプロトコルを使用することによって互いに通信し、ストレージシステムは論理ディスクを含み、ホストは、ストレージシステムの中の制御ノードを使用することによって論理ディスクにアクセスし、ホストは、第3の態様におけるステップを実行するように構成されたユニットまたは手段を含む。
【００４０】
第9の態様によれば、本発明の一実施形態は、ホストをさらに提供する。ホストおよびストレージシステムは、外部ネットワークを使用することによって互いに通信し、ホストは、第4の態様におけるステップを実行するように構成されたユニットまたは手段を含む。
【００４１】
第10の態様によれば、本発明の一実施形態は、ストレージシステムの中の制御ノードをさらに提供する。ホストおよびストレージシステムは、外部ネットワークを使用することによって互いに通信し、制御ノードは、第5の態様におけるステップを実行するように構成されたユニットまたは手段を含む。
【００４２】
第11の態様によれば、本発明の一実施形態は、ホストをさらに提供する。ホストおよびストレージシステムは、NVMeoFプロトコルを使用することによって互いに通信する。ストレージシステムは論理ディスクを含む。ホストは、ストレージシステムの中の制御ノードを使用することによって論理ディスクにアクセスする。ホストは、メモリおよびプロセッサを含む。メモリは、プログラムおよびデータを記憶するように構成される。プロセッサは、メモリの中に記憶されたプログラムを実行させ、メモリの中に記憶されたデータに基づいて、第1の態様、第3の態様、または第4の態様において提供された方法を実行するように構成される。
【００４３】
第12の態様によれば、本発明の一実施形態は、ストレージシステムの中の制御ノードをさらに提供する。ホストおよびストレージシステムは、NVMeoFプロトコルを使用することによって互いに通信する。ストレージシステムは論理ディスクを含む。ホストは、ストレージシステムの中の制御ノードを使用することによって論理ディスクにアクセスする。制御ノードは、メモリおよびプロセッサを含む。メモリは、プログラムおよびデータを記憶するように構成される。プロセッサは、メモリの中に記憶されたプログラムを実行させ、メモリの中に記憶されたデータに基づいて、第2の態様または第5の態様において提供された方法を実行するように構成される。
【図面の簡単な説明】
【００４４】
【図１】本発明の一実施形態が適用されるシステムのアーキテクチャ図である。
【図２】本発明の一実施形態による、ストレージシステムの中の論理ディスクにアクセスするためにホストによって使用されるN個の経路の概略図である。
【図３ａ】本発明の一実施形態による、ストレージシステムの中の論理ディスクのアドレス空間を、連続するN個のアドレス空間に分割する概略図である。
【図３ｂ】本発明の一実施形態による、ストレージシステムの中の論理ディスクのアドレス空間を、連続しないN個のアドレス空間に分割する概略図である。
【図４】本発明の一実施形態によるホストのアーキテクチャ図である。
【図５】本発明の一実施形態による、論理ディスクにアクセスするために使用される複数の経路を管理するための方法のフローチャートである。
【図６】本発明の一実施形態による経路状態照会コマンドの概略図である。
【図７】本発明の一実施形態による状態報告情報の概略図である。
【図８】本発明の一実施形態による、NVMeoFプロトコルにおいて規定される経路状態の概略図である。
【図９】本発明の一実施形態による、状態報告情報の中で空間依存状態が搬送される概略図である。
【図１０】本発明の一実施形態による区間照会コマンドの概略図である。
【図１１】本発明の一実施形態による区間報告情報の概略図である。
【図１２】本発明の一実施形態による、そのアドレス空間が連続するアクセス区間の区間記述情報を、区間報告情報が搬送する概略図である。
【図１３】本発明の一実施形態による、そのアドレス空間が連続しないアクセス区間の区間記述情報を、区間報告情報が搬送する概略図である。
【図１４】本発明の一実施形態による、I/O要求を実行するための制御ノードを割り振るフローチャートである。
【図１５】本発明の一実施形態によるホストのモジュール図である。
【図１６】本発明の一実施形態による、ストレージシステムの中の任意の制御ノードのモジュール図である。
【発明を実施するための形態】
【００４５】
図1は、本発明の一実施形態が適用されるシステムのアーキテクチャ図である。ホスト100は、ホストバスアダプタ(Host Bus Adapter、HBA)101などの2つのホストポートを使用することによって2つのスイッチ200に接続される。2つのスイッチ200は両方とも、ストレージシステム300に接続される。2つのスイッチ200および2つのホストポート101は、2つのスイッチ200のうちの一方または2つのホストポートのうちの一方に欠陥があるときにチャネルが壊れることを防止するために配設される。
【００４６】
ストレージシステム300は、node 1〜Nなどの複数の制御ノード302を含む。各制御ノード302は、2つのストレージポート301(たとえば、HBAカード)を使用することによって2つのスイッチ(switch)200に接続される。このようにして、ホストと各制御ノード301との間に2つの経路がある。2つの経路は互いに冗長である。経路のうちの一方に欠陥がある場合、ホスト100と制御ノード301との間でデータを送信するために他方の経路が使用され得る。ストレージシステム300は、複数のSSDによって構成された記憶デバイス304を含む。記憶デバイス304は、独立ディスク冗長アレイ(Redundant Array of Independent Disks、RAID)またはジャスト・ア・バンチ・オブ・フラッシュ(Just a Bunch of Flash)であってよい。いくつかの実施形態では、記憶デバイス304は仮想SSDをさらに含む。仮想SSDは、NVMeoF(Non-Volatile Memory express over Fabric)プロトコルを使用することによって記憶デバイス304と通信する別の記憶デバイスを、記憶デバイス304にマッピングすることによって取得される。NVMeoFプロトコルを使用するとともにローカル記憶デバイスの仮想SSDとしてSSDを使用することによって、リモートSSDをローカル記憶デバイスにマッピングすることは、従来技術に関係し、詳細は本明細書で説明しない。ホスト100およびストレージシステム300は、NVMeoFプロトコルを使用することによって互いに通信する。
【００４７】
記憶デバイス304の中のローカルSSDおよび/または仮想SSDは、論理ディスク303を作成するために使用され得る。論理ディスク303は名前空間(Namespace)であってよく、名前空間とは、NVMeoFプロトコルにおいて規定される論理ディスクに対する表現の手段である。図1は、1つの論理ディスク303のみを示す。しかしながら、実際の適用例では、記憶デバイス304の中に複数の論理ディスクが作成されてよい。1つの論理ディスクが使用のために複数のホストに割り振られてよく、または複数の論理ディスクが使用のために1つのホストに割り振られてもよい。
【００４８】
本発明のこの実施形態では、図1に示すように、ホスト100は、N個の制御ノード302を使用することによって、ホスト100に割り振られた論理ディスク303にアクセスし得る。ホスト100と論理ディスク303との間の経路の説明を容易にするために、図2では、図1におけるホスト100と論理ディスクとの間の物理リンクが省略され、論理ディスク303にアクセスするためにホスト100によって使用されるN個の経路を取得するために、同じ制御ノードを通過する2つの冗長経路が1つの経路に組み合わせられる。
【００４９】
ストレージシステム300の中で、ユーザによって指定された任意の制御ノード302が、論理ディスク303を作成および管理し得る。本明細書では、ユーザによって指定された制御ノードがnode 1であると想定する。論理ディスク303が作成された後、node 1は、論理ディスク303にディスク識別子(Identification、ID)およびディスクコードを割り振る。ディスク識別子は、論理ディスクを一意に識別し得る。たとえば、ディスク識別子は、NVMeoFプロトコルに適用されるグローバル一意識別子(Globally Unique Identifier、GUID)、製造業者情報、および製品情報を含む。ディスクコードは、記憶デバイス304の中に作成された異なる論理ディスクの間を区別するために使用される。たとえば、論理ディスク303のディスクコードは、namespace 1として表されてよい。
【００５０】
論理ディスク303のディスク識別子およびディスクコードが割り振られた後、node 1は論理ディスク303に仮想ホストを割り振る。たとえば、node 1は、論理ディスク303に仮想ホスト1を割り振り、論理ディスク303と仮想ホストとの間のマッピング関係を次のように、すなわち、仮想ホスト1:namespace 1のように記録する。
【００５１】
論理ディスク303のディスク識別子およびディスクコードが割り振られた後、node 1は、論理ディスク303にアクセスする制御ノードを構成し得る。たとえば、論理ディスク303に対してN個の制御ノードが構成される。制御ノード303の間を区別するために、ストレージシステム300は、各制御ノード303に一意識別子を、すなわち、ノード識別子を割り振る。論理ディスク303に対して構成された制御ノードは、以下のマッピング関係、すなわち、namespace 1:node 1、node 2、…、node Nを使用することによって表されてよい。
【００５２】
本発明のこの実施形態では、制御ノード302ごとに、node 1は制御ノード302にとってアクセス可能なアクセス区間をさらに設定し得る。図3aは、論理ディスク303のアドレス空間を、連続するN個のアドレス空間にnode 1によって分割する概略図である。たとえば、論理ディスク303が1GBの記憶空間を有する場合、node 1に割り振られる区間は0〜99MBであり、node 2に割り振られる区間は100〜199MBであり、node 3に割り振られる区間は200〜399MBであり、...、node Nに割り振られる区間は800〜1023MBである。各アクセス区間は、連続するアドレス空間であり、アクセス区間は、サイズが同じであっても異なってもよい。
【００５３】
別の実施形態では、node 1によって各制御ノードに割り振られるアクセス区間は連続しない。図3bに示すように、node 1は、最初に、論理ディスク303のアドレス空間をサイズが等しい少なくとも2つのアドレス部分空間に分割し、次いで、各アドレス部分空間をN個のアクセス部分区間に分割する。各アクセス部分区間は、1つの制御ノードに対応する。アドレス部分空間は、同じ方式で分割される。具体的には、各アドレス部分空間の中で、同じ制御ノードに対応するアクセス部分区間は、アドレス部分空間の中で同じサイズおよび同じ順序を有する。各制御ノードに対応する1組のアクセス部分区間が、制御ノードのアクセス区間を構成する。たとえば、論理ディスク303が4つのアドレス部分空間に分割される場合、node 1のアクセス区間は0〜a0、d0+1〜a1、およびd1+1〜a2であり、node 2のアクセス区間はa0+1〜b0、a1+1〜b1、およびa2+1〜b2であり、node Nのアクセス区間はc0+1〜d0、c1+1〜d1、およびc2+1〜d2である。各node 1に対応するアクセス区間のアクセス部分区間は、同じサイズおよび同じ間隔を有する。各制御ノードに割り振られたアクセス区間の記録中、以下のもの、すなわち、アクセス区間の開始アドレス、アクセス区間を構成するアクセス部分区間のアドレス長、アクセス部分区間の間のアドレス間隔、およびアクセス区間を構成するアクセス部分区間の数量が、記録され得る。N個の制御ノード302にアクセス区間が割り振られた後、ホストの要求に応答して、N個の制御ノード302は、制御ノード302に対応するそれぞれのアクセス区間をホスト100に報告し、ホストは、アクセス区間に基づいてI/O要求を配信し得る。アクセス区間を報告するための方法が以下で説明される。本発明のこの実施形態では、記憶デバイス304の中に論理ディスク303以外の論理ディスクがさらに作成される場合、実際の要件に基づいた、実際の要件に基づく別の論理ディスク用のアクセス区間の割振り。
【００５４】
図1に示すように、ストレージポート301およびスイッチ200を使用することによってN個の制御ノードがホストポート101に接続されると、各制御ノード302は、制御ノード302に接続されたホストポート101の識別子を取得し得、次いで、仮想ホストと論理ディスク303のディスクコードとの間のマッピング関係を、ホストポート識別子と論理ディスクのディスクコードとの間のマッピング関係に置き換えてよい。置き換えられたマッピング関係は、HBA1、HBA2(仮想機械1): namespace 1として表されてよい。本発明のこの実施形態では、冗長性の目的で、ホスト100は、2つのホストポート101を使用することによってストレージシステム300に接続され、したがって、2つのホストポートの2つの識別子、すなわち、HBA1およびHBA2が、マッピング関係の中に記録される。
【００５５】
生成される様々なマッピング関係、たとえば、論理ディスクのディスクコードとN個の制御ノード302のノード識別子との間のマッピング関係、ホストポート識別子と論理ディスクのディスクコードとの間のマッピング関係、および各制御ノードの識別子とアクセス区間との間のマッピング関係が、すべてのN個の制御ノード302にとってアクセス可能な記憶領域の中に記憶され得る。
【００５６】
図4は、本発明の一実施形態によるホスト100のアーキテクチャ図である。2つのホストポート101に加えて、ホスト100はプロセッサ102およびメモリ103をさらに含み、メモリ103は多重経路プログラム104およびオペレーティングシステム105を記憶する。プロセッサ102は、オペレーティングシステム105および多重経路プログラム104を実行し、その結果、ホスト100は、論理ディスク303にアクセスするために使用される複数の経路を管理する。ホスト100が、論理ディスク303にアクセスするために使用される複数の経路を管理することが、図5に示すフローチャートを使用することによって以下で説明される。
【００５７】
ステップS501:ストレージシステム300がホスト100に接続されることをホスト100のオペレーティングシステム105が検出すると、オペレーティングシステム105は、ホスト100とストレージシステム300との間の複数の経路(すなわち、N個の制御ノードのストレージポート301とホストポート101との間の複数の経路)を使用することによって、ディスク報告コマンドをストレージシステム300へ別個に送る。ディスク報告コマンドがホストポート101を通過すると、ホストポートの識別子がディスク報告コマンドに追加される。
【００５８】
ステップS502:ストレージシステム300の中の各制御ノード302がディスク報告コマンドを受信した後、制御ノード302は、ディスク報告コマンドの中のホストポートの識別子を取得し、ホストポートの識別子、およびホストポート識別子と論理ディスクのディスクコードとの間のマッピング関係に基づいて、ホストポートの識別子に対応するディスクコードを決定する。
【００５９】
ステップS503:ストレージシステム300の中の各制御ノード302は、ディスクコードに対応する論理ディスクに対する報告情報を生成し、報告情報にディスクコードを追加し、報告情報をホスト100に報告する。報告情報を報告するプロセスが、一例としてnode 1を使用することによって以下で説明される。node 1は、2つのHBAカードを使用することによってホストの2つのHBAカードに接続され、したがって、node 1とホストとの間に2つの経路がある。2つのHBAカードを使用することによって2つのディスク報告コマンドを受信すると、node 1は、2つのディスク報告コマンドから2つのHBAカードの識別子を取得し、次いで、2つのHBAカードの識別子に基づいて同じディスクコードを取得する。ディスクコードを取得した後、node 1は、node 1とホスト100との間の2つの経路の各々を使用することによって、ディスクコードをホスト100に報告し得る。
【００６０】
NVMeoFプロトコルにおいて明記されるように、報告情報を報告するプロセスでは、報告情報を報告する制御ノードの識別子、ならびに報告情報が通過するストレージポート301(たとえば、node 1の2つのHBAポート)およびホストポート101が、報告情報に追加される。このようにして、報告情報の中のコントローラ識別子、ストレージポート、ホストポート、およびディスクコードが、ディスクコードを報告するために使用される経路を表すために使用される。
【００６１】
ステップS504:ストレージシステム300の中の各制御ノード302によって報告される報告情報を受信した後、ホスト100の多重経路プログラム104は、報告情報の各断片の中の経路情報によって示される経路を使用することによってディスク識別子照会コマンドを送り、ここで、照会コマンドは、報告情報の中のディスクコードを含む。
【００６２】
ステップS505:照会コマンドを受信した後、ストレージシステム300の中の各制御ノード302は、照会コマンドの中のディスクコードに基づいて、ディスクコードに対応するディスク識別子を取得する。
【００６３】
ステップS506:ストレージシステム300の中の各制御ノード302は、照会コマンドを送るために使用された経路を使用することによって、ディスクコードに対応するディスク識別子を報告する。論理ディスク303を作成するとき、ストレージシステム300は、各論理ディスク303にディスク識別子およびディスクコードを割り振り、したがって、ディスクコードを受信した後、ストレージシステム300は、ディスクコードに基づいてディスク識別子を取得し得る。
【００６４】
ステップ507:ホスト100の多重経路プログラム104は、報告されたディスク識別子に基づいて、ディスク識別子に対応する論理ディスクにアクセスするために使用される経路を決定し、決定された経路を管理する。
【００６５】
具体的には、初めてディスク識別子を受信すると、多重経路プログラム104は、ディスク識別子に基づいてディスクオブジェクトを作成し、ディスクオブジェクトにディスクオブジェクト名を割り振り、ディスクオブジェクト名とディスク識別子との間のマッピング関係を確立し、ディスク識別子を報告するために使用される経路をディスクオブジェクトの経路として記録する。さらに、多重経路プログラム104は、ディスクのアドレス空間および容量サイズなどの他の関連情報を、ディスクオブジェクトの中にさらに記録し得る。後で多重経路プログラム104が同じディスク識別子を受信する場合、多重経路プログラム104は、後でディスク識別子を報告するために使用される経路を、ディスクオブジェクトの別の経路として記録し得る。
【００６６】
本発明のこの実施形態では、信頼性を保証するために、各制御ノード302とホスト100との間に冗長経路が設定される。多重経路プログラムが、各論理ディスク303にアクセスするために使用される経路を管理するとき、ホスト100とすべての制御ノード302との間の冗長経路は、1つの経路に組み合わせられる。組合せ中、同じ制御ノードの経路が、制御ノードの識別子に基づいて一緒に記録され得る。このようにして、ホストは、I/O要求を配信するための冗長経路のうちの1つを選択し、ある経路に欠陥がある場合、ホストは、I/O要求を配信するために、欠陥のある経路を置き換えるように別の経路を選択する。説明しやすいように、組み合わせられた経路が、以下で説明のために使用される。言い換えれば、各制御ノード302とホスト100との間に1つの経路しかない事例が、説明のために使用される。
【００６７】
このようにして、多重経路ソフトウェア104は、ディスクオブジェクトを使用することによって、ディスクにアクセスするために使用される複数の経路を管理し得、たとえば、新たな経路を発見してよく、壊れた経路を削除してよく、事前設定されたポリシーに従って、I/O要求を配信するために使用される経路を選択してよい。
【００６８】
たとえば、多重経路ソフトウェア104が、そのディスクコードがnamespace 1である論理ディスクのディスク識別子を最初に経路1上で受信する場合、多重経路ソフトウェア104は、namespace 1に対してディスクオブジェクトを作成し、ディスクオブジェクトにディスクオブジェクト名sdaを割り振り、ディスクオブジェクト名sdaとディスク識別子との間のマッピング関係を確立し、ディスクオブジェクトの第1の経路として経路1を記録する。多重経路ソフトウェア104が、後で経路2上および経路3上でnamespace 1のディスク識別子をさらに受信する場合、多重経路ソフトウェア104は、ディスクオブジェクトの経路として経路2および経路3も記録する。たとえば、この実施形態では、多重経路ソフトウェアが、2N個の経路上で2N個のディスク識別子namespace 1を受信し、同じ制御ノードの経路を組み合わせた後、多重経路ソフトウェアは、ホストとストレージシステムとの間のN個の経路を管理する。
【００６９】
ステップS508:論理ディスク用のアクセス経路を作成した後、多重経路ソフトウェア104は、経路状態照会コマンドをストレージシステム300へ送り、ここで、状態照会コマンドは、制御ノードに対応する経路の経路状態を報告するように各制御ノードに命令するために使用される。
【００７０】
本発明のこの実施形態では、ホスト100およびストレージシステム300は、NVMeoFプロトコルを使用することによって互いに通信する。ホストは、最初に不揮発性メモリエクスプレス(Non-Volatile Memory express、NVMe)経路状態照会コマンドを生成し、次いで、外部ネットワークプロトコル区間照会コマンドを取得するためにNVMe区間照会コマンドを外部ネットワークプロトコルの中にカプセル化する。このステップにおいて、送られる経路状態照会コマンドは外部ネットワークプロトコル区間照会コマンドである。
【００７１】
NVMe経路状態照会コマンドは、既存のNVMeプロトコルにおいて規定されるコマンドである。NVMe経路状態照会コマンドは、NVMeプロトコルにおけるGet Log Page command Dword 10に従って規定されるコマンドである。NVMe経路状態照会コマンドが図6に示される。経路状態照会コマンドのコマンド識別子OChがlog page identifier(LID)フィールドに追加され、LIDフィールドは経路状態照会コマンドのバイト07:00にある。コマンドの中の他のフィールドは本発明のこの実施形態に関係せず、本明細書で詳細には説明しない。本発明のこの実施形態に関係するフィールドだけが、以下の説明において説明される。
【００７２】
本発明のこの実施形態では、外部ネットワークプロトコルは、ファイバーチャネル(Fibre channel、FC)、インフィニバンド(InfiniBand)技術、RoCe(RDMA over Converged Ethernet)、iWARP(RDMA over TCP)、周辺構成要素相互接続エクスプレス(Peripheral Component Interconnect Express、PCIe)、または別のネットワークプロトコルであってよい。
【００７３】
ステップS509:経路状態照会コマンドを受信する制御ノードは、経路状態を取得し、状態報告情報に経路状態を追加し、ホストの多重経路ソフトウェア104に状態報告情報を報告する。
【００７４】
経路状態照会コマンドが外部ネットワークプロトコル区間照会コマンドであるので、経路状態照会コマンドを受信した後、経路状態照会コマンドを受信する制御ノードは、NVMe経路状態照会コマンドを取得するために最初に経路状態照会コマンドを構文解析し、次いで、NVMe経路状態照会コマンドの命令に従って、経路状態照会コマンドを受信する制御ノードに対応する経路の経路状態を照会する。
【００７５】
NVMeoFプロトコルでは、いくつかの経路状態があらかじめ規定される。図8に示すように、状態コード01h〜04hによって示される経路状態は、既存のプロトコルにおいて規定される経路状態である。状態コード01hは、最適化状態(すなわち、ANA Optimized State)を示す。状態コード01hを含む状態報告情報を受信した後、ホスト100は、状態報告情報を報告するために使用される経路を最適化経路に設定する。状態コード02hは、非最適化状態(すなわち、ANA Non-Optimized State)を示す。コード02hを含む状態報告情報を受信した後、ホスト100は、状態報告情報を報告するために使用される経路を非最適化経路に設定する。状態コード03hは、アクセス不可能状態(すなわち、ANA inaccessible State)を示す。状態コード03hを含む状態報告情報を受信した後、ホスト100は、状態報告情報を報告するために使用される経路をアクセス不可能経路に設定する。状態コード04hは、永続的消失状態(すなわち、ANA Persistent Loss State)を示す。状態コード03hを含む状態報告情報を受信した後、ホスト100は、状態報告情報を報告するために使用される経路を障害経路に設定する。
【００７６】
状態コード05hによって示される空間依存状態(ANA LBA-Dependent State)は、本発明のこの実施形態における新たに追加された状態である。空間依存状態は、論理ディスク303が複数のアクセス区間に分割されることを示す。状態コード05hを含む状態報告情報を受信した後、ホスト100は、この状態を報告する制御ノードに対応するアクセス区間を取得する。特定の取得方式が、以下の説明において詳細に説明される。
【００７７】
経路状態照会コマンドを受信する制御ノードは、以下の方式、すなわち、論理ディスク303が複数のアクセス区間に分割されるかどうかを決定すること、および論理ディスク303が複数のアクセス区間に分割されないとき、制御ノードに対応する経路の経路状態を取得することで、経路状態を取得する。ストレージシステムの中で、あらかじめ各経路の状態が識別される。たとえば、論理ディスク303にアクセスするために使用される最適化経路および非最適化経路が事前設定され、あらかじめ識別されているアクセス不可能経路および障害経路も識別される。論理ディスク303が複数のアクセス区間に分割されるとき、経路状態が空間依存状態であることが決定され得る。経路状態を取得した後、経路状態照会コマンドを受信する制御ノードは、図7に示す状態報告情報を使用することによって、各経路状態の状態コードをホスト100に報告する。
【００７８】
経路状態が決定された後、NVMe経路照会コマンドの応答情報が生成される。図7は、既存のNVMeoFプロトコルにおけるNVMe経路照会コマンドの応答情報のフォーマットを示す。応答情報は、ホスト100にとってアクセス可能な論理ディスクの数量を搬送するために使用されるディスク数量フィールドを含む。数量は、報告情報のバイト07:04に追加される。本発明のこの実施形態では、説明のための一例として1つの論理ディスクしか使用されず、したがって、本明細書では1が埋められる。状態報告情報は、経路状態を搬送するために使用される経路状態フィールドをさらに含む。経路状態は、報告情報のバイト16に追加される。論理ディスク303が複数のアクセス区間に分割されないとき、経路状態を示すコード01h〜04hのうちの1つがバイト16の中に埋められる。たとえば、制御ノードに対応する経路の経路状態が最適化状態である場合、制御ノードは、最適化状態に対応する状態コード01hをバイト16に追加してよい。論理ディスク303が複数のアクセス区間に分割されるとき、図9に示すように、空間依存状態を示すコード05hが状態報告情報のバイト16に追加される。
【００７９】
NVMe経路照会コマンドの生成された応答情報は、外部ネットワークプロトコル状態応答メッセージを取得するために外部ネットワークプロトコルの中にカプセル化され、外部ネットワークプロトコル状態応答メッセージは、報告情報として使用されホストに報告される。
【００８０】
ステップS510:報告情報を受信した後、ホストの多重経路ソフトウェア104は、報告情報の中の経路状態が、論理ディスク303が複数のアクセス区間を含むことを示すかどうかを決定する。
【００８１】
報告情報を受信した後、ホストの多重経路ソフトウェア104は、NVMe状態照会コマンドのものであり報告情報の中にカプセル化されている応答情報を取得するために報告情報を構文解析し、次いで、経路状態を示す状態コードを応答情報から取得する。状態コードが05hである場合、多重経路ソフトウェア104は、論理ディスク303が複数のアクセス区間を含むことを決定する。状態コードが01h〜04hのうちの1つである場合、多重経路ソフトウェア104は、論理ディスクが複数のアクセス区間に分割されないことを決定する。
【００８２】
ステップS511:論理ディスクが複数のアクセス区間に分割されないことを決定すると、多重経路ソフトウェアは、I/O経路選択中での多重経路ソフトウェア104による参照のために、状態報告情報を報告するために使用される経路の経路状態として経路コードを記録する。
【００８３】
ステップS512:論理ディスクが複数のアクセス区間に分割されないことを決定すると、多重経路ソフトウェア104は、区間照会コマンドをストレージシステム300へ送り、ここで、区間照会コマンドは、制御ノードに割り振られたアクセス区間を報告するようにストレージシステムの中の各制御ノードに命令するために使用される。
【００８４】
区間照会コマンドを送る前に、多重経路ソフトウェアは、最初にNVMe区間照会コマンドを生成する。NVMe区間照会コマンドも、NVMeプロトコルにおけるGet Log Page command Dword 10に従って規定されるコマンドである。しかしながら、既存のNVMeプロトコルにおいてNVMe区間照会コマンドはない。NVMe区間照会コマンドは、Get Log Page command Dword 10に従って新たに規定されるコマンドである。区間照会コマンドは、新たにNVMeoFプロトコルに追加されるサブコマンドである。図10に示すように、NVMe区間照会コマンドのコマンドフォーマットは、NVMe経路状態照会コマンドのフォーマットと同じである。区間照会コマンドのLIDフィールドがNVMe区間照会コマンドのコマンド識別子、たとえば、0Dhを搬送するという点で差異がある。NVMe区間照会コマンドが生成された後、NVMe区間照会コマンドは、外部ネットワークプロトコル区間照会コマンドを取得するために外部ネットワークプロトコルの中にカプセル化され得る。外部ネットワークプロトコル区間照会コマンドは、区間照会コマンドである。
【００８５】
ストレージシステム300において、NVMe区間照会コマンドに対してNVMe区間照会コマンドの応答情報が規定される。図11に示すように、NVMe区間照会コマンドの応答情報の名前空間識別子フィールドは、論理ディスクのディスクコード、たとえば、namespace 1を搬送するために使用される。応答情報のバイト03:00において、NVMe区間照会コマンドの応答情報のアクセス区間数量フィールドは、区間報告情報によって搬送されるアクセス区間の数量を搬送するために使用される。応答情報のバイト11:08において、本発明のこの実施形態では各制御ノードが1つの論理ディスクにしかアクセスしないので、1つのアクセス区間がある。他の実施形態では、ホスト100は、制御ノードを使用することによって、論理ディスク303に加えて別の論理ディスクにアクセスしてよく、したがって、本明細書において中に埋められるアクセス区間の数量は1でなくてよい。NVMe区間照会コマンドの応答情報は、アクセス区間記述フィールドをさらに含む。アクセス区間記述フィールドは、アクセス区間のアクセス区間情報を搬送するために使用される。区間記述フィールドは、応答情報のバイト12:27、たとえば、user data segment descriptor 1にある。区間報告情報が複数のアクセス区間を搬送するとき、複数のアクセス区間記述フィールドが応答情報に追加されてよい。たとえば、アクセス区間についての情報は、バイト27に後続するバイトの中に連続的に埋められる。アクセス区間の記述が図12および図13に示される。
【００８６】
図3aおよび図3bを参照すると、分割を通じてアクセス区間を取得するための2つの方式、すなわち、図3aに示す連続するアドレス空間用の分割方式、および図3bに示す連続しないアドレス空間用の分割方式がある。
【００８７】
連続するアドレス空間用の分割方式がアクセス区間に対して使用される場合、図13に示すように、アクセス区間記述情報は、アクセス区間開始アドレスを搬送するために使用されるアクセス区間開始アドレスフィールドを含む。たとえば、アクセス区間記述情報のバイト07:00において、区間長フィールドがさらに含まれ、アクセス区間長を搬送するために使用される。たとえば、区間記述情報のバイト07:00において、アドレス空間が連続するのでアクセス部分区間がなく、アクセス部分区間間隔を搬送するバイト15:12は0である。連続しないアドレス空間用の分割方式がアクセス区間に対して使用される場合、アクセス区間のアドレスは連続せず、バイト07:00は、最初のアクセス部分区間の開始アドレスを表し、バイト11:08は、各アクセス部分区間の長さを表し、バイト15:12は、隣接する2つのアクセス部分区間の間の間隔を表す。
【００８８】
ステップS513:ストレージシステムの中の各制御ノードは、区間照会コマンドを受信し、次いで、区間報告情報を生成し、区間報告情報をホスト100に報告する。
【００８９】
区間照会コマンドを受信すると、照会コマンドを受信する制御ノードは、NVMe区間照会コマンドを取得するために区間照会コマンドを構文解析し、NVMe区間照会コマンドの応答情報の既定のフォーマットに基づいて、照会コマンドを受信する制御ノードのアクセス区間をNVMe区間照会コマンドの応答情報に追加し、外部ネットワークプロトコル区間応答メッセージを形成するためにNVMe区間照会コマンドの応答情報を外部ネットワークプロトコルの中にカプセル化し、ホスト100に報告するための区間報告情報として外部ネットワークプロトコル区間応答メッセージを使用する。
【００９０】
ステップS514:区間報告情報を受信した後、ホストの多重経路ソフトウェア104は、区間報告情報からアクセス区間情報を取得し、次いで、区間報告情報を報告する制御ノードに対応するアクセス区間情報を記録し、この場合、I/O要求を受信したときの情報に基づいてI/O要求を割り振ってよい。
【００９１】
アクセス区間情報を取得すると、ホストの多重経路ソフトウェア104は、最初に、NVMe区間照会コマンドの応答情報を取得するために区間報告情報を構文解析し、次いで、NVMe区間照会コマンドの応答情報からアクセス区間情報を取得する。
【００９２】
図14は、ホスト100がI/O要求を受信するとき、I/O要求を実行するための制御ノードを割り振るフローチャートである。
【００９３】
ステップ1301:ホスト100がI/O要求を受信し、ここで、I/O要求は、アクセスされるべきデータの論理アドレスを搬送する。
【００９４】
ステップ1302:ホスト100は、論理アドレスに対応するアクセス区間を決定する。
【００９５】
ステップ1303:ホスト100は、決定されたアクセス区間に基づいて、I/O要求を処理する制御ノードを決定する。
【００９６】
ステップ1304:ホスト100はI/O要求を制御ノードに配信し、制御ノードがI/O要求を処理する。
【００９７】
このようにして、同じ論理アドレスを搬送するI/O要求が、異なる制御ノードに処理のために配信されることを防止するために、かつI/O要求の転送を回避し、それによって、I/O要求の遅延を小さくするために、ホストによって配信されるI/O要求は、アクセスされるべきデータの論理アドレスに対応するアクセス区間に対応する制御ノードによって処理されてよい。
【００９８】
図15および図16は、それぞれ、本発明の一実施形態による、ホストのモジュール図、およびストレージシステムの中の任意の制御ノードのモジュール図である。ホストは、経路管理モジュール1501、経路状態照会モジュール、区間照会モジュール1503、区間記録モジュール1504、区間決定モジュール1505、およびI/O配信モジュール1506を含む。制御ノードは、ディスクコード報告モジュール1601、ディスク識別子報告モジュール1602、経路状態報告モジュール、および区間報告モジュール1604を含む。
【００９９】
ホストの経路管理モジュール1501は、ストレージシステム300がホスト100に接続されることをホスト100のオペレーティングシステム105が検出すると、ホスト100とストレージシステム300との間の複数の経路の各々を使用することによってディスク報告コマンドをストレージシステム300へ送るように構成される。
【０１００】
ディスク報告コマンドを受信した後、ストレージシステム300の中の制御ノードのディスクコード報告モジュール1601は、ディスク報告コマンドの中のホストポート識別子を取得し、ホストポート識別子、およびホストポート識別子と論理ディスクのディスクコードとの間のマッピング関係に基づいて、ホストポート識別子に対応するディスクコードを決定し、次いで、ディスクコードに対応する論理ディスクに対して報告情報を生成し、報告情報にディスクコードを追加し、報告情報をホスト100に報告する。
【０１０１】
ストレージシステム300の中の各制御ノード302によって報告される報告情報を受信した後、ホストの経路管理モジュール1501は、報告情報の各断片の中の経路情報によって示される経路を使用することによって、ディスク識別子照会コマンドを送る。照会コマンドは、報告情報の中のディスクコードを含む。
【０１０２】
照会コマンドを受信した後、ストレージシステム300の中の制御ノードのディスク識別子報告モジュール1602は、照会コマンドの中のディスクコードに基づいて、ディスクコードに対応するディスク識別子を取得し、照会コマンドを送るために使用された経路を使用することによって、ディスクコードに対応するディスク識別子を報告する。
【０１０３】
ホストの経路管理モジュール1501は、報告されたディスク識別子に基づいて、ディスク識別子に対応する論理ディスクにアクセスするために使用される経路を決定し、決定された経路を管理する。
【０１０４】
ホストの経路管理モジュール1501によって実行される機能は、図5の中のステップS501、S504、およびS507において実行される機能と同じである。制御ノードのディスクコード報告モジュール1601によって実行される機能は、図5の中のステップS502およびS503において実行される機能と同じであり、制御ノードのディスク識別子報告モジュール1602によって実行される機能は、図5の中のステップS505およびS507において実行される機能と同じである。詳細については、図5の中の対応するステップの説明を参照されたい。
【０１０５】
論理ディスクに対してアクセス経路が作成された後、ホストの経路状態照会モジュール1502は、経路状態照会コマンドをストレージシステム300へ送る。状態照会コマンドは、制御ノードに対応する経路の経路状態を報告するように各制御ノードに命令するために使用される。経路状態照会モジュール1502によって実行される機能は、ステップS508において実行される機能と同じである。経路状態照会モジュール1502の特定の実装詳細については、ステップS508の関連する説明を参照されたい。
【０１０６】
経路状態照会コマンドを受信すると、記憶ノードの経路状態報告モジュール1603は、状態報告情報に経路状態を追加して、状態報告情報をホストに報告する。経路状態報告モジュール1603の特定の実装詳細については、ステップS509の関連する説明を参照されたい。
【０１０７】
報告情報を受信した後、ホストの区間照会モジュール1503は、報告情報の中の経路状態が、論理ディスク303が複数のアクセス区間を含むことを示すかどうかを決定する。論理ディスクが複数のアクセス区間に分割されないことを決定すると、区間照会モジュール1503は、I/O経路選択中での多重経路ソフトウェア104による参照のために、状態報告情報を報告するために使用される経路の経路状態として経路コードを記録する。論理ディスクが複数のアクセス区間に分割されないことを決定すると、区間照会モジュール1503は、区間照会コマンドをストレージシステム300へ送る。区間照会コマンドは、制御ノードに割り振られたアクセス区間を報告するようにストレージシステムの中の各制御ノードに命令するために使用される。区間照会モジュール1503の特定の実装詳細については、ステップS510〜S512の関連する説明を参照されたい。
【０１０８】
制御ノードの区間報告モジュール1604は、区間照会コマンドを受信し、次いで、区間報告情報を生成し、区間報告情報をホスト100に報告する。区間報告モジュール1504の特定の実装詳細については、ステップS513の関連する説明を参照されたい。
【０１０９】
区間報告情報を受信した後、ホストの区間記録モジュール1504は、区間報告情報からアクセス区間情報を取得し、次いで、区間報告情報を報告する制御ノードに対応するアクセス区間情報を記録し、この場合、I/O要求を受信したときの情報に基づいてI/O要求を割り振ってよい。
【０１１０】
ホストの区間決定モジュール1505は、I/O要求を受信することであって、ここで、I/O要求が、アクセスされるべきデータの論理アドレスを搬送することと、論理アドレスに対応するアクセス区間を決定することとを行うように構成される。
【０１１１】
I/O配信モジュール1506は、決定されたアクセス区間に基づいて、I/O要求を処理する制御ノードを決定し、次いで、I/O要求を制御ノードに配信するように構成され、制御ノードがI/O要求を処理する。
【０１１２】
上記の説明は、本発明の特定の実装形態にすぎず、本発明の保護範囲を限定することを意図しない。本発明で開示する技術的範囲内で当業者によって容易に理解される、いかなる変形または置換も、本発明の保護範囲内に入るものとする。したがって、本発明の保護範囲は、特許請求の範囲の保護範囲を受けるものとする。
【符号の説明】
【０１１３】
100  ホスト
101  ホストバスアダプタ(HBA)、ホストポート
102  プロセッサ
103  メモリ
104  多重経路プログラム、多重経路ソフトウェア
105  オペレーティングシステム
200  スイッチ
300  ストレージシステム
301  ストレージポート
302  制御ノード
303  論理ディスク
304  記憶デバイス
1501  経路管理モジュール
1502  経路状態照会モジュール
1503  区間照会モジュール
1504  区間記録モジュール
1505  区間決定モジュール
1506  I/O配信モジュール
1601  ディスクコード報告モジュール
1602  ディスク識別子報告モジュール
1603  経路状態報告モジュール
1604  区間報告モジュール
【図１】
2021510215.tif 000003
【図２】
2021510215.tif 000004
【図３ａ】
2021510215.tif 000005
【図３ｂ】
2021510215.tif 000006
【図４】
2021510215.tif 000007
【図５】
2021510215.tif 000008
【図６】
2021510215.tif 000009
【図７】
2021510215.tif 000010
【図８】
2021510215.tif 000011
【図９】
2021510215.tif 000012
【図１０】
2021510215.tif 000013
【図１１】
2021510215.tif 000014
【図１２】
2021510215.tif 000015
【図１３】
2021510215.tif 000016
【図１４】
2021510215.tif 000017
【図１５】
2021510215.tif 000018
【図１６】
2021510215.tif 000019
【手続補正書】
【提出日】令和2年7月9日(2020.7.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データ処理方法であって、前記方法がホストによって実行され、前記ホストおよびストレージシステムが、不揮発性メモリエクスプレスオーバーファブリック(NVMeoF)プロトコルを使用することによって互いに通信し、前記ストレージシステムが論理ディスクを備え、前記ホストが、前記ストレージシステムの中の制御ノードを使用することによって前記論理ディスクにアクセスし、前記方法が、
状態照会コマンドを前記制御ノードへ送るステップであって、前記状態照会コマンドが、前記制御ノードに対応する経路の経路状態を報告するように前記制御ノードに命令するために使用される、ステップと、
前記制御ノードによって報告される前記経路状態を受信するステップと、
前記受信された経路状態が、前記論理ディスクがアクセス区間を備えることを示すとき、区間照会コマンドを前記制御ノードへ送るステップと、
前記制御ノードによって報告されるアクセス区間情報を受信するステップであって、前記アクセス区間情報によって示されるアクセス区間が前記制御ノードに事前に割り振られる、ステップと、
前記制御ノードと前記アクセス区間情報との間のマッピング関係を記録するステップとを備える、
データ処理方法。
【請求項２】
I/O要求を受信するステップであって、前記I/O要求が、アクセスされるべきデータの論理アドレスを搬送する、ステップと、
前記論理アドレスに対応するアクセス区間を決定するステップと、
前記アクセス区間に対応する制御ノードを前記マッピング関係に基づいて決定するステップと、
前記アクセス区間に対応する前記制御ノードへ前記I/O要求を送るステップと
をさらに備える、請求項1に記載の方法。
【請求項３】
アクセス区間照会コマンドが、前記NVMeoFプロトコルにおけるコマンドGet Log Page command Dword 10に従って規定され、前記アクセス区間照会コマンドのコマンド識別子が、前記コマンドのlog page identifierフィールドに追加される、請求項1または2に記載の方法。
【請求項４】
前記アクセス区間情報によって示される前記アクセス区間が、連続するアドレス空間である、請求項1から3のいずれか一項に記載の方法。
【請求項５】
前記制御ノードに対応する前記アクセス区間が、第1のアクセス部分区間および第2のアクセス部分区間を備え、前記第1のアクセス部分区間と前記第2のアクセス部分区間との間に間隔がある、請求項1から3のいずれか一項に記載の方法。
【請求項６】
前記ホストおよび前記ストレージシステムが、外部ネットワークを使用することによって互いに通信し、区間照会コマンドを前記制御ノードへ送るステップが、
外部ネットワークプロトコル区間照会コマンドを取得するために前記区間照会コマンドを外部ネットワークプロトコルの中にカプセル化するステップであって、前記アクセス区間が前記ストレージシステムの名前空間に属する、ステップと、
前記外部ネットワークプロトコル区間照会コマンドを前記制御ノードへ送るステップとを備え、
前記制御ノードによって報告されるアクセス区間情報を受信する前記ステップが、
前記制御ノードによって送られる外部ネットワークプロトコル区間応答メッセージを受信するステップであって、前記外部ネットワークプロトコル区間応答メッセージが、前記区間照会コマンドへの応答を備え、前記区間照会コマンドへの前記応答が、前記名前空間のアクセス区間情報を備える、ステップと、
前記区間照会コマンドの応答情報を取得するために前記外部ネットワークプロトコル区間応答メッセージを構文解析するステップと、
前記制御ノードのアクセス区間情報を前記区間照会コマンドへの前記応答から取得し、前記アクセス区間情報を記録するステップとを備える、
請求項1から5のいずれか一項に記載の方法。
【請求項７】
状態照会コマンドを前記制御ノードへ送る前記ステップが、
外部ネットワークプロトコル状態照会コマンドを取得するために前記状態照会コマンドを前記外部ネットワークプロトコルの中にカプセル化するステップと、
前記外部ネットワークプロトコル状態照会コマンドを前記制御ノードへ送るステップとを備え、
前記制御ノードによって報告される前記経路状態を受信する前記ステップが、
前記制御ノードによって送られる外部ネットワークプロトコル状態応答メッセージを受信するステップであって、前記外部ネットワークプロトコル状態応答メッセージが前記状態照会コマンドへの応答を備え、前記状態照会コマンドへの前記応答が経路状態情報を備える、ステップと、
前記状態照会コマンドの中に備えられた経路状態情報を取得するために前記外部ネットワークプロトコル状態応答メッセージを構文解析するステップとを備える、
請求項6に記載の方法。
【請求項８】
データ処理方法であって、前記方法がストレージシステムの中の制御ノードによって実行され、前記ストレージシステムおよびホストが、不揮発性メモリエクスプレスオーバーファブリック(NVMeoF)プロトコルを使用することによって互いに通信し、前記ストレージシステムが論理ディスクを備え、前記方法が、
前記ホストによって送られる状態照会コマンドを受信するステップであって、前記状態照会コマンドが、前記制御ノードに対応する経路の経路状態を報告するように前記制御ノードに命令するために使用される、ステップと、
前記論理ディスクがアクセス区間を備えるとき、前記論理ディスクが前記アクセス区間を備えることを示す経路状態を前記ホストに報告するステップと、
前記経路状態に基づいて前記ホストによって送られるアクセス区間照会コマンドを受信するステップと、
前記制御ノードに割り振られたアクセス区間のアクセス区間情報を、前記アクセス区間照会コマンドに基づいて前記ホストに報告するステップとを備える、
データ処理方法。
【請求項９】
前記アクセス区間照会コマンドが、前記NVMeoFプロトコルにおけるコマンドGet Log Page command Dword 10に従って規定され、前記アクセス区間照会コマンドのコマンド識別子が、前記コマンドのlog page identifierフィールドに追加される、請求項8に記載の方法。
【請求項１０】
前記アクセス区間情報によって示される前記アクセス区間が、連続するアドレス空間である、請求項8または9に記載の方法。
【請求項１１】
前記制御ノードに対応する前記アクセス区間が、第1のアクセス部分区間および第2のアクセス部分区間を備え、前記第1のアクセス部分区間と前記第2のアクセス部分区間との間に間隔がある、請求項8または9に記載の方法。
【請求項１２】
前記ホストおよびストレージシステムが、外部ネットワークを使用することによって互いに通信し、前記制御ノードに割り振られたアクセス区間のアクセス区間情報を報告する前記ステップが、
前記ホストによって送られる外部ネットワークプロトコル区間照会コマンドを受信し、前記区間照会コマンドを取得するために前記外部ネットワークプロトコル区間照会コマンドを構文解析するステップと、
前記区間照会コマンドの応答情報を生成するステップであって、前記区間照会コマンドの前記応答情報が、前記制御ノードに対応するアクセス区間情報を備える、ステップと、
外部ネットワークプロトコル区間応答メッセージを取得するために前記区間照会コマンドの前記応答情報を前記外部ネットワークプロトコルの中にカプセル化するステップと、
前記外部ネットワークプロトコル区間応答メッセージを前記ホストに報告するステップとを備える、
請求項8から11のいずれか一項に記載の方法。
【請求項１３】
前記制御ノードによって送られる外部ネットワークプロトコル区間応答メッセージを受信する前記ステップの前に、前記方法が、
外部ネットワークプロトコル状態照会コマンドを受信し、前記状態照会コマンドを取得するために前記外部ネットワークプロトコル状態照会コマンドを構文解析するステップと、
NVMe状態照会コマンドの応答情報を生成し、名前空間がアクセス区間を備えるとき、前記名前空間が前記アクセス区間を備えることを示す経路状態を、前記状態照会コマンドの前記応答情報に追加するステップと、
前記外部ネットワークプロトコル状態照会コマンドの応答情報を取得するために前記状態照会コマンドをカプセル化し、前記外部ネットワークプロトコル状態照会コマンドの前記応答情報を前記ホストに報告するステップとをさらに備える、
請求項12に記載の方法。
【請求項１４】
ホストであって、前記ホストおよびストレージシステムが、不揮発性メモリエクスプレスオーバーファブリック(NVMeoF)プロトコルを使用することによって互いに通信し、前記ストレージシステムが論理ディスクを備え、前記ホストが、前記ストレージシステムの中の制御ノードを使用することによって前記論理ディスクにアクセスし、前記ホストが、
状態照会コマンドを前記制御ノードへ送ることであって、前記状態照会コマンドが、前記制御ノードに対応する経路の経路状態を報告するように前記制御ノードに命令するために使用されることと、前記制御ノードによって報告される前記経路状態を受信することとを行うように構成された、経路状態照会モジュール、
前記受信された経路状態が、前記論理ディスクがアクセス区間を備えることを示すとき、区間照会コマンドを前記制御ノードへ送ることと、前記制御ノードによって報告されるアクセス区間情報を受信することであって、前記アクセス区間情報によって示されるアクセス区間が前記制御ノードに事前に割り振られることとを行うように構成された、区間照会モジュール、ならびに
前記制御ノードと前記アクセス区間情報との間のマッピング関係を記録するように構成された、区間記録モジュールを備える、
ホスト。
【請求項１５】
I/O要求を受信することであって、前記I/O要求が、アクセスされるべきデータの論理アドレスを搬送することと、前記論理アドレスに対応するアクセス区間を決定することとを行うように構成された、区間決定モジュール、ならびに
前記アクセス区間に対応する制御ノードを前記マッピング関係に基づいて決定することと、前記アクセス区間に対応する前記制御ノードへ前記I/O要求を送ることとを行うように構成された、I/O配信モジュール
をさらに備える、請求項14に記載のホスト。
【請求項１６】
アクセス区間照会コマンドが、前記NVMeoFプロトコルにおけるコマンドGet Log Page command Dword 10に従って規定され、前記アクセス区間照会コマンドのコマンド識別子が、前記コマンドのlog page identifierフィールドに追加される、請求項14または15に記載のホスト。
【請求項１７】
前記アクセス区間情報によって示される前記アクセス区間が、連続するアドレス空間である、請求項14から16のいずれか一項に記載のホスト。
【請求項１８】
前記制御ノードに対応する前記アクセス区間が、第1のアクセス部分区間および第2のアクセス部分区間を備え、前記第1のアクセス部分区間と前記第2のアクセス部分区間との間に間隔がある、請求項14から16のいずれか一項に記載のホスト。
【請求項１９】
前記ホストおよびストレージシステムが、外部ネットワークを使用することによって互いに通信し、前記区間照会モジュールが、
外部ネットワークプロトコル区間照会コマンドを取得するために前記区間照会コマンドを外部ネットワークプロトコルの中にカプセル化することであって、前記アクセス区間が前記ストレージシステムの名前空間に属することと、
前記外部ネットワークプロトコル区間照会コマンドを前記制御ノードへ送ることと、
前記制御ノードによって送られる外部ネットワークプロトコル区間応答メッセージを受信することであって、前記外部ネットワークプロトコル区間応答メッセージが前記区間照会コマンドへの応答を備え、前記区間照会コマンドへの前記応答が、前記名前空間のアクセス区間情報を備えることと、
前記区間照会コマンドの応答情報を取得するために前記外部ネットワークプロトコル区間応答メッセージを構文解析することと、
前記制御ノードのアクセス区間情報を前記区間照会コマンドへの前記応答から取得し、前記アクセス区間情報を記録することとを行うようにさらに構成される、
請求項14から18のいずれか一項に記載のホスト。
【請求項２０】
前記経路状態照会モジュールが、
外部ネットワークプロトコル状態照会コマンドを取得するために前記状態照会コマンドを前記外部ネットワークプロトコルの中にカプセル化することと、
前記外部ネットワークプロトコル状態照会コマンドを前記制御ノードへ送ることと、
前記制御ノードによって送られる外部ネットワークプロトコル状態応答メッセージを受信することであって、前記外部ネットワークプロトコル状態応答メッセージが、前記状態照会コマンドへの応答を備え、前記状態照会コマンドへの前記応答が経路状態情報を備えることと、
前記状態照会コマンドの中に備えられた経路状態情報を取得するために前記外部ネットワークプロトコル状態応答メッセージを構文解析することを行うようにさらに構成される、
請求項19に記載のホスト。
【請求項２１】
ストレージシステムの中の制御ノードであって、前記ストレージシステムおよびホストが、不揮発性メモリエクスプレスオーバーファブリック(NVMeoF)プロトコルを使用することによって互いに通信し、前記ストレージシステムが論理ディスクを備え、前記制御ノードが、
前記ホストによって送られる状態照会コマンドを受信することであって、前記状態照会コマンドが、前記制御ノードに対応する経路の経路状態を報告するように前記制御ノードに命令するために使用されることと、前記論理ディスクがアクセス区間を備えるとき、前記論理ディスクが前記アクセス区間を備えることを示す経路状態を前記ホストに報告することとを行うように構成された、経路状態報告モジュール、ならびに
前記経路状態に基づいて前記ホストによって送られるアクセス区間照会コマンドを受信することと、前記ホストがアクセス区間情報と前記制御ノードとの間のマッピング関係を記録するように、前記制御ノードに割り振られたアクセス区間の前記アクセス区間情報を、前記アクセス区間照会コマンドに基づいて前記ホストに報告することとを行うように構成された、区間報告モジュールを備える、
制御ノード。
【請求項２２】
前記アクセス区間照会コマンドが、前記NVMeoFプロトコルにおけるコマンドGet Log Page command Dword 10に従って規定され、前記アクセス区間照会コマンドのコマンド識別子が、前記コマンドのlog page identifierフィールドに追加される、請求項21に記載の制御ノード。
【請求項２３】
前記アクセス区間情報によって示される前記アクセス区間が、連続するアドレス空間である、請求項21または22に記載の制御ノード。
【請求項２４】
前記制御ノードに対応する前記アクセス区間が、第1のアクセス部分区間および第2のアクセス部分区間を備え、前記第1のアクセス部分区間と前記第2のアクセス部分区間との間に間隔がある、請求項21または22に記載の制御ノード。
【請求項２５】
前記ホストおよびストレージシステムが、外部ネットワークを使用することによって互いに通信し、前記前記区間報告モジュールが、
前記ホストによって送られる外部ネットワークプロトコル区間照会コマンドを受信し、区間照会コマンドを取得するために前記外部ネットワークプロトコル区間照会コマンドを構文解析することと、
前記区間照会コマンドの応答情報を生成することであって、前記区間照会コマンドの前記応答情報が、前記制御ノードに対応するアクセス区間情報を備えることと、
外部ネットワークプロトコル区間応答メッセージを取得するために前記区間照会コマンドの前記応答情報を前記外部ネットワークプロトコルの中にカプセル化することと、
前記外部ネットワークプロトコル区間応答メッセージを前記ホストに報告することとを行うようにさらに構成される、
請求項21から24のいずれか一項に記載の制御ノード。
【請求項２６】
前記経路状態報告モジュールが、
外部ネットワークプロトコル状態照会コマンドを受信し、前記状態照会コマンドを取得するために前記外部ネットワークプロトコル状態照会コマンドを構文解析することと、
NVMe状態照会コマンドの応答情報を生成し、名前空間がアクセス区間を備えるとき、前記名前空間が前記アクセス区間を備えることを示す経路状態を、前記状態照会コマンドの前記応答情報に追加することと、
前記外部ネットワークプロトコル状態照会コマンドの応答情報を取得するために前記状態照会コマンドをカプセル化し、前記外部ネットワークプロトコル状態照会コマンドの前記応答情報を前記ホストに報告することとをさらに備える、
請求項25に記載の制御ノード。
【請求項２７】
その上にプログラムが記録されたコンピュータ可読記憶媒体であって、前記プログラムが、請求項1から7のいずれか一項に記載の方法をコンピュータに実行させる、コンピュータ可読記憶媒体。
【請求項２８】
その上にプログラムが記録されたコンピュータ可読記憶媒体であって、前記プログラムが、請求項8から13のいずれか一項に記載の方法をコンピュータに実行させる、コンピュータ可読記憶媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
ホストは、制御ノードとアクセス区間情報との間のマッピング関係を記録し、したがって、I/O要求を受信すると、ホストは、I/O要求の中の論理アドレスに対応する区分区間に基づいて、区分区間に対応する制御ノードにI/O要求を配信してよく、それによって、I/O要求の転送を回避する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１８
【補正方法】変更
【補正の内容】
【００１８】
制御ノードごとにストレージシステムによって設定されるアクセス区間が、NVMeoFプロトコルの状態照会コマンドおよび新たに追加された区間照会コマンドを使用することによって取得される。このようにして、後でI/O要求が受信されると、I/O要求は、I/O要求の中の論理アドレスに対応する区分区間に基づいて、区分区間に対応する制御ノードに配信されてよく、それによって、I/O要求の転送を回避する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００２１
【補正方法】変更
【補正の内容】
【００２１】
アクセス区間は、ストレージシステムの中の制御ノードごとに設定される。I/O要求が受信されると、I/O要求は、I/O要求の中の論理アドレスに対応する区分区間に基づいて、区分区間に対応する制御ノードに配信されてよく、それによって、I/O要求の転送を回避する。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００２３
【補正方法】変更
【補正の内容】
【００２３】
制御ノードごとにストレージシステムによって設定されるアクセス区間が、NVMeoFプロトコルの状態照会コマンドおよび新たに追加された区間照会コマンドを使用することによって取得され、その結果、ホストは、I/O要求の中の論理アドレスに対応する区分区間に基づいて、区分区間に対応する制御ノードにI/O要求を配信してよく、それによって、I/O要求の転送を回避する。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００２７
【補正方法】変更
【補正の内容】
【００２７】
本発明の実施形態の第4の態様は、ホストによって実行されるデータ処理方法を提供する。ホストおよびストレージシステムは、外部ネットワークを使用することによって互いに通信する。方法は、外部ネットワークプロトコル区間照会コマンドを取得するために不揮発性メモリエクスプレスNVMe区間照会コマンドを外部ネットワークプロトコルの中にカプセル化することであって、ここで、NVMe区間照会コマンドが、ストレージシステムの中の制御ノードに割り振られたアクセス区間を照会するために使用され、アクセス区間がストレージシステムの名前空間に属することと、外部ネットワークプロトコル区間照会コマンドを制御ノードへ送ることと、制御ノードによって送られる外部ネットワークプロトコル区間応答メッセージを受信することであって、ここで、外部ネットワークプロトコル区間応答メッセージが、NVMe区間照会コマンドへの応答を含み、NVMe区間照会コマンドへの応答が、名前空間のアクセス区間情報を含むことと、NVMe区間照会コマンドの応答情報を取得するために外部ネットワークプロトコル区間応答メッセージを構文解析することと、制御ノードのアクセス区間情報をNVMe区間照会コマンドへの応答から取得し、アクセス区間情報を記録することとを含む。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００２８
【補正方法】変更
【補正の内容】
【００２８】
制御ノードごとにストレージシステムによって設定されるアクセス区間が、NVMeoFプロトコルの新たに追加された区間照会コマンドを使用することによって取得される。このようにして、後でI/O要求が受信されると、I/O要求は、I/O要求の中の論理アドレスに対応する区分区間に基づいて、区分区間に対応する制御ノードに配信されてよく、それによって、I/O要求の転送を回避する。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００３３
【補正方法】変更
【補正の内容】
【００３３】
制御ノードごとにストレージシステムによって設定されるアクセス区間が、NVMeoFプロトコルの新たに追加された区間照会コマンドを使用することによって取得される。このようにして、後でI/O要求が受信されると、I/O要求は、I/O要求の中の論理アドレスに対応する区分区間に基づいて、区分区間に対応する制御に配信されてよく、それによって、I/O要求の転送を回避する。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００４６
【補正方法】変更
【補正の内容】
【００４６】
ストレージシステム300は、node 1〜Nなどの複数の制御ノード302を含む。各制御ノード302は、2つのストレージポート301(たとえば、HBAカード)を使用することによって2つのスイッチ200に接続される。このようにして、ホストと各制御ノード302との間に2つの経路がある。2つの経路は互いに冗長である。経路のうちの一方に欠陥がある場合、ホスト100と制御ノード302との間でデータを送信するために他方の経路が使用され得る。ストレージシステム300は、複数のSSDによって構成された記憶デバイス304を含む。記憶デバイス304は、独立ディスク冗長アレイ(Redundant Array of Independent Disks、RAID)またはジャスト・ア・バンチ・オブ・フラッシュ(Just a Bunch of Flash)であってよい。いくつかの実施形態では、記憶デバイス304は仮想SSDをさらに含む。仮想SSDは、NVMeoFプロトコルを使用することによって記憶デバイス304と通信する別の記憶デバイスを、記憶デバイス304にマッピングすることによって取得される。NVMeoFプロトコルを使用するとともにローカル記憶デバイスの仮想SSDとしてSSDを使用することによって、リモートSSDをローカル記憶デバイスにマッピングすることは、従来技術に関係し、詳細は本明細書で説明しない。ホスト100およびストレージシステム300は、NVMeoFプロトコルを使用することによって互いに通信する。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００４９
【補正方法】変更
【補正の内容】
【００４９】
ストレージシステム300の中で、ユーザによって指定された任意の制御ノード302が、論理ディスク303を作成および管理し得る。本明細書では、ユーザによって指定された制御ノードがnode 1であると想定する。論理ディスク303が作成された後、node 1は、論理ディスク303にディスク識別子(Identifier ID)およびディスクコードを割り振る。ディスク識別子は、論理ディスクを一意に識別し得る。たとえば、ディスク識別子は、NVMeoFプロトコルに適用されるグローバル一意識別子(Globally Unique Identifier、GUID)、製造業者情報、および製品情報を含む。ディスクコードは、記憶デバイス304の中に作成された異なる論理ディスクの間を区別するために使用される。たとえば、論理ディスク303のディスクコードは、namespace 1として表されてよい。
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００５１
【補正方法】変更
【補正の内容】
【００５１】
論理ディスク303のディスク識別子およびディスクコードが割り振られた後、node 1は、論理ディスク303にアクセスする制御ノードを構成し得る。たとえば、論理ディスク303に対してN個の制御ノードが構成される。制御ノード302の間を区別するために、ストレージシステム300は、各制御ノード302に一意識別子を、すなわち、ノード識別子を割り振る。論理ディスク303に対して構成された制御ノードは、以下のマッピング関係、すなわち、namespace 1:node 1、node 2、…、node Nを使用することによって表されてよい。
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】００５３
【補正方法】変更
【補正の内容】
【００５３】
別の実施形態では、node 1によって各制御ノードに割り振られるアクセス区間は連続しない。図3bに示すように、node 1は、最初に、論理ディスク303のアドレス空間をサイズが等しい少なくとも2つのアドレス部分空間に分割し、次いで、各アドレス部分空間をN個のアクセス部分区間に分割する。各アクセス部分区間は、1つの制御ノードに対応する。アドレス部分空間は、同じ方式で分割される。具体的には、各アドレス部分空間の中で、同じ制御ノードに対応するアクセス部分区間は、アドレス部分空間の中で同じサイズおよび同じ順序を有する。各制御ノードに対応する1組のアクセス部分区間が、制御ノードのアクセス区間を構成する。たとえば、論理ディスク303が4つのアドレス部分空間に分割される場合、node 1のアクセス区間は0〜a0、d0+1〜a1、およびd1+1〜a2であり、node 2のアクセス区間はa0+1〜b0、a1+1〜b1、およびa2+1〜b2であり、node Nのアクセス区間はc0+1〜d0、c1+1〜d1、およびc2+1〜d2である。各nodeに対応するアクセス区間のアクセス部分区間は、同じサイズおよび同じ間隔を有する。各制御ノードに割り振られたアクセス区間の記録中、以下のもの、すなわち、アクセス区間の開始アドレス、アクセス区間を構成するアクセス部分区間のアドレス長、アクセス部分区間の間のアドレス間隔、およびアクセス区間を構成するアクセス部分区間の数量が、記録され得る。N個の制御ノード302にアクセス区間が割り振られた後、ホストの要求に応答して、N個の制御ノード302は、制御ノード302に対応するそれぞれのアクセス区間をホスト100に報告し、ホストは、アクセス区間に基づいてI/O要求を配信し得る。アクセス区間を報告するための方法が以下で説明される。本発明のこの実施形態では、記憶デバイス304の中に論理ディスク303以外の論理ディスクがさらに作成される場合、実際の要件に基づいた、実際の要件に基づく別の論理ディスク用のアクセス区間の割振り。
【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】００８３
【補正方法】変更
【補正の内容】
【００８３】
ステップS512:論理ディスクが複数のアクセス区間に分割されることを決定すると、多重経路ソフトウェア104は、区間照会コマンドをストレージシステム300へ送り、ここで、区間照会コマンドは、制御ノードに割り振られたアクセス区間を報告するようにストレージシステムの中の各制御ノードに命令するために使用される。
【手続補正１４】
【補正対象書類名】明細書
【補正対象項目名】００９８
【補正方法】変更
【補正の内容】
【００９８】
図15および図16は、それぞれ、本発明の一実施形態による、ホストのモジュール図、およびストレージシステムの中の任意の制御ノードのモジュール図である。ホストは、経路管理モジュール1501、経路状態照会モジュール1502、区間照会モジュール1503、区間記録モジュール1504、区間決定モジュール1505、およびI/O配信モジュール1506を含む。制御ノードは、ディスクコード報告モジュール1601、ディスク識別子報告モジュール1602、経路状態報告モジュール1603、および区間報告モジュール1604を含む。
【手続補正１５】
【補正対象書類名】明細書
【補正対象項目名】００９９
【補正方法】変更
【補正の内容】
【００９９】
ホスト100の経路管理モジュール1501は、ストレージシステム300がホスト100に接続されることをホスト100のオペレーティングシステム105が検出すると、ホスト100とストレージシステム300との間の複数の経路の各々を使用することによってディスク報告コマンドをストレージシステム300へ送るように構成される。
【手続補正１６】
【補正対象書類名】明細書
【補正対象項目名】０１０７
【補正方法】変更
【補正の内容】
【０１０７】
報告情報を受信した後、ホストの区間照会モジュール1503は、報告情報の中の経路状態が、論理ディスク303が複数のアクセス区間を含むことを示すかどうかを決定する。論理ディスクが複数のアクセス区間に分割されないことを決定すると、区間照会モジュール1503は、I/O経路選択中での多重経路ソフトウェア104による参照のために、状態報告情報を報告するために使用される経路の経路状態として経路コードを記録する。論理ディスクが複数のアクセス区間に分割されることを決定すると、区間照会モジュール1503は、区間照会コマンドをストレージシステム300へ送る。区間照会コマンドは、制御ノードに割り振られたアクセス区間を報告するようにストレージシステムの中の各制御ノードに命令するために使用される。区間照会モジュール1503の特定の実装詳細については、ステップS510〜S512の関連する説明を参照されたい。
【手続補正１７】
【補正対象書類名】明細書
【補正対象項目名】０１０８
【補正方法】変更
【補正の内容】
【０１０８】
制御ノードの区間報告モジュール1604は、区間照会コマンドを受信し、次いで、区間報告情報を生成し、区間報告情報をホスト100に報告する。区間報告モジュール1604の特定の実装詳細については、ステップS513の関連する説明を参照されたい。
【手続補正１８】
【補正対象書類名】図面
【補正対象項目名】図７
【補正方法】変更
【補正の内容】
【図７】
2021510215.tif 000020
【国際調査報告】
2021510215.tif 000021
2021510215.tif 000022
2021510215.tif 000023
2021510215.tif 000024