一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

报文处理方法、网络设备和存储介质与流程

2022-03-04 22:04:39 来源:中国专利 TAG:


1.本发明实施例涉及但不限于通信领域,具体而言,涉及但不限于一种报文处理方法、装置、网络设备和存储介质。


背景技术:

2.随着it(internet technology,互联网技术)应用的蓬勃发展,产生了大量的数据,这些数据的处理需要高速、可靠的存取协议,nvme(non-volatile memory express,高速非易失性内存连接)技术应运而生。nvme最初是基于pcie(peripheral component interconnect express,高速外围设备连接)的块存储协议,其具有协议简单、高效且易于实现等特点,逐步成为最主流的块存储协议。当前单个nvme盘可以提供高达百万级的iops(input/output per second,每秒io数),极大提升了数据存储的速度。当数个乃至数十个nvme盘组成闪存阵列后,闪存阵列可以提供高达千万级别的iops。由于闪存阵列提供了如此高的性能指标,那么需要阵列的前端接口也必须采用高效的块存储协议,此时nvmf(nvme over fabric,基于网络的非易失内存连接)就产生了。nvmf是nvme协议承载在网络[如rdma(remote direct memory access,远端直接内存访问)网络]的方式,其具有了nvme协议的高效性,也继承了传统网络的普适性,非常适合做为闪存阵列的块存储前端接口。
[0003]
nvme块协议做为nvmf方式应用时,主机设备(主机设备可以是物理机,也可以是虚拟机)会创建host相关数据结构,用来存储主机自身信息和相应目标存储信息,一台主机在本地内存创建一个host数据区;闪存阵列则会为每个来连接的host创建一个controller数据区,存储该主机在闪存阵列上的信息,那么闪存阵列能够支持的主机数就取决于闪存阵列能创建的控制器数量。当前nvme协议规定的controller id是两个字节位宽16bit,请参考图1,也就是说最多只能支持65536个控制器id,相应就只能对应65536个nvmf主机,也就是一个闪存阵列,只能接入65536个主机;这对于单个闪存阵列在性能上可以支持数十万甚至数百万主机而言,是对于存储资源的极大浪费,增加了使用成本。


技术实现要素:

