JP7094364B2 - I/o要求処理方法およびデバイス - Google Patents

I/o要求処理方法およびデバイス Download PDF

Info

Publication number
JP7094364B2
JP7094364B2 JP2020529744A JP2020529744A JP7094364B2 JP 7094364 B2 JP7094364 B2 JP 7094364B2 JP 2020529744 A JP2020529744 A JP 2020529744A JP 2020529744 A JP2020529744 A JP 2020529744A JP 7094364 B2 JP7094364 B2 JP 7094364B2
Authority
JP
Japan
Prior art keywords
control node
access
inquiry command
host
external network
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
JP2020529744A
Other languages
English (en)
Other versions
JP2021510215A (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 JP2021510215A publication Critical patent/JP2021510215A/ja
Application granted granted Critical
Publication of JP7094364B2 publication Critical patent/JP7094364B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • 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/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • 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
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0662Virtualisation aspects
    • 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/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • 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
    • 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/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context

Description

本出願は、ストレージ分野に関し、詳細には、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つのスイッチ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プロトコルを使用することによって互いに通信する。
記憶デバイス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にディスク識別子(Identifier 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個の制御ノードが構成される。制御ノード302の間を区別するために、ストレージシステム300は、各制御ノード302に一意識別子を、すなわち、ノード識別子を割り振る。論理ディスク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に対応するアクセス区間のアクセス部分区間は、同じサイズおよび同じ間隔を有する。各制御ノードに割り振られたアクセス区間の記録中、以下のもの、すなわち、アクセス区間の開始アドレス、アクセス区間を構成するアクセス部分区間のアドレス長、アクセス部分区間の間のアドレス間隔、およびアクセス区間を構成するアクセス部分区間の数量が、記録され得る。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、経路状態照会モジュール1502、区間照会モジュール1503、区間記録モジュール1504、区間決定モジュール1505、およびI/O配信モジュール1506を含む。制御ノードは、ディスクコード報告モジュール1601、ディスク識別子報告モジュール1602、経路状態報告モジュール1603、および区間報告モジュール1604を含む。
ホスト100の経路管理モジュール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に報告する。区間報告モジュール1604の特定の実装詳細については、ステップ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 区間報告モジュール

Claims (28)

  1. データ処理方法であって、前記方法がホストによって実行され、前記ホストおよびストレージシステムが、不揮発性メモリエクスプレスオーバーファブリック(NVMeoF)プロトコルを使用することによって互いに通信し、前記ストレージシステムが論理ディスクを備え、前記ホストが、前記ストレージシステムの中の制御ノードを使用することによって前記論理ディスクにアクセスし、前記方法が、
    状態照会コマンドを前記制御ノードへ送るステップであって、前記状態照会コマンドが、前記制御ノードに対応する経路の経路状態を報告するように前記制御ノードに命令するために使用される、ステップと、
    前記制御ノードによって報告される前記経路状態を受信するステップと、
    前記受信された経路状態が、前記論理ディスクがアクセス区間を備えることを示すとき、区間照会コマンドを前記制御ノードへ送るステップと、
    前記制御ノードによって報告されるアクセス区間情報を受信するステップであって、前記アクセス区間情報によって示されるアクセス区間が前記制御ノードに事前に割り振られる、ステップと、
    前記制御ノードと前記アクセス区間情報との間のマッピング関係を記録するステップとを備える、
    データ処理方法。
  2. I/O要求を受信するステップであって、前記I/O要求が、アクセスされるべきデータの論理アドレスを搬送する、ステップと、
    前記論理アドレスに対応するアクセス区間を決定するステップと、
    前記アクセス区間に対応する制御ノードを前記マッピング関係に基づいて決定するステップと、
    前記アクセス区間に対応する前記制御ノードへ前記I/O要求を送るステップと
    をさらに備える、請求項1に記載の方法。
  3. アクセス区間照会コマンドが、前記NVMeoFプロトコルにおけるコマンドGet Log Page command Dword 10に従って規定され、前記アクセス区間照会コマンドのコマンド識別子が、前記コマンドのlog page identifierフィールドに追加される、請求項1または2に記載の方法。
  4. 前記アクセス区間情報によって示される前記アクセス区間が、連続するアドレス空間である、請求項1から3のいずれか一項に記載の方法。
  5. 前記制御ノードに対応する前記アクセス区間が、第1のアクセス部分区間および第2のアクセス部分区間を備え、前記第1のアクセス部分区間と前記第2のアクセス部分区間との間に間隔がある、請求項1から3のいずれか一項に記載の方法。
  6. 前記ホストおよび前記ストレージシステムが、外部ネットワークを使用することによって互いに通信し、区間照会コマンドを前記制御ノードへ送るステップが、
    外部ネットワークプロトコル区間照会コマンドを取得するために前記区間照会コマンドを外部ネットワークプロトコルの中にカプセル化するステップであって、前記アクセス区間が前記ストレージシステムの名前空間に属する、ステップと、
    前記外部ネットワークプロトコル区間照会コマンドを前記制御ノードへ送るステップとを備え、
    前記制御ノードによって報告されるアクセス区間情報を受信する前記ステップが、
    前記制御ノードによって送られる外部ネットワークプロトコル区間応答メッセージを受信するステップであって、前記外部ネットワークプロトコル区間応答メッセージが、前記区間照会コマンドへの応答を備え、前記区間照会コマンドへの前記応答が、前記名前空間のアクセス区間情報を備える、ステップと、
    前記区間照会コマンドの応答情報を取得するために前記外部ネットワークプロトコル区間応答メッセージを構文解析するステップと、
    前記制御ノードのアクセス区間情報を前記区間照会コマンドへの前記応答から取得し、前記アクセス区間情報を記録するステップとを備える、
    請求項1から5のいずれか一項に記載の方法。
  7. 状態照会コマンドを前記制御ノードへ送る前記ステップが、
    外部ネットワークプロトコル状態照会コマンドを取得するために前記状態照会コマンドを前記外部ネットワークプロトコルの中にカプセル化するステップと、
    前記外部ネットワークプロトコル状態照会コマンドを前記制御ノードへ送るステップとを備え、
    前記制御ノードによって報告される前記経路状態を受信する前記ステップが、
    前記制御ノードによって送られる外部ネットワークプロトコル状態応答メッセージを受信するステップであって、前記外部ネットワークプロトコル状態応答メッセージが前記状態照会コマンドへの応答を備え、前記状態照会コマンドへの前記応答が経路状態情報を備える、ステップと、
    前記状態照会コマンドの中に備えられた経路状態情報を取得するために前記外部ネットワークプロトコル状態応答メッセージを構文解析するステップとを備える、
    請求項6に記載の方法。
  8. データ処理方法であって、前記方法がストレージシステムの中の制御ノードによって実行され、前記ストレージシステムおよびホストが、不揮発性メモリエクスプレスオーバーファブリック(NVMeoF)プロトコルを使用することによって互いに通信し、前記ストレージシステムが論理ディスクを備え、前記方法が、
    前記ホストによって送られる状態照会コマンドを受信するステップであって、前記状態照会コマンドが、前記制御ノードに対応する経路の経路状態を報告するように前記制御ノードに命令するために使用される、ステップと、
    前記論理ディスクがアクセス区間を備えるとき、前記論理ディスクが前記アクセス区間を備えることを示す経路状態を前記ホストに報告するステップと、
    前記経路状態に基づいて前記ホストによって送られるアクセス区間照会コマンドを受信するステップと、
    前記制御ノードに割り振られたアクセス区間のアクセス区間情報を、前記アクセス区間照会コマンドに基づいて前記ホストに報告するステップとを備える、
    データ処理方法。
  9. 前記アクセス区間照会コマンドが、前記NVMeoFプロトコルにおけるコマンドGet Log Page command Dword 10に従って規定され、前記アクセス区間照会コマンドのコマンド識別子が、前記コマンドのlog page identifierフィールドに追加される、請求項8に記載の方法。
  10. 前記アクセス区間情報によって示される前記アクセス区間が、連続するアドレス空間である、請求項8または9に記載の方法。
  11. 前記制御ノードに対応する前記アクセス区間が、第1のアクセス部分区間および第2のアクセス部分区間を備え、前記第1のアクセス部分区間と前記第2のアクセス部分区間との間に間隔がある、請求項8または9に記載の方法。
  12. 前記ホストおよびストレージシステムが、外部ネットワークを使用することによって互いに通信し、前記制御ノードに割り振られたアクセス区間のアクセス区間情報を報告する前記ステップが、
    前記ホストによって送られる外部ネットワークプロトコル区間照会コマンドを受信し、前記アクセス区間照会コマンドを取得するために前記外部ネットワークプロトコル区間照会コマンドを構文解析するステップと、
    前記アクセス区間照会コマンドの応答情報を生成するステップであって、前記アクセス区間照会コマンドの前記応答情報が、前記制御ノードに対応するアクセス区間情報を備える、ステップと、
    外部ネットワークプロトコル区間応答メッセージを取得するために前記アクセス区間照会コマンドの前記応答情報を外部ネットワークプロトコルの中にカプセル化するステップと、
    前記外部ネットワークプロトコル区間応答メッセージを前記ホストに報告するステップとを備える、
    請求項8から11のいずれか一項に記載の方法。
  13. 前記制御ノードによって送られる外部ネットワークプロトコル区間応答メッセージを受信する前記ステップの前に、前記方法が、
    外部ネットワークプロトコル状態照会コマンドを受信し、前記状態照会コマンドを取得するために前記外部ネットワークプロトコル状態照会コマンドを構文解析するステップと、
    NVMe状態照会コマンドの応答情報を生成し、名前空間がアクセス区間を備えるとき、前記名前空間が前記アクセス区間を備えることを示す経路状態を、前記状態照会コマンドの前記応答情報に追加するステップと、
    前記外部ネットワークプロトコル状態照会コマンドの応答情報を取得するために前記状態照会コマンドをカプセル化し、前記外部ネットワークプロトコル状態照会コマンドの前記応答情報を前記ホストに報告するステップとをさらに備える、
    請求項12に記載の方法。
  14. ホストであって、前記ホストおよびストレージシステムが、不揮発性メモリエクスプレスオーバーファブリック(NVMeoF)プロトコルを使用することによって互いに通信し、前記ストレージシステムが論理ディスクを備え、前記ホストが、前記ストレージシステムの中の制御ノードを使用することによって前記論理ディスクにアクセスし、前記ホストが、
    状態照会コマンドを前記制御ノードへ送ることであって、前記状態照会コマンドが、前記制御ノードに対応する経路の経路状態を報告するように前記制御ノードに命令するために使用されることと、前記制御ノードによって報告される前記経路状態を受信することとを行うように構成された、経路状態照会モジュール、
    前記受信された経路状態が、前記論理ディスクがアクセス区間を備えることを示すとき、区間照会コマンドを前記制御ノードへ送ることと、前記制御ノードによって報告されるアクセス区間情報を受信することであって、前記アクセス区間情報によって示されるアクセス区間が前記制御ノードに事前に割り振られることとを行うように構成された、区間照会モジュール、ならびに
    前記制御ノードと前記アクセス区間情報との間のマッピング関係を記録するように構成された、区間記録モジュールを備える、
    ホスト。
  15. I/O要求を受信することであって、前記I/O要求が、アクセスされるべきデータの論理アドレスを搬送することと、前記論理アドレスに対応するアクセス区間を決定することとを行うように構成された、区間決定モジュール、ならびに
    前記アクセス区間に対応する制御ノードを前記マッピング関係に基づいて決定することと、前記アクセス区間に対応する前記制御ノードへ前記I/O要求を送ることとを行うように構成された、I/O配信モジュール
    をさらに備える、請求項14に記載のホスト。
  16. アクセス区間照会コマンドが、前記NVMeoFプロトコルにおけるコマンドGet Log Page command Dword 10に従って規定され、前記アクセス区間照会コマンドのコマンド識別子が、前記コマンドのlog page identifierフィールドに追加される、請求項14または15に記載のホスト。
  17. 前記アクセス区間情報によって示される前記アクセス区間が、連続するアドレス空間である、請求項14から16のいずれか一項に記載のホスト。
  18. 前記制御ノードに対応する前記アクセス区間が、第1のアクセス部分区間および第2のアクセス部分区間を備え、前記第1のアクセス部分区間と前記第2のアクセス部分区間との間に間隔がある、請求項14から16のいずれか一項に記載のホスト。
  19. 前記ホストおよびストレージシステムが、外部ネットワークを使用することによって互いに通信し、前記区間照会モジュールが、
    外部ネットワークプロトコル区間照会コマンドを取得するために前記区間照会コマンドを外部ネットワークプロトコルの中にカプセル化することであって、前記アクセス区間が前記ストレージシステムの名前空間に属することと、
    前記外部ネットワークプロトコル区間照会コマンドを前記制御ノードへ送ることと、
    前記制御ノードによって送られる外部ネットワークプロトコル区間応答メッセージを受信することであって、前記外部ネットワークプロトコル区間応答メッセージが前記区間照会コマンドへの応答を備え、前記区間照会コマンドへの前記応答が、前記名前空間のアクセス区間情報を備えることと、
    前記区間照会コマンドの応答情報を取得するために前記外部ネットワークプロトコル区間応答メッセージを構文解析することと、
    前記制御ノードのアクセス区間情報を前記区間照会コマンドへの前記応答から取得し、前記アクセス区間情報を記録することとを行うようにさらに構成される、
    請求項14から18のいずれか一項に記載のホスト。
  20. 前記経路状態照会モジュールが、
    外部ネットワークプロトコル状態照会コマンドを取得するために前記状態照会コマンドを前記外部ネットワークプロトコルの中にカプセル化することと、
    前記外部ネットワークプロトコル状態照会コマンドを前記制御ノードへ送ることと、
    前記制御ノードによって送られる外部ネットワークプロトコル状態応答メッセージを受信することであって、前記外部ネットワークプロトコル状態応答メッセージが、前記状態照会コマンドへの応答を備え、前記状態照会コマンドへの前記応答が経路状態情報を備えることと、
    前記状態照会コマンドの中に備えられた経路状態情報を取得するために前記外部ネットワークプロトコル状態応答メッセージを構文解析することを行うようにさらに構成される、
    請求項19に記載のホスト。
  21. ストレージシステムの中の制御ノードであって、前記ストレージシステムおよびホストが、不揮発性メモリエクスプレスオーバーファブリック(NVMeoF)プロトコルを使用することによって互いに通信し、前記ストレージシステムが論理ディスクを備え、前記制御ノードが、
    前記ホストによって送られる状態照会コマンドを受信することであって、前記状態照会コマンドが、前記制御ノードに対応する経路の経路状態を報告するように前記制御ノードに命令するために使用されることと、前記論理ディスクがアクセス区間を備えるとき、前記論理ディスクが前記アクセス区間を備えることを示す経路状態を前記ホストに報告することとを行うように構成された、経路状態報告モジュール、ならびに
    前記経路状態に基づいて前記ホストによって送られるアクセス区間照会コマンドを受信することと、前記ホストがアクセス区間情報と前記制御ノードとの間のマッピング関係を記録するように、前記制御ノードに割り振られたアクセス区間の前記アクセス区間情報を、前記アクセス区間照会コマンドに基づいて前記ホストに報告することとを行うように構成された、区間報告モジュールを備える、
    制御ノード。
  22. 前記アクセス区間照会コマンドが、前記NVMeoFプロトコルにおけるコマンドGet Log Page command Dword 10に従って規定され、前記アクセス区間照会コマンドのコマンド識別子が、前記コマンドのlog page identifierフィールドに追加される、請求項21に記載の制御ノード。
  23. 前記アクセス区間情報によって示される前記アクセス区間が、連続するアドレス空間である、請求項21または22に記載の制御ノード。
  24. 前記制御ノードに対応する前記アクセス区間が、第1のアクセス部分区間および第2のアクセス部分区間を備え、前記第1のアクセス部分区間と前記第2のアクセス部分区間との間に間隔がある、請求項21または22に記載の制御ノード。
  25. 前記ホストおよびストレージシステムが、外部ネットワークを使用することによって互いに通信し、前記区間報告モジュールが、
    前記ホストによって送られる外部ネットワークプロトコル区間照会コマンドを受信し、前記アクセス区間照会コマンドを取得するために前記外部ネットワークプロトコル区間照会コマンドを構文解析することと、
    前記アクセス区間照会コマンドの応答情報を生成することであって、前記アクセス区間照会コマンドの前記応答情報が、前記制御ノードに対応するアクセス区間情報を備えることと、
    外部ネットワークプロトコル区間応答メッセージを取得するために前記アクセス区間照会コマンドの前記応答情報を外部ネットワークプロトコルの中にカプセル化することと、
    前記外部ネットワークプロトコル区間応答メッセージを前記ホストに報告することとを行うようにさらに構成される、
    請求項21から24のいずれか一項に記載の制御ノード。
  26. 前記経路状態報告モジュールが、
    外部ネットワークプロトコル状態照会コマンドを受信し、前記状態照会コマンドを取得するために前記外部ネットワークプロトコル状態照会コマンドを構文解析することと、
    NVMe状態照会コマンドの応答情報を生成し、名前空間がアクセス区間を備えるとき、前記名前空間が前記アクセス区間を備えることを示す経路状態を、前記状態照会コマンドの前記応答情報に追加することと、
    前記外部ネットワークプロトコル状態照会コマンドの応答情報を取得するために前記状態照会コマンドをカプセル化し、前記外部ネットワークプロトコル状態照会コマンドの前記応答情報を前記ホストに報告することとをさらに備える、
    請求項25に記載の制御ノード。
  27. その上にプログラムが記録されたコンピュータ可読記憶媒体であって、前記プログラムが、請求項1から7のいずれか一項に記載の方法をコンピュータに実行させる、コンピュータ可読記憶媒体。
  28. その上にプログラムが記録されたコンピュータ可読記憶媒体であって、前記プログラムが、請求項8から13のいずれか一項に記載の方法をコンピュータに実行させる、コンピュータ可読記憶媒体。
JP2020529744A 2018-07-17 2018-07-17 I/o要求処理方法およびデバイス Active JP7094364B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/095992 WO2020014869A1 (zh) 2018-07-17 2018-07-17 处理i/o请求的方法及设备

Publications (2)

Publication Number Publication Date
JP2021510215A JP2021510215A (ja) 2021-04-15
JP7094364B2 true JP7094364B2 (ja) 2022-07-01

Family

ID=69164173

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020529744A Active JP7094364B2 (ja) 2018-07-17 2018-07-17 I/o要求処理方法およびデバイス

Country Status (6)

Country Link
US (1) US11249663B2 (ja)
EP (1) EP3796149B1 (ja)
JP (1) JP7094364B2 (ja)
KR (1) KR102342607B1 (ja)
CN (2) CN110914796B (ja)
WO (1) WO2020014869A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11093352B2 (en) * 2019-09-11 2021-08-17 Hewlett Packard Enterprise Development Lp Fault management in NVMe systems
CN112684978B (zh) * 2020-12-23 2024-02-13 北京浪潮数据技术有限公司 一种存储设备的存储路径选择方法、系统及装置
US11494091B2 (en) * 2021-01-19 2022-11-08 EMC IP Holding Company LLC Using checksums for mining storage device access data
US11656795B2 (en) * 2021-01-21 2023-05-23 EMC IP Holding Company LLC Indicating optimized and non-optimized paths to hosts using NVMe-oF in a metro cluster storage system
US20230112007A1 (en) * 2021-10-08 2023-04-13 Advanced Micro Devices, Inc. Global addressing for switch fabric
KR20230062132A (ko) * 2021-10-29 2023-05-09 삼성전자주식회사 스트림 데이터를 송신하고 수신하기 위한 서버, 전자 장치 및 그 동작 방법
US11936535B2 (en) 2021-10-29 2024-03-19 Samsung Electronics Co., Ltd. Server and electronic device for transmitting and receiving stream data and method for operating the same

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017040706A1 (en) 2015-09-02 2017-03-09 Cnex Labs, Inc. Nvm express controller for remote access of memory and i/o over ethernet-type networks
JP2018045688A (ja) 2016-09-14 2018-03-22 三星電子株式会社Samsung Electronics Co.,Ltd. プロキシ装置、その動作方法、及びプロキシ装置に係る装置の動作方法

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3992427B2 (ja) * 2000-08-01 2007-10-17 株式会社日立製作所 ファイルシステム
JP2005326935A (ja) * 2004-05-12 2005-11-24 Hitachi Ltd 仮想化ストレージを備える計算機システムの管理サーバおよび障害回避復旧方法
EP1949214B1 (en) * 2005-10-28 2012-12-19 Network Appliance, Inc. System and method for optimizing multi-pathing support in a distributed storage system environment
JP2007316995A (ja) * 2006-05-26 2007-12-06 Hitachi Ltd 記憶システム及びデータ管理方法
JP5224706B2 (ja) * 2007-03-23 2013-07-03 キヤノン株式会社 記憶装置及び記憶装置の制御方法
JP2009043055A (ja) * 2007-08-09 2009-02-26 Hitachi Ltd 計算機システム、ストレージ装置及びデータ管理方法
WO2010082290A1 (ja) * 2009-01-13 2010-07-22 株式会社日立製作所 通信システム、加入者収容装置及び通信方法
US8356139B2 (en) * 2009-03-24 2013-01-15 Hitachi, Ltd. Storage system for maintaining hard disk reliability
KR101772496B1 (ko) * 2011-02-16 2017-09-13 에스케이텔레콤 주식회사 이종의 네트워크에서 경로 보호를 위한 시스템, 이를 위한 장치 및 이를 위한 방법
CN102968422B (zh) * 2011-08-31 2015-06-17 中国航天科工集团第二研究院七0六所 流数据存储控制系统及其方法
CN102650932A (zh) 2012-04-05 2012-08-29 华为技术有限公司 数据的访问方法、设备和系统
JP2014013459A (ja) * 2012-07-03 2014-01-23 Fujitsu Ltd 制御装置、ストレージ装置および制御装置の制御方法
CN103019622B (zh) * 2012-12-04 2016-06-29 华为技术有限公司 一种数据的存储控制方法、控制器、物理硬盘,及系统
US9311110B2 (en) * 2013-07-08 2016-04-12 Intel Corporation Techniques to initialize from a remotely accessible storage device
US9658897B2 (en) 2014-06-23 2017-05-23 International Business Machines Corporation Flexible deployment and migration of virtual machines
WO2016013116A1 (ja) * 2014-07-25 2016-01-28 株式会社日立製作所 ストレージ装置
CN106155577B (zh) * 2015-04-23 2019-03-26 华为技术有限公司 扩展内存的访问方法、设备以及系统
CN105138292A (zh) * 2015-09-07 2015-12-09 四川神琥科技有限公司 磁盘数据读取方法
CN105677703A (zh) * 2015-12-25 2016-06-15 曙光云计算技术有限公司 Nas文件系统及其访问方法和装置
WO2017131724A1 (en) * 2016-01-29 2017-08-03 Hewlett Packard Enterprise Development Lp Host devices and non-volatile memory subsystem controllers
CN107665091B (zh) 2016-07-28 2021-03-02 深圳大心电子科技有限公司 数据读取方法、数据写入方法及其存储控制器
CN108228076B (zh) * 2016-12-14 2020-10-16 华为技术有限公司 访问磁盘的方法和主机
CN106815338A (zh) * 2016-12-25 2017-06-09 北京中海投资管理有限公司 一种大数据的实时存储、处理和查询系统
CN107329859B (zh) 2017-06-29 2020-06-30 杭州宏杉科技股份有限公司 一种数据保护方法及存储设备
US11226753B2 (en) * 2018-05-18 2022-01-18 Ovh Us Llc Adaptive namespaces for multipath redundancy in cluster based computing systems

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017040706A1 (en) 2015-09-02 2017-03-09 Cnex Labs, Inc. Nvm express controller for remote access of memory and i/o over ethernet-type networks
JP2018045688A (ja) 2016-09-14 2018-03-22 三星電子株式会社Samsung Electronics Co.,Ltd. プロキシ装置、その動作方法、及びプロキシ装置に係る装置の動作方法

Also Published As

Publication number Publication date
CN111767008A (zh) 2020-10-13
US11249663B2 (en) 2022-02-15
WO2020014869A1 (zh) 2020-01-23
EP3796149B1 (en) 2024-02-21
JP2021510215A (ja) 2021-04-15
CN110914796A (zh) 2020-03-24
US20210004171A1 (en) 2021-01-07
EP3796149A4 (en) 2021-06-16
EP3796149A1 (en) 2021-03-24
KR20200070349A (ko) 2020-06-17
CN110914796B (zh) 2021-11-19
KR102342607B1 (ko) 2021-12-22

Similar Documents

Publication Publication Date Title
JP7094364B2 (ja) I/o要求処理方法およびデバイス
JP3895677B2 (ja) ライブラリ分割を利用して可動媒体ライブラリを管理するシステム
CN110431542B (zh) 管理存储网络中的i/o操作
JP4667707B2 (ja) 複数のパーティションを利用する可動媒体ライブラリとの通信を仲介する方法
KR100995466B1 (ko) 저장장치 영역 네트워크 내의 저장장치 가상화 구현을 위한 방법 및 장치
US6950914B2 (en) Storage system
JP4818395B2 (ja) ストレージ装置及びデータコピー方法
US7555586B2 (en) Apparatus and method for packet based storage virtualization
US9251050B2 (en) Apparatus and method for resource alerts
US20070079098A1 (en) Automatic allocation of volumes in storage area networks
US8504770B2 (en) System and method for representation of target devices in a storage router
US10523753B2 (en) Broadcast data operations in distributed file systems
JP6543246B2 (ja) ネットワークインターフェイス
EP3889785B1 (en) Stripe reconstruction method in storage system and striping server
JP5280342B2 (ja) 小型コンピューター用周辺機器インターフェース入出力リファラルのスケーリング
US11201788B2 (en) Distributed computing system and resource allocation method
CN112714910B (zh) 分布式存储系统及计算机程序产品
US10768834B2 (en) Methods for managing group objects with different service level objectives for an application and devices thereof
CN107544746B (zh) 存储设备的异构处理方法、异构处理装置及系统

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200709

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200709

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211004

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220104

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220621

R150 Certificate of patent or registration of utility model

Ref document number: 7094364

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150