CN111767008A - 处理i/o请求的方法及设备 - Google Patents

处理i/o请求的方法及设备 Download PDF

Info

Publication number
CN111767008A
CN111767008A CN202010260925.5A CN202010260925A CN111767008A CN 111767008 A CN111767008 A CN 111767008A CN 202010260925 A CN202010260925 A CN 202010260925A CN 111767008 A CN111767008 A CN 111767008A
Authority
CN
China
Prior art keywords
interval
access
access interval
host
query command
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.)
Pending
Application number
CN202010260925.5A
Other languages
English (en)
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
Priority to CN202010260925.5A priority Critical patent/CN111767008A/zh
Publication of CN111767008A publication Critical patent/CN111767008A/zh
Pending legal-status Critical Current

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/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
    • 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/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/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/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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供一种处理I/O请求的方法及设备。所述主机与存储系统通过NVMeoF协议进行通信,所述存储系统包括逻辑磁盘,所述主机通过所述存储系统中的控制节点访问所述逻辑磁盘。所述方法包括:发送状态查询命令至所述控制节点,所述状态查询命令用于指示所述控制节点上报所述控制节点所在路径的路径状态;接收所述控制节点上报的路径状态;当接收到的路径状态指示所述逻辑磁盘包括访问区间时,发送区间查询命令至所述控制节点;接收所述控制节点上报的访问区间信息,所述访问区间信息所指示的访问区间被预先分配给所述控制节点;记录所述控制节点与所述访问区间信息的映射关系。

Description

