在非易失性存储系统中建立连接的方法和装置的制造方法

文档序号:10552638阅读:682来源:国知局
在非易失性存储系统中建立连接的方法和装置的制造方法
【专利摘要】本发明实施例涉及在非易失性存储系统中建立连接的方法,该非易失性存储系统包括主机、服务器和至少一个非易失性存储器NVM子系统,该方法包括:与该主机建立连接;接收该主机发送请求消息,该请求消息包括该主机需要连接的NVM子系统的目标参数;通过查找该至少一个NVM子系统的参数信息,确定满足该目标参数的目标NVM子系统以及该目标NVM子系统的路由信息;向该主机发送包括该目标NVM子系统的路由信息的响应消息,以便于该主机与该目标NVM子系统建立连接。本申请的在非易失性存储系统中建立连接的方法和装置,使得主机可以与满足需求的NVM子系统建立连接,提高连接的可靠性。
【专利说明】
在非易失性存储系统中建立连接的方法和装置
技术领域
[0001]本发明涉及存储领域,尤其涉及在非易失性存储系统中建立连接的方法和装置。
【背景技术】
[0002]非易失性存储器标准(Non-Volatile Memory Express,NVMe)是一种高速的接口总线规范,当前已发布的NVMe标准主要是基于外围设备互连标准(Peripheral ComponentInterconnect-Express,PCIe)架构进行设计和开发的,统一了基于PCIe总线进行连接的设备和主机之间的队列(queue)传输机制。由于PCIe总线的高性能,基于PCIe架构的NVMe已经成为了业界主流固态硬盘(Solid State Drives,SSD)设备的标准接口。
[0003]但对于数据中心领域,由于该领域没有现成大量PCIe网络以及PCIe协议本身的扩展性等缺陷,将NVMe标准扩展到数据中心领域,就需要一种新的标准,将NVMe协议运行在广域因特网上的远程直接数据存取(Remote Direct Memory Access,RDMA)协议(internetWide-Area RDMA Protocol,iWARP)、基于融合以太网的RDMA(RDMA over ConvergedEthernet,RoCE)、高速互连(Inf iniBand,IB)或光纤通道(Fibre-Channel,FC)等网络技术中,提供更灵活的、更广泛的应用,这种新的标准可以称为基于交换平面的NVMe(NVMe overFabric)。
[0004]在现有NVMe over Fabric标准中,图1不出了现有NVMe over Fabric的系统架构,在该系统中,主机可以通过向服务器发送发现(discovery)命令,指示服务器向主机发送NVM子系统的路由信息,服务器接收该发现命令后,可以由服务器中的控制器读取路由信息,并将路由信息返回至主机,主机根据接收到的路由信息,选择NVMe over Fabric系统架构中的一个或多个非易失性存储器(Non-VoIatiIe Memory,NVM)子系统(NVM Subsystem)进行连接。
[0005]现有技术中,由于现阶段服务器向主机发送的路由信息仅包括主机的标识,如主机的身份标识(IDentity,ID),多个NVM Subsystem的标识信息,如NVM Subsystem的NVMe限定名称(NVMe Qualified Name,NQN),以及每个NVM Subsystem的端口信息主机根据路由信息随机选择NVM Subsystem进行连接,会导致该主机连接到不匹配的NVM Subsystem,例如连接的NVM Subsystem故障,或连接的NVM Subsystem不符合主机对存储资源要求,从而导致连接失败,或主机需要反复多次进行连接,连接效率低。

【发明内容】

