存储设备、存储系统及信息处理方法与流程

文档序号:11475516阅读:233来源:国知局
存储设备、存储系统及信息处理方法与流程

本发明涉及电子技术领域,尤其涉及一种存储设备、存储系统及信息处理方法。



背景技术:

基于非易失性快速存储(non-volatilememoryexpress,nvme)协议的存储卡或存储盘,通常都是直接插在服务器上的。这样的话,这些nvme存储卡或存储盘,就能够仅被为其提供插口的服务器所使用。这样一方面导致nvme存储卡和存储盘的有效使用率低,同时由于nvme存储卡和存储盘的价格昂贵,导致硬件费用高等问题。



技术实现要素:

有鉴于此,本发明实施例期望提供的存储设备、存储系统及信息处理方法,至少部分上述问题。

为达到上述目的,本发明的技术方案是这样实现的:本发明实施例第一方面提供一种存储设备,包括:

至少一个nvme单元,用于数据存储;

控制单元,与所述nvme单元连接,用于对所述nvme单元进行管理;

网络端口,一端与所述控制单元连接,另一端为服务器提供使用所述nvme单元的连接端口。

基于上述方案,所述控制单元包括一个或多个网络适配器nic(networkinterfacecard)芯片;

一个或多个所述nic芯片通过同一总线与所有所述nvme单元连接;

一个所述nic芯片至少与一个所述网络端口连接。

基于上述方案,所述控制单元,通过pcie总线与所述nvme单元连接。

基于上述方案,所述存储设备还包括壳体;

所述nvme单元、及所述控制单元均位于所述壳体内;

所述壳体上设置有开口;所述网络端口,通过所述开口延伸到所述壳体外;

其中,所述壳体的高度为nu,其中,所述n为正整数。

基于上述方案,所述控制单元,具体用于通过所述网络端口接收服务器的写入请求,响应所述写入请求,根据所述nvme单元的存储状况分配nvme存储区域;

所述网络端口,用于接收所述服务器的发送的第一数据,将所述第一数据发送到所述控制单元所分配的所述nvme存储区域进行存储;

所述控制单元,还用于通过所述网络端口接收服务器的数据。

基于上述方案,所述控制单元,具体用于通过所述网络端口接收服务器的读取请求,响应所述读取请求,确定所述服务器所请求的数据所在的第二nvme存储区域,并从所述第二nvme存储区域读取第二数据,并通过所述网络端口发送给所述服务器;

所述网络端口,还用于将读取的所述第二数据发送给所述服务器。

本发明实施例第二方面提供一种存储系统,包括:

上述任意方案提供的存储设备;

服务器,与所述存储设备连接,能够向所述存储设备内的nvme单元写入数据或从所述nvme单元读取数据。

基于上述方案,所述系统还包括:

中转设备,一端与所述存储设备的网络端口连接,另一端与所述服务器连接。

本发明实施例第三方面还提供一种信息处理方法,包括:

利用网络端口接收服务器发送的操作请求;

当所述操作请求为写入请求时,根据非易失性快速存储nvme单元的存储状况为所述服务器分配第一nvme存储区域;

接收所述服务器通过网络端口发送的第一数据;

将所述第一数据写入到所述第一nvme存储区域内;

当所述操作请求为读取请求时,确定所述服务器所请求的数据所在的第二nvme存储区域;

从所述第二nvme存储区域读取第二数据,并通过所述网络端口发送给所述服务器。

基于上述方案,所述方法,还包括:

当所述操作请求为修改请求时,确定所述服务器指示修改的数据所在的第三nvme存储区域;

接收所述服务器通过网络端口发送的第三数据;

利用所述第三数据改写所述第三nvme存储区域内存储的数据。

本发明实施例提供的存储设备、存储系统及信息处理方法,将多个nvme单元设置在一个存储设备中,该存储设备可以通过网络接口,与多个服务器连接,从而是的多个服务器可以共享所述nvme单元,从而减少nvme单元的闲置时间,提升所述nvme单元的有效使用率。另一方面不用专门为每一个服务器配置专用的nvme单元,从而可以减少存储所花费的硬件费用,减少硬件成本。

附图说明

图1为本发明实施例提供的第一种存储设备的结构示意图;

图2为本发明实施例提供的第二种存储设备的结构示意图;

图3为本发明实施例提供的一种存储系统的结构示意图;

图4为本发明实施例提供的一种信息处理方法的流程示意图。

具体实施方式

以下结合说明书附图及具体实施例对本发明的技术方案做进一步的详细阐述。

如图1和图2所示,本实施例提供一种存储设备,包括:

至少一个nvme单元110,用于数据存储;

控制单元120,与所述nvme单元连接,用于对所述nvme单元进行管理;

网络端口130,一端与所述控制单元连接,另一端为服务器提供使用所述nvme单元的连接端口。