处理I/O请求的方法及设备
技术领域
本申请涉及存储领域,尤其涉及处理I/O请求的方法及设备。
背景技术
在现有基于NVMe over Fabrics(NVMeoF)协议的存储架构中,存储系统包括多个控制节点及逻辑磁盘(例如,Namespace),主机通过多个控制节点访问一个逻辑磁盘,这样,主机与所述逻辑磁盘之间存在多条路径。主机通过轮询的方式选择一条路径下发I/O请求至存储系统。存储系统中接收到I/O请求的控制节点根据所述I/O请求携带的逻辑地址按照一定的算法计算执行所述I/O请求的控制节点。例如,主机通过所述多条路径中的第一条路径下发 I/O请求至第一控制节点,第一控制节点对所述I/O请求中逻辑地址按照预设的算法计算出所述I/O请求应该由第二控制节点执行,则所述第一控制节点将所述I/O请求转发至第二控制节点。I/O请求的转发会导致I/O时延的增加。
发明内容
本发明实施例提供I/O请求的处理方法、设备、及主机,用于为存储系统的每个控制节点设置访问区间。
本发明实施例第一方面提供一种由主机执行的数据处理方法。所述主机与存储系统通过 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协议。
在一种可能的设计中,所述访问区间信息所指示的访问区间为连续的地址空间。
在一种可能的设计中,所述访问区间信息包括访问区间首地址及访问区间长度。
在一种可能的设计中,所述控制节点对应的访问区间包括第一子访问区间和第二子访问区间,所述第一子访问区间和所述第二子访问区间之间有间隔。
在一种可能的设计中,所述第一子访问子区间和第二访问子区间相邻,所述访问区间信息包括访问区间首地址、每个子访问区间的长度、及两个相邻的子访问区间之间的间隔。
在一种可能的设计中,所述访问区间信息通过为所述访问区间查询命令定义的响应信息上报至所述主机,所述访问区间信息携带在所述响应信息的区间描述字段中。
本发明第二方面提供一种数据处理方法,由存储系统的控制节点执行,所述存储系统与主机通过NVMeoF协议进行通信,所述存储系统包括逻辑磁盘。所述方法包括接收主机发送的状态查询命令,所述状态查询命令用于指示所述控制节点上报所述控制节点所在路径的路径状态;当所述逻辑磁盘包括访问区间时,将指示所述逻辑磁盘包括访问区间的路径状态上报至主机;接收所述主机根据所述路径状态发送的访问区间查询命令;根据所述区间查询信息将为所述控制节点分配的访问区间的访问区间信息上报至主机,使主机记录所述访问区间信息与所述控制节点的映射关系。
通过NVMeoF协议的状态查询命令及新增的区间查询命令获取存储系统为每个控制节点设置的访问区间,这样在后续接收到I/O请求时,可以根据I/O请求的逻辑地址所落入的分区区间,将I/O请求下发至所述分区区间对应的控制器,从而避免了I/O的转发。
本发明实施例第二方面各种可能的设计与第一发明各种可能的设计基本相同,在此不再赘述。
本发明实施例第三方面提供一种由主机执行的数据处理方法,所述主机连接至存储系统,所述存储系统包括多个控制节点,所述主机通过所述多个控制节点访问存储系统中的逻辑磁盘。所述方法包括:接收I/O请求,所述I/O请求中携带待访问数据的逻辑地址;确定所述逻辑地址所属的访问区间,其中,所述逻辑磁盘包括多个访问区间,所述主机中记录有每个访问区间与控制节点的映射关系;将所述I/O请求下发至所确定的访问区间对应的控制节点。
通过为存储系统的每个控制节点设置访问区间,在接收到I/O请求时,可以根据I/O请求的逻辑地址所落入的分区区间,将I/O请求下发至所述分区区间对应的控制器,从而避免了I/O的转发。
在一种可能的设计中,所述方法还包括:发送状态查询命令至所述多个控制节点,所述状态查询命令用于指示所述多个控制节点上报本控制节点所在路径的路径状态;
接收所述多个控制节点上报的路径状态;当接收到的路径状态指示所述逻辑磁盘包括访问区间时,发送区间查询命令至上报所述路径状态的控制节点;接收所述上报所述路径状态的控制节点所述控制节点上报的访问区间信息;记录所述上报所述路径状态的控制节点与所述访问区间信息的映射关系。
通过NVMeoF协议的状态查询命令及新增的区间查询命令获取存储系统为每个控制节点设置的访问区间,这样可以使主机根据I/O请求的逻辑地址所落入的分区区间,将I/O请求下发至所述分区区间对应的控制器,从而避免了I/O的转发。
在一种可能的设计中,所述指示所述逻辑磁盘包括访问区间的路径状态由所述接收到所述状态查询命令的控制节点在判断所述逻辑磁盘包括访问区间时,将所述指示所述逻辑磁盘包括访问区间的路径状态上报至所述主机。
通过在NVMe协议中增加指示所述逻辑磁盘包括访问区间的路径状态的路径状态,从而使主机可以根据该路径状态判断是否进行分区区间的查询。
本发明实施例的其他几种可能的设计与第一方面提供的几种可能的设计相同,在此不再赘述。
本发明实施例第四方面提供一种由主机执行的数据处理方法,所述主机与存储系统通过外部网络通信,所述方法包括:将非易失性存储器标准NVMe区间查询命令封装到所述外部网络协议得到外部网络协议区间查询命令,所述NVMe区间查询命令用于查询为所述存储系统的控制器分配的访问区间,所述访问区间属于所述存储系统的命名空间;向所述控制节点发送所述外部网络协议区间查询命令;接收所述控制节点发送的外部网络协议区间响应消息,所述外部网络协议区间响应消息包含NVMe区间查询命令响应,所述NVMe区间查询命令响应包含所述命名空间的访问区间信息;解析所述外部网络协议区间响应消息得到所述NVMe 区间查询命令响应信息;从所述NVMe区间查询命令响应获取并记录所述控制节点的访问区间信息。
通过NVMeoF协议新增的区间查询命令获取存储系统为每个控制节点设置的访问区间,这样在后续接收到I/O请求时,可以根据I/O请求的逻辑地址所落入的分区区间,将I/O请求下发至所述分区区间对应的控制器,从而避免了I/O的转发。
在一种可能的实现方式中,在所述将非易失性存储器标准NVMe区间查询命令封装到所述外部网络协议得到外部网络协议区间查询命令之前,所述方法还包括:
将NVMe状态查询命令封装到所述外部网络协议得到外部网络协议状态查询命令,所述 NVMe状态查询命令用于查询所述控制节点所在路径的路径状态;
向所述控制节点发送所述外部网络协议状态查询命令;
接收所述控制节点发送的外部网络协议状态响应消息,所述外部网络协议状态响应消息包含NVMe状态查询命令响应,所述NVMe状态查询命令响应包含路径状态信息,所述路径状态信息指示所述命名空间包括访问区间;
解析所述外部网络协议状态响应消息得到所述NVMe状态查询命令响应信息。
通过NVMe路径状态查询命令,可以将指示路径状态信息上报至主机,主机可根据所述路径状态信息确定所述逻辑磁盘是否划分了访问区间。
本发明实施例的其他可能的实现方式与第一方面的各种可能的实现方式相同,在此不再赘述。
本发明实施例第五方面提供一种数据处理方法,由存储系统的控制节点执行,所述主机与存储系统通过外部网络通信,所述方法包括:接收主机发送的外部网络协议区间查询命令,对所述外部网络协议区间查询命令进行解析得到NVMe区间查询命令;生成所述NVMe区间查询命令的响应信息,所述NVMe区间查询命令的响应信息包括所述控制节点对应的访问区间信息,将所述NVMe区间查询命令封装至所述外部网络协议得到外部网络协议区间查询命令;上报所述外部网络协议区间查询命令至所述主机。
通过NVMeoF协议新增的区间查询命令获取存储系统为每个控制节点设置的访问区间,这样在后续接收到I/O请求时,可以根据I/O请求的逻辑地址所落入的分区区间,将I/O请求下发至所述分区区间对应的控制器,从而避免了I/O的转发。
在一种可能的设计中,在接收主机发送的外部网络协议区间查询命令之前,所述方法还包括:接收外部网络协议状态查询命令,解析所述外部网络协议状态查询命令得到非易失性存储器标准NVMe状态查询命令,所述NVMe状态查询命令用于指示所述控制节点上报所述控制节点所在路径的路径状态;生成所述NVMe状态查询命令的响应信息,并当所述命名空间包括访问区间时,将指示所述命名空间包括访问区间的路径状态携带在所述NVMe状态查询命令的响应信息中;将所述NVMe状态查询命令封装得到外部网络协议状态查询命令的响应信息,并将外部网络协议状态查询命令的响应信息上报至主机。
通过NVMe路径状态查询命令,可以将指示路径状态信息上报至主机,主机可根据所述路径状态信息确定所述逻辑磁盘是否划分了访问区间。
本发明实施例的其他可能的实现方式与第一方面的各种可能的实现方式相同,在此不再赘述。
第六方面,本发明实施例还提供了一种主机,所述主机与存储系统通过NVMeoF协议进行通信,所述存储系统包括逻辑磁盘,所述主机通过所述存储系统中的控制节点访问所述逻辑磁盘,该主机还包括用于执行以上第一方面各个步骤的单元或手段。
第七方面,本发明实施例还提供了一种存储系统的控制节点,主机与所述存储系统通过 NVMeoF协议进行通信,所述存储系统包括逻辑磁盘,所述主机通过所述存储系统中的控制节点访问所述逻辑磁盘,该控制节点还包括用于执行以上第二方面各个步骤的单元或手段。
第八方面,本发明实施例还提供了一种主机,所述主机与存储系统通过NVMeoF协议进行通信,所述存储系统包括逻辑磁盘,所述主机通过所述存储系统中的控制节点访问所述逻辑磁盘,所述主机包括用于执行以上第三方面各个步骤的单元或手段。
第九方面,本发明实施例还提供了一种主机,所述主机与存储系统通过外部网络通信,该主机包括用于执行以上第四方面各个步骤的单元或手段。
第十方面,本发明实施例还提供了一种存储系统的控制节点,主机与所述存储系统通过外部网络通信,该控制节点包括用于执行以上第五方面各个步骤的单元或手段。
第十一方面,本发明实施例还提供了一种主机,所述主机与存储系统通过NVMeoF协议进行通信,所述存储系统包括逻辑磁盘,所述主机通过所述存储系统中的控制节点访问所述逻辑磁盘,所述主机包括存储器和处理器,其中,所述存储器用于存储程序和数据,所述处理器用于运行所述存储器存储的程序,根据所述存储器存储的数据,执行以上第一方面、第三方面、或第四方面提供的各种方法。
第十二方面,本发明实施例还提供了一种存储系统的控制节点,主机与所述存储系统通过NVMeoF协议进行通信,所述存储系统包括逻辑磁盘,所述主机通过所述存储系统中的控制节点访问所述逻辑磁盘,所述控制节点包括存储器和处理器,其中,所述存储器用于存储程序和数据,所述处理器用于运行所述存储器存储的程序,根据所述存储器存储的数据,执行以上第二方面或第五方面提供的各种方法。
附图说明
图1为本发明实施例所应用的系统的架构图。
图2为本发明实施例中主机访问存储系统的逻辑磁盘的N条路径的示意图。
图3a-3b分别为本发明实施例中所述存储系统中的逻辑磁盘的地址空间划分为N个连续地址空间及N个不连续地址空间的示意图。
图4为本发明实施例中的主机的架构图。
图5为本发明实施例中对访问所述逻辑磁盘的多条路径进行管理的方法的流程图。
图6为本发明实施例中的路径状态查询命令的示意图。
图7为本发明实施例中的状态上报信息的示意图。
图8为本发明实施例中NVMeoF协议中所定义的路径状态的示意图。
图9为本发明实施例中将表示空间依赖状态携带在所述状态上报信息的示意图。
图10为本发明实施例中的区间查询命令的示意图。
图11为本发明实施例中的区间上报信息的示意图。
图12及13分别为本发明实施例中的区间上报信息携带地址空间连续的访问区间的区间描述信息及地址空间不连续的访问区间的区间描述信息的示意图。
图14为本发明实施例中分配执行I/O请求的控制节点的流程图。
图15为本发明实施例中提供的主机的模块图。
图16为本发明实施例中提供的存储系统中的任一控制节点的模块图。
具体实施方式
如图1所示,为本发明实施例所应用的系统的架构图。主机100通过两个主机端口,例如主机总线适配器(Host Bus Adapter,HBA)101分别连接至两个交换机200。两个交换机200分别连接至所述存储系统300,其中,两个交换机200及两个主机端口101的设置是为了防止两个交换机200中的其中一个或者两个主机端口中的其中一个故障而导致通路断开。
所述存储系统300包括多个控制节点302例如Node 1~N。每个控制节点302通过两个存储端口301(例如HBA卡)分别连接至两个交换机(switch)200。这样,主机与每个控制节点301之间就包括两条路径,这两条路径互为冗余路径,如果其中一条路径故障,则可以使用另外一条路径在主机100与控制节点301之间传输数据。在所述存储系统300中包括由多个SSD构成的存储设备304,所述存储设备304可以为独立冗余磁盘阵列(Redundant Arrayof Independent Disks,RAID)、闪存簇(Just a Bunch of Flash)。在一些实施例中,所述存储设备 304还包括虚拟SSD,所述虚拟SSD是与所述存储设备304通过NVMeoF(Non-Volatile Memory express over Fabric)协议通信的其他存储设备映射至所述存储设备304的。通过 NVMeoF协议将远端SSD映射至本地存储设备,作为本地存储设备的虚拟SSD为现有技术,在此不再赘述。所述主机100与所述存储系统300之间通过NVMeoF协议进行通信。
利用所述存储设备304中的本地SSD和/或虚拟SSD可以构建逻辑磁盘303,所述逻辑磁盘303可以是命名空间(Namespace),所述命名空间为NVMeoF协议中定义的逻辑磁盘的表达方式。在图1中,只示出了一个逻辑磁盘303,但在实际应用中,在所述存储设备304 中可以构建多个逻辑磁盘,其中,一个逻辑磁盘可以被分配给多个主机使用,或者多个逻辑磁盘可以被分配给一个主机使用。
本发明实施例中,如图1所示,主机100可通过N个控制节点302访问分配给主机100的逻辑磁盘303。为了方便描述主机100与逻辑磁盘303之间的路径,在图2中,省略掉图1 中主机100与逻辑磁盘之间的物理链路,并将经过同一控制节点的两条冗余路径合并为一条,则得到主机100访问逻辑磁盘303的N条路径。
在存储系统300中,对逻辑磁盘303的构建及管理可由用户指定的任意一个控制节点302 执行,在此,假设用户指定的控制节点为Node 1。在逻辑磁盘303划分好后,Node1给逻辑磁盘303分配一个磁盘标识(Identification,ID)和一个磁盘编码。其中,该磁盘标识可以唯一标识该逻辑磁盘,例如,该磁盘标识包括应用于NVMeoF协议的全局唯一标识符(Globally Unique Identifier,GUID)、厂商信息及产品信息。该磁盘编码用于区别构建在存储设备304中的不同逻辑磁盘,例如所述逻辑磁盘303的磁盘编码可以表示为Namespace1。
在所述逻辑磁盘303的磁盘标识及磁盘编码分配好后,Node1为所述逻辑磁盘303分配一个虚拟主机,例如,给所述逻辑磁盘303分配的虚拟主机为虚拟主机1,并记录所述逻辑磁盘303与虚拟主机的映射关系:虚拟主机1:namespace 1。
在所述逻辑磁盘303的磁盘标识及磁盘编码分配好后,Node1即可设置访问所述逻辑磁盘303的控制节点。例如,为所述逻辑磁盘303设置N个控制节点。为了区分各个控制节点 303,存储系统300会为每个控制节点303分配一个唯一标识,即节点标识。为所述逻辑磁盘 303所设置的控制节点可以用以下映射关系表示:Namespace 1:Node 1、Node 2、……、Node N。
在本发明实施例中,所述Node1还可进一步为每个控制节点302设置其可访问的访问区间。如图3a所示,为Node1将所述逻辑磁盘303的地址空间划分为N个连续地址空间的示意图,例如,若所述逻辑磁盘303的存储空间大小为1G,则为Node 1划分的区间为0-99M,为Node 2划分的区间为100M~199M,为Node 3划分的区间为200~399M……,为Node N 划分的区间为800~1023M。每个访问区间为连续的地址空间,每个访问区间的大小可以相同,也可以不同。
在另外一个实施例中,Node1为每个控制节点分配的访问区间是不连续的。如图3b所示,首先将所述逻辑磁盘303的地址空间划分为至少两个等大的子地址空间,然后再将每个子地址空间划分为N个子访问区间,每个子访问区间对应一个控制节点。每个子地址空间划分的方式相同,即每个子地址空间中对应同一控制节点的子访问区间大小及在子地址空间中的顺序都相同。则每个控制节点对应的子访问区间的集合即构成每个控制节点的访问区间。例如,若所述逻辑磁盘303被划分为4个子地址空间,则Node1的访问区间为:0~a0、d0+1~a1、 d1+1~a2;Node 2的访问区间为:a0+1~b0、a1+1~b1、a2+1~b2;NodeN的访问区间为:c0+1~d0、 c1+1~d1、c2+1~d2。且每个Node1对应的访问区间的每个子访问区间的大小相等,且间隔相等。在记录为每个控制节点分配的访问区间时,可以记录所述访问区间的起始地址、构成所述访问区间的子访问区间的地址长度、每个子访问区间之间的地址间隔、构成所述访问区间的子访问区间数目。为所述N个控制节点302分配好访问区间后,所述N个控制节点302响应主机的请求,上报每个控制节点302对应的访问区间至主机100,主机可据此进行I/O请求的下发。关于所述访问区间的上报方法将在下文描述。在本发明实施例中,如果所述存储设备304上还构建有除所述逻辑303以外的其他逻辑磁盘,则其他逻辑磁盘根据实际需要可以划分访问区间,也可以不用划分访问区间。
如图1所示,当所述N个控制节点通过存储端口301及交换机200连接至主机端口101 时,每个控制节点302可以获取与其所连接的主机端口101的标识,然后将虚拟主机与逻辑磁盘303的磁盘编码的映射关系替换为所述主机端口标识与所述逻辑磁盘的磁盘编码的映射关系,替换后的映射关系可以表示为:HBA1,HBA2(虚拟主机1):Namespace 1。本发明实施例中,为了冗余,主机100通过两个主机端口101连接至存储系统300,所述在上述映射关系中记录有两个主机端口的标识,即:HBA1,HBA2。
上面所生成的各种映射关系,例如逻辑磁盘的磁盘编码与N个控制节点302的节点标识的映射关系、主机端口标识与逻辑磁盘的磁盘编码的映射关系、每个控制节点标识与访问区间的映射关系存储在所述N个控制节点302都可以访问的存储区域。
如图4所示,为本发明实施例中的主机100的架构图。除了两个主机端口101之外,所述主机100还包括处理器102及内存103,所述内存103中存储有多路径程序104及操作系统105。所述处理器102通过执行所述操作系统105所述多路径程序104实现主机100对访问所述逻辑磁盘303的多条路径的管理。下面将通过图5所示的流程图介绍所述主机100对访问所述逻辑磁盘303的多条路径的管理。
步骤S501,当主机100的操作系统105监测到存储系统300连接到主机100时,操作系统105通过主机100与存储系统300之间的多条路径(即所述N个控制节点的存储端口301与所述主机端口101之间形成的多条路径)分别发送磁盘上报命令至存储系统300。所述磁盘上报命令经过所述主机端口101时,会将所述主机端口标识携带在所述磁盘上报命令中。
步骤S502,存储系统300的各个控制节点302在接收到所述磁盘上报命令后,每个控制节点302获取所述磁盘上报命令中的主机端口标识,根据所述主机端口标识及主机端口标识与逻辑磁盘的磁盘编码的映射关系确定所述主机端口标识对应的磁盘编码。
步骤S503,存储系统300的各个控制节点302为所述磁盘编码对应的逻辑磁盘生成上报信息,在所述上报信息中携带所述磁盘编码,并将所述上报信息上报至主机100。下面以Node 1为例,介绍所述上报信息的上报过程。Node1通过两个HBA卡分别与主机的两个HBA卡连接,这样Node1与主机之间存在两条路径,当Node 1分别通过两个HBA卡收到两条磁盘上报命令后,分别从两条磁盘上报命令中获取两个HBA卡的标识,然后根据两个HBA卡标识获取相同的磁盘编码。在获得所述磁盘编码后即可将所述磁盘编码分别通过Node 1与主机100之间的两条路径上报至所述主机100。
根据NVMeoF协议的规定,在所述上报信息上报的过程中,会将上报所述上报信息的控制节点标识、所述上报信息所经过存储端口301(例如Node1的两个HBA端口)及经过的主机端口101添加到所述上报信息中,如此,所述上报信息中的控制器标识、存储端口、主机端口及磁盘编码用于表示上报所述磁盘编码的路径。
步骤S504,主机100的多路径程序104在收到存储系统300的各个控制节点302上报的上报信息后,通过各个上报信息中的路径信息指示的路径发送磁盘标识查询命令,所述查询命令中包括所述上报信息中的磁盘编码。
步骤S505,所述存储系统300中的各个控制节点302在接收到所述查询命令后,根据所述查询命令中的磁盘编码获取所述磁盘编码对应的磁盘标识。
步骤S506,所述存储系统300中的各个控制节点302,并将所述磁盘编码对应的磁盘标识通过发送所述查询命令的路径上报。由于存储系统300在创建逻辑磁盘303时,为每个逻辑磁盘303分配了磁盘标识和磁盘编码,所以存储系统300在接收到所述磁盘编码后,即可根据磁盘编码获取磁盘标识。
步骤507,主机100的多路径程序104根据上报的磁盘标识确定访问所述磁盘标识对应的逻辑磁盘的路径,并对所确定的路径进行管理。
具体地,所述多路径程序104在第一次收到一个磁盘标识时,会根据这个磁盘标识创建磁盘对象,包括为所述磁盘对象分配磁盘对象名称,建立所述磁盘对象名称与所述磁盘标识的映射关系,并将上报所述磁盘标识的路径记录为所述磁盘对象的路径。进一步的,还可以在所述磁盘对象中记录所述磁盘的其他相关信息,如地址空间,容量大小等。后续如果收到相同的磁盘标识,则可将后续上报所述磁盘标识的路径记录为所述磁盘对象另一条路径。
由于在本发明实施例中,为了可靠性,在每个控制节点302与主机100之间都设置了冗余路径,在所述多路径程序管理访问每个逻辑磁盘303的路径时,将每个控制节点302与主机100之间的冗余路径合并为一条。合并时,可根据控制节点标识将同一控制节点的路径记录在一起。这样,主机在下发I/O请求时,选择冗余路径中的其中一条进行I/O的下发,在其中一条路径故障时,则用另外一条路径代替故障路径进行I/O下发。为了方便描述,在下文中以合并后的路径进行描述,也即以每个控制节点302与主机100之间只存在一条路径的情况进行描述。
如此,所述多路径软件104即可通过所述磁盘对象对访问所述磁盘的多条路径进行管理,例如发现新的路径、删除断开的路径、根据预设策略选择下发IO请求的路径等。
例如,如果所述多路径软件104首先在路径1上收到磁盘编码为Namespace1的逻辑磁盘的磁盘标识,则为Namespace1建立磁盘对象,并为磁盘对象分配磁盘对象名称sda,并建立sda与所述磁盘标识的映射关系,将所述路径1记录为所述磁盘对象的第一条路径。如果后续在路径2及路径3上还收到的Namespace1的磁盘标识,则将路径2及路径3也记录为所述磁盘对象的路径。例如,在本实施例中,所述多路径软件收到在2N条路径上收到2N个磁盘标识Namespace1,对同一控制节点的路径合并之后,则所述多路径软件对主机与存储系统之间的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 pageidentifier (LID)字段中,所述LID字段在所述径状态查询命令的07:00字节的位置。命令中的其他字段与本发明实施例不相关,则在此不具体描述,在以下的描述中,也只描述跟本发明实施例相关的字段。
在本发明实施例中,所述外部网络协议可以是光纤通道(Fibre channel,FC)、无限带宽技术(InfiniBand)、RoCe(RDMA over converged ethernet)、iWARP(RDMA overTCP)及高速串行计算机扩展总线标准(peripheral component interconnect express,PCIe)等网络协议。
步骤S509,收到所述路径状态查询命令的控制节点获取路径状态,并将路径状态携带在状态上报信息中上报至主机的多路径软件104。
由于所述路径状态查询命令外部网络协议区间查询命令,所以在接收到所述路径状态查询命令后,收到所述路径状态查询命令的控制节点首先会解析所述路径状态查询命令获取所述NVMe路径状态查询命令,然后根据所述NVMe路径状态查询命令的指示去查询收到所述路径状态查询命令的控制节点所在路径的路径状态。
NVMeoF协议中,预先定义了几种路径状态,如图8所示,其中状态编码01h~04h所指示的路径状态为现有协议中定义的路径状态,其中,状态编码01h表示优选状态(即ANAOptimized State),主机100在接收到包括状态编码01h的状态上报信息后,则会将上报所述状态上报信息的路径设置为优选路径;状态编码02h表示非优选状态(即ANA Non-Optimized State),主机100在接收到包括编码02h的状态上报信息后,则会将上报所述状态上报信息的路径设置为非优选路径;状态编码03h表示不可访问状态(即ANAinaccessible State),主机 100在接收到包括状态编码03h的状态上报信息后,则会将上报所述状态上报信息的路径设置为不可访问路径;状态编码04h表示失效状态(即ANAPersistent Loss State),主机100在接收到包括状态编码03h的状态上报信息后,则会将上报所述状态上报信息的路径设置为失效路径。
状态编码05h表示的空间依赖状态(ANA LBA-Depend State)为在本发明实施例中新增的状态。该空间依赖状态表示逻辑磁盘303被划分了多个访问区间。主机100在接收到包括状态编码05h的状态上报信息后,会获取上报该状态的控制节点对应的访问区间,具体的获取方式将在下文详细描述。
收到所述路径状态查询命令的控制节点获取路径状态的方式为:确定逻辑磁盘303是否被划分为多个访问区间,当逻辑磁盘303没有被划分为多个访问区间时,则获取本控制节点所在路径的路径状态。在存储系统中,会对每条路径的状态预先标识。比如预先设置好访问逻辑磁盘303的优选路径和非优先路径,对预先识别出的不可访问路径及失效路径也会进行标识。当逻辑磁盘303被划分为多个访问区间时,则可确定所述路径状态为所述空间依赖状态。在获取路径状态后,收到所述路径状态查询命令的控制节点将各路径状态的状态编码通过图7所示的状态上报信息上报至主机100。
当确定了路径状态后,会生成所述NVMe路径查询命令的响应信息。图7所示为现有NVMeoF协议中的NVMe路径查询命令的响应信息的格式。所述响应信息包括磁盘个数字段,该字段用于携带主机100可以访问的逻辑磁盘的个数,在上报信息的07:04字节处携带。本发明实施例中只以一个逻辑磁盘为例进行说明,则在此处填1。状态上报信息还包括路径状态字段,用于携带所述路径状态,在上报信息的16字节处携带。当逻辑磁盘303没有被划分为多个访问区间时,则将表示路径状态的编码即01h~04h中的其中之一填入16字节,例如,若本控制节点所在的路径的路径状态为优选状态,则本控制节点可将优选状态对应的状态编码01h携带在字节16中。当逻辑磁盘303被划分为多个访问区间时,则如图9所示,将表示空间依赖状态的编码05h携带在所述状态上报信息的16字节中。
所生成的所述NVMe路径查询命令的响应信息会被封装到所述外部网络协议得到外部网络协议状态响应消息,并将所述外部网络协议状态响应消息作为上报信息上报至主机。
步骤S510,主机的多路径软件104在收到所述上报信息后,判断上报信息中的路径状态是否指示所述逻辑磁盘303包括多个访问区间。
当主机的多路径软件104收到所述上报信息后,对所述上报信息进行解析,得到封装在所述上报信息中的NVMe状态查询命令响应信息,然后从所述响应信息中获取所述指示路径状态的状态编码。如果所述状态编码是05h,则所述多路径软件104判断所述逻辑303包括多个访问区间,如果所述状态编码是01h~04h其中之一,则所述多路径软件104判断所述逻辑磁盘没有被划分为多个访问区间。
步骤S511,当多路径软件判断所述逻辑磁盘没有被划分为多个访问区间时,则将路径编码记录为上报所述状态上报信息的路径的路径状态,以供所述多路径软件104为I/O选择路径时参考。
步骤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区间查询命令的响应信息的命名空间标示字段用于携带逻辑磁盘的磁盘编码,例如Namespace1,在所述响应信息的03:00字节处,NVMe区间查询命令的响应信息的访问区间数量字段用于携带该区间上报信息中所携带的访问区间的数量,在所述响应信息的11:08字节处,本发明实施例中,由于每个控制节点只访问一个逻辑磁盘,所以访问区间的数量为1。在其他实施例中,主机100可以通过所述控制节点访问除所述逻辑磁盘303之外的其他逻辑磁盘,则此处所填写的访问区间的数量也可以不为1。所述NVMe区间查询命令的响应信息还包括访问区间表述字段,该访问区间表述字段用于携带访问区间的访问区间信息,该区间描述字段在所述响应信息的12:27字节,例如user data segmentdescriptor 1。当区间上报信息中携带多个访问区间时,可在所述响应信息中添加多个访问区间表述字段,例如,将对每个访问区间信息依次填写在27字节之后的字节中。每个访问区间的描述如图 12及13所示。
参考图3a及图3b的描述,访问区间有两种划分方式,一种为图3a所示的连续地址空间的划分方式,另外一种为图3b所示的非连续地址空间的划分方式。
如果访问区间为连续地址空间的划分方式,则如图13所示,所述访问区间描述信息包括访问区间首地址字段,用于携带访问区间的首地址,例如在访问区间描述信息的07:00字节处,还包括区间长度字段,用于携带访问区间的长度,例如在区间描述信息的07:00字节处,由于地址空间连续,不存在子访问区间,则携带子访问区间间隔的15:12字节为0。如果访问区间为非连续地址空间的划分方式中,每个访问区间的地址是不连续的,则字节07:00则表示的是第一个子访问区间的首地址,11:08表示每个子访问区间的长度,15:12表示的是两个相邻的子访问区间之间的间隔。
步骤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用于当主机100的操作系统105监测到存储系统300连接到主机100时,通过主机100与存储系统300之间的多条路径分别发送磁盘上报命令至存储系统300。
存储系统300的控制节点的磁盘编码上报模块1601在接收到所述磁盘上报命令后,获取所述磁盘上报命令中的主机端口标识,根据所述主机端口标识及主机端口标识与逻辑磁盘的磁盘编码的映射关系确定所述主机端口标识对应的磁盘编码,然后为所述磁盘编码对应的逻辑磁盘生成上报信息,在所述上报信息中携带所述磁盘编码,并将所述上报信息上报至主机 100。
主机的所述路径管理模块1501在收到存储系统300的各个控制节点302上报的上报信息后,通过各个上报信息中的路径信息指示的路径发送磁盘标识查询命令,所述查询命令中包括所述上报信息中的磁盘编码。
存储系统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包括多个访问区间,当判断所述逻辑磁盘没有被划分为多个访问区间时,则将路径编码记录为上报所述状态上报信息的路径的路径状态,以供所述多路径软件104 为I/O选择路径时参考,当判断所述逻辑磁盘没有被划分为多个访问区间时,则发送区间查询命令至所述存储系统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请求。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (34)