[0006]本申请提供了一种在非易失性存储系统中建立连接的方法和装置,能够提高系统的可靠性。
[0007]第一方面,提供了一种在非易失性存储系统中建立连接的方法,该非易失性存储系统包括主机、服务器和至少一个非易失性存储器NVM子系统,该至少一个NVM子系统用于为该主机提供数据存储,该服务器中存储有该至少一个NVM子系统中每个NVM子系统的参数信息和路由信息,该方法由该服务器执行,该方法包括:与该主机建立连接;接收该主机发送请求消息,该请求消息包括该主机需要连接的NVM子系统的目标参数;通过查找该至少一个NVM子系统的参数信息,确定满足该目标参数的目标NVM子系统以及该目标NVM子系统的路由信息;向该主机发送响应消息,该响应消息包括该目标NVM子系统的路由信息,以便于该主机根据该目标NVM子系统的路由信息,与该目标NVM子系统建立连接。
[0008]本申请的在非易失性存储系统中建立连接的方法,服务器接收主机发送的需要连接的NVM子系统的目标参数,通过查找至少一个NVM子系统的参数信息确定满足目标参数的NVM子系统作为目标NVM子系统,以便于主机与该目标NVM子系统建立连接,可以避免主机连接到错误或不合适的NVM子系统,避免盲目选择和连接而导致的反复连接,使得主机可以与满足需求的NVM子系统建立连接,提高连接的可靠性。
[0009]可选地,在该目标NVM子系统中可以包括多个NVM控制器,该方法还包括:根据该多个NVM控制器的信息,在该多个NVM控制器中确定目标NVM控制器,该目标NVM控制器用于与该主机相连。
[0010]应理解,每个NVM子系统可以包括一个或多个NVM控制器,若目标NVM子系统只包括一个NVM控制器,则可以在确定该目标NVM子系统后,该主机与该目标NVM子系统建立连接,也就是与该目标NVM子系统中的唯——个NVM控制器建立连接;若该目标NVM子系统中包括多个NVM控制器,则还可以根据该多个NVM控制器的信息,在该多个NVM控制器中继续确定一个与主机相匹配的目标NVM控制器,则该主机与目标NVM子系统建立连接,也就是与该目标NVM子系统中的目标NVM控制器建立连接。
[0011]应理解,该目标NVM子系统可以包括多个端口,因此,服务器向主机发送的路由信息,可以用于该主机根据该目标NVM子系统的路由信息选择一个路径通过一个端口与该目标NVM子系统建立连接。
[0012]可选地,该目标NVM子系统的路由信息可以包括:该主机的标识、该目标NVM子系统的标识和该主机到该目标NVM子系统的路径信息。
[0013]结合第一方面,在第一方面的一种实现方式中,在该确定满足该预设规则的目标NVM子系统之前,该方法还包括:获取该每个NVM子系统的当前参数信息;根据该每个NVM子系统的该当前参数信息,更新存储的该每个NVM子系统的参数信息。
[0014]应理解,每个NVM子系统的参数信息可以包括每个NVM子系统的容量或性能相关信息,当主机与NVM子系统建立连接后,会使用该NVM子系统中的存储资源,因此,NVM子系统的参数信息会随着不同主机与NVM子系统建立连接而随时变化,服务器可以随时更新保存的每个NVM子系统的参数信息,从而为主机提供更加准确的参数信息。
[0015]例如,可以在服务器中设置更新周期,服务器周期性向NVM子系统发送请求更新的信息,并获取NVM子系统反馈的当前参数信息,服务器根据该当前参数信息,更新保存的对应的NVM子系统的参数信息;或者,也可以在NVM子系统中设置更新周期,由NVM子系统周期性发送当前参数信息,服务器根据获取到的NVM子系统的当前参数信息,更新保存的对应的NVM子系统的参数信息。
[0016]再例如,可以通过主机发送的请求消息触发服务器进行参数信息的更新。服务器接收该请求消息,该请求消息触发服务器更新NVM子系统的参数信息,服务器在更新NVM子系统的参数信息后,根据该更新后的NVM子系统的参数信息,为主机确定满足目标参数的目标NVM子系统。其中,服务器更新参数信息,可以通过向每个NVM主机发送更新信息,再根据每个NVM子系统反馈的当前参数信息,对服务器中的参数信息进行更新。
[0017]结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,该每个NVM子系统的参数信息至少包括:该每个NVM子系统的总容量、该每个NVM子系统的可用容量、该每个NVM子系统中至少一个命名空间Name space的信息、该每个NVM子系统中至少一个NVM控制器的信息以及该至少一个Namespace与该至少一个NVM控制器之间的映射关系中的一种。
[0018]可选地,在该每个NVM子系统的参数信息中可以包括该NVM子系统的总容量,主机提供的目标参数可以包括NVM子系统的总容量,则可以根据该目标参数中的总容量确定满足主机对容量需求的NVM子系统。这样,主机可以通过启动数据在不同NVM子系统之间的迀移调度,从而使得当前的目标NVM子系统的存储资源充足。
[0019 ]可选地,在该每个NVM子系统的参数信息中可以包括该NVM子系统的可用容量。NVM子系统可以连接一个或多个主机,因为该NVM子系统中部分容量可能已经被其他主机占用,NVM子系统的可以容量即该NVM子系统中未被任何主机占用的资源的容量,即该NVM子系统的剩余容量。
[0020]可选地,该至少一个Namespace的信息至少包括:该至少一个Namespace的数量、该至少一个Name space中每个Name space的容量、该每个Name space的性能、该至少一个Namespace中可用Namespace的数量、该可用Namespace的容量和该可用Namespace的性能中的一个。
[0021 ] 具体地,由于每个NVM子系统可以包括至少一个Namespace,该至少一个Namespace可以具有相同或不相同的容量,并且可以存在部分Namespace已经被其他主机占用,因此,通过Name space的数量和每个Name space的容量,或者未被占用的可用Name space的数据和可用Namespace的容量,可以从容量的角度选择合适的Namespace,进而选择对应的NVM子系统作为满足主机的目标参数的NVM子系统为目标NVM子系统。
[0022]另外,由于该至少一个Namespace可能具有不同的属性,例如不同的Namespace可能由不同的存储介质组成,从而存在不同的性能差异,因此,服务器还可以根据Namespace的性能选择合适的Namespace,进而选择对应的NVM子系统作为目标NVM子系统进行连接。
[0023]可选地,该至少一个NVM控制器的信息至少包括:该至少一个NVM控制器的数量、该至少一个NVM控制器中每个NVM控制器的身份标识ID、该每个NVM控制器的性能、该至少一个NVM控制器中可用NVM控制器的数量、该可用NVM控制器的ID和该可用NVM控制器的性能中的一个。
[0024]具体地,由于每个NVM子系统可以包括至少一个NVM控制器,并且每个NVM控制器只能与一个主机相连,因此,对于任意NVM子系统中包括的至少一个NVM控制器,可以根据该至少一个NVM控制器的数量和标识,或者根据可用NVM控制器的数量和标识,选择一个合适的NVM控制器用于与主机进行连接,即该NVM控制器属于与目标NVM子系统,这样还可以避免主机在与目标NVM子系统进行连接后,再协商选择NVM控制器的过程,而且可以避免主机与不合适或不可用的NVM控制器建立连接,提高了主机与NVM控制器连接的可靠性。
[0025]另外,还可以根据NVM控制器的性能,例如该NVM控制器占用物理资源或虚拟资源,占用资源的大小等,根据目标参数中主机的对NVM控制器性能的需求,选择合适的NVM控制器进行连接,进一步提高主机与NVM控制器连接的可靠性。
[0026]可选地,在NVM子系统的参数信息中还可以包括NVM控制器与Namespace之间的映射关系。由于每个NVM控制器可以对应管理一个或多个Name space,因此,还可以根据NVM控制器与Namespace之间的映射关系,根据目标参数中主机对Namespace的需求,确定合适的NVM控制器作为目标NVM控制器进行连接。
[0027]第二方面,提供了一种在非易失性存储系统中建立连接的方法,该非易失性存储系统包括主机、服务器和至少一个非易失性存储器NVM子系统,该至少一个NVM子系统用于为该主机提供数据存储,该服务器中存储有该至少一个NVM子系统中每个NVM子系统的参数信息和路由信息,该方法由该主机执行,该方法包括:与该服务器建立连接;向该服务器发送请求消息;接收该服务器根据该请求信息发送的响应消息,该响应消息包括该至少一个NVM子系统中部分或全部NVM子系统的参数信息和路由信息;根据该部分或全部NVM子系统的参数信息,确定满足目标参数的目标NVM子系统以及该目标NVM子系统的路由信息,该目标参数为该主机需要连接的NVM子系统的参数;根据该目标NVM子系统的路由信息,与该目标NVM子系统建立连接。
[0028]本申请的在非易失性存储系统中建立连接的方法,主机与服务器建立连接,获取服务器中保存的部分或全部NVM子系统的参数信息,根据部分或全部NVM子系统的参数信息,选择满足主机需求的NVM子系统作为目标NVM子系统,主机与该目标NVM子系统建立连接,可以避免主机连接到错误或不合适的NVM子系统,避免盲目选择和连接而导致的反复连接,使得主机可以与满足需求的NVM子系统建立连接,提高连接的可靠性。
[0029]可选地,在该目标NVM子系统中可以包括多个NVM控制器,该方法还包括:根据该多个NVM控制器的信息,在该多个NVM控制器中确定目标NVM控制器,该目标NVM控制器用于与该主机相连。
[0030]应理解,每个NVM子系统可以包括一个或多个NVM控制器,若目标NVM子系统只包括一个NVM控制器,则可以在确定该目标NVM子系统后,该主机与该目标NVM子系统建立连接,也就是与该目标NVM子系统中的唯——个NVM控制器建立连接;若该目标NVM子系统中包括多个NVM控制器,则还可以根据该多个NVM控制器的信息,在该多个NVM控制器中继续确定一个与主机相匹配的目标NVM控制器,则该主机与目标NVM子系统建立连接,也就是与该目标NVM子系统中的目标NVM控制器建立连接。
[0031 ]应理解,该目标NVM子系统可以包括多个端口,因此,该主机确定该目标NVM子系统的路由信息可以包括通过多个路径中不同端口与该NVM子系统建立连接,主机可以根据路由信息选择一个路径通过一个端口与该目标NVM子系统建立连接。
[0032]可选地,该目标NVM子系统的路由信息可以包括:该主机的标识、该目标NVM子系统的标识和该主机到该目标NVM子系统的路径信息。
[0033]结合第二方面,在第二方面的一种实现方式中,该每个NVM子系统的参数信息至少包括:该每个NVM子系统的总容量、该每个NVM子系统的可用容量、该每个NVM子系统中至少一个命名空间Name spac e的信息、该每个NVM子系统中至少一个NVM控制器的信息以及该至少一个Namespace与该至少一个NVM控制器之间的映射关系中的一种。
[0034I应理解,该每个NVM子系统的参数信息与第一方面中的每个NVM子系统的参数信息相同,主机根据每个NVM子系统的参数信息确定目标NVM子系统的过程,与服务器根据每个NVM子系统的参数信息确定目标NVM子系统的过程也类似,在此不再赘述。
[0035]结合第二方面及其上述实现方式,在第二方面的另一种实现方式中,该服务器用于根据该每个NVM子系统的当前参数信息,更新该每个NVM子系统的参数信息。
[0036]应理解,每个NVM子系统的参数信息可以包括每个NVM子系统的容量或性能相关信息,当主机与NVM子系统建立连接后,会使用该NVM子系统中的存储资源,因此,NVM子系统的参数信息会随着不同主机与NVM子系统建立连接而随时变化,服务器可以随时更新保存的每个NVM子系统的参数信息,从而为主机提供更加准确的参数信息。
[0037]例如,可以在服务器中设置更新周期,服务器周期性向NVM子系统发送请求更新的信息,并获取NVM子系统反馈的当前参数信息,服务器根据该当前参数信息,更新保存的对应的NVM子系统的参数信息;或者,也可以在NVM子系统中设置更新周期,由NVM子系统周期性发送当前参数信息,服务器根据获取到的NVM子系统的当前参数信息,更新保存的对应的NVM子系统的参数信息。
[0038]再例如,可以通过主机发送的请求消息触发服务器进行NVM子系统的参数信息的更新,服务器根据接收到的主机发送的请求消息,先触发服务器更新NVM子系统的参数信息,服务器获取更新后的NVM子系统的参数信息,并向主机发送更新后的NVM子系统的参数
?目息O
[0039]可选地,服务器更新路由信息,可以通过向每个NVM主机发送更新信息,再根据每个NVM主机反馈的响应信息,对服务器中的路由信息进行更新。
[0040]第三方面,提供了一种非易失性存储系统中的服务器,用于执行上述第一方面或第一方面的任意可能的实现方式中的方法。具体地,该装置包括用于执行上述第一方面或第一方面的任意可能的实现方式中的方法的单元。
[0041]第四方面,提供了一种非易失性存储系统中的主机,用于执行上述第二方面或第二方面的任意可能的实现方式中的方法。具体地,该装置包括用于执行上述第二方面或第二方面的任意可能的实现方式中的方法的单元。
[0042]第五方面,提供了一种非易失性存储系统中的服务器,包括:存储单元和处理器,该存储单元用于存储指令,该处理器用于执行该存储器存储的指令,并且当该处理器执行该存储器存储的指令时,该执行使得该处理器执行第一方面或第一方面的任意可能的实现方式中的方法。
[0043]第六方面,提供了一种非易失性存储系统中的主机,包括:存储单元和处理器,该存储单元用于存储指令,该处理器用于执行该存储器存储的指令,并且当该处理器执行该存储器存储的指令时,该执行使得该处理器执行第二方面或第二方面的任意可能的实现方式中的方法。
[0044]第七方面,提供了一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行第一方面或第一方面的任意可能的实现方式中的方法的指令。
[0045]第八方面,提供了一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行第二方面或第二方面的任意可能的实现方式中的方法的指令。
【附图说明】
[0046]为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0047]图1是根据本发明实施例的NVMeover Fabric的系统架构的示意图。
[0048]图2是根据本发明实施例的在非易失性存储系统中建立连接的方法的示意性流程图。
[0049]图3是根据本发明另一实施例的在非易失性存储系统中建立连接的方法的示意性流程图。
[0050]图4是根据本发明实施例的非易失性存储系统中的服务器的示意性框图。
[0051]图5是根据本发明实施例的非易失性存储系统中的主机的示意性框图。
[0052]图6是根据本发明另一实施例的非易失性存储系统中的服务器的示意性框图。
[0053]图7是根据本发明另一实施例的非易失性存储系统中的主机的示意性框图。
【具体实施方式】
[0054]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
[0055]图1示出了NVMeover Fabric的系统架构,该系统架构主要包括一个或多个主机(Host)、服务器以及至少一个NVM Subsystem,该至少一个NVM Subsystem用于为Host提供数据存储。其中,该Host可以为物理服务器,或者还可以为虚拟机;服务器也可以为物理机,或者也可以为虚拟机,在现有技术中,该服务器中保存了至少一个NVM Subsystem路由信息,该服务器中包括一个或多个控制器,该控制器仅用于读取服务器中保存的路由信息,该路由信息包括多个日志页记录(Log Page Entry),每个Log Page Entry可以包括:Host到NVM Subsystem的路由信息。NVM Subsystem中包括至少一个NVM控制器(NVM controller)以及至少一个NAND闪存,该NAND闪存是一种电压元件,用于存储数据,例如,如图1中每个NVM Subsystem包括5个NAND闪存,或者,每个NVM Subsystem还可以包括不同个数的NAND闪存。该NAND闪存可以通过一种逻辑块的集合体进行表示,即命名空间(Namespace),NAND闪存与Name space之间的映射关系不定,即一个NAND闪存可以对应多个Name space,或者一个Namespace对应多个NAND闪存,Namespace的容量可以根据实际应用进行设置。
[0056]在现有技术中,当任意一个Host需要与NVM Subsystem连接时,可以先与服务器建立连接,然后向服务器发送发现命令,服务器根据发现命令,通过服务器中的控制器读取保存的Log Page,该Log Page可以包括多条Log Page Entry,每条Log Page Entry对应一个NVM Subsystem的连接路径,例如,一个NVM Subsystem有多个路径可以访问,则每个路径都对应一个Log Page Entry0
[0057]对于每个LogPage Entry,现有技术仅包括Host ID、Host NQN、NVM SubsystemNQN以及连接到NVM Subsystem的路径信息,其中,该连接到NVM Subsystem的路径信息仅包括地址类型(Address Family)、传输地址(Transport Address)、端口标识(Port ID)以及控制器标识(Controller ID),其中Address Family表示地址类型,例如可以为IPv4或IPv6 ; Transport Address表示具体的地址信息,例如IP地址;Port ID用于表示NVMSubsystem的不同端口,由于每个NVM Subsystem可以包括一个或多个端口,因此,Host可以根据Log Page Entry中的提供的信息与NVM Subsystem建立连接;Controller ID表示NVMSubsystem中的控制器(NVM Controller),每个NVM Subsystem可以包括至少一个NVMController。在ControIIer选择上,Host可以指定NVM Subsystem中一个固定的ControlIer与NVM Subsystem进行连接;亦可以指定NVM Subsystem中任意一个ControlIer与NVMSubsystem进行连接。
[0058]由于,现有技术中的路由信息只包括上述标识类信息,因此Host只能连接到一个NVM Subsystem,但是该NVM Subsystem可能并不能满足该Host的存储或者性能等要求。例如,如果一个Host需要连接一个存储资源为100GB的NVM Subsystem,但是当前多个NVMSubsystem中仅仅有一个NVM Subsystem可以提供这些存储资源,现有技术中Host将一个一个去尝试连接NVM Subsystem,直到连接到一个可以满足存储容量需求的NVM Subsystem,操作流程复杂,连接效率低下。再例如:在单路径的情况下,一个NVM Subsystem仅对应一个Log Page Entry,由于Log Page Entry中仅仅返回了一个Controller ID供Host连接,该Controller在后续的连接过程中出现故障,这时候会引起Host与对应的NVM Subsystem也不能连接,导致存储资源浪费。因此,本发明实施例提出了一种该系统架构中的建立连接的方法,可以提高Host与对应的NVM Subsystem建立连接的效率和可靠性。
[0059]如图2所示,图2示出了根据本发明实施例的在非易失性存储系统中建立连接的方法100的示意性流程图,该方法100可以应用于如图1所示的非易失性存储系统中,即该非易失性存储系统包括Host、服务器和至少一个NVM Subsystem。如图2所示,该方法100包括:
[0060]S110,Host与服务器建立连接。
[0061 ] 应理解,在Host启动时,或者任何需要与至少一个NVM Subsystem建立连接时,或者Host需要NVM Subsystem的路由信息时,Host先与服务器建立连接。例如,该建立连接的过程,Host可以通过NVMe over Fabric标准中的连接(Connect)命令来实现,但本发明实施例并不限于此。
[0062]S120,Host向服务器发送请求消息,该请求消息用于请求该服务器发送NVMSubsystem的参数信息和路由信息,以便于该Host可以根据该NVM Subsystem的参数信息确定满足预设条件的目标NVM Subsystem。
[0063]具体地,当Host需要连接NVM Subsystem时,可以向服务器发送请求消息,通过该请求消息请求服务器发送NVM Subsystem的参数信息和路由信息,由于在该NVMe overFabric的系统架构中可以包括至少一个NVM Subsystem,因此该主机可以请求该服务器发送该至少一个NVM Subsystem中的部分或全部NVM Subsystem的参数信息和路由信息。
[0064]SI30,Host接收服务器根据请求消息发送的响应消息,该响应消息包括至少一个NVM Subsystem中部分或全部NVM Subsystem的参数信息和路由信息。
[0065]应理解,该NVM Subsystem的参数信息可以保存在服务器中,即如图1所示的服务器中,在现有技术中,该服务器保存每个NVM Subsystem的路由信息,而在本发送实施例中,该服务器中还保存了每个NVM Subsystem的参数信息,服务器根据请求消息,读取全部或者部分NVM Subsystem的参数信息和路由信息,通过Log Page Entry指示每个NVM Subsystem的参数信息和路由信息,服务器向Host发送响应消息,该响应消息包括指示NVM Subsystem的参数信息和路由信息的一个或者多个Log Page Entry0
[00??] 应理解,与现有技术相同,该每个NVM Subsystem的路由信息可以包括Host的标识、每个NVM Subsystem的标识以及指示Host到每个NVM Subsystem的路径信息。
[0067]S140,Host分析接收到的NVM Subsystem的参数信息,根据该NVM Subsystem的参数信息,确定满足目标参数的目标NVM Subsystem,该目标NVM Subsystem可以满足Host存储容量和性能等需求。可选地,该Host还可以确定该目标NVM Subsystem的路由信息,以便于该Host根据路由信息与该目标NVM Subsystem建立连接D
[0068]应理解,该目标参数即该Host设置的预设条件,该目标参数可以用于表示该Host需要连接的NVM Subsystem要满足的存储容量或性能等方面的需要。例如,该Host需要与总存储容量大于100GB的NVM Subsystem建立连接,则该目标参数就可以为NVM Subsystem的总存储容量大于10GBtj
[0069]应理解,Host确定目标NVM Subsystem,可以与该目标NVM Subsystem建立连接,也就是与该目标NVM Subsystem中的一个NVM controller建立连接,通过该NVM controller使用存储资源因此,Host确定目标NVM Subsystem,包括在该目标NVM Subsystem中确定目标NVM controller,Host与该目标NVM controller建立连接。
[0070]可选地,对于服务器中保存的每个NVMSubsystem的参数信息,或者Host接收到的一个或多个NVM Subsystem中每个NVM Subsystem的参数信息,可以包括以下信息中的至少一种:该每个NVM Subsystem的总容量、该每个NVM Subsystem的可用容量、该每个NVMSubsystem中至少一个Nam espace的信息、该每个N VM Subsystem中至少一个N VMcontrolIer的信息以及该至少一个Namespace与该至少一个NVM cont:roller之间的映射关系中的一种。
[0071 ] 其中,对于每个NVM Subsystem的总容量,Host获取该NVM Subsystem的总容量,选择总容量满足Host要求的目标参数的NVM Subsystem作为匹配的目标NVM Subsystem,这样,在存储资源不足时,Host可以通过启动数据在不同NVM Subsystem之间的迀移调度,从而使得当前的目标NVM Subsystem的存储资源充足。
[0072]对于每个NVM Subsystem的可用容量,该可用容量也可以称为该NVM Subsystem的剩余容量,由于每个NVM Subsystem可以包括多个NVM controller,每个NVM controller可以与一个Host相连,因此,对于任意一个NVM Subsystem,其部分容量可能已经被其他相连的Host占用,因此,服务器发送的NVM Subsystem参数信息可以包括NVM Subsystem的剩余容量,该剩余容量即为该NVM Subsystem的可用容量,Host可以根据NVM Subsystem的可用容量确定该NVM Subsystem是否满足Host的目标参数的要求,确定满足Host容量需求的NVMSubsystem为目标NVM Subsystem。
[0073]例如,Host希望连接的NVM Subsystem具有10GB的存储资源,即目标参数为存储资源大于或等于10GB,贝IjHost可以先根据NVM Subsystem的可用容量选择满足要求的NVMSubsystem进行连接,若当前存在可用容量大于或等于10GB的NVM Subsystem,则Host确定该NVM Subsystem为目标NVM Subsystem,并与该目标NVM Subsystem进行连接;若当前不存在可用容量大于或等于10GB的NVM Subsystem,则Host可以根据NVM Subsystem的总容量,选择总容量大于或等于1GB的NVM Subsystem,确定该N VM Subsystem为目标NVMSubsystem,并与该目标NVM Subsystem进行连接,并在连接后,可以通过NVM Subsystem之间的数据迀移,使得该目标NVM Subsystem的容量满足该Host的要求D
[0074]可选地,对于每个NVM Subsystem的参数信息中的至少一个Namespace的信息,该至少一个Namespace的信息至少包括:至少一个Namespace的数量、每个Namespace的容量、每个Namespace的性能、至少一个Name space中可用Name space的数据、每个可用Name space的容量以及每个可用Namespace的性能中的一个。
[0075]具体地,由于每个NVM Sub sy stem可以包括至少一个Name space,该至少一个Namespace可以具有相同或不相同的容量,并且可以存在部分Namespace已经被其他Host占用,因此,通过Namespace的数量和每个Namespace的容量,或者未被占用的可用Namespace的数据和可用Namespace的容量,Host可以从容量的角度选择合适的Namespace,进而选择对应的NVM Subsystem作为相匹配的目标NVM Subsystem进行连接。
[0076]另外,由于该至少一个Namespace可能具有不同的属性,例如不同的Name space可能由不同的存储介质组成,从而存在不同的性能差异,因此,目标参数还可以包括Host对Namespace性能的要求,Host还可以根据Namespace的性能选择满足目标参数的Namespace,进而选择对应的NVM Subsystem作为目标NVM Subsystem进行连接。
[0077]可选地,对于每个NVM Subsystem的参数信息中的至少一个NVM controlIer的信息,该至少一个NVM controller的信息至少包括:至少一个NVM controller的数量、每个NVM controller的标识、每个NVM controller的性能、至少一个NVM controller中可用NVMcontroller的数量、每个可用NVM controller的标识、每个可用NVM controller的性能中的一个。
[0078]具体地,由于每个NVM Subsystem可以包括至少一个NVM controller,并且每个NVM controller只能与一个Host相连,因此,对于任意NVM Subsystem中包括的至少一个NVM controller,可以根据该至少一个NVM controlIer的数量和标识,或者根据可用NVMcontroller的数量和标识,Host可以选择一个满足目标参数的NVM controller进行连接,即该NVM controller属于的目标NVM Subsystem,这样还可以避免Host在选择目标NVMSubsystem进行连接后,再协商选择NVM controlIer的过程,而且可以避免Host与不合适或不可用的NVM controlIer建立连接,提高了Host与NVM controller连接的可靠性。
[0079]另外,Host还可以根据NVM controller的性能,例如该NVM controller占用物理资源或虚拟资源,占用资源的大小等,根据目标参数中Host对NVM controlIer的需求,选择合适的NVM controller进行连接,进一步提高Host与NVM controller连接的可靠性。
[0080]可选地,在NVM Subsystem的参数信息中还可以包括NVM controller与Namespace之间的映射关系由于每个NVM control Ier可以对应管理一个或多个Namespace,因此,Host可以根据NVM controller与Namespace之间的映射关系,根据目标参数中Host对Namespace的需求,确定合适的NVM controlIer作为目标NVM controller进行连接。
[00S^ ] 在本发明实施例中,Host确定目标NVM Subsystem,对应的可以确定该目标NVMSubsystem的路由信息,即Log Page Entry。由于每个NVM Subsystem的每个路径都可以对应一个Log Page Entry,服务器可以在每个Log Page Entry中都携带上述NVM Subsystem的参数信息,但是由于每个NVM Subsystem可能存在多条路径,每个路径对应的Log PageEntry均携带相同的NVM Subsystem的参数信息会导致信息重复传递,因此,对于相同NVMSubsystem的不同路径对应的多个Log Page Entry,可以只在其中一个Log Page Entry中携带该NVM Subsystem的参数信息,从而避免信息的重复传递。
[0082]应理解,由于在服务器发送的NVM Subsystem的参数信息中,涉及每个NVMSubsystem的容量或性能相关信息,这些信息会随着不同Host与不同NVM Subsystem建立连接而随时变化,因此,服务器可以随时更新保存的NVM Subsystem的参数信息。
[0083]例如,可以在服务器中设置更新周期,服务器周期性向NVM子系统发送请求更新的信息,并获取NVM子系统反馈的当前参数信息,服务器根据该当前参数信息,更新保存的对应的NVM子系统的参数信息;或者,也可以在NVM子系统中设置更新周期,由NVM子系统周期性发送当前参数信息,服务器根据获取到的NVM子系统的当前参数信息,更新保存的对应的NVM子系统的参数信息。
[0084]再例如,可以通过Host发送的请求消息触发服务器进行参数信息的更新,服务器根据接收到的Host发送的请求消息,先触发服务器更新参数信息,服务器读取并获取更新后的参数信息,并向Host发送更新后的参数信息,本发明实施例并不限于此。
[0085]可选地,服务器更新参数信息,可以通过向每个NVM Subsystem发送更新信息,再根据每个NVM Subsystem反馈的响应信息,对服务器中的参数信息进行更新。
[0086]S150,根据目标NVM Subsystem的路由信息,Host与目标NVM Subsystem建立连接。
[0087]具体地,Host确定了满足目标参数的目标NVM Subsystem后,可以与该NVMSubsystem建立连接。可选地,由于该目标NVM Subsystem可以包括多个NVM controller,因此,Host可以根据现有技术,与目标NVM Subsystem协商确定目标NVM controller进行连接。或者,该Host确定目标NVM Subsystem的同时,根据NVM Subsystem的参数信息中关于NVM controller的信息,根据Host对NVM controlIer的需求,例如:性能,或能访问的Namespace等,确定目标NVM controller,直接与该目标NVM controller建立连接,本发明实施例并不限于此。
[0088]可选地,如图1所示,对于NVMe over Fabr i c的系统架构,Hos t与目标NVMSubsystem建立连接,可以通过交换机实现。
[0089]可选地,在该目标NVM Subsystem的路由信息中,可以包括多个端口信息,即该目标NVM Subsystem对应多个Log Page Entry,则该Host可以选择其中一条路径通过一个端口与目标NVM Subsystem建立连接。
[0090]因此,本发明实施例的在非易失性存储系统中建立连接的方法,Host接收服务器发送的NVM Subsystem的参数信息,根据该NVM Subsystem的参数信息中关于每个NVMSubsystem中包括的各个部分的相关性能的信息,选择与Host相匹配的NVM Subsystem作为目标NVM Subsystem,Host与该目标NVM Subsystem建立连接,可以避免连接到错误或不合适的NVM Subsystem,避免盲目选择和连接而导致的反复连接,使得Host可以与到满足Host需求的NVM Subsystem建立连接,提高连接的可靠性。
[0091]上文中结合图1和图2,详细描述了在一种实施例中,通过HoSt确定目标Subsystem,然后建立host与目标Subsystem的连接的方法,,下面将结合图3,描述在另一种实施例中,通过服务器中确定目标Subsystem,然后建立host与目标Subsystem的连接的方法。
[0092]图3示出了根据本发明另一实施例在非易失性存储系统中建立连接的方法200的示意性流程图,该方法200同样应用于非易失性存储系统中,该非易失性存储系统可以如图1所示,该非易失性存储系统即为上述现有技术中的NVMe over Fabric的系统架构。
[0093]在方法100中,Host接收服务器发送的NVM Subsystem的参数信息,分析确定相匹配的目标NVM Subsystem进行连接,该服务器与现有技术中服务器类似,只具有读取功能;可选地,在该方法200中,该服务器不但具有读取功能,还可以根据Host的性能要求,对NVMSubsystem参数进行分析,确定与Host相匹配的目标NVM Subsystem,具体地,如图3所示,该方法200包括:
[0094]S210,服务器与Host建立连接。
[0095]与方法I00中的S 11 O类似,在Ho s t启动时,或者任何需要与至少一个NVMSubsystem建立连接时,或者Host需要NVM Subsystem的路由信息时,Host先与服务器建立连接ο例如,该建立连接的过程,Host可以通过NVMe over Fabric标准中的连接(Connect)命令来实现,但本发明实施例并不限于此
[0096]S220,服务器接收Host发送的请求消息,该请求消息用于请求服务器为该Host确定目标NVM Subsystem。
[0097]具体地,Host向该服务器发送请求消息,该请求消息用于请求服务器为该Host确定满足目标参数的目标NVM Subsystem,该目标参数即该Host设置的预设条件,该目标参数可以用于表示该Host需要连接的NVM Subsystem要满足的存储容量或性能等方面的需要。因此,在该请求消息中可以包括该目标参数,即包括Host对该目标NVM Subsystem的要求,例如,该目标参数可以该Host对存储资源大小的要求,该Host要求NVM Subsystem的存储资源大于或等于10GB;再例如,该目标参数还可以为该Host对该NVM Subsystem中Namespace的性能或容量的要求。
[0098]S230,服务器根据该请求消息,查找至少一个NVM Subsystem的参数信息,分析该至少一个NVM Subsystem的参数信息,确定满足目标参数的目标NVM Subsystem。相应地,该服务器还可以确定该目标NVM Subsystem的路由信息。
[0099]具体地,服务器接收Host发送的请求消息后,获取至少一个NVM SubsystemNVMSubsystem的参数信息和路由信息,其中,该路由信息可以与现有技术中类似,包括Host的标识、每个NVM Subsy stem的标识以及Ho st到每个NVM Sub system的路径信息。而NVMSubsystem的参数信息可以包括以下信息中的至少一种:该每个NVM Subsystem的总容量、该每个NVM Subsy stem的可用容量、该每个NVM Subsy stem中至少一个Name space的信息、该每个NVM Subsystem中至少一个NVM controller的信息以及该至少一个Namespace与该至少一个NVM contro 11 er之间的映射关系中的一种。
[0100]具体地,该NVM Subsystem参数信息中包括的各个信息与上述方法100中S130以及S140中服务器向Host发送的NVM Subsystem的参数信息一致,并且服务器可以根据目标参数中Host对NVM Subsystem的需要,同样按照上述方法100中S140的Hos t分析该NVMSubsystem参数信息的过程,服务器对每个NVM Subsystem的参数信息进行分析,确定与Host相匹配的目标NVM Subsystem,在此不再赘述。
[0101]可选地,该服务器可以一个个读取NVM Subsystem的参数信息,当确定了满足目标参数的NVM Subsystem后,停止分析,将该NVM Subsystem确定为目标NVM Subsystem;或者,该服务器可以查找保存的每个NVM Subsystem的参数信息,确定满足目标参数的目标NVMSubsystem,本发明实施例并不限于此。
[0102]可选地,类似方法100中Host分析NVM Subsystem的参数信息过程,服务器可以确定该目标NVM Subsystem,进一步,由于该目标NVM Subsystem可以包括多个NVMcontroller,因此,服务器还可以根据目标参数中Host的要求,进一步确定与Host相匹配的该目标NVM Subsystem中的目标NVM controller0
[0103]S240,服务器向Host发送响应消息,该响应消息包括目标NVM Subsystem的路信息,以便于主机与该目标NVM Subsystem建立连接。
[0104]具体地,服务器根据目标参数表示的Host的需求,根据NVMSubsystem的参数数据确定目标NVM Subsystem,可以通过响应消息向该Host发送该目标NVM Subsystem的路由信息,以便于Host与该目标NVM Subsystem建立连接。
[0105]可选地,可以通过Log Page Entry表示该目标NVM Subsystem的路由信息,该NVMSubsystem的路由信息可以包括:目标NVM Subsystem的ID、该目标NVM Subsystem的NQN、Host到该目标NVM Subsystem的路径信息中的至少一种。可选地,该Log Page Entry还可以包括该目标NVM Subsystem的端口信息,由于该目标NVM Subsystem可以包括一个或多个端口,因此可以通过一个或多个Log Page Entry指示不同的端口,每个Log Page Entry对应一个NVM Subsystem的端口,由Host选择一个端口与该目标NVM Subsystem建立连接。
[0106]S250,Host与目标NVM Subsystem建立连接。
[0107]具体地,该S250与方法100中的S150类似,Host根据接收到的目标NVM Subsystem的路由信息,与目标NVM Subsystem建立连接;或者根据接收到的目标NVM Subsystem中的目标NVM controller,直接与该目标NVM contro I Ier建立连接,在此不再赘述。
[0108]应理解,与方法100类似,服务器中保存NVM Subsystem的参数信息,可以随时更新。例如,可以在服务器中设置更新周期,服务器周期性更新保存的参数信息,使得Host获取的NVM Subsystem的参数信息更加准确。再例如,可以通过Host发送的请求消息触发服务器进行参数信息的更新,服务器根据接收到的Host发送的请求消息,先触发服务器更新参数信息,服务器读取并获取更新后的参数信息,再根据更新后的参数信息为Host确定目标NVM Subsystem,本发明实施例并不限于此。
[0109]可选地,服务器更新参数信息,可以通过向每个NVM Subsystem发送更新信息,再根据每个NVM Subsystem反馈的响应信息,对服务器中的参数信息进行更新。
[0110]应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
[0111]因此,本发明实施例的在非易失性存储系统中建立连接的方法,Host向服务器发送请求消息,服务器根据请求消息获取NVM Subsystem的参数信息,并根据该NVMSubsystem的参数信息中关于每个NVM Subsystem中包括的各个部分的相关性能的信息,选择与Host相匹配的NVM Subsystem作为目标NVM Subsystem,并通过响应消息向Host发送该目标NVM Subsystem,以便于Host与该目标NVM Subsystem建立连接,可以避免Host连接到错误或不合适的NVM Subsystem,避免Host盲目的反复连接测试,使得Host可以与到满足需求的NVM Subsystem建立连接,提高连接的可靠性。
[0112]上文中结合图1至图3,详细描述了根据本发明实施例的在非易失性存储系统中建立连接的方法,下面将结合图4至图7,描述根据本发明实施例的在非易失性存储系统中建立连接的装置。
[0113]图4示出了根据本发明实施例的非易失性存储系统中的服务器300的示意性框图,该非易失性存储系统包括主机、该服务器300和至少一个非易失性存储器NVM子系统,该至少一个NVM子系统用于为该主机提供数据存储,该服务器300中存储有该至少一个NVM子系统中每个NVM子系统的参数信息和路由信息,如图4所示,该服务器300包括:
[0114]处理单元310,用于与该主机建立连接;
[0115]接收单元320,用于接收该主机发送请求消息,该请求消息包括该主机需要连接的NVM子系统的目标参数;
[0116]确定单元330,用于通过查找该至少一个NVM子系统的参数信息,确定满足该目标参数的目标NVM子系统以及该目标NVM子系统的路由信息;
[0117]发送单元340,用于向该主机发送响应消息,该响应消息包括该目标NVM子系统的路由信息,以便于该主机根据该目标NVM子系统的路由信息,与该目标NVM子系统建立连接。
[0118]因此,本发明实施例的非易失性存储系统中的服务器,通过接收主机发送的需要连接的NVM子系统的目标参数,查找至少一个NVM子系统的参数信息确定满足目标参数的NVM子系统作为目标NVM子系统,以便于主机与该目标NVM子系统建立连接,可以避免主机连接到错误或不合适的NVM子系统,避免盲目选择和连接而导致的反复连接,使得主机可以与满足需求的NVM子系统建立连接,提高连接的可靠性。
[0119]可选地,该确定单元330具体用于:在确定满足该目标参数的目标NVM子系统之前,获取该每个NVM子系统的当前参数信息;根据该每个NVM子系统的该当前参数信息,更新存储的该每个NVM子系统的参数信息。
[0120]可选地,该每个NVM子系统的参数信息至少包括:该每个NVM子系统的总容量、该每个NVM子系统的可用容量、该每个NVM子系统中至少一个命名空间Name space的信息、该每个NVM子系统中至少一个NVM控制器的信息以及该至少一个Namespace与该至少一个NVM控制器之间的映射关系中的一种。
[0121]应理解,根据本发明实施例的非易失性存储系统中的服务器300可对应于执行本发明实施例中的方法200中的服务器,并且服务器300中的各个模块的上述和其它操作和/或功能分别为了实现图3中的方法中的服务器的相应流程,为了简洁,在此不再赘述。
[0122]因此,本发明实施例的非易失性存储系统中的服务器,通过接收主机发送的需要连接的NVM子系统的目标参数,查找至少一个NVM子系统的参数信息确定满足目标参数的NVM子系统作为目标NVM子系统,以便于主机与该目标NVM子系统建立连接,可以避免主机连接到错误或不合适的NVM子系统,避免盲目选择和连接而导致的反复连接,使得主机可以与满足需求的NVM子系统建立连接,提高连接的可靠性。
[0123]图5示出了根据本发明实施例的非易失性存储系统中的主机400的示意性框图,该非易失性存储系统包括该主机400、服务器和至少一个非易失性存储器NVM子系统,该至少一个NVM子系统用于为该主机400提供数据存储,该服务器中存储有该至少一个NVM子系统中每个NVM子系统的参数信息和路由信息,如图5所示,该主机400包括:
[0124]处理单元410,用于与该服务器建立连接;
[0125]发送单元420,用于向该服务器发送请求消息;
[0126]接收单元430,用于接收该服务器根据该请求信息发送的响应消息,该响应消息包括该至少一个NVM子系统中部分或全部NVM子系统的参数信息和路由信息;
[0127]确定单元440,用于根据该部分或全部NVM子系统的参数信息,确定满足目标参数的目标NVM子系统以及该目标NVM子系统的路由信息,该目标参数为该主机需要连接的NVM子系统的参数;
[0128]该处理单元410还用于:根据该目标NVM子系统的路由信息,与该目标NVM子系统建立连接。
[0129]因此,本发明实施例的非易失性存储系统中的主机,通过与服务器建立连接,获取服务器中保存的部分或全部NVM子系统的参数信息,根据部分或全部NVM子系统的参数信息,选择满足主机需求的NVM子系统作为目标NVM子系统,主机与该目标NVM子系统建立连接,可以避免主机连接到错误或不合适的NVM子系统,避免盲目选择和连接而导致的反复连接,使得主机可以与满足需求的NVM子系统建立连接,提高连接的可靠性。
[0130]可选地,该每个NVM子系统的参数信息至少包括:该每个NVM子系统的总容量、该每个NVM子系统的可用容量、该每个NVM子系统中至少一个命名空间Name space的信息、该每个NVM子系统中至少一个NVM控制器的信息以及该至少一个Namespace与该至少一个NVM控制器之间的映射关系中的一种。
[01311应理解,根据本发明实施例的非易失性存储系统中的主机400可对应于执行本发明实施例中的方法100中的主机,并且主机400中的各个模块的上述和其它操作和/或功能分别为了实现图2中的方法的主机的相应流程,为了简洁,在此不再赘述。
[0132]因此,本发明实施例的非易失性存储系统中的主机,通过与服务器建立连接,获取服务器中保存的部分或全部NVM子系统的参数信息,根据部分或全部NVM子系统的参数信息,选择满足主机需求的NVM子系统作为目标NVM子系统,主机与该目标NVM子系统建立连接,可以避免主机连接到错误或不合适的NVM子系统,避免盲目选择和连接而导致的反复连接,使得主机可以与满足需求的NVM子系统建立连接,提高连接的可靠性。
[0133]图6示出了根据本发明实施例的非易失性存储系统中的服务器500的示意性框图,该非易失性存储系统包括主机、该服务器500和至少一个非易失性存储器NVM子系统,该至少一个NVM子系统用于为该主机提供数据存储,该服务器500中存储有该至少一个NVM子系统中每个NVM子系统的参数信息和路由信息,如图6所示,该服务器500包括:处理器510和收发器520,处理器510和收发器520相连,可选地,该装置500还包括存储器530,存储器530与处理器510相连,进一步可选地,该装置500包括总线系统540。其中,处理器510、存储器530和收发器520可以通过总线系统540相连,该存储器530可以用于存储指令,该处理器510用于执行该存储器530存储的指令,以控制收发器520发送信息或信号。
[0134]该处理器510用于:与该主机建立连接;该收发器520用于:接收该主机发送请求消息,该请求消息包括该主机需要连接的NVM子系统的目标参数;该处理器510用于:通过查找该至少一个NVM子系统的参数信息,确定满足该目标参数的目标NVM子系统以及该目标NVM子系统的路由信息;该收发器520用于:向该主机发送响应消息,该响应消息包括该目标NVM子系统的路由信息,以便于该主机根据该目标NVM子系统的路由信息,与该目标NVM子系统建立连接。
[0135]因此,本发明实施例的非易失性存储系统中的服务器,通过接收主机发送的需要连接的NVM子系统的目标参数,查找至少一个NVM子系统的参数信息确定满足目标参数的NVM子系统作为目标NVM子系统,以便于主机与该目标NVM子系统建立连接,可以避免主机连接到错误或不合适的NVM子系统,避免盲目选择和连接而导致的反复连接,使得主机可以与满足需求的NVM子系统建立连接,提高连接的可靠性。
[0136]应理解,在本发明实施例中,该处理器510可以是中央处理单元(CentralProcessing Unit,简称为“CPU”),该处理器510还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0137]该存储器530可以包括只读存储器和随机存取存储器,并向处理器510提供指令和数据。存储器530的一部分还可以包括非易失性随机存取存储器。例如,存储器530还可以存储设备类型的信息。
[0138]该总线系统540除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统540。
[0139]在实现过程中,上述方法的各步骤可以通过处理器510中的硬件的集成逻辑电路或者软件形式的指令完成。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器530,处理器510读取存储器530中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
[0140]可选地,该处理器510具体用于:在确定满足该目标参数的目标NVM子系统之前,获取该每个NVM子系统的当前参数信息;根据该每个NVM子系统的该当前参数信息,更新存储的该每个NVM子系统的参数信息。
[0141]可选地,该每个NVM子系统的参数信息至少包括:该每个NVM子系统的总容量、该每个NVM子系统的可用容量、该每个NVM子系统中至少一个命名空间Name space的信息、该每个NVM子系统中至少一个NVM控制器的信息以及该至少一个Namespace与该至少一个NVM控制器之间的映射关系中的一种。
[0142]应理解,根据本发明实施例的非易失性存储系统中的服务器500可对应于本发明实施例中的服务器300,并可以对应于根据本发明实施例的方法200中的服务器,并且服务器500中的各个模块的上述和其它操作和/或功能分别为了实现图3中的方法中服务器的相应流程,为了简洁,在此不再赘述。
[0143]因此,本发明实施例的非易失性存储系统中的服务器,通过接收主机发送的需要连接的NVM子系统的目标参数,查找至少一个NVM子系统的参数信息确定满足目标参数的NVM子系统作为目标NVM子系统,以便于主机与该目标NVM子系统建立连接,可以避免主机连接到错误或不合适的NVM子系统,避免盲目选择和连接而导致的反复连接,使得主机可以与满足需求的NVM子系统建立连接,提高连接的可靠性。
[0144]图7示出了根据本发明实施例的非易失性存储系统中的主机600的示意性框图,该非易失性存储系统包括该主机600、服务器和至少一个非易失性存储器NVM子系统,该至少一个NVM子系统用于为该主机600提供数据存储,该服务器中存储有该至少一个NVM子系统中每个NVM子系统的参数信息和路由信息,如图7所示,该主机600包括:处理器610和收发器620,处理器610和收发器620相连,可选地,该装置600还包括存储器630,存储器630与处理器610相连,进一步可选地,该装置600包括总线系统640。其中,处理器610、存储器630和收发器620可以通过总线系统640相连,该存储器630可以用于存储指令,该处理器610用于执行该存储器630存储的指令,以控制收发器620发送信息或信号。
[0145]该处理器610用于:与该服务器建立连接;该收发器620用于:向该服务器发送请求消息;接收该服务器根据该请求信息发送的响应消息,该响应消息包括该至少一个NVM子系统中部分或全部NVM子系统的参数信息和路由信息;该处理器610用于:根据该部分或全部NVM子系统的参数信息,确定满足目标参数的目标NVM子系统以及该目标NVM子系统的路由信息,该目标参数为该主机需要连接的NVM子系统的参数;根据该目标NVM子系统的路由信息,与该目标NVM子系统建立连接。
[0146]因此,本发明实施例的非易失性存储系统中的主机,通过与服务器建立连接,获取服务器中保存的部分或全部NVM子系统的参数信息,根据部分或全部NVM子系统的参数信息,选择满足主机需求的NVM子系统作为目标NVM子系统,主机与该目标NVM子系统建立连接,可以避免主机连接到错误或不合适的NVM子系统,避免盲目选择和连接而导致的反复连接,使得主机可以与满足需求的NVM子系统建立连接,提高连接的可靠性。
[0147]应理解,在本发明实施例中,该处理器610可以是CPU,该处理器610还可以是其他通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0148]该存储器630可以包括只读存储器和随机存取存储器,并向处理器610提供指令和数据。存储器630的一部分还可以包括非易失性随机存取存储器。例如,存储器630还可以存储设备类型的信息。
[0149]该总线系统640除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统640。
[0150]在实现过程中,上述方法的各步骤可以通过处理器610中的硬件的集成逻辑电路或者软件形式的指令完成。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器630,处理器610读取存储器630中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
[0151]可选地,该每个NVM子系统的参数信息至少包括:该每个NVM子系统的总容量、该每个NVM子系统的可用容量、该每个NVM子系统中至少一个命名空间Name space的信息、该每个NVM子系统中至少一个NVM控制器的信息以及该至少一个Namespace与该至少一个NVM控制器之间的映射关系中的一种。
[0152]应理解,根据本发明实施例的非易失性存储系统中的主机600可对应于本发明实施例中的主机400,并可以对应于根据本发明实施例的方法100中的主机并且主机600中的各个模块的上述和其它操作和/或功能分别为了实现图2中的方法中主机的相应流程,为了简洁,在此不再赘述。
[0153]因此,本发明实施例的非易失性存储系统中的主机,通过与服务器建立连接,获取服务器中保存的部分或全部NVM子系统的参数信息,根据部分或全部NVM子系统的参数信息,选择满足主机需求的NVM子系统作为目标NVM子系统,主机与该目标NVM子系统建立连接,可以避免主机连接到错误或不合适的NVM子系统,避免盲目选择和连接而导致的反复连接,使得主机可以与满足需求的NVM子系统建立连接,提高连接的可靠性。
[0154]本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0155]所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0156]在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0157]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0158]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0159]所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(R0M,Read-0nly Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0160]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
【主权项】
1.一种在非易失性存储系统中建立连接的方法,其特征在于,所述非易失性存储系统包括主机、服务器和至少一个非易失性存储器NVM子系统,所述至少一个NVM子系统用于为所述主机提供数据存储,所述服务器中存储有所述至少一个NVM子系统中每个NVM子系统的参数信息和路由信息,所述方法由所述服务器执行,所述方法包括: 与所述主机建立连接; 接收所述主机发送请求消息,所述请求消息包括所述主机需要连接的NVM子系统的目标参数; 通过查找所述至少一个NVM子系统的参数信息,确定满足所述目标参数的目标NVM子系统以及所述目标NVM子系统的路由信息; 向所述主机发送响应消息,所述响应消息包括所述目标NVM子系统的路由信息,以便于所述主机根据所述目标NVM子系统的路由信息,与所述目标NVM子系统建立连接。2.根据权利要求1所述的方法,其特征在于,在所述确定满足所述预设规则的目标NVM子系统之前,所述方法还包括: 获取所述每个NVM子系统的当前参数信息; 根据所述每个NVM子系统的所述当前参数信息,更新存储的所述每个NVM子系统的参数?目息O3.根据权利要求1或2所述的方法,其特征在于,所述每个NVM子系统的参数信息至少包括:所述每个NVM子系统的总容量、所述每个NVM子系统的可用容量、所述每个NVM子系统中至少一个命名空间Name s P a c e的信息、所述每个NVM子系统中至少一个NVM控制器的信息以及所述至少一个Namespace与所述至少一个NVM控制器之间的映射关系中的一种。4.一种在非易失性存储系统中建立连接的方法,其特征在于,所述非易失性存储系统包括主机、服务器和至少一个非易失性存储器NVM子系统,所述至少一个NVM子系统用于为所述主机提供数据存储,所述服务器中存储有所述至少一个NVM子系统中每个NVM子系统的参数信息和路由信息,所述方法由所述主机执行,所述方法包括: 与所述服务器建立连接; 向所述服务器发送请求消息; 接收所述服务器根据所述请求信息发送的响应消息,所述响应消息包括所述至少一个NVM子系统中部分或全部NVM子系统的参数信息和路由信息; 根据所述部分或全部NVM子系统的参数信息,确定满足目标参数的目标NVM子系统以及所述目标NVM子系统的路由信息,所述目标参数为所述主机需要连接的NVM子系统的参数; 根据所述目标NVM子系统的路由信息,与所述目标NVM子系统建立连接。5.根据权利要求4所述的方法,其特征在于,所述每个NVM子系统的参数信息至少包括:所述每个NVM子系统的总容量、所述每个NVM子系统的可用容量、所述每个NVM子系统中至少一个命名空间Namespace的信息、所述每个NVM子系统中至少一个NVM控制器的信息以及所述至少一个Namespace与所述至少一个NVM控制器之间的映射关系中的一种。6.—种非易失性存储系统中的服务器,其特征在于,所述非易失性存储系统还包括主机和至少一个非易失性存储器NVM子系统,所述至少一个NVM子系统用于为所述主机提供数据存储,所述服务器中存储有所述至少一个NVM子系统中每个NVM子系统的参数信息和路由信息,所述服务器包括: 处理单元,用于与所述主机建立连接; 接收单元,用于接收所述主机发送请求消息,所述请求消息包括所述主机需要连接的NVM子系统的目标参数; 确定单元,用于通过查找所述至少一个NVM子系统的参数信息,确定满足所述目标参数的目标NVM子系统以及所述目标NVM子系统的路由信息; 发送单元,用于向所述主机发送响应消息,所述响应消息包括所述目标NVM子系统的路由信息,以便于所述主机根据所述目标NVM子系统的路由信息,与所述目标NVM子系统建立连接。7.根据权利要求6所述的服务器,其特征在于,所述确定单元具体用于: 在确定满足所述预设规则的目标NVM子系统之前,获取所述每个NVM子系统的当前参数信息; 根据所述每个NVM子系统的所述当前参数信息,更新存储的所述每个NVM子系统的参数?目息O8.根据权利要求6或7所述的服务器,其特征在于,所述每个NVM子系统的参数信息至少包括:所述每个NVM子系统的总容量、所述每个NVM子系统的可用容量、所述每个NVM子系统中至少一个命名空间Name s pa c e的信息、所述每个NVM子系统中至少一个NVM控制器的信息以及所述至少一个Namespace与所述至少一个NVM控制器之间的映射关系中的一种。9.一种非易失性存储系统中的主机,其特征在于,所述非易失性存储系统还包括服务器和至少一个非易失性存储器NVM子系统,所述至少一个NVM子系统用于为所述主机提供数据存储,所述服务器中存储有所述至少一个NVM子系统中每个NVM子系统的参数信息和路由信息,所述主机包括: 处理单元,用于与所述服务器建立连接; 发送单元,用于向所述服务器发送请求消息; 接收单元,用于接收所述服务器根据所述请求信息发送的响应消息,所述响应消息包括所述至少一个NVM子系统中部分或全部NVM子系统的参数信息和路由信息; 确定单元,用于根据所述部分或全部NVM子系统的参数信息,确定满足目标参数的目标NVM子系统以及所述目标NVM子系统的路由信息,所述目标参数为所述主机需要连接的NVM子系统的参数; 所述处理单元还用于:根据所述目标NVM子系统的路由信息,与所述目标NVM子系统建立连接。10.根据权利要求9所述的主机,其特征在于,所述每个NVM子系统的参数信息至少包括:所述每个NVM子系统的总容量、所述每个NVM子系统的可用容量、所述每个NVM子系统中至少一个命名空间Name s P a c e的信息、所述每个NVM子系统中至少一个NVM控制器的信息以及所述至少一个Namespace与所述至少一个NVM控制器之间的映射关系中的一种。
【文档编号】G06F3/06GK105912275SQ201610268770
【公开日】2016年8月31日
【申请日】2016年4月27日
【发明人】邱鑫, 谭春毅
【申请人】华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1