本实施例提供过一种集中式存储设备,在该集中使的存储设备中设置一个或多个基于nvme协议的存储单元,这种存储单元在本实施例中称之为nvme单元。该nvme单元110可以提供快速的数据存储。在本实施例中所述nvme单元110可为nvme存储卡或存储盘。

在本实施例中所述nvme单元110与控制单元120连接,这里的控制单元120可为各种控制芯片、控制电路、处理器或处理电路组成。这里的处理器可为中央处理器cpu、数字信号处理器dsp、应用处理器ap、微处理器mcu、可编程阵列plc等。所述处理电路可为专用集成电路。

在本实施例中所述控制单元120,可包括一个多个控制子单元,一个控制子单元连接一个或多个所述nvme单元110。本实施例提供的控制单元120可为遵守nvmeoverfabric协议进行数据存储和/或传输的处理器或处理电路,可以基于nvmeoverfabric协议提供数据的快速写入和读取。

所述网络端口130可为各种类型的网络端口,该网络端口可分为两个部分,一个部分用于所述控制单元120连接,另一个部分可为即插即用的接口部分,服务器等外设可以通过接口部分连接到所述控制单元120。在本实施例中所述接口部分包括的接口可为各种类型的接口,该接口可为usb接口等接口。在本实施例中所述网络端口130可具体为以太网网卡提供的端口。

本实施例提供的存储设备,可以通过所述网络端口,与多个服务器进行连接,使得所述存储设备中的nvme单元110对应的nvme存储资源,可被多个服务器共用,这样的话,所述nvme单元110的空闲时间可以减少了,有效使用效率可提供,且不用单独为每一个服务器配置其专用的nvme单元110,可以减少因为为每一个服务器配置nvme单元110所需付出的昂贵费用,从而减少硬件成本。

在一些实施例中,所述控制单元120包括一个或多个网络适配器nic芯片。

在本实施例中所述控制单元120包括多个nic芯片,这里的一个nic芯片相当于一个控制单元120的控制子单元。在一些实施例中,所述nic芯片可以相互独立,在进行所述nvme单元的存储管理时,互不干扰。

在一些实施例中,不同的nic芯片分别连接到不同的nvme单元110,对不同给的nvme单元110进行管理。这里的管理包括存储资源的分配、数据的写入和读取等管理。

在另一些实施例中,不同的nic芯片共同连接到一个协调模组上,该协调模组可对应于处理器或处理电路,可用于多个nic芯片的信息互通,对多个所述nic芯片的控制。例如,若当前存储设备的负载率较低,则不需要所有的nic芯片都处于工作状态,所述协调模组可以通过预定信号的发送,关闭一个或多个所述nic芯片,从而以节省功耗,减少nic芯片的老化。当然,若当其中一个nic芯片出现故障时,调配其他nic芯片接管故障nic芯片所管理的nvme单元110,从而确保所述存储设备的存储稳定性。

在一些实施例中,所述协调模组还可以用于,多个所述nic芯片的负载均衡等处理。

作为本实施例的进一步改进,一个或多个所述nic芯片通过同一总线与所有所述nvme单元110连接;

一个所述nic芯片至少与一个所述网络端口130连接。

在本实施例中所有的所述nic芯片,通过同一总线,连接到所述nvme单元110,这样的话,就允许一个所述nic芯片对所有nvme单元110进行管理。

在本实施例中为了确保存储设备的稳定性,所述总线包括主用总线和备用总线,所述nic芯片同时利用主用总线和备用总线连接到所述nvme单元110。在主用总线正常时,所述nic芯片通过主用总线与所述nvme单元110进行数据交互,所述备用总线处于非使能状态。当所述主用总线故障时,使能所述备用总线,使得所述nic芯片通过备用总线与所述nvme单元110进行数据交互。

在本实施例中每一个所述nic芯片都需要连接到网络端口130,这样服务器才能通过网络端口,连接到nic芯片,进而连接到所述nvme单元110,从而使用nvme单元110的存储资源。

在本实施例中一个所述nic芯片可以与一个所述网络端口130连接,也可以同时连接到多个网络端口,这样的话就可以使得多个服务器或多个中转设备与一个所述nic芯片连接,从而更有效率的使用所述nvme单元110的存储资源。

在本实施例中,所述控制单元120,通过pcie总线与所述nvme单元110连接。

在本实施例中所述pcie总线,连接所述控制单元120和所述nvme单元110,具有结构简单及硬件成本低的特点。

在有些实施例中,所述电子设备还包括壳体140;

所述nvme单元110及所述控制单元120均位于所述壳体140内;

所述壳体140上设置有开口;所述网络端口130,通过所述开口延伸到所述壳体外;

其中,所述壳体140的高度为nu,其中,所述n为正整数。