1.一种数据处理方法,包括:
主机发送区间查询命令至存储设备,所述查询命令用于查询存储设备中的逻辑磁盘的逻辑地址访问区间;
所述主机接收所述存储设备上报的逻辑地址访问区间信息。
2.如权利要求1所述的方法,其特征在于,所述逻辑地址访问区间信息包括所述逻辑地址访问区间的描述信息,所述描述信息用于描述所述逻辑地址访问区间的地址空间。
3.如权利要求1或2所述的方法,其特征在于,所述逻辑地址访问区间信息包括所述逻辑磁盘所包括的逻辑地址访问区间的数量。
4.如权利要求2所述的方法,其特征在于,所述逻辑地址访问区间的地址空间为连续的地址空间。
5.如权利要求4所述的方法,其特征在于,所述描述信息包括访问区间首地址及访问区间长度。
6.如权利要求2所述的方法,其特征在于,所述逻辑地址访问区间包括第一子访问区间和第二子访问区间,所述第一子访问区间和所述第二子访问区间之间有间隔。
7.如权利要求6所述的方法,其特征在于,所述第一子访问子区间和第二访问子区间相邻,所述描述信息包括访问区间首地址、每个子访问区间的长度、及两个相邻的子访问区间之间的间隔。
8.如权利要求1-7任意一项所述的方法,其特征在于,所述主机与存储设备通过外部网络通信,所述发送区间查询命令至所述存储设备包括:
将所述区间查询命令封装到所述外部网络协议得到外部网络协议区间查询命令;
向所述存储设备发送所述外部网络协议区间查询命令。
9.如权利要求8所述的方法,其特征在于,所述接收所述存储设备上报的逻辑地址访问区间信息,包括:
接收所述存储设备发送的外部网络协议区间响应消息,所述外部网络协议区间响应消息包含区间查询命令响应,所述区间查询命令响应包含所述逻辑地址访问区间信息;
解析所述外部网络协议区间响应消息得到所述区间查询命令响应;
从所述区间查询命令响应获取所述逻辑地址访问区间信息。
10.一种数据处理方法,包括:
存储设备接收所述主机发送的访问区间查询命令,所述查询命令用于查询存储设备中的逻辑磁盘的逻辑地址访问区间,所述存储设备支持非易失性存储器标准NVMe协议;
存储设备根据所述区间查询命令将所述逻辑磁盘的逻辑地址访问区间信息上报至主机。
11.如权利要求10所述的方法,其特征在于,所述逻辑地址访问区间信息包括所述逻辑地址访问区间的描述信息,所述描述信息用于描述所述逻辑地址访问区间的地址空间。
12.如权利要求10或11所述的方法,其特征在于,所述逻辑地址访问区间信息包括所述逻辑磁盘所包括的逻辑地址访问区间的数量。
13.如权利要求11所述的方法,其特征在于,所述逻辑地址访问区间为连续的地址空间。
14.如权利要求13所述的方法,其特征在于,所述描述信息包括访问区间首地址及访问区间长度。
15.如权利要求11所述的方法,其特征在于,所述逻辑地址访问区间包括第一子访问区间和第二子访问区间,所述第一子访问区间和所述第二子访问区间之间有间隔。
16.如权利要求15所述的方法,其特征在于,所述第一子访问子区间和第二访问子区间相邻,所述描述信息包括访问区间首地址、每个子访问区间的长度、及两个相邻的子访问区间之间的间隔。
17.如权利要求10-16任意一项所述的存储设备,其特征在于,所述主机与存储设备通过外部网络通信,所述根据所述区间查询命令将所述逻辑磁盘的逻辑地址访问区间信息上报至主机包括:
将所述逻辑地址访问区间信息封装到所述外部网络协议得到外部网络协议上报信息;
向所述主机发送所述外部网络协议上报信息。
18.一种主机,包括:
区间查询模块,用于发送区间查询命令至存储设备,所述查询命令用于查询存储设备中的逻辑磁盘的逻辑地址访问区间;
接收模块,用于接收所述存储设备上报的逻辑地址访问区间信息。
19.如权利要求18所述的主机,其特征在于,所述逻辑地址访问区间信息包括所述逻辑地址访问区间的访问区间的描述信息,所述描述信息用于描述所述逻辑地址访问区间的地址空间。
20.如权利要求18或19所述的主机,其特征在于,所述逻辑地址访问区间信息包括所述逻辑磁盘所包括的逻辑地址访问区间的数量。
21.如权利要求19所述的主机,其特征在于,所述逻辑地址访问区间为连续的地址空间。
22.如权利要求21所述的主机,其特征在于,所述描述信息包括访问区间首地址及访问区间长度。
23.如权利要求19所述的主机,其特征在于,所述逻辑地址访问区间包括第一子访问区间和第二子访问区间,所述第一子访问区间和所述第二子访问区间之间有间隔。
24.如权利要求23所述的主机,其特征在于,所述第一子访问子区间和第二访问子区间相邻,所述描述信息包括访问区间首地址、每个子访问区间的长度、及两个相邻的子访问区间之间的间隔。
25.如权利要求18-24任意一项所述的主机,其特征在于,所述主机与存储设备通过外部网络通信,所述区间查询模块具体用于:
将所述区间查询命令封装到所述外部网络协议得到外部网络协议区间查询命令;
向所述存储设备发送所述外部网络协议区间查询命令。
26.如权利要求25所述的主机,其特征在于,所述接收模块具体用于:
接收所述存储设备发送的外部网络协议区间响应消息,所述外部网络协议区间响应消息包含区间查询命令响应,所述区间查询命令响应包含所述逻辑地址访问区间信息;
解析所述外部网络协议区间响应消息得到所述区间查询命令响应;
从所述区间查询命令响应获取所述逻辑地址访问区间信息。
27.一种存储设备,其特征在于,所述存储设备包括:
接收模块,用于接收所述主机发送的访问区间查询命令,所述查询命令用于查询存储设备中的逻辑磁盘的逻辑地址访问区间;
分区上报模块,用于根据所述区间查询命令将所述逻辑磁盘的逻辑地址访问区间信息上报至主机。
28.如权利要求27所述的存储设备,其特征在于,所述逻辑地址访问区间信息包括所述逻辑地址访问区间的访问区间的描述信息,所述描述信息用于描述所述逻辑地址访问区间的地址空间。
29.如权利要求27或28所述的存储设备,其特征在于,所述逻辑地址访问区间信息包括所述逻辑磁盘所包括的逻辑地址访问区间的数量。
30.如权利要求28所述的存储设备,其特征在于,所述逻辑地址访问区间为连续的地址空间。
31.如权利要求20所述的存储设备,其特征在于,所述描述信息包括访问区间首地址及访问区间长度。
32.如权利要求28所述的存储设备,其特征在于,所述逻辑地址访问区间包括第一子访问区间和第二子访问区间,所述第一子访问区间和所述第二子访问区间之间有间隔。
33.如权利要求32所述的存储设备,其特征在于,所述第一子访问子区间和第二访问子区间相邻,所述访问区间描述信息包括访问区间首地址、每个子访问区间的长度、及两个相邻的子访问区间之间的间隔。
34.如权利要求27-33任意一项所述的存储设备,其特征在于,所述主机与存储设备通过外部网络通信,所述分区上报模块具体用于:
将所述访问区间信息封装到所述外部网络协议得到外部网络协议上报信息;
向所述主机发送所述外部网络协议上报信息。
CN202010260925.5A 2018-07-17 2018-07-17 处理i/o请求的方法及设备 Pending CN111767008A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010260925.5A CN111767008A (zh) 2018-07-17 2018-07-17 处理i/o请求的方法及设备

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
PCT/CN2018/095992 WO2020014869A1 (zh) 2018-07-17 2018-07-17 处理i/o请求的方法及设备
CN202010260925.5A CN111767008A (zh) 2018-07-17 2018-07-17 处理i/o请求的方法及设备
CN201880003796.2A CN110914796B (zh) 2018-07-17 2018-07-17 处理i/o请求的方法及设备

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201880003796.2A Division CN110914796B (zh) 2018-07-17 2018-07-17 处理i/o请求的方法及设备

