一种存储阵列系统及数据写请求处理方法_2

文档序号:8223307阅读:来源:国知局
址;所述第一控制器在所述数据块特征值索引集合中建立所述待重删数据块的特征值索引;所述待重删数据块的特征值索引包括所述待重删数据块的特征值和所述存储地址。
[0018]本发明实施例提供的存储阵列系统和数据写请求处理方法,存储阵列中的控制器、输入输出管理器、缓存设备和存储设备分别与交换设备连接,并通过交换设备实现通信;存储阵列之间通过交换设备连接,这样存储阵列之间的设备可以通过各自的交换设备实现通信。这样控制器根据数据写请求在缓存设备中为待写入数据分配缓存地址,而输入输出管理器通过交换设备直接将待写入数据写入到缓存设备中,待写入数据不再需要途径控制器,节省了控制器的CPU的计算资源和控制器的内存资源,提高数据写入效率和存储阵列系统的效率。
【附图说明】
[0019]为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,下面描述中的附图仅仅是本发明的一些实施例,还可以根据这些附图获得其他的附图。
[0020]图1为现有技术存储阵列系统的结构图;
[0021]图2为本发明实施例存储阵列系统的结构图;
[0022]图3为本发明实施例数据写请求处理流程图;
[0023]图4为数据块特征值索引集合示意图;
[0024]图5为本发明实施例重复数据删除处理流程图。
具体实施例
[0025]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明提供的实施例所获得的所有其他实施例,都属于本发明保护的范围。
[0026]本发明实施例提供的存储阵列系统,如图2所示。图2中以存储阵列系统中包括两个存储阵列为例进行说明,存储阵列的的结构与实现原理类似,在此以一个存储阵列为例进行说明。
[0027]如图2所示,存储阵列I中,包括输入输出管理器(1M)l、控制器Al、控制器B1、交换设备1、缓存设备1、存储设备Al和存储设备BI。其中,控制器Al包括CPU和内存,CPU和内存通过总线进行通信;控制器BI也包括有CPU和内存,CPU和内存通过总线进行通信。控制器Al和控制器BI互为冗余。存储阵列2的结构与存储阵列I的结构相同,为了以示区别,将标注I修改为2,具体构成在此不再赘述。
[0028]存储阵列中以交换设备为中心,其他器件部署在交换设备的周围,通过交换设备实现两两互通。如图2所示,在存储阵列I中,输入输出管理器(1M) I与交换设备I连接,控制器Al与交换设备I连接,控制器BI与交换设备I连接,缓存设备I和交换设备I连接,存储设备Al与交换设备I连接,存储设备BI与交换设备I连接。存储阵列之间通过各自的交换设备实现互联互通。如图2所示,存储阵列I的交换设备I与存储阵列2的交换设备2连接,实现存储阵列I与存储阵列2之间的通信。基于上述描述,围绕交换设备I和交换设备2,组成了存储阵列I中的输入输出管理器(1M)U控制器Al、控制器B1、缓存设备1、存储设备Al和存储设备BI与存储阵列2中的输出管理器(1M) 2、控制器Al、控制器A2、缓存设备2、存储设备B2和存储设备A2之间的全互连架构。
[0029]在图2中,为了使存储阵列的结构以及各个部件之间的交互更清晰,在一个存储阵列中,只给出了一个缓存设备,一个输入输出管理器和两个存储设备。在实际使用中,在一个存储阵列中,可以存在有多个缓存设备、多个输入输出管理器和多个存储设备,在此不再另行描述。
[0030]图2所示存储阵列中,交换设备I与存储设备Al和存储设备BI连接,如前所述,在存储阵列I中有多个存储设备时,交换设备I与所述多个存储设备连接。控制器Al与控制器BI互为冗余,并且分别通过交换设备I与缓存设备1、输入输出管理器1、存储设备I或者存储设备2实现通信。例如控制器Al通过交换设备I与存储阵列I中的所有存储设备I通信。控制器Al将存储阵列中的存储设备虚拟化,形成多个逻辑单元LU,并提供某个LU (例如LU A)给主机A使用,主机A挂载LU A,主机A通过控制器Al对LU A进行数据访问操作,这里将控制器Al称为该LU A的归属控制器,即LU A的归属控制器是控制器Al。同理,对于存储阵列2中的存储设备提供的LU的归属控制器为控制器A2。这里的主机可以为物理主机(或称物理服务器),也可以为虚拟主机(或称虚拟服务器)。逻辑单元LU,业界通常称为逻辑单元号(Logical Unit Number, LUN)。分配给主机LUN,实际是指将某一LU的标识分配给主机,以使主机挂载该LU,因此,这里LU与LUN具有相同含义。
[0031]图2所示的存储阵列中,交换设备I和交换设备2可以为PCIe交换设备,也可以为非易失性存储介质的高速传输总线(Non-Volatile Memory express, NVMe)交换设备或者串行小型计算机系统接口(Serial attached SCSI,SAS)交换设备等,本发明实施例不作限定。当交换设备I和交换设备2为PCIe交换设备时,则与PCIe交换设备连接的存储设备为PCIe协议接口的硬盘;当交换设备I和交换设备2为NVMe交换设备时,则与NVMe交换设备连接的存储设备为NVMe协议接口的硬盘;当交换设备I和交换设备2为SAS交换设备时,则与SAS交换设备连接的存储设备为SAS协议接口的硬盘;硬盘可以是机械硬盘,也可以是固态存储硬盘(Solid State Disk, SSD),或者其他介质的硬盘。图2所示的存储阵列中的存储设备,不同存储设备的存储介质可以不同,从而组成混合硬盘存储阵列,本发明实施例不作限定。
[0032]缓存设备I和缓存设备2可以为由易失性存储介质或非易失性存储介质组成的存储设备,如相变存储器(Phase Change Memory, PCM)等,其他适合用来作为缓存设备的非易失性存储介质也可,本发明实施例对此不作限定。缓存设备I和缓存设备2用于缓存数据。
[0033]本发明实施例中以交换设备I为PCIe交换设备、交换设备I为PCIe交换设备和存储设备为PCIe协议接口 SSD为例进行说明。
[0034]图2所示的存储阵列,输入输出管理器I用于接收主机发送的数据写请求,并通过交换设备I将所述数据写请求发送至控制器Al,其中,数据写请求中携带有待写入数据地址。在本发明实施例中,控制器Al与输入输出管理器I位于同一存储阵列中,因此,控制器Al为所述输入输出管理器I的归属控制器。因此,输入输出管理器I接收到主机发送的数据操作请求,在没有改变输入输出管理器I的请求发送策略的情况下,默认向控制器Al发送数据操作请求。本发明实施例中,输入输出管理器I接收主机发送的数据写请求后,通过交换设备1,向控制器Al发送数据写请求。
[0035]输入输出管理器I接收到的数据写请求携带有待写入数据地址,其中,待写入数据地址包括待写入数据的目标逻辑单元LU的标识、待写入数据的逻辑块地址(LogicalBlock Address, LBA)及待写入数据的长度。
[0036]控制器Al用于在接收到数据写请求之后,根据所述数据写请求中携带的待写入数据地址确定所述待写入数据地址的归属控制器为控制器A2,将所述数据写请求通过所述交换设备I和交换设备2发送给控制器A2。控制器中存储有各个LU地址与各个控制器之间的归属关系。例如,LU A归属控制器为Al,即是由控制器Al将数据写入LU A ;LU B的归属控制器为A2,则由控制器A2将数据写入LU B0当控制器将本存储阵列中的存储设备进行虚拟化处理生成LU时,会在本地存储LU与本控制器的对应关系,并通过交换设备发送给其他的控制器。如图2所示,控制器Al将存储设备Al进行虚拟化处理,生成LU A,此时控制器Al为LU A的归属控制器,则控制器Al在本地存储LU A的归属控制器为控制器Al。另夕卜,控制器Al通过交换设备I将LU A与控制器Al的对应关系发送给控制器BI ;通过交换设备I和交换设备2将LU A与控制器Al的对应关系发送给控制器A2,通过交换设备I和交换设备2将LU A与控制器Al的对应关系发送给控制器B2。LU与控制器之间的对应关系可以由表格的方式来记录,在此不再详述。LU与控制器之间的对应关系,可以通过LU的标识与控制器的名称对应,也可以通过LU的标识与控制器的ID对应,在本发明实施例中不做限定。
[0037]控制器Al根据接收到的数据写请求中携带的待写入数据地址中的目标LU的标识,查询在本地存储的LU与控制器的归属关系,确定所述目标LU的归属控制器为控制器A2。在本发明实施例中,以目标LU的标识为LU B,对应的归属控制器为A2为例进行说明。即,本发明实施例说明的是两个存储阵列之间的数据写入处理方法,对于一个存储阵列中的数据写入方法,此时控制器Al根据数据写请求中携带的目标LU的标识确定出的归属控制器为自身或者为控制器BI,其实现原理类似,在此不再详述。
[0038]由于在存储阵列中,是以交换设备为中心部署的各个器件,因此,整个器件之间均需要经过交换设备来实现互通。控制器Al确定数据写请求中携带的待写入数据地址的归属控制器为控制器A2后,将数据写请求发送给交换设备1,交换设备I将所述数据写请求发送给交换设备2,交换设备2将所述数据写请求发送给控制器A2。至于控制器与交换设备之间的交互以及两个交换设备之间的交互可以已有的技术进行通信,在此不再另行说明。
[0039]控制器A2接收到数据写请求之后,根据所述数据写请求通过交换设备2在缓存设备2上为所述待写入数据分配缓存地址。控制器A2是缓存设备2的归属控制器,因此在控制器A2需要缓存地址存储数据时,通过交换设备2在向缓存设备2上为待写入数据分配缓存地址。
[0040]在另一种实现方式中,控制器A2根据数据写请求,通过交换设备2指示缓存设备2为待写入数据分配缓存地址,缓存设备2根据待写数据长度分配缓存地址,并将分配的缓存地址通过交换设备2返回给控制器A2。控制器A2获取缓存设备2为待写入数据分配的缓存地址(以下称缓存设备2为待写入数据分配的缓存地址为缓存地址),缓存地址包括缓存的起始地址和长度。
[0041]在本发明实施例中,缓存设备的介质可以是DDR,也可以是PCM,或者其他介质。在本发明实施例中,缓存设备具有智能特性的双端口,可以通过交换设备被其他的设备访问。
[0042]控制器A2获得在缓存设备2上为所述待写入数据分配的缓存地址2后,将所述缓存地址通过所述交换设备2和交换设备I发送给控制器Al。控制器A2将获得的缓存地址转发给交换设备2,交换设备2将所述缓存地址转发给交换设备1,交换设备I将所述缓存地址转发给控制器Al。
[0043]控制器Al将接收到的缓存地址通过交换设备I发送给输入输出管理器I。
[0044]输入输出管理器I接收到缓存地址后,通过交换设备I和交换设备2将所述待写入数据写入到所述第二缓存设备的缓存地址中。输入输出管理器I接收到控制器Al通过交换设备I发送的缓存地址后,将所述数据写请求对应的待写入数据发送给交换设备1,交换设备I发送给交换设备2,交换设备2直接将数据发送到缓存设备2的缓存地址2中。
[0045]控制器A2还可以通过交换设备2和交换设备I将所述缓存设备2的标识同所述缓存地址一起发送给控制器Al。
[0046]控制器Al将缓存设备2的标识同所述缓存地址一起发送给输入输出管理器1,输入输出管理器I根据接收到的缓存地址和缓存设备
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1