在本实施例中所述u为衡量服务器外部尺寸的单位,这里的外部尺寸可为服务器的高度或厚度。所述u为英文单词unit的缩写,且一般情况下,1u等于4.445厘米。

在本实施例中,所述壳体140的高度为nu,这样的话,可以使得所述存储设备的高度与机柜内服务器的高度相适配,方便服务器通过存储设备的网络接口,连接到存储设备。

当所述网络端口130包括多个时,所述网络端口130阵列排列,所述开口的个数等于所述网络端口130的个数,一个所述网络端口130通过一个所述开口外露,以供服务器连接。在本实施例中所述网络端口130和所述开口都可为呈矩形阵列排布。在本实施例中,相邻两排所述网络端口之间宽度为1u。这样的话,不同排的网络端口可以与不同排的服务器直接连接,以更好的与机柜内的服务器连接。在本实施例中所述n的取值可为1、2或3等取值。当然,在具体实现时,网络端口130及所述开口的排列不局限于阵列。

在一些实施例中,所述控制单元120,具体用于通过所述网络端口130接收服务器的写入请求,响应所述写入请求,根据所述nvme单元110的存储状况分配nvme存储区域;

所述网络端口130,用于接收所述服务器的发送的第一数据,将所述第一数据发送到所述控制单元120所分配的所述nvme存储区域进行存储;

所述控制单元120,还用于通过所述网络端口130接收服务器的数据。

在本实施例中所述第一数据为所述服务器发送的待写入到所述nvme单元110的数据。在本实施例中所述网络端口130从服务器接收写入请求,根据所述写入请求之后,根据所述nvme单元110的存储状况分配响应本次写入请求的nvme存储区域。在本实施例中nvme单元110的存储状况,可包括:获取nvme单元110的空闲存储资源、当前是否有其他服务器110正在写入数据等存储状况,选择当前最适合写入数据的nvme存储区域。

例如,所述控制单元120,可基于存储资源使用均衡策略,根据多个nvme单元110的空闲存储资源的数量,选择空闲存储资源多的nvme单元110作为响应本次写入请求的nvme单元110,同时从被选择的nvme单元110中的空闲存储资源中选择一个nvme存储区域进行存储,以实现不同nvme单元110的存储资源的均衡。

再例如,所述控制单元120,可基于读写次数均衡策略,在有多个nvme单元110均具有可用存储自语资源时,可根据nvme单元110的总读写次数,选择总读写次数最低或低于预定阈值的nvme单元110作为响应本次写入请求的nvme单元110,同时从被选择的nvme单元110中的空闲存储资源中选择一个nvme存储区域进行存储,以实现不同的nvme单元110的总读写次数的均衡。

再例如,所述控制单元120,还可根据响应时延最小策略,选择当前没有在写入操作和/或没有读取操作的nvme单元110作为响应本次写入请求的nvme单元110,同时从被选择的nvme单元110中的空闲存储资源中选择一个nvme存储区域进行存储,以减少同时有多个服务器向一个nvme单元110写入数据和/或读取数据导致的数据时延。

在一些实施例中,所述控制单元120,具体用于通过所述网络端口接收服务器的读取请求,响应所述读取请求,确定所述服务器所请求的数据所在的第二nvme存储区域,并从所述第二nvme存储区域读取第二数据,并通过所述网络端口发送给所述服务器;所述网络端口130,还用于将读取的所述第二数据发送给所述服务器。

这里的第二nvme存储区域同样为所述nvme单元110中的一个存储区域。

在本实施例中所述控制单元120,可以解析所述读取请求,从所述读取请求中提取存储地址,根据所述存储地址确定所述第二nvme存储区域。这里的存储地址可以直接为所述第二nvme存储区域的物理地址或逻辑地址。

当然,在一些实施例中所述读取请求也许并没有携带存储地址,仅携带需要读取数据的数据标志,所述控制单元120,在内存等存储介质中以所述数据标志为查询依据,查询存储对应数据的第二nvme存储区域的存储地址,从而确定出所述第二nvme存储区域。

总之,所述控制单元120还负责解析所述读取请求,确定从哪个nvme单元110读取数据,从而该nvme单元110的哪一个位置读取数据。

在上述实施例中,所述nvme单元110可以如图2所示的通过总线连接到所述控制单元120上,也可以如图2所示的分别连接到所述控制单元120上。

在一些实施例中,所述控制单元120,还包括检测模组,该检测模组用于检测各个所述nvme单元110的运行状态,当发现nvme单元110出现不可恢复异常或指定时间内恢复异常时,将该nvme单元110的数据转移到其他nvme单元110上,并对应的修改数据存储记录,以便服务器对对应数据的读取和/或改写。在本实施例中,所述检测模组,可定时或不定时的接收nvme单元110的存储芯片发送的心跳信号等表示其正常工作的预定信号,当在对应的时间上未接收到时,可认为对应的nvme单元110出现异常,发现异常就可以进行数据迁移,当然,也可以判定是否需要进一步检测,通过进一步检测确定是否需要进行数据迁移。