Publications (1)

Publication Number Publication Date
CN111767008A true CN111767008A (zh) 2020-10-13

Family

ID=69164173

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202010260925.5A Pending CN111767008A (zh) 2018-07-17 2018-07-17 处理i/o请求的方法及设备
CN201880003796.2A Active CN110914796B (zh) 2018-07-17 2018-07-17 处理i/o请求的方法及设备

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201880003796.2A Active CN110914796B (zh) 2018-07-17 2018-07-17 处理i/o请求的方法及设备

Country Status (6)

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

Families Citing this family (9)

* 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
US12105952B2 (en) * 2021-10-08 2024-10-01 Advanced Micro Devices, Inc. Global addressing for switch fabric
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
KR20230062132A (ko) * 2021-10-29 2023-05-09 삼성전자주식회사 스트림 데이터를 송신하고 수신하기 위한 서버, 전자 장치 및 그 동작 방법
US20230336401A1 (en) * 2022-04-19 2023-10-19 Dell Products L.P. Slow drain and congestion spreading detection service
CN115495023B (zh) * 2022-11-16 2023-03-14 苏州浪潮智能科技有限公司 一种数据请求方法、装置、设备及存储介质

Family Cites Families (27)

* 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 計算機システム、ストレージ装置及びデータ管理方法
EP2388961A1 (en) * 2009-01-13 2011-11-23 Hitachi, Ltd. Communication system, subscriber accommodating apparatus and communication method
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
US10296429B2 (en) * 2014-07-25 2019-05-21 Hitachi, Ltd. Storage device
CN110059020B (zh) * 2015-04-23 2024-01-30 华为技术有限公司 扩展内存的访问方法、设备以及系统
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
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
US10346041B2 (en) * 2016-09-14 2019-07-09 Samsung Electronics Co., Ltd. Method for using BMC as proxy NVMeoF discovery controller to provide NVM subsystems to host
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