[0004]
本发明实施例提供的报文处理方法、网络设备和存储介质,主要解决的技术问题是相关技术中,闪存阵列资源利用率低,使用成本高的问题。
[0005]
为解决上述技术问题,本发明实施例提供一种报文处理方法,包括:
[0006]
接收主机设备发送的报文,所述报文中携带与所述主机设备对应的接入标识信息,所述接入标识信息包括实例标识信息和控制器标识信息;
[0007]
基于所实例标识信息,在闪存阵列中确定对应的目标实例;
[0008]
在所述目标实例中,基于所述控制器标识信息,确定所述目标实例中对应的目标控制器;
[0009]
基于所述目标控制器对应的存储资源,对所述报文进行处理。
[0010]
本发明实施例还提供一种报文处理方法,包括:
[0011]
向闪存阵列发送报文;所述报文中携带与主机设备对应的接入标识信息,所述接入标识信息包括实例标识信息和控制器标识信息;所述接入标识信息用于所述闪存阵列根据所述接入标识信息,确定所述主机设备对应的目标实例,以及目标实例中对应的目标控制器,并基于所述目标控制器的存储资源,对所述报文进行处理。
[0012]
本发明实施例还提供一种报文处理装置,包括:
[0013]
报文接收模块,用于接收主机设备发送的报文,所述报文中携带与所述主机设备对应的接入标识信息,所述接入标识信息包括实例标识信息和控制器标识信息;
[0014]
实例处理模块,用于基于所实例标识信息,在闪存阵列中确定对应的目标实例;
[0015]
控制器处理模块,用于在所述目标实例中,基于所述控制器标识信息,确定所述目标实例中对应的目标控制器;
[0016]
报文处理模块,用于基于所述目标控制器对应的存储资源,对所述报文进行处理。
[0017]
本发明实施例还提供一种报文处理装置,包括:
[0018]
报文发送模块,用于向闪存阵列发送报文;所述报文中携带与所述主机设备对应的接入标识信息,所述接入标识信息包括实例标识信息和控制器标识信息;所述接入标识信息用于所述闪存阵列根据所述接入标识信息,确定所述主机设备对应的目标实例,以及目标实例中对应的目标控制器,并基于所述目标控制器的存储资源,对所述报文进行处理。
[0019]
本发明实施例还提供一种网络设备,包括处理器、存储器、及通信总线;
[0020]
所述通信总线用于实现处理器和存储器之间的连接通信;
[0021]
所述处理器用于执行存储器中存储的一个或者多个计算机程序,以实现上述的报文处理方法的步骤。
[0022]
本发明实施例还提供一种计算机存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述的报文处理方法的步骤。
[0023]
根据本发明实施例提供的报文处理方法、网络设备和存储介质,接收主机设备发送的报文,报文中携带与主机设备对应的接入标识信息,接入标识信息包括实例标识信息和控制器标识信息;基于所实例标识信息,在闪存阵列中确定对应的目标实例;在目标实例中,基于控制器标识信息,确定目标实例中对应的目标控制器;基于目标控制器对应的存储资源,对报文进行处理。从而,通过在闪存阵列中建立实例,单个实例可以对应于多个控制器,从而增加了闪存阵列中的控制器数量,提升了闪存阵列中的存储资源的利用率,降低了使用成本。
[0024]
本发明其他特征和相应的有益效果在说明书的后面部分进行阐述说明,且应当理解,至少部分有益效果从本发明说明书中的记载变的显而易见。
附图说明
[0025]
图1为相关技术中闪存阵列与主机交互方式示意图;
[0026]
图2为本发明实施例一的报文处理方法流程图;
[0027]
图3为本发明实施例一的闪存阵列与主机设备之间的交互方式示意图;
[0028]
图4为本发明实施例二的报文处理方法流程图;
[0029]
图5为本发明实施例三的报文处理方法流程图;
[0030]
图6为本发明实施例四的报文处理装置组成示意图;
[0031]
图7为本发明实施例五的报文处理装置组成示意图;
[0032]
图8为本发明实施例六的网络设备组成示意图。
具体实施方式
[0033]
为了使本发明的目的、技术方案及优点更加清楚明白,下面通过具体实施方式结合附图对本发明实施例作进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0034]
实施例一:
[0035]
本实施例提供了一种报文处理方法,请参见图2,该方法包括:
[0036]
s201、接收主机设备发送的报文,报文中携带与主机设备对应的接入标识信息,接入标识信息包括实例标识信息和控制器标识信息;
[0037]
s202、基于所实例标识信息,在闪存阵列中确定对应的目标实例;
[0038]
s203、在目标实例中,基于控制器标识信息,确定目标实例中对应的目标控制器;
[0039]
s204、基于目标控制器对应的存储资源,对报文进行处理。
[0040]
本实施例中的报文处理方法,是在主机设备和闪存阵列中进行的;其中主机设备向闪存阵列发送报文,闪存阵列则接收报文后,对报文进行对应的处理。
[0041]
主机设备所发送的报文,需要在特定的控制器中进行处理,也就是目标控制器。其中,一个主机设备通常对应于一个控制器,而控制器则可以根据主机设备的数量创建,可以等于主机设备的数量,或者比主机设备的数量更多。本实施例中的主机设备是泛指包括物理机和虚拟机在内的设备,其中物理机表示实体计算机,而虚拟机表示虚拟计算机,也称之为虚机,物理机可以为虚拟机提供硬件环境,一个物理机可以虚拟出若干个虚拟机。
[0042]
控制器是创建在闪存阵列中的实例下。闪存阵列中,包括若干个nvme盘,可以提供高达千万级别的iops。闪存阵列提供了如此高的性能指标,本实施例中为了扩展闪存阵列的应用,让闪存阵列的资源可以更加充分的被利用,在闪存阵列上创建了若干个实例,每个实例可以对应创建多个控制器,这样则通过实例的划分,将闪存阵列的资源先按照实例划分,然后再在实例中划分为控制器,可以实现对闪存阵列资源的充分利用,避免了闪存阵列中的存储资源浪费。创建实例,还可以从实例的维度对各实例下的控制器进行配置,比如说不同的实例下的控制器,可以采用不同的处理策略,从而使得控制器便于管理。
[0043]
在对闪存阵列进行实例化之后,闪存阵列中的存储资源包括两种维度的划分,其一是实例,其二是控制器,也就是闪存阵列包括多个实例,而各实例中又包括多个控制器。为了能够准确的将存储资源配置给主机设备,本实施例中通过接入标识信息来对应标识;其中,接入标识信息包括两类信息,分别是实例标识信息和控制器标识信息,这些标识信息可以是指定位数的二进制编码。
[0044]
在闪存阵列接收到主机设备所发送的报文时,报文中会携带接入标识信息;首先,闪存阵列会解析该报文得到接入标识信息,然后,根据接入标识信息中的实例标识信息,确定该主机设备在闪存阵列中所对应的实例,也就是目标实例;在确定目标实例之后,再根据接入标识信息中的控制器标识信息,从目标实例中,确定出对应的控制器,也就是目标控制器;然后,就可以将目标控制器对应的存储资源分配给主机设备来使用,进入报文的最终处
理流程,请参考图3。
[0045]
在一些实施例中,闪存阵列中,可以包括至少两个实例,实例的个数与实例标识信息对应;各实例中包括若干个控制器,各实例中的控制器个数与控制器标识信息对应。实例的个数可以根据具体的场景设置,其中,闪存阵列中包括的实例个数可以为2n个,其中n为正整数。具体的,闪存阵列中的实例个数,所对应的实例标识信息可以为16bit,而16bit所对应的实例个数为2
16
,即65536个实例;而各个实例中的最大控制器数,所对应的控制器标识信息,也可以是16bit,而16bit所对应的控制器个数为2
16
,即每个实例中,可以包括65536个控制器。如此一来,整个闪存阵列中,所包括的控制器数,则是65536
×
65536=4294967296个。如此巨量的控制器数,可以满足绝大多数的场景需求。
[0046]
在一些实施例中,在接收主机设备发送的报文之前,还可以包括:
[0047]
接收主机设备发送的接入报文,接入报文中携带主机设备配置的实例标识信息;
[0048]
基于实例标识信息,在闪存阵列中确定对应的目标实例;
[0049]
在目标实例中,为主机设备分配对应的目标控制器;
[0050]
将目标控制器的控制器标识信息发送给主机设备。在接收主机设备发送的报文并进行处理之前,需要建立主机设备和目标控制器之间的映射关系,换言之,需要主机设备知道闪存阵列中的哪个控制器是对应于自身的,也就是需要主机设备知道对应的控制器标识信息。主机设备会首先为自己配置实例标识信息和待接入的闪存阵列的ip地址,相当于是在指定的闪存阵列中,指定对应的实例;然后,主机设备将实例标识信息添加到接入报文中并发送给闪存阵列,闪存阵列在接收到接入报文后,解析该接入报文得到实例标识信息,获知主机设备所要接入的实例,即目标实例,然后在目标实例中,为主机设备分配目标控制器,然后将目标控制器所对应的控制器标识信息,告知主机设备,主机设备就可以根据该控制器标识信息,结合实例标识信息,与指定的目标控制器进行交互。在后续的报文处理过程中,主机设备所发起的报文,则同时携带实例标识信息,和控制器标识信息。
[0051]
在一些实施例中,在目标实例中,为主机设备分配对应的目标控制器可以包括:
[0052]
在目标实例中,为主机设备静态分配对应的目标控制器;或,
[0053]
在目标实例中,为主机设备动态分配对应的目标控制器。其中,静态分配和动态分配是两种目标控制器的分配方式,静态分配表示的是,闪存阵列预先已经根据主机设备,为其分配了固定的控制器,在接收到主机设备发起的接入报文后,即根据预先的分配情况,将目标控制器分配给该主机设备;而动态分配表示的是,闪存阵列不预先分配,在接收到主机设备发起的接入报文后,根据接入报文中所指定的目标实例,将目标实例中未被分配的任一控制器,作为目标控制器分配给主机设备。
[0054]
在一些实施例中,在接收主机设备发送的接入报文之前,还可以包括:
[0055]
在闪存阵列上创建实例,并为每个实例分配对应的实例标识信息;
[0056]
将闪存阵列中的存储资源划入对应的实例。实例的创建时机,一般是在主机设备和闪存阵列之间进行交互之前,也就是闪存阵列预先创建若干个实例,然后为实例分配实例标识信息,并对闪存阵列中的存储资源进行划分,将相应的存储资源,划入对应的实例中。这样主机设备就可以发送对应的实例标识信息,让闪存阵列可以获知主机设备所对应的实例。
[0057]
或者,实例的创建时机,也可以是在主机设备发起接入报文之后,这种情况下,由
于接入报文中携带有实例标识信息,而此时闪存阵列中没有对应的实例,那么闪存阵列可以在该主机设备满足接入条件的情况下,现场创建对应的实例作为目标实例,并在目标实例中创建控制器分配给主机设备。
[0058]
在一些实施例中,在为主机设备分配对应的目标控制器之前,还可以包括:
[0059]
在目标实例中,创建至少一个控制器。控制器的创建时机可以是在闪存阵列接收到主机设备所发起的接入报文之前,或者是在接收到主机设备发送的接入报文之后,根据接入报文来创建对应的控制器,也就是在接收到主机设备所发送的接入报文之后,根据接入报文中的实例标识信息,确定目标实例,然后在目标实例中,创建控制器之后,将该控制器作为目标控制器分配给主机设备。
[0060]
本实施例提供的报文处理方法,接收主机设备发送的报文,报文中携带与主机设备对应的接入标识信息,接入标识信息包括实例标识信息和控制器标识信息;基于所实例标识信息,在闪存阵列中确定对应的目标实例;在目标实例中,基于控制器标识信息,确定目标实例中对应的目标控制器;基于目标控制器对应的存储资源,对报文进行处理。从而,通过在闪存阵列中建立实例,单个实例可以对应于多个控制器,从而增加了闪存阵列中的控制器数量,提升了闪存阵列中的存储资源的利用率,降低了使用成本。
[0061]
实施例二:
[0062]
本实施例提供了一种报文处理方法,请参见图4,该方法包括:
[0063]
s401、向闪存阵列发送报文;报文中携带与主机设备对应的接入标识信息,接入标识信息包括实例标识信息和控制器标识信息;接入标识信息用于闪存阵列根据接入标识信息,确定主机设备对应的目标实例,以及目标实例中对应的目标控制器,并基于目标控制器的存储资源,对报文进行处理。
[0064]
其中,主机设备向闪存阵列发送报文进行处理,该报文中携带的接入标识信息,是用于闪存阵列识别该主机设备所对应的目标控制器;具体的,首先,闪存阵列会解析该报文得到接入标识信息,然后,根据接入标识信息中的实例标识信息,确定该主机设备在闪存阵列中所对应的实例,也就是目标实例;在确定目标实例之后,再根据接入标识信息中的控制器标识信息,从目标实例中,确定出对应的控制器,也就是目标控制器;然后,就可以将目标控制器对应的存储资源分配给主机设备来使用,进入报文的最终处理流程。
[0065]
在一些实施例中,在向闪存阵列发送报文之前,还可以包括:
[0066]
向闪存阵列发送接入报文,接入报文中携带主机设备配置的实例标识信息;
[0067]
接收闪存阵列,基于接入报文返回的响应报文;
[0068]
获取响应报文中携带的控制器标识信息。
[0069]
在主机设备正式通过闪存阵列进行处理报文之前,首先要建立主机设备与目标控制器之间的映射关系,也就是主机设备需要获知,闪存阵列将哪个控制器分配给了自己。因此,主机设备首先向闪存阵列发送接入报文,该接入报文中目前至少携带了主机设备配置的实例标识信息,该实例标识信息,可以让闪存阵列确定对应的目标实例;闪存阵列在确定了目标实例之后,即确定了主机设备所要接入的实例,该实例中可能包括若干个控制器,此时闪存阵列将其中任意一个未被占用的控制器,分配给主机设备作为目标控制器,然后,闪存阵列会向主机设备发送响应报文,该响应报文中,则携带有该目标控制器对应的控制器标识信息。主机设备接收到之后,就可以在后续的报文处理过程中,在向闪存阵列发送报文
时,同时携带实例标识信息和控制器标识信息。
[0070]
在一些实施例中,在向闪存阵列发送报文之前,还可以包括:
[0071]
配置主机设备所对应的实例标识信息;
[0072]
配置主机设备所要连接的闪存阵列地址。
[0073]
其中,配置主机设备所对应的实例标识信息,是为了接入对应的闪存阵列地址中的指定实例,即目标实例;而配置主机设备所要连接的闪存阵列地址,则是为了根据所要接入的闪存阵列的网络地址,来接入该闪存阵列。实例标识信息由主机设备来进行配置,实例标识信息本身可以由主机设备自定义之后,主机设备进行配置,或者是在接收到闪存阵列预先发送的消息后,解析该消息中闪存阵列所分配给主机设备的实例信息,用闪存阵列预先分配的实例确定实例标识信息来进行配置。其中,如果实例标识信息是由主机设备自行配置,可能会出现主机设备向闪存阵列发送报文,闪存阵列解析发现不存在对应的实例的情况;在这种情况下,如果主机设备不合法,闪存阵列可以选择直接拒绝主机设备的访问;如果主机设备合法,闪存阵列在拒绝主机设备的访问之后,还可以随后向主机设备发送消息,该消息中携带对于该主机设备可用的实例信息。
[0074]
实施例三
[0075]
本实施例提供了一种报文处理方法,请参考图5,该方法包括:
[0076]
s501、在闪存阵列上配置闪存阵列信息;其中,配置闪存阵列信息包括创建实例,为各实例分配实例标识信息,其中创建的实例个数最多可以是65536个;然后,为创建的实例,分配可以配置的控制器数,通过这种方式,可以限制接入该实例的主机设备的数量,每个实例最多可以接入65536个主机设备,也就是各实例中,最多可以配置65536个控制器;然后,将存储资源划入实例,表示该实例接入主机设备可以访问的存储资源;
[0077]
s502、在主机设备上配置主机信息;其中,配置主机信息包括在主机设备上配置主机设备所归属的目标实例对应的实例标识信息,以及该主机设备所要接入的闪存阵列的地址;
[0078]
s503、主机设备根据配置的主机信息,向闪存阵列发起接入报文;主机设备根据所要接入的闪存阵列的地址,向目标闪存阵列发起接入报文;而接入报文中,携带有主机设备配置的实例标识信息;
[0079]
s504、闪存阵列接收该接入报文,接受该主机设备的连接;闪存阵列在接收主机设备所发送的接入报文后,解析该接入报文得到其中的实例标识信息,根据实例标识信息确定指定的目标实例,如果已经创建,则直接确定该主机设备在目标实例的接入;如果未创建,且主机设备满足接入要求,那么则现场创建实例作为目标实例供主机设备接入;如果主机设备不满足接入要求,则拒绝主机设备的接入;
[0080]
s505、闪存阵列在目标实例下创建至少一个控制器;该控制器对应于请求接入的该主机设备,即目标控制器;
[0081]
s506、闪存阵列将创建该目标控制器对应的存储资源,分配给该主机设备;
[0082]
s507、闪存阵列向主机设备发送响应报文,其中携带目标控制器的控制器标识信息;
[0083]
s508、主机设备接收响应报文,根据该响应报文中的控制器标识信息,结合实例标识信息,访问闪存阵列中对应的存储资源。
[0084]
实施例四:
[0085]
本实施例提供了一种报文处理装置,请参见图6,该装置包括:
[0086]
报文接收模块61,用于接收主机设备发送的报文,报文中携带与主机设备对应的接入标识信息,接入标识信息包括实例标识信息和控制器标识信息;
[0087]
实例处理模块62,用于基于所实例标识信息,在闪存阵列中确定对应的目标实例;
[0088]
控制器处理模块63,用于在目标实例中,基于控制器标识信息,确定目标实例中对应的目标控制器;
[0089]
报文处理模块64,用于基于目标控制器对应的存储资源,对报文进行处理。
[0090]
本实施例中的报文处理方法,是在主机设备和闪存阵列中进行的;其中主机设备向闪存阵列发送报文,闪存阵列则接收报文后,对报文进行对应的处理。
[0091]
主机设备所发送的报文,需要在特定的控制器中进行处理,也就是目标控制器。其中,一个主机设备通常对应于一个控制器,而控制器则可以根据主机设备的数量创建,可以等于主机设备的数量,或者比主机设备的数量更多。
[0092]
控制器是创建在闪存阵列中的实例下。闪存阵列中,包括若干个nvme盘,可以提供高达千万级别的iops。闪存阵列提供了如此高的性能指标,本实施例中为了扩展闪存阵列的应用,让闪存阵列的资源可以更加充分的被利用,在闪存阵列上创建了若干个实例,每个实例可以对应创建多个控制器,这样则通过实例的划分,将闪存阵列的资源先按照实例划分,然后再在实例中划分为控制器,可以实现对闪存阵列资源的充分利用,避免了闪存阵列中的存储资源浪费。
[0093]
在对闪存阵列进行实例化之后,闪存阵列中的存储资源包括两种维度的划分,其一是实例,其二是控制器,也就是闪存阵列包括多个实例,而各实例中又包括多个控制器。为了能够准确的将存储资源配置给主机设备,本实施例中通过接入标识信息来对应标识;其中,接入标识信息包括两类信息,分别是实例标识信息和控制器标识信息,这些标识信息可以是指定位数的二进制编码。
[0094]
在闪存阵列接收到主机设备所发送的报文时,报文中会携带接入标识信息;首先,闪存阵列会解析该报文得到接入标识信息,然后,根据接入标识信息中的实例标识信息,确定该主机设备在闪存阵列中所对应的实例,也就是目标实例;在确定目标实例之后,再根据接入标识信息中的控制器标识信息,从目标实例中,确定出对应的控制器,也就是目标控制器;然后,就可以将目标控制器对应的存储资源分配给主机设备来使用,进入报文的最终处理流程。
[0095]
在一些实施例中,闪存阵列中,可以包括至少两个实例,实例的个数与实例标识信息对应;各实例中包括若干个控制器,各实例中的控制器个数与控制器标识信息对应。实例的个数可以根据具体的场景设置,其中,闪存阵列中包括的实例个数可以为2n个,其中n为正整数。具体的,闪存阵列中的实例个数,所对应的实例标识信息可以为16bit,而16bit所对应的实例个数为2
16
,即65536个实例;而各个实例中的最大控制器数,所对应的控制器标识信息,也可以是16bit,而16bit所对应的控制器个数为2
16
,即每个实例中,可以包括65536个控制器。如此一来,整个闪存阵列中,所包括的控制器数,则是65536
×
65536=4294967296个。如此巨量的控制器数,可以满足绝大多数的场景需求。
[0096]
在一些实施例中,在接收主机设备发送的报文之前,还可以包括:
[0097]
接收主机设备发送的接入报文,接入报文中携带主机设备配置的实例标识信息;
[0098]
基于实例标识信息,在闪存阵列中确定对应的目标实例;
[0099]
在目标实例中,为主机设备分配对应的目标控制器;
[0100]
将目标控制器的控制器标识信息发送给主机设备。在接收主机设备发送的报文并进行处理之前,需要建立主机设备和目标控制器之间的映射关系,换言之,需要主机设备知道闪存阵列中的哪个控制器是对应于自身的,也就是需要主机设备知道对应的控制器标识信息。主机设备会首先为自己配置实例标识信息和待接入的闪存阵列的ip地址,相当于是在指定的闪存阵列中,指定对应的实例;然后,主机设备将实例标识信息添加到接入报文中并发送给闪存阵列,闪存阵列在接收到接入报文后,解析该接入报文得到实例标识信息,获知主机设备所要接入的实例,即目标实例,然后在目标实例中,为主机设备分配目标控制器,然后将目标控制器所对应的控制器标识信息,告知主机设备,主机设备就可以根据该控制器标识信息,结合实例标识信息,与指定的目标控制器进行交互。在后续的报文处理过程中,主机设备所发起的报文,则同时携带实例标识信息,和控制器标识信息。
[0101]
在一些实施例中,在目标实例中,为主机设备分配对应的目标控制器可以包括:
[0102]
在目标实例中,为主机设备静态分配对应的目标控制器;或,
[0103]
在目标实例中,为主机设备动态分配对应的目标控制器。其中,静态分配和动态分配是两种目标控制器的分配方式,静态分配表示的是,闪存阵列预先已经根据主机设备,为其分配了固定的控制器,在接收到主机设备发起的接入报文后,即根据预先的分配情况,将目标控制器分配给该主机设备;而动态分配表示的是,闪存阵列不预先分配,在接收到主机设备发起的接入报文后,根据接入报文中所指定的目标实例,将目标实例中未被分配的任一控制器,作为目标控制器分配给主机设备。
[0104]
在一些实施例中,在接收主机设备发送的接入报文之前,还可以包括:
[0105]
在闪存阵列上创建实例,并为每个实例分配对应的实例标识信息;
[0106]
将闪存阵列中的存储资源划入对应的实例。实例的创建时机,一般是在主机设备和闪存阵列之间进行交互之前,也就是闪存阵列预先创建若干个实例,然后为实例分配实例标识信息,并对闪存阵列中的存储资源进行划分,将相应的存储资源,划入对应的实例中。这样主机设备就可以发送对应的实例标识信息,让闪存阵列可以获知主机设备所对应的实例。
[0107]
或者,实例的创建时机,也可以是在主机设备发起接入报文之后,这种情况下,由于接入报文中携带有实例标识信息,而此时闪存阵列中没有对应的实例,那么闪存阵列可以在该主机设备满足接入条件的情况下,现场创建对应的实例作为目标实例,并在目标实例中创建控制器分配给主机设备。
[0108]
在一些实施例中,在为主机设备分配对应的目标控制器之前,还可以包括:
[0109]
在目标实例中,创建至少一个控制器。控制器的创建时机可以是在闪存阵列接收到主机设备所发起的接入报文之前,或者是在接收到主机设备发送的接入报文之后,根据接入报文来创建对应的控制器,也就是在接收到主机设备所发送的接入报文之后,根据接入报文中的实例标识信息,确定目标实例,然后在目标实例中,创建控制器之后,将该控制器作为目标控制器分配给主机设备。
[0110]
本实施例提供的报文处理方法,接收主机设备发送的报文,报文中携带与主机设
备对应的接入标识信息,接入标识信息包括实例标识信息和控制器标识信息;基于所实例标识信息,在闪存阵列中确定对应的目标实例;在目标实例中,基于控制器标识信息,确定目标实例中对应的目标控制器;基于目标控制器对应的存储资源,对报文进行处理。从而,通过在闪存阵列中建立实例,单个实例可以对应于多个控制器,从而增加了闪存阵列中的控制器数量,提升了闪存阵列中的存储资源的利用率,降低了使用成本。
[0111]
实施例五:
[0112]
本实施例提供了一种报文处理装置,请参见图7,该报文处理装置包括:
[0113]
报文发送模块71,用于向闪存阵列发送报文;报文中携带与主机设备对应的接入标识信息,接入标识信息包括实例标识信息和控制器标识信息;接入标识信息用于闪存阵列根据接入标识信息,确定主机设备对应的目标实例,以及目标实例中对应的目标控制器,并基于目标控制器的存储资源,对报文进行处理。
[0114]
其中,主机设备向闪存阵列发送报文进行处理,该报文中携带的接入标识信息,是用于闪存阵列识别该主机设备所对应的目标控制器;具体的,首先,闪存阵列会解析该报文得到接入标识信息,然后,根据接入标识信息中的实例标识信息,确定该主机设备在闪存阵列中所对应的实例,也就是目标实例;在确定目标实例之后,再根据接入标识信息中的控制器标识信息,从目标实例中,确定出对应的控制器,也就是目标控制器;然后,就可以将目标控制器对应的存储资源分配给主机设备来使用,进入报文的最终处理流程。
[0115]
在一些实施例中,在向闪存阵列发送报文之前,还可以包括:
[0116]
向闪存阵列发送接入报文,接入报文中携带主机设备配置的实例标识信息;
[0117]
接收闪存阵列,基于接入报文返回的响应报文;
[0118]
获取响应报文中携带的控制器标识信息。
[0119]
在主机设备正式通过闪存阵列进行处理报文之前,首先要建立主机设备与目标控制器之间的映射关系,也就是主机设备需要获知,闪存阵列将哪个控制器分配给了自己。因此,主机设备首先向闪存阵列发送接入报文,该接入报文中目前至少携带了主机设备配置的实例标识信息,该实例标识信息,可以让闪存阵列确定对应的目标实例;闪存阵列在确定了目标实例之后,即确定了主机设备所要接入的实例,该实例中可能包括若干个控制器,此时闪存阵列将其中任意一个未被占用的控制器,分配给主机设备作为目标控制器,然后,闪存阵列会向主机设备发送响应报文,该响应报文中,则携带有该目标控制器对应的控制器标识信息。主机设备接收到之后,就可以在后续的报文处理过程中,在向闪存阵列发送报文时,同时携带实例标识信息和控制器标识信息。
[0120]
在一些实施例中,在向闪存阵列发送报文之前,还可以包括:
[0121]
配置主机设备所对应的实例标识信息;
[0122]
配置主机设备所要连接的闪存阵列地址。
[0123]
其中,配置主机设备所对应的实例标识信息,是为了接入对应的闪存阵列地址中的指定实例,即目标实例;而配置主机设备所要连接的闪存阵列地址,则是为了根据所要接入的闪存阵列的网络地址,来接入该闪存阵列。实例标识信息由主机设备来进行配置,实例标识信息本身可以由主机设备自定义之后,主机设备进行配置,或者是在接收到闪存阵列预先发送的消息后,解析该消息中闪存阵列所分配给主机设备的实例信息,用闪存阵列预先分配的实例确定实例标识信息来进行配置。其中,如果实例标识信息是由主机设备自行
配置,可能会出现主机设备向闪存阵列发送报文,闪存阵列解析发现不存在对应的实例的情况;在这种情况下,如果主机设备不合法,闪存阵列可以选择直接拒绝主机设备的访问;如果主机设备合法,闪存阵列在拒绝主机设备的访问之后,还可以随后向主机设备发送消息,该消息中携带对于该主机设备可用的实例信息。
[0124]
实施例六:
[0125]
本实施例还提供了一种网络设备,请参考图8,其包括处理器81、存储器82及通信总线83;
[0126]
通信总线83用于实现处理器81和存储器82之间的连接通信;
[0127]
处理器81用于执行存储器82中存储的一个或者多个计算机程序,以实现上述各实施例中的报文处理方法中的步骤,这里不再赘述。本实施例中的网络设备,可以作为主机设备执行对应的报文处理方法的步骤,也可以作为闪存阵列,来执行其对应的报文处理方法的步骤。
[0128]
本实施例还提供了一种计算机可读存储介质,该计算机可读存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、计算机程序模块或其他数据)的任何方法或技术中实施的易失性或非易失性、可移除或不可移除的介质。计算机可读存储介质包括但不限于ram(random access memory,随机存取存储器),rom(read-only memory,只读存储器),eeprom(electrically erasable programmable read only memory,带电可擦可编程只读存储器)、闪存或其他存储器技术、cd-rom(compact disc read-only memory,光盘只读存储器),数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。
[0129]
本实施例中的计算机可读存储介质可用于存储一个或者多个计算机程序,其存储的一个或者多个计算机程序可被一个或者多个处理器执行,以实现上述各实施例种的报文处理方法的步骤。
[0130]
本实施例还提供了一种计算机程序(或称计算机软件),该计算机程序可以分布在计算机可读介质上,由可计算装置来执行,以实现上述各实施例中的报文处理方法的步骤;并且在某些情况下,可以采用不同于上述实施例所描述的顺序执行所示出或描述的至少一个步骤。
[0131]
本实施例还提供了一种计算机程序产品,包括计算机可读装置,该计算机可读装置上存储有如上所示的计算机程序。本实施例中该计算机可读装置可包括如上所示的计算机可读存储介质。
[0132]
可见,本领域的技术人员应该明白,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件(可以用计算装置可执行的计算机程序代码来实现)、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。
[0133]
此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、计算机程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并
且可包括任何信息递送介质。所以,本发明不限制于任何特定的硬件和软件结合。
[0134]
以上内容是结合具体的实施方式对本发明实施例所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献