如图3所示,本实施例提供一种存储系统,包括:

前述任意实施例提供给的存储设备100;

服务器200,与所述存储设备100连接,能够向所述存储设备100内的nvme单元写入数据或从所述nvme单元读取数据。

在本实施例中存储系统包括有数据写入和/或读取请求的服务器200,还包括可以集中提供nvme单元的存储设备100。

所述存储存储系统中包括的存储设备100可以为一个或多个,所述服务器200的个数也可以是一个或多个。在本实施例中优选为一个所述存储设备100同时与多个服务器连接,这样的话,多个服务器就可以共享一个所述存储设备100内的nvme单元,从而提升nvme单元的有效利用率,降低存储系统的硬件成本。

在一些实施例中,所述系统还包括:

中转设备300,一端与所述存储设备100的网络端口连接,另一端与所述服务器200连接。

在本实施例中所述中转设备300可为集线器或交换机等设备。在本实施例中所述中转设备300可包括第一端口和第二端口;所述第一端口用于所述存储设备100的网络端口连接,所述第二端口可用于所述服务器200连接。在本实施例中优选为所述第一端口的数量少于所述第二端口的数量,这样的话,可以使得多个服务器200共享一个所述存储设备100。

在具体实现时,所述第一端口和第二端口可以为同一种类型的端口,通过端口参数的配置,使得部分端口可为能够与所述存储设备100连接的所述第一端口,其他配置可与所述服务器连接的所述第二端口。

在本实施例中所述中转设备可为pcie设备,这里的所述pcie设备可为遵守pcie协议的设备。例如,所述中转设备可为pcie交换机。

在本实施例中通过交换机的引入,可以减少存储设备100和服务器200直接连接导致的存储系统的布局限制,使得存储设备100和服务器200在布局时更加灵活,可以适用不同的布局空间。同时通过中转设备的引入,可以减少所述存储设备100上所需设置的网络端口的数量,从而可以进一步降低存储系统的硬件成本。

如图4所示,本实施例提供一种存储方法,包括:

步骤s110:利用网络端口接收服务器发送的操作请求;

步骤s121:当所述操作请求为写入请求时,根据nvme单元的存储状况为所述服务器分配第一nvme存储区域;

步骤s131:接收所述服务器通过网络端口发送的第一数据;

步骤s141:将所述第一数据写入到所述第一nvme存储区域内;

步骤s122:当所述操作请求为读取请求时,确定所述服务器所请求的数据所在的第二nvme存储区域;

步骤s132:从所述第二nvme存储区域读取第二数据,并通过所述网络端口发送给所述服务器。

在本实施例中所述存储设备,提供的是基于nvme协议的集中存储。故在本实施例中所述存储设备的控制单元,会通过网络接口,接收到服务器发送的操作请求。这里的操作请求可包括写入请求和读取请求。写入请求为向对应的nvme单元中写入数据,所述读取请求为从nvme单元中读取数据。

当操作请求为写入请求时,存储设备的控制单元会根据各个nvme单元的存储状况,按照预设策略进行存储资源的分配,从而确定出本次响应写入请求的第一nvme存储区域。这里的预设策略可包括前述的各种均衡策略和响应时延最小策略,进行所述存储资源的分配,从而不仅可以实现多个服务器的nvme单元的共享,提升nvme单元的资源有效利用率,还可以实现nvme单元之间负载均衡、读写次数均衡或存储资源使用均衡等效果。

在有些实施例中,所述方法,还包括:

当所述操作请求为修改请求时,确定所述服务器指示修改的数据所在的第三nvme存储区域;

接收所述服务器通过网络端口发送的第三数据;

利用所述第三数据改写所述第三nvme存储区域内存储的数据。

所述操作请求还可能是数据改写请求,数据的改写请求可能涉及到旧数据的擦除,新数据的写入。故在本实施例中存储设备的控制单元首先根据修改请求,确定进行数据改写的第三nvme存储区域,这里的第三nvme存储区域的确定可以参照前述的第二nvme存储区域的确定,此处就不详细描述了。

然后将接收到第三数据,替换掉第三nvme存储区域中需要擦除的旧数据。当然,看这里的修改请求可包括:数据追加请求、数据删除请求和数据替换请求。若数据追加请求,可为在对应的文件中追加新的数据,就不涉及旧数据的擦除。所述数据删除请求,可为直接删除文件中的部分或全部数据。所述数据替换请求同时包括:旧数据的擦除和新数据的写入。

总之,本实施例提供的存储设备可以响应服务器各种数据的操作请求,提供基于nvme的数据快速写入和读取。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。

上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。

另外,在本发明各实施例中的各功能单元可以全部集成在一个处理模块中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1