Also Published As

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

Similar Documents

Publication Publication Date Title
CN110914796B (zh) 处理i/o请求的方法及设备
JP3895677B2 (ja) ライブラリ分割を利用して可動媒体ライブラリを管理するシステム
US9513825B2 (en) Storage system having a channel control function using a plurality of processors
US9990140B2 (en) Methods of providing access to I/O devices
TWI497316B (zh) 透過小型計算機系統介面輸入/輸出(scsi i/o)指示提供多重路徑之方法、電腦可讀取媒體及系統
US9917784B2 (en) Dynamic resource allocation based upon network flow control
WO2013118195A1 (en) Storage management method and storage system in virtual volume having data arranged astride storage devices
JP4818395B2 (ja) ストレージ装置及びデータコピー方法
US6950914B2 (en) Storage system
US10917469B2 (en) Read performance enhancement by enabling read from secondary in highly available cluster setup
CN104603739A (zh) 对并行存储的块级访问
US10523753B2 (en) Broadcast data operations in distributed file systems
CN104123228A (zh) 一种数据存储系统及其使用方法
US9674312B2 (en) Dynamic protocol selection
CN109906438A (zh) 处理i/o请求的方法、存储阵列及主机
US20180131758A1 (en) Memory system including plurality of server nodes sharing storage array and operating method of memory system
US11201788B2 (en) Distributed computing system and resource allocation method
US20190332293A1 (en) Methods for managing group objects with different service level objectives for an application and devices thereof
JP2020027433A (ja) 情報システム
US7925758B1 (en) Fibre accelerated pipe data transport
US20130132621A1 (en) Method and apparatus to share hardware resources across storage controllers within a system using resource sharing module
JP2018163572A (ja) ストレージシステム、および通信方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20201013

WD01 Invention patent application deemed withdrawn after publication