数据请求系统、方法、装置、计算机设备和存储介质与流程
未命名
09-17
阅读:111
评论:0
1.本技术涉及数据处理技术领域,特别是涉及一种数据请求系统、方法、装置、计算机设备和存储介质。
背景技术:
2.随着数据处理技术的发展,出现了存储系统的数据存储技术,存储系统主要用于组织一定数量的磁盘及并对磁盘上存储的数据进行管理,为服务器端提供数据存储访问服务。
3.存储系统通常由多个控制器(又称存储系统节点)组成,对于每个存储卷所承载的来自主机的数据访问业务,传统技术中,一般采取如下方案:存储卷有归属控制器,即出于数据一致性考虑,该卷的业务只由存储系统其中一个控制器处理(归属控制器)。显然,这种情况下,其他控制器可能处于业务空闲状态,浪费资源,且性能受限于单控制器业务处理能力。
技术实现要素:
4.基于此,有必要针对上述技术问题,提供数据请求系统、方法、装置、计算机设备和存储介质。
5.一种数据请求系统,上述的系统包括主机以及存储系统,上述的存储系统与主机连接,上述的存储系统包括分发器件及控制器,上述的控制器与上述的分发器件连接,上述的控制器包括至少一个,其中,主机用于向存储系统发送数据输入输出请求,数据输入输出请求中包括目标存储卷的标识信息以及请求数据的信息;分发器件用于接收数据输入输出请求,根据目标存储卷的标识信息以及请求数据的信息从各控制器中确定目标控制器,将数据输入输出请求发送至目标控制器;目标控制器用于请求对应的数据。
6.在其中一个实施例中,上述的分发器件包括前端接口卡以及分发处理器,上述的前端接口卡与分发处理器连接,其中,前端接口卡用于接收数据输入输出请求,并将数据输入输出请求发送至分发处理器;分发处理器用于根据目标存储卷的标识信息以及请求数据的信息从各控制器中确定目标控制器,将数据输入输出请求发送至目标控制器。
7.在其中一个实施例中,上述的分发器件包括前端接口卡以及分发处理器,上述的前端接口卡与分发处理器连接,其中,前端接口卡用于接收数据输入输出请求,根据目标存储卷的标识信息以及请求数据的信息从各控制器中确定目标控制器的控制器标识,并将数据输入输出请求以及目标控制器的控制器标识发送至分发处理器;
分发处理器用于将数据输入输出请求发送至目标控制器。
8.在其中一个实施例中,上述的系统还包括磁盘,上述的存储系统与磁盘连接,上述的磁盘包括多个,其中,磁盘用于组建磁盘阵列,磁盘阵列包括多个条带,各条带用于为目标存储卷提供容量空间,目标存储卷的最小处理数据块大小为固定条带大小的整数倍,目标存储卷在存储池内的存储地址的起始地址与固定条带大小对齐,固定条带大小为各条带占据各磁盘的存储区域的大小,存储池为各磁盘的存储空间的总和。
9.在其中一个实施例中,上述的控制器包括多个,上述的多个控制器中包括目标控制器的备份控制器,其中,分发处理器还用于将数据输入输出请求发送至备份控制器;备份控制器用于对数据输入输出请求进行备份。
10.在其中一个实施例中,上述的分发处理器包括非透明桥,上述的非透明桥用于建立分发处理器与各控制器之间的数据链路。
11.一种数据请求方法,上述的方法应用于存储系统中的分发器件,上述的存储系统与主机连接,上述的存储系统还包括至少一个控制器,各上述的控制器与分发器件连接,上述的方法包括:接收主机发送的数据输入输出请求,数据输入输出请求中包括目标存储卷的标识信息以及请求数据的信息;根据目标存储卷的标识信息以及请求数据的信息从各控制器中确定目标控制器;将数据输入输出请求发送至目标控制器,并通过目标控制器请求对应的数据。
12.在其中一个实施例中,上述的请求数据的信息包括请求数据的大小和起始地址,上述的根据目标存储卷的标识信息以及请求数据的信息从各控制器中确定目标控制器,包括:根据请求数据的大小和起始地址、预先为目标存储卷设定的最小处理数据块大小以及控制器的个数确定目标控制器。
13.在其中一个实施例中,上述的方法还包括:当目标控制器包括多个时,将数据输入输出请求进行切分,将切分后的各部分分别发送至对应的目标控制器。
14.在其中一个实施例中,上述的分发器件包括前端接口卡以及分发处理器,上述的接收主机发送的数据输入输出请求,包括:通过前端接口卡接收数据输入输出请求,并将数据输入输出请求发送至分发处理器;上述的根据目标存储卷的标识信息以及请求数据的信息从控制器中确定目标控制器,包括:通过分发处理器根据目标存储卷的标识信息以及请求数据的信息确定目标控制器。
15.在其中一个实施例中,上述的分发器件包括前端接口卡以及分发处理器,根据目标存储卷的标识信息以及请求数据的信息从控制器中确定目标控制器,包括:通过前端接口卡根据目标存储卷的标识信息以及请求数据的信息确定目标控制
器的控制器标识,并将数据输入输出请求以及目标控制器的控制器标识发送至分发处理器;上述的将数据输入输出请求发送至目标控制器,包括:通过分发处理器将数据输入输出请求发送至目标控制器。
16.在其中一个实施例中,上述的方法还包括:通过分发处理器将数据输入输出请求发送至目标控制器的备份控制器存储。
17.在其中一个实施例中,上述的存储系统与磁盘连接,上述的磁盘包括多个,上述的方法还包括:根据磁盘创建多个磁盘阵列,对各磁盘阵列进行条带划分,得到多个条带,目标存储卷的最小处理数据块大小为固定条带大小的整数倍,目标存储卷在存储池内的存储地址的起始地址与固定条带大小对齐,固定条带大小为各条带占据各磁盘的存储区域的大小,存储池为各磁盘的存储空间的总和;上述的通过目标控制器请求对应的数据,包括:通过目标控制器根据预先建立的各存储卷与各磁盘阵列的映射关系确定目标存储卷对应的磁盘阵列;通过目标控制器根据请求数据的地址范围从目标存储卷对应的磁盘阵列的各条带中确定待请求的条带,并向待请求的条带请求对应的数据。
18.在其中一个实施例中,上述的方法还包括:获取历史数据记录,历史数据记录包括各历史请求数据的信息以及对应的历史控制器;根据历史数据记录创建各历史请求数据的信息与历史控制器的映射关系;根据目标存储卷的标识信息以及请求数据的信息从各控制器中确定目标控制器,包括:根据目标存储卷的标识信息、请求数据的信息以及各历史请求数据的信息与历史控制器的映射关系确定目标控制器。
19.在其中一个实施例中,上述的向待请求的条带请求对应的数据之前,上述的方法还包括:通过目标控制器抢夺预先为待请求的条带设定的互斥锁;当目标控制器抢夺到互斥锁时,通过互斥锁对待请求的条带进行锁定。
20.在其中一个实施例中,各上述的条带包括数据分区和校验分区,上述的数据分区包括多个,上述的方法包括:当当前条带的目标数据分区的数据出现异常时,根据当前条带中其他分区的数据恢复目标数据分区的数据。
21.在其中一个实施例中,上述的方法还包括:接收各存储卷与各磁盘阵列的映射关系中新的存储卷的新增请求;提取新增请求中的新的存储卷对应的磁盘阵列的标识;将新的存储卷的标识信息与新的存储卷对应的磁盘阵列的标识的映射关系添加至各存储卷与各磁盘阵列的映射关系中。
22.一种数据请求装置,上述的装置应用于存储系统中的分发器件,上述的存储系统
与主机连接,上述的存储系统还包括至少一个控制器,各上述的控制器与上述的分发器件连接,上述的装置包括:接收模块,用于接收主机发送的数据输入输出请求,数据输入输出请求中包括目标存储卷的标识信息以及请求数据的信息;确定模块,用于根据目标存储卷的标识信息以及请求数据的信息从各控制器中确定目标控制器;处理模块,用于将数据输入输出请求发送至目标控制器,并通过目标控制器请求对应的数据。
23.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:接收主机发送的数据输入输出请求,数据输入输出请求中包括目标存储卷的标识信息以及请求数据的信息;根据目标存储卷的标识信息以及请求数据的信息从各控制器中确定目标控制器;将数据输入输出请求发送至目标控制器,并通过目标控制器请求对应的数据。
24.一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:接收主机发送的数据输入输出请求,数据输入输出请求中包括目标存储卷的标识信息以及请求数据的信息;根据目标存储卷的标识信息以及请求数据的信息从各控制器中确定目标控制器;将数据输入输出请求发送至目标控制器,并通过目标控制器请求对应的数据。
25.上述数据请求系统、方法、装置、计算机设备和存储介质,通过分发器件对主机发送的数据输入输出请求中进行分析确定目标控制器,并通过目标控制器请求对应的数据,一方面,实现将数据输入输出请求的分发策略下沉到存储系统,即主机只负责将数据输入输出请求发送到存储端,不参与数据输入输出请求在存储系统内的处理过程,减轻了主机端的负担。另一方面,主机发起io业务(相当于本技术中的数据输入输出请求)时,无需将地址范围发往存储系统查询,然后根据存储系统应答消息发往指定控制器,减少了主机与存储系统之间的交互次数,提高了整个io业务的处理效率。
附图说明
26.图1为一个实施例中数据请求系统的原理框图;图2为一个实施例中集中式分发网络的示意图;图3为一个实施例中分布式分发网络的结构示意图;图4为一个实施例中对磁盘阵列进行条带划分的示意图;图5为一个实施例中通过分发处理器进行数据备份的原理示意图;图6为一个实施例中数据请求方法的流程示意图;图7为一个实施例中目标存储卷中各控制器对应负责的数据块的分配示意图;图8为一个实施例中通过目标控制器进行备份的示意图;图9为一个实施例中目标存储卷与条带之间的对其关系示意图;图10为一个实施例中数据请求装置的结构框图;
图11为一个实施例中计算机设备的内部结构图。
具体实施方式
27.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
28.在一个实施例中,如图1所示,提供了一种数据请求系统,该数据请求系统包括主机以及存储系统,存储系统与主机连接,存储系统后端连接硬盘扩展柜,硬盘扩展柜连接一组磁盘,存储系统包括分发器件及控制器,控制器与分发器件连接,控制器包括至少一个,其中,主机用于向存储系统发送数据输入输出请求,数据输入输出请求中包括目标存储卷的标识信息以及请求数据的信息;分发器件用于接收数据输入输出请求,根据目标存储卷的标识信息以及请求数据的信息从各控制器中确定目标控制器,将数据输入输出请求发送至目标控制器;目标控制器用于请求对应的数据。
29.其中,上述的存储系统主要用于组织一定数量的磁盘及并对磁盘上存储的数据进行管理,为服务器端(相当于上述的主机)提供数据存储访问服务。在为服务器提供存储服务的过程中,存储系统首先按一定规则将后端磁盘的存储空间统一管理起来,形成存储池,后根据用户需要在存储池中分出一部分存储空间以存储卷的方式映射到主机端,从主机端的角度看,该卷相当于一块直连在服务器上的磁盘,服务器基于此映射卷可进行读写数据。
30.上述的控制器又称存储系统节点。上述的数据输入输出请求是指主机发送的数据的读、写或者查询等请求。其中,该数据输入输出请求中可以携带数据请求的类型,如读、写以及查询等,还可以携带存储卷在存储系统内的标识,一个独一无二的id号以及请求数据的信息。
31.上述的分发器件是指用于对主机端发送的数据输入输出请求进行处理并分发的部件。上述的目标存储卷是指上述的数据输入输出请求中携带的存储卷。存储系统中预先为各存储卷设定了对应的标识信息用于唯一性标识各存储卷。上述的请求数据的信息是指上述的数据输入输出请求对应要请求的数据的相关信息。
32.在传统的方式中,对于每个存储卷所承载的来自主机的数据输入输出请求通常有两种处理方式:其一、预先为存储卷设定归属控制器,即出于数据一致性考虑,目标存储卷的业务只由存储系统其中一个控制器处理(归属控制器)。显然,这种情况下,其他控制器可能处于业务空闲状态,浪费资源,且性能受限于单控制器业务处理能力。
[0033] 其二、存储卷无归属控制器,在主机端部署专门软件,用于将同一存储卷不同地址范围的io(input and output,数据输入输出)业务(相当于上述的数据输入输出请求)分发到不同存储系统节点处理,这里分发实现策略可分为两类:一类是主机端根据不同算法(通常是hash类散列函数)确定当前地址范围的io业务应由哪个控制器处理,这显然增加了主机的负担,同时不便于根据存储系统状态变化调整算法。
[0034]
另一类是由存储系统初始化时确定并记录各控制器负责的地址范围,主机发起io业务时,首先将地址范围发往存储系统查询,然后根据存储系统应答消息发往指定控制器,这显然增加了主机与存储系统之间的交互次数,实际上增加了整个io业务的处理时间。另外该两类方式,皆需主机端配置存储厂家专门软件,这一点往往给存储客户带来不便。
[0035]
由此可见,传统技术中,要么存储卷与固定的归属控制器进行绑定,容易导致资源的浪费,要么需要主机端对数据输入输出请求进行分派或者需要主机与存储系统进行交互,以确定目标控制器,增加主机的负担。
[0036]
然而本技术,对于目标控制器的确定以及请求的分发无需主机端的参与。本技术将分发算法下沉到存储系统,即主机只负责将io业务请求发送到存储端,不参与io业务在存储系统内的处理过程,从而减轻了主机端的负担,也提高了资源利用率。
[0037]
在其中实施例中,上述的分发器件包括前端接口卡以及分发处理器,前端接口卡与分发处理器连接,其中,前端接口卡用于接收数据输入输出请求,并将数据输入输出请求发送至分发处理器;分发处理器用于根据目标存储卷的标识信息以及请求数据的信息从各控制器中确定目标控制器,将数据输入输出请求发送至目标控制器。
[0038]
在该实施例中,上述的分发器件与各控制器所构成的网络为集中式分发网络。
[0039]
请参考图2,图2为一种实施方式中,集中式分发网络的示意图。在图2中的集中式分发网络中,上述的分发算法由分发处理器执行,前端接口卡只负责接收主机发送的数据输入输出请求,并转发至分发处理器,由分发处理器根据数据输入输出请求确定目标控制器。
[0040]
在该实施方式中,上述分发处理器,相当于在前端接口卡与存储系统各控制器之间添加了一个互联网络,只不过该网络还负责根据预定的分发算法路由数据。具体地,该分发处理器的实现可以是以cpu+内存的方式,即cpu+内存负责上述的分发算法的实现。
[0041]
本技术通过集中式分发网络将数据输入输出请求的具体分发策略由分发处理器执行,实现了数据的分发由存储系统承担,减轻主机端的负担以及主机与存储系统的交互次数。
[0042]
在其中一个实施例中,上述的分发器件包括前端接口卡以及分发处理器,前端接口卡与分发处理器连接,其中,前端接口卡用于接收数据输入输出请求,根据目标存储卷的标识信息以及请求数据的信息从各控制器中确定目标控制器的控制器标识,并将数据输入输出请求以及目标控制器的控制器标识发送至分发处理器;分发处理器用于将数据输入输出请求发送至目标控制器。
[0043]
在该实施例中,上述的分发器件与各控制器所构成的网络为分布式分发网络。
[0044]
本技术的分布式分发网络中,上述的前端接口卡用于接收主机发送的数据输入输出请求,并根据数据输入输出请求确定目标控制器。进一步将目标控制器的控制器标识发送给分发处理器,由分发处理器将上述的数据输入输出请求发送给目标控制器处理。
[0045]
请参考图3,图3为一种实施例中,分布式分发网络的结构示意图。在图3中,分发算法(相当于上述的确定目标控制器的算法)由前端接口卡执行,前端接口卡确定了目标控制
器后,由分发处理器将数据请求转发给对应的目标控制器。这里的分发处理器,相当于在前端接口卡与存储系统各控制器之间添加了一个互联网络。
[0046]
在该实施方式中,由前端接口卡执行上述的预置算法以确定目标控制器,分发处理器仅负责将数据请求发给目标控制器处理即可,这种分发网络可称为分布式分发网络。分布式分发网络可将分发路由任务由集中式处理器分散到各前端接口卡本身,这种分发网络具有更高的冗余性。
[0047]
在其中一个实施例中,上述的系统还包括磁盘,上述的存储系统与磁盘连接,上述的磁盘包括多个,其中,磁盘用于组建磁盘阵列,磁盘阵列包括多个条带,各条带用于为目标存储卷提供容量空间,目标存储卷的最小处理数据块大小为固定条带大小的整数倍,目标存储卷在存储池内的存储地址的起始地址与固定条带大小对齐,固定条带大小为各条带占据各磁盘的存储区域的大小,存储池为各磁盘的存储空间的总和。
[0048]
本技术中,上述的存储系统能够组织后端的磁盘,并管理后端磁盘的存储空间。在管理后端磁盘的存储空间时,需要将各磁盘组建成多个磁盘阵列,对各磁盘阵列条带化,得到各磁盘阵列对应的多个条带。其中,在对各磁盘阵列进行条带化时,将一个磁盘阵列中各磁盘的相同位置(或相同地址)的空间划分为一个条带,并进一步设定各条带的固定条带大小。这里的固定条带大小是指各条带占据各磁盘的存储区域的大小。
[0049]
请参考图4,图4为一种实施方式中,对磁盘阵列进行条带划分的示意图。在图4中,硬盘扩展柜41连接一组磁盘42,矩形框43所示的区域为条带,条带中每块硬盘贡献等量(称为stripsize,即为上述的固定条带大小)的容量。
[0050]
进一步地,本技术预先为各各存储卷设定对应的标识信息,且为各存储卷设定lun_block_size,相当于本技术中的最小处理数据块大小,这里最小处理数据块大小是指各个控制器所负责的数据块的最小大小。本技术在设置各存储卷的lun_block_size时,将其设置为各存储卷对应的条带的固定条带大小的整数倍。本技术中,各存储卷与磁盘阵列存在对应关系,相应的,各存储卷与磁盘阵列中的条带也存在对应关系,则各存储卷存在与之对应的固定条带大小,可以根据该对应关系设置各存储卷对应的lun_block_size。
[0051]
进一步地,各存储卷在存储池内的存储地址的起始地址需要与对应的固定条带大小的n倍对齐,n为整数。这样设置之后,后续条带为各存储卷提供容量空间时,可以实现在无需互斥锁的情况下也能保证控制器访问条带的单一性,实现条带在控制器间的解耦。
[0052]
在其中一个实施例中,上述的控制器可以包括多个,上述的多个控制器中包括目标控制器的备份控制器,其中,分发处理器还用于将数据输入输出请求发送至备份控制器;备份控制器用于对数据输入输出请求进行备份。
[0053]
本技术中,上述的备份控制器是指预先为目标控制器设定的partner(搭档)控制器相当于上述的备份控制器)。为避免存储系统在数据处理过程中,某控制器因某种原因(如机器硬件损坏)突然宕机,进而导致其负责处理的io业务请求(相当于上述的数据输入输出请求)数据丢失,一般在控制器a处理数据的过程中会备份一份到另一控制器b,该控制器可称为控制器a的partner控制器,如上图2中所示,控制器1和2互为partner控制器,控制器3和4互为partner控制器。
[0054]
请参考图5,图5为一种实施例中,通过分发处理器进行数据备份的原理示意图。在图5中,本技术中经分发处理器处理后,可在数据分发时,同时将数据发往partner控制器进行数据备份,而只在控制器a进行完整存储操作。如图5所示,分发处理器在进行数据分发时,将数据发往控制器2同时将数据也发往控制器1进行备份,控制器2再根据接收的数据向存储池请求对应的数据。
[0055]
在其中一个实施例中,上述的分发处理器包括非透明桥,上述的非透明桥用于建立分发处理器与各控制器之间的数据链路。
[0056] 本技术中,上述的分发处理器的实现可以是以cpu+内存+ntb(non-transparent bridge,非透明桥)的方式,即cpu+内存负责分发算法的实现,分发处理器与各控制器之间的连接由ntb承担。
[0057]
在一个实施例中,如图6所示,提供了一种数据请求方法,该数据请求方法应用于存储系统中的分发器件,存储系统与主机连接,存储系统还包括至少一个控制器,各控制器与分发器件连接,方法包括:s11、接收主机发送的数据输入输出请求,数据输入输出请求中包括目标存储卷的标识信息以及请求数据的信息。
[0058] s12、根据目标存储卷的标识信息以及请求数据的信息从各控制器中确定目标控制器。
[0059] s13、将数据输入输出请求发送至目标控制器,并通过目标控制器请求对应的数据。
[0060]
具体地,上述的目标控制器是指用于处理上述的数据输入输出请求的控制器。本技术中,存储系统根据目标存储卷的标识信息以及请求数据的信息利用预设的算法计算出目标控制器的标识信息或者位置信息,进一步确定目标控制器。
[0061]
在其中一个实施例中,上述的请求数据的信息包括请求数据的大小和起始地址,上述的根据目标存储卷的标识信息以及请求数据的信息从各控制器中确定目标控制器,包括:根据请求数据的大小和起始地址、预先为目标存储卷设定的最小处理数据块大小以及控制器的个数确定目标控制器。
[0062]
本技术中,预先根据目标存储卷的最小处理数据块大小、控制器的个数以及目标存储卷的容量对目标存储卷的容量空间进行划分,得到多个分区,进一步将各分区分配至各控制器负责。
[0063]
在将各分区分配至各控制器负责时,可以包括如下方案:a方案,即将划分后的各个分区按照各个控制器的标号从小到大的顺序依次分配给各个控制器,当全部控制器都分配完后,重新按照各个控制器的标号从小到大的顺序依次将剩余的分区分配给各个控制器,以此类推,直至全部的分区都分配完。这种方式可以保证目标存储卷的前中后各个地址段都有控制器参与负责,最佳程度地保证了存储卷在控制器间均衡。
[0064]
请参考图7,图7为一种实施例中对目标存储卷的容量空间进行划分的示意图。在图7中,目标存储卷的容量为1gb(1gb=1024mb),控制器总个数为4个,最小处理数据块大小lun_block_size为1mb,在对该目标存储卷的容量空间进行划分时,按照每控制器负责1mb
(lun_block_size)的顺序负责上述的数据输入输出请求。
[0065]
在图7中,先将目标存储卷的容量空间按照1mb进行划分,将划分后的各个分区按照各个控制器的标号从小到大的顺序依次分配给各个控制器。具体地,当全部控制器都分配完后,重新按照各个控制器的标号从小到大的顺序依次将剩余的分区分配给各个控制器,以此类推,直至全部的分区都分配完。如图3所示,控制器1负责第一个分区地址范围,即第1mb,控制器2负责第二个分区,控制器3负责第三个分区,控制器4负责第四个分区即第4mb,这里全部的控制器都分配了一遍,后面重新将剩余的分区依次分配至各个控制器,即控制器1负责第五个分区,控制器2负责第六各分区,以此类推。需要说明的是,图3示意的是一种实施方式,其还可以有其他的分配方式。
[0066]
在上述的a方案中,上述的根据请求数据的大小和起始地址、预先为目标存储卷设定的最小处理数据块大小以及控制器的个数确定目标控制器,可以包括:确定第一区间,第一区间为请求数据的起始地址与最小处理数据块大小的比值所在的区间;确定第二区间,第二区间为请求数据的起始地址与请求数据的大小的和所在的区间;根据第一区间、第二区间以及控制器个数确定目标控制器。
[0067] 示例性地,假如上述的目标存储卷的容量为1gb。上述的目标存储卷对应最小处理数据块大小(lun_block_size)为1mb。上述的请求数据的起始地址(业界领域内称为lba/以字节为单位)为 2097155,请求数据的大小(size)为512kb。
[0068] 则上述的确定请求数据的起始地址与目标存储卷对应最小处理数据块大小的比值为:lba/lun_block_size=(2097155/1024/1024)/(1024*1024)上述的lba/lun_block_size的计算结果大于2mb小于3mb,落在(2,3)区间。
[0069]
上述的请求数据的起始地址与请求数据的大小的总和等于lba+size落在2mb~3mb这个区间。
[0070]
上述的根据第一区间、第二区间以及控制器个数确定目标控制器,可以包括:上述的第一区间以及第二区间都为(2,3),获取该区间的右端点值,将该右端点值对控制器总数求余,得到的数即为目标控制器的标号,即3对4(控制器总个数)求余=3,即该io业务请求应发往控制器3处理。
[0071] b方案,将各个分区分配给各个控制器时,不按照固定的排序进行分配。这种情况下,需要记录各个控制器对应负责的地址范围,以便后续查询。
[0072]
在b方案中又可以分为如下几种情况:第一种情况,请参考图7,图7中的前4mb也可以依次分配给控制器1、2、3以及4,也可以依次分配给1、3、4以及2,还可以依次分配给4、2、3以及1等多种方式。但需保证每4mb都有全部的控制器参与分配,即第一个4mb分配给了全部的控制器,第二个4mb也分配给了全部的控制器,以此类推,各个4mb 都有全部的控制器参与负责。这种情况下保证了目标存储卷的前中后各个地址段都有控制器参与负责,一定程度上保证了存储卷在控制器间均衡。
[0073]
第二种情况,随机分配,即各个分区由哪个控制器负责是随机的。这种情况下,无法保证目标存储卷的前中后各个地址段都有控制器参与负责,进而无法保证存储卷在控制
器间均衡。
[0074]
当然也不限于以上三种情况,本技术还可以有其他的分配方式,在此不做具体限定。
[0075]
在上述的b方案中,上述的方法还可以包括:根据预先为目标存储卷设定的最小处理数据块大小、控制器的个数确定各控制器对应处理数据的地址范围并记录;上述的根据请求数据的大小和起始地址、预先为目标存储卷设定的最小处理数据块大小以及控制器的个数确定目标控制器,可以包括:确定第一区间,第一区间为请求数据的起始地址与最小处理数据块大小的比值所在的区间;确定第二区间,第二区间为请求数据的起始地址与请求数据的大小的和所在的区间;根据第一区间、第二区间查询预先记录的各个控制器对应负责的地址范围,确定目标控制器。
[0076]
本技术在根据根据目标存储卷的标识信息以及请求数据的信息从各控制器中确定目标控制器时,也可以根据实际需求采取其他的算法,不仅限于上述的算法,此处的算法不唯一。本技术通过该实施例可以解决传统技术中一个存储卷的业务只由存储系统其中一个节点处理(归属节点),导致存储卷在节点间不均衡的问题。本技术中存储卷与节点间无绑定关系,一个存储卷的业务可能分配至不同的节点处理,实现存储卷在节点间的均衡。
[0077]
在其中一个实施例中,上述的方法还可以包括:当目标控制器包括多个时,将数据输入输出请求进行切分,将切分后的各部分分别发送至对应的目标控制器。
[0078]
示例性地,假如上述的目标存储卷的容量为1gb。上述的目标存储卷对应最小处理数据块大小(lun_block_size)为1mb。上述的请求数据的起始地址lba为5767168,请求数据的大小(size)为1mb。则lba/lun_block_size大于5mb小于6mb,lba+size落在5mb~7mb这个区间,则第一区间的右端点值为6,第二区间的右端点值为7。进而有6对4(控制器数)求余=2,7对4(控制器数)求余=3,即需要对数据输入输出请求进行切分,将切分后的前半部分应发往控制器2处理,后半部分应发往控制器3处理。
[0079]
本技术通过该实施例可以解决在目标控制器数包括多个的情况下如何分配数据出入输出请求的问题,使得各控制器之间承担的业务更加均衡,实现资源合理利用。
[0080]
在其中一个实施例中,上述的分发器件包括前端接口卡以及分发处理器,上述的接收主机发送的数据输入输出请求,可以包括:通过前端接口卡接收数据输入输出请求,并将数据输入输出请求发送至分发处理器;根据目标存储卷的标识信息以及请求数据的信息从控制器中确定目标控制器,包括:通过分发处理器根据目标存储卷的标识信息以及请求数据的信息确定目标控制器。
[0081]
这部分对应的具体实施方式请参考上述的数据请求系统对应的详细描述,不再赘
述。
[0082]
在其中一个实施例中,上述的,上述的分发器件包括前端接口卡以及分发处理器,上述的根据目标存储卷的标识信息以及请求数据的信息从控制器中确定目标控制器,可以包括:通过前端接口卡根据目标存储卷的标识信息以及请求数据的信息确定目标控制器的控制器标识,并将数据输入输出请求以及目标控制器的控制器标识发送至分发处理器;将数据输入输出请求发送至目标控制器,包括:通过分发处理器将数据输入输出请求发送至目标控制器。
[0083]
这部分对应的具体实施方式请参考上述的数据请求系统对应的详细描述,不再赘述。
[0084]
在其中一个实施例中,上述的方法还可以包括:通过分发处理器将数据输入输出请求发送至目标控制器的备份控制器存储。
[0085]
数据备份,业界通常的做法是先将数据发送到控制器a,后由a发送一份到partner控制器b,完成发送后,a才能进一步将数据往后端硬盘存储或回复主机完成数据存储,整个过程是串行的。
[0086]
请参考图8,图8为一种实施例中,通过目标控制器进行备份的示意图。在图8中,在进行数据备份时,存储系统先将数据输入输出请求发送到控制器2,后由2发送一份到它的partner控制器即控制器1,完成发送后,控制器1进一步将数据往后端硬盘存储或回复主机完成数据存储。
[0087]
但经分发处理器处理后,可在数据分发时,同时将数据发往partner控制器进行数据备份,而只在目标控制器进行完整存储操作,如图5所示,提高并发性进而提高性能。
[0088]
在其中一个实施例中,上述的存储系统与磁盘连接,上述的磁盘包括多个,上述的方法还包括:根据磁盘创建多个磁盘阵列,对各磁盘阵列进行条带划分,得到多个条带,目标存储卷的最小处理数据块大小为固定条带大小的整数倍,目标存储卷在存储池内的存储地址的起始地址与固定条带大小对齐,固定条带大小为各条带占据各磁盘的存储区域的大小,存储池为各磁盘的存储空间的总和;上述的通过目标控制器请求对应的数据,包括:通过目标控制器根据预先建立的各存储卷与各磁盘阵列的映射关系确定目标存储卷对应的磁盘阵列;通过目标控制器根据请求数据的地址范围从目标存储卷对应的磁盘阵列的各条带中确定待请求的条带,并向待请求的条带请求对应的数据。
[0089]
本技术中,预先创建了第一映射关系,第一映射关系中包括各卷与存储池的各空间地址、各存储池的空间地址与各磁盘阵列、各磁盘阵列与各磁盘之间的映射关系。因此,这里的第一映射关系中包括了上述的各存储卷与各磁盘阵列的映射关系。根据该第一映射关系可以根据目标存储卷的标识信息确定与目标存储卷对应的磁盘阵列,进一步根据请求数据的地址以及各条带的地址确定与目标存储卷对应的条带,进一步向该条带请求对应的数据。
[0090]
本技术中,存储系统预先为各存储卷设定最小处理数据块大小以及为各条带设定固定条带大小,并且,对于同一个存储卷来说,其对应的最小处理数据块大小为固定条带大小的整数(n)倍,这样设置后,在磁盘阵列为目标存储卷提供容量空间时,可以保证控制器访问条带的单一性,实现条带在控制器间的解耦。
[0091]
具体地,在磁盘阵列向上层提供存储空间时,同时通报其对应的条带的大小,以固定条带大小stripsize为256kb为例,如图6中所示,traid5一个条带大小为1mb,一个条带大小为1mb,在上层为存储卷提供容量空间时,存储卷在存储内部的空间地址首先起始地址要满足256kn对齐,其次目标存储卷的lun_block_size即分散到每个控制器的数据块大小要为stripsize的整数倍,这样即可保证每个条带只被一个控制器访问,不在需要互斥锁。
[0092]
请参考图9,图9为一种实施例中,目标存储卷与条带之间的对其关系示意图。在图9中,存储卷的lun_block_size为为固定条带大小的整数(n)倍,目标存储卷在存储池内的存储地址的起始地址与固定条带大小的整数(n)倍对齐。
[0093]
本技术中,存储系统组织管理后端硬盘时,按固定条带大小(stripsize)及disk数量(n+1)组成条带,并将stripsize与n两个参数值汇报给上层管理raid的模块(相当于本技术中的存储池)。管理raid的上层模块以上述两个参数可得出,条带大小为stripsize*n,在之后组织存储卷的存储空间时,上述的具体原理为原则,向存储卷提供容量空间。并将lun_block_size同步到分发处理器(集中式分发网路)或前端接口卡(分布式分发网络),特别的,不同卷的lun_block_size可以不同,可通过存储卷id加以区分。
[0094]
本发明由于上层实现了分发机制,通过改进存储空间的使用保证控制器访问条带的单一性,实现条带在控制器间的解耦。
[0095]
在其中一个实施例中,上述的方法还可以包括:获取历史数据记录,历史数据记录包括各历史请求数据的信息以及对应的历史控制器;根据历史数据记录创建各历史请求数据的信息与历史控制器的映射关系;根据目标存储卷的标识信息以及请求数据的信息从各控制器中确定目标控制器,包括:根据目标存储卷的标识信息、请求数据的信息以及各历史请求数据的信息与历史控制器的映射关系确定目标控制器。
[0096]
本技术中,预先创建第二映射关系,这里的第二映射关系即为上述的各历史请求数据的信息与历史控制器的映射关系。上述的各历史数据输入输出请求与目标控制器的映射关系中包括多条映射关系的数据记录,各数据记录中包括历史的数据输入输出请求中的详细请求信息,包括存储卷的标识信息、请求的类型、请求数据的起始地址、请求数据的大小以及该请求对应的目标控制器的控制器标识。
[0097]
上述的根据目标存储卷的标识信息、请求数据的信息以及各历史数据输入输出请求与目标控制器的映射关系确定目标控制器,可以包括:将当前接收到的数据输入输出请求中的目标存储卷的标识信息、请求数据的起始地址、请求数据的大小与上述的各历史请求数据的信息与历史控制器的映射关系进行匹配,以确定与当前接收到的数据输入输出请求对应的目标控制器。
[0098]
本技术通过该实施方式,可以通过用元数据(上述的各历史请求数据的信息与历
史控制器的映射关系)记录下来,某一地址的数据由哪个控制器处理,后续可以通过查询元数据确定上述的目标控制器。
[0099]
在其中一个实施例中,上述的向待请求的条带请求对应的数据之前,上述的方法还可以包括:通过目标控制器抢夺预先为待请求的条带设定的互斥锁;当目标控制器抢夺到互斥锁时,通过互斥锁对待请求的条带进行锁定。
[0100]
本技术中,上述的互斥锁是指访问待请求的条带的权限,当抢到该互斥锁时,则具备访问该待请求的条带的权限。
[0101]
由于同一时间,只能有一个控制器访问一个条带,若两个控制器同时向一个条带写数据可能造成数据错误,因而一般多控制器存储系统通过使用互斥锁,保证控制器串行化访问同一条带。每次执行时,各控制器需要抢夺互斥锁,才能访问对应的条带,当其中一个控制器抢到互斥锁后,其他控制器需要等该控制器访问完成后,重新抢夺互斥锁才能执行下一次访问该条带。
[0102]
本技术中,可以通过设置lun_block_size为固定条带大小的整数倍,同时设置目标存储卷在存储池内的存储地址的起始地址与固定条带大小的整数倍对齐的方式,实现控制器间的解耦。本技术也可以通过互斥锁实现控制器串行化访问同一个条带。相比较而言,前者可以实现各控制器处并行访问条带,数据处理效率更高。
[0103]
在其中一个实施例中,各上述的条带包括数据分区和校验分区,上述的数据分区包括多个,上述的方法可以包括:当当前条带的目标数据分区的数据出现异常时,根据当前条带中其他分区的数据恢复目标数据分区的数据。
[0104]
对于存储系统后端硬盘所提供存储空间的管理,业界目前一般采用raid技术,即冗余磁盘阵列,该技术可在一定程度上保证数据的安全性,以下简介常用的traid5技术原理。
[0105]
本技术中,以常用的traid5技术为例,traid5以数据盘+校验盘的形式实现数据存储和数据保护功能,如图4所示,硬盘扩展柜41连接一组磁盘42,42中的磁盘组建traid5,这里的traid5由5块盘组成,其中4块用作存储数据,一块用作存储校验值,在组织这部分存储空间时,如图4中矩形框43所示的区域为条带,条带中每块硬盘贡献等量(称为stripsize)的容量,前四块硬盘用来存储主机发送的数据,第五块用来作存储校验数据,这样任何一块盘损坏后,其上的数据都可通过其他四块盘反向计算恢复出来。本技术通过该实施方式可以实现数据的恢复。
[0106]
在其中一个实施例中,上述的方法还可以包括:接收各存储卷与各磁盘阵列的映射关系中新的存储卷的新增请求;提取新增请求中的新的存储卷对应的磁盘阵列的标识;将新的存储卷的标识信息与新的存储卷对应的磁盘阵列的标识的映射关系添加至各存储卷与各磁盘阵列的映射关系中。
[0107]
本技术中,当需要新增存储卷时,需要将新的存储卷的相关信息更新至上述的各存储卷与各磁盘阵列的映射关系中,以实现该映射关系的实时更新与维护。
[0108]
本技术中,在更新映射关系时,需要获取新的存储卷的标识信息、新的存储卷在存
储池中的空间地址、该空间地址对应的磁盘阵列等信息建立关联关系添加至上述的各存储卷与各磁盘阵列的映射关系中。
[0109]
本技术通过该实施方式可以实现各存储卷与各磁盘阵列的映射关系的维护。
[0110]
在其中一个实施例中,各上述的控制器的备份控制器可以包括多个,当前控制器与当前控制器的各备份控制器间的距离比与其他控制器的距离小。本技术中,互为partner控制器的两个控制器的距离最近。
[0111]
在一个实施例中,如图10所示,提供了一种数据请求装置,装置应用于存储系统中的分发器件,存储系统与主机连接,存储系统还包括至少一个控制器,各控制器与分发器件连接,上述的装置包括:接收模块11、确定模块12和处理模块13,其中:接收模块11,用于接收主机发送的数据输入输出请求,数据输入输出请求中包括目标存储卷的标识信息以及请求数据的信息;确定模块12,用于根据目标存储卷的标识信息以及请求数据的信息从各控制器中确定目标控制器;处理模块13,用于将数据输入输出请求发送至目标控制器,并通过目标控制器请求对应的数据。
[0112]
在其中一个实施例中,上述的请求数据的信息包括请求数据的大小和起始地址,上述的确定模块12可以根据请求数据的大小和起始地址、预先为目标存储卷设定的最小处理数据块大小以及控制器的个数确定目标控制器。
[0113]
在其中一个实施例中,上述的数据请求装置还包括切分模块(图未示),该切分模块可以当目标控制器包括多个时,将数据输入输出请求进行切分,将切分后的各部分分别发送至对应的目标控制器。
[0114]
在其中一个实施例中,上述的分发器件包括前端接口卡以及分发处理器,上述的接收模块11可以通过前端接口卡接收数据输入输出请求,并将数据输入输出请求发送至分发处理器,上述的确定模块12可以通过分发处理器根据目标存储卷的标识信息以及请求数据的信息确定目标控制器。
[0115]
在其中一个实施例中,上述的分发器件包括前端接口卡以及分发处理器,上述的确定模块12可以通过前端接口卡根据目标存储卷的标识信息以及请求数据的信息确定目标控制器的控制器标识,并将数据输入输出请求以及目标控制器的控制器标识发送至分发处理器,上述的处理模块13可以通过分发处理器将数据输入输出请求发送至目标控制器。
[0116] 在其中一个实施例中,上述的数据请求装置还包括备份模块(图未示),该备份模块可以通过分发处理器将数据输入输出请求发送至目标控制器的备份控制器存储。
[0117]
在其中一个实施例中,上述的存储系统与磁盘连接,上述的磁盘包括多个,上述的数据请求装置还包括创建模块(图未示),该创建模块可以根据磁盘创建多个磁盘阵列,对各磁盘阵列进行条带划分,得到多个条带,目标存储卷的最小处理数据块大小为固定条带大小的整数倍,目标存储卷在存储池内的存储地址的起始地址与固定条带大小对齐,固定条带大小为各条带占据各磁盘的存储区域的大小,存储池为各磁盘的存储空间的总和,上述的处理模块13可以通过目标控制器根据预先建立的各存储卷与各磁盘阵列的映射关系确定目标存储卷对应的磁盘阵列,通过目标控制器根据请求数据的地址范围从目标存储卷对应的磁盘阵列的各条带中确定待请求的条带,并向
待请求的条带请求对应的数据。
[0118]
在其中一个实施例中,上述的数据请求装置还包括记录模块(图未示),该记录模块可以获取历史数据记录,历史数据记录包括各历史请求数据的信息以及对应的历史控制器,根据历史数据记录创建各历史请求数据的信息与历史控制器的映射关系,上述的确定模块12可以根据目标存储卷的标识信息、请求数据的信息以及各历史请求数据的信息与历史控制器的映射关系确定目标控制器。
[0119]
在其中一个实施例中,上述的处理模块13还可以通过目标控制器抢夺预先为待请求的条带设定的互斥锁,当目标控制器抢夺到互斥锁时,通过互斥锁对待请求的条带进行锁定。
[0120]
在其中一个实施例中,各上述的条带包括数据分区和校验分区,上述的数据分区包括多个,上述的处理模块13还可以当当前条带的目标数据分区的数据出现异常时,根据当前条带中其他分区的数据恢复目标数据分区的数据。
[0121]
在其中一个实施例中,上述的处理模块13还可以接收各存储卷与各磁盘阵列的映射关系中新的存储卷的新增请求,提取新增请求中的新的存储卷对应的磁盘阵列的标识,将新的存储卷的标识信息与新的存储卷对应的磁盘阵列的标识的映射关系添加至各存储卷与各磁盘阵列的映射关系中。
[0122]
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图11所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储智能家居设备的运行数据等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现数据请求方法。
[0123]
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:接收主机发送的数据输入输出请求,数据输入输出请求中包括目标存储卷的标识信息以及请求数据的信息;根据目标存储卷的标识信息以及请求数据的信息从各控制器中确定目标控制器;将数据输入输出请求发送至目标控制器,并通过目标控制器请求对应的数据。
[0124]
在一个实施例中,上述的请求数据的信息包括请求数据的大小和起始地址,处理器执行计算机程序实现上述的根据目标存储卷的标识信息以及请求数据的信息从各控制器中确定目标控制器步骤时,具体实现以下步骤:根据请求数据的大小和起始地址、预先为目标存储卷设定的最小处理数据块大小以及控制器的个数确定目标控制器。
[0125]
在一个实施例中,处理器执行计算机程序时具体实现以下步骤:当目标控制器包括多个时,将数据输入输出请求进行切分,将切分后的各部分分别发送至对应的目标控制器。
[0126]
在一个实施例中,上述的分发器件包括前端接口卡以及分发处理器,处理器执行计算机程序实现上述的接收主机发送的数据输入输出请求步骤时,具体实现以下步骤:通过前端接口卡接收数据输入输出请求,并将数据输入输出请求发送至分发处理
器;处理器执行计算机程序实现上述的根据目标存储卷的标识信息以及请求数据的信息从控制器中确定目标控制器步骤时,具体实现以下步骤:通过分发处理器根据目标存储卷的标识信息以及请求数据的信息确定目标控制器。
[0127]
在一个实施例中,上述的分发器件包括前端接口卡以及分发处理器,处理器执行计算机程序实现上述的根据目标存储卷的标识信息以及请求数据的信息从控制器中确定目标控制器步骤时,具体实现以下步骤:通过前端接口卡根据目标存储卷的标识信息以及请求数据的信息确定目标控制器的控制器标识,并将数据输入输出请求以及目标控制器的控制器标识发送至分发处理器;处理器执行计算机程序实现上述的将数据输入输出请求发送至目标控制器步骤时,具体实现以下步骤:通过分发处理器将数据输入输出请求发送至目标控制器。
[0128]
在一个实施例中,处理器执行计算机程序时,具体还实现以下步骤:通过分发处理器将数据输入输出请求发送至目标控制器的备份控制器存储。
[0129]
在一个实施例中,上述的存储系统与磁盘连接,上述的磁盘包括多个,处理器执行计算机程序时,具体还实现以下步骤:根据磁盘创建多个磁盘阵列,对各磁盘阵列进行条带划分,得到多个条带,目标存储卷的最小处理数据块大小为固定条带大小的整数倍,目标存储卷在存储池内的存储地址的起始地址与固定条带大小对齐,固定条带大小为各条带占据各磁盘的存储区域的大小,存储池为各磁盘的存储空间的总和;处理器执行计算机程序实现上述的通过目标控制器请求对应的数据步骤时,具体实现以下步骤:通过目标控制器根据预先建立的各存储卷与各磁盘阵列的映射关系确定目标存储卷对应的磁盘阵列;通过目标控制器根据请求数据的地址范围从目标存储卷对应的磁盘阵列的各条带中确定待请求的条带,并向待请求的条带请求对应的数据。
[0130]
在一个实施例中,处理器执行计算机程序时,具体还实现以下步骤:获取历史数据记录,历史数据记录包括各历史请求数据的信息以及对应的历史控制器;根据历史数据记录创建各历史请求数据的信息与历史控制器的映射关系;处理器执行计算机程序实现上述的根据目标存储卷的标识信息以及请求数据的信息从各控制器中确定目标控制器步骤时,具体实现以下步骤:根据目标存储卷的标识信息、请求数据的信息以及各历史请求数据的信息与历史控制器的映射关系确定目标控制器。
[0131]
在一个实施例中,处理器执行计算机程序实现上述的向待请求的条带请求对应的数据之前,具体还实现以下步骤:通过目标控制器抢夺预先为待请求的条带设定的互斥锁;
当目标控制器抢夺到互斥锁时,通过互斥锁对待请求的条带进行锁定。
[0132]
在一个实施例中,各上述的条带包括数据分区和校验分区,上述的数据分区包括多个,处理器执行计算机程序时,具体还实现以下步骤:当当前条带的目标数据分区的数据出现异常时,根据当前条带中其他分区的数据恢复目标数据分区的数据。
[0133]
在一个实施例中,处理器执行计算机程序时,具体还实现以下步骤:接收各存储卷与各磁盘阵列的映射关系中新的存储卷的新增请求;提取新增请求中的新的存储卷对应的磁盘阵列的标识;将新的存储卷的标识信息与新的存储卷对应的磁盘阵列的标识的映射关系添加至各存储卷与各磁盘阵列的映射关系中。
[0134]
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:接收主机发送的数据输入输出请求,数据输入输出请求中包括目标存储卷的标识信息以及请求数据的信息;根据目标存储卷的标识信息以及请求数据的信息从各控制器中确定目标控制器;将数据输入输出请求发送至目标控制器,并通过目标控制器请求对应的数据。
[0135]
在一个实施例中,上述的请求数据的信息包括请求数据的大小和起始地址,计算机程序被处理器执行实现上述的根据目标存储卷的标识信息以及请求数据的信息从各控制器中确定目标控制器步骤时,具体实现以下步骤:根据请求数据的大小和起始地址、预先为目标存储卷设定的最小处理数据块大小以及控制器的个数确定目标控制器。
[0136]
在一个实施例中,计算机程序被处理器执行时具体实现以下步骤:当目标控制器包括多个时,将数据输入输出请求进行切分,将切分后的各部分分别发送至对应的目标控制器。
[0137]
在一个实施例中,上述的分发器件包括前端接口卡以及分发处理器,计算机程序被处理器执行实现上述的接收主机发送的数据输入输出请求步骤时,具体实现以下步骤:通过前端接口卡接收数据输入输出请求,并将数据输入输出请求发送至分发处理器;计算机程序被处理器执行实现上述的根据目标存储卷的标识信息以及请求数据的信息从控制器中确定目标控制器步骤时,具体实现以下步骤:通过分发处理器根据目标存储卷的标识信息以及请求数据的信息确定目标控制器。
[0138]
在一个实施例中,上述的分发器件包括前端接口卡以及分发处理器,计算机程序被处理器执行实现上述的根据目标存储卷的标识信息以及请求数据的信息从控制器中确定目标控制器步骤时,具体实现以下步骤:通过前端接口卡根据目标存储卷的标识信息以及请求数据的信息确定目标控制器的控制器标识,并将数据输入输出请求以及目标控制器的控制器标识发送至分发处理器;计算机程序被处理器执行实现上述的将数据输入输出请求发送至目标控制器步骤时,具体实现以下步骤:
通过分发处理器将数据输入输出请求发送至目标控制器。
[0139]
在一个实施例中,计算机程序被处理器执行时,具体还实现以下步骤:通过分发处理器将数据输入输出请求发送至目标控制器的备份控制器存储。
[0140]
在一个实施例中,上述的存储系统与磁盘连接,上述的磁盘包括多个,计算机程序被处理器执行时,具体还实现以下步骤:根据磁盘创建多个磁盘阵列,对各磁盘阵列进行条带划分,得到多个条带,目标存储卷的最小处理数据块大小为固定条带大小的整数倍,目标存储卷在存储池内的存储地址的起始地址与固定条带大小对齐,固定条带大小为各条带占据各磁盘的存储区域的大小,存储池为各磁盘的存储空间的总和;计算机程序被处理器执行实现上述的通过目标控制器请求对应的数据步骤时,具体实现以下步骤:通过目标控制器根据预先建立的各存储卷与各磁盘阵列的映射关系确定目标存储卷对应的磁盘阵列;通过目标控制器根据请求数据的地址范围从目标存储卷对应的磁盘阵列的各条带中确定待请求的条带,并向待请求的条带请求对应的数据。
[0141]
在一个实施例中,计算机程序被处理器执行时,具体还实现以下步骤:获取历史数据记录,历史数据记录包括各历史请求数据的信息以及对应的历史控制器;根据历史数据记录创建各历史请求数据的信息与历史控制器的映射关系;计算机程序被处理器执行实现上述的根据目标存储卷的标识信息以及请求数据的信息从各控制器中确定目标控制器步骤时,具体实现以下步骤:根据目标存储卷的标识信息、请求数据的信息以及各历史请求数据的信息与历史控制器的映射关系确定目标控制器。
[0142]
在一个实施例中,计算机程序被处理器执行实现上述的向待请求的条带请求对应的数据之前,具体还实现以下步骤:通过目标控制器抢夺预先为待请求的条带设定的互斥锁;当目标控制器抢夺到互斥锁时,通过互斥锁对待请求的条带进行锁定。
[0143]
在一个实施例中,各上述的条带包括数据分区和校验分区,上述的数据分区包括多个,计算机程序被处理器执行时,具体还实现以下步骤:当当前条带的目标数据分区的数据出现异常时,根据当前条带中其他分区的数据恢复目标数据分区的数据。
[0144]
在一个实施例中,计算机程序被处理器执行时,具体还实现以下步骤:接收各存储卷与各磁盘阵列的映射关系中新的存储卷的新增请求;提取新增请求中的新的存储卷对应的磁盘阵列的标识;将新的存储卷的标识信息与新的存储卷对应的磁盘阵列的标识的映射关系添加至各存储卷与各磁盘阵列的映射关系中。
[0145]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,
本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink) dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
[0146]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0147]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
技术特征:
1.一种数据请求系统,其特征在于,所述系统包括主机以及存储系统,所述存储系统与所述主机连接,所述存储系统包括分发器件及控制器,所述控制器与所述分发器件连接,所述控制器包括至少一个,其中,所述主机用于向所述存储系统发送数据输入输出请求,所述数据输入输出请求中包括目标存储卷的标识信息以及请求数据的信息;所述分发器件用于接收所述数据输入输出请求,根据所述目标存储卷的标识信息以及所述请求数据的信息从各所述控制器中确定目标控制器,将所述数据输入输出请求发送至所述目标控制器;所述目标控制器用于请求对应的数据。2.根据权利要求1所述的系统,其特征在于,所述分发器件包括前端接口卡以及分发处理器,所述前端接口卡与所述分发处理器连接,其中,所述前端接口卡用于接收所述数据输入输出请求,并将所述数据输入输出请求发送至所述分发处理器;所述分发处理器用于根据所述目标存储卷的标识信息以及所述请求数据的信息从各所述控制器中确定目标控制器,将所述数据输入输出请求发送至所述目标控制器。3.根据权利要求1所述的系统,其特征在于,所述分发器件包括前端接口卡以及分发处理器,所述前端接口卡与所述分发处理器连接,其中,所述前端接口卡用于接收所述数据输入输出请求,根据所述目标存储卷的标识信息以及所述请求数据的信息从各所述控制器中确定目标控制器的控制器标识,并将所述数据输入输出请求以及所述目标控制器的控制器标识发送至所述分发处理器;所述分发处理器用于将所述数据输入输出请求发送至所述目标控制器。4.根据权利要求1所述的系统,其特征在于,所述系统还包括磁盘,所述存储系统与所述磁盘连接,所述磁盘包括多个,其中,所述磁盘用于组建磁盘阵列,所述磁盘阵列包括多个条带,各所述条带用于为所述目标存储卷提供容量空间,所述目标存储卷的最小处理数据块大小为固定条带大小的整数倍,所述目标存储卷在存储池内的存储地址的起始地址与所述固定条带大小对齐,所述固定条带大小为各所述条带占据各所述磁盘的存储区域的大小,所述存储池为各所述磁盘的存储空间的总和。5.根据权利要求2所述的系统,其特征在于,所述控制器包括多个,所述多个控制器中包括所述目标控制器的备份控制器,其中,所述分发处理器还用于将所述数据输入输出请求发送至所述备份控制器;所述备份控制器用于对所述数据输入输出请求进行备份。6.根据权利要求2或3所述的系统,其特征在于,所述分发处理器包括非透明桥,所述非透明桥用于建立所述分发处理器与各所述控制器之间的数据链路。7.一种数据请求方法,其特征在于,所述方法应用于存储系统中的分发器件,所述存储系统与主机连接,所述存储系统还包括至少一个控制器,各所述控制器与所述分发器件连接,所述方法包括:接收所述主机发送的数据输入输出请求,所述数据输入输出请求中包括目标存储卷的标识信息以及请求数据的信息;
根据所述目标存储卷的标识信息以及所述请求数据的信息从各所述控制器中确定目标控制器;将所述数据输入输出请求发送至所述目标控制器,并通过所述目标控制器请求对应的数据。8.根据权利要求7所述的方法,其特征在于,所述请求数据的信息包括请求数据的大小和起始地址,所述根据所述目标存储卷的标识信息以及所述请求数据的信息从各所述控制器中确定目标控制器,包括:根据所述请求数据的大小和起始地址、预先为所述目标存储卷设定的最小处理数据块大小以及所述控制器的个数确定所述目标控制器。9.根据权利要求7所述的方法,其特征在于,所述方法还包括:当所述目标控制器包括多个时,将所述数据输入输出请求进行切分,将切分后的各部分分别发送至对应的目标控制器。10.根据权利要求7所述的方法,其特征在于,所述分发器件包括前端接口卡以及分发处理器,接收所述主机发送的数据输入输出请求,包括:通过所述前端接口卡接收所述数据输入输出请求,并将所述数据输入输出请求发送至所述分发处理器;所述根据所述目标存储卷的标识信息以及所述请求数据的信息从所述控制器中确定目标控制器,包括:通过所述分发处理器根据所述目标存储卷的标识信息以及所述请求数据的信息确定所述目标控制器。11.根据权利要求7所述的方法,其特征在于,所述分发器件包括前端接口卡以及分发处理器,所述根据所述目标存储卷的标识信息以及所述请求数据的信息从所述控制器中确定目标控制器,包括:通过所述前端接口卡根据所述目标存储卷的标识信息以及所述请求数据的信息确定所述目标控制器的控制器标识,并将所述数据输入输出请求以及所述目标控制器的控制器标识发送至所述分发处理器;所述将所述数据输入输出请求发送至所述目标控制器,包括:通过所述分发处理器将所述数据输入输出请求发送至所述目标控制器。12.根据权利要求10或11所述的方法,其特征在于,所述方法还包括:通过所述分发处理器将所述数据输入输出请求发送至所述目标控制器的备份控制器存储。13.根据权利要求8所述的方法,其特征在于,所述存储系统与磁盘连接,所述磁盘包括多个,所述方法还包括:根据所述磁盘创建多个磁盘阵列,对各所述磁盘阵列进行条带划分,得到多个条带,所述目标存储卷的最小处理数据块大小为固定条带大小的整数倍,所述目标存储卷在存储池内的存储地址的起始地址与所述固定条带大小对齐,所述固定条带大小为各所述条带占据各所述磁盘的存储区域的大小,所述存储池为各所述磁盘的存储空间的总和;所述通过所述目标控制器请求对应的数据,包括:通过所述目标控制器根据预先建立的各存储卷与各所述磁盘阵列的映射关系确定所
述目标存储卷对应的磁盘阵列;通过所述目标控制器根据所述请求数据的地址范围从所述目标存储卷对应的磁盘阵列的各条带中确定待请求的条带,并向所述待请求的条带请求对应的数据。14.根据权利要求7所述的方法,其特征在于,所述方法还包括:获取历史数据记录,所述历史数据记录包括各历史请求数据的信息以及对应的历史控制器;根据历史数据记录创建各历史请求数据的信息与历史控制器的映射关系;所述根据所述目标存储卷的标识信息以及所述请求数据的信息从各所述控制器中确定目标控制器,包括:根据所述目标存储卷的标识信息、所述请求数据的信息以及各历史请求数据的信息与历史控制器的映射关系确定所述目标控制器。15.根据权利要求13所述的方法,其特征在于,所述向所述待请求的条带请求对应的数据之前,所述方法还包括:通过所述目标控制器抢夺预先为所述待请求的条带设定的互斥锁;当所述目标控制器抢夺到所述互斥锁时,通过所述互斥锁对所述待请求的条带进行锁定。16.根据权利要求13所述的方法,其特征在于,各所述条带包括数据分区和校验分区,所述数据分区包括多个,所述方法包括:当当前条带的目标数据分区的数据出现异常时,根据所述当前条带中其他分区的数据恢复所述目标数据分区的数据。17.根据权利要求13所述的方法,其特征在于,所述方法还包括:接收所述各存储卷与各所述磁盘阵列的映射关系中新的存储卷的新增请求;提取所述新增请求中的新的存储卷对应的磁盘阵列的标识;将所述新的存储卷的标识信息与所述新的存储卷对应的磁盘阵列的标识的映射关系添加至所述各存储卷与各所述磁盘阵列的映射关系中。18.一种数据请求装置,其特征在于,所述装置应用于存储系统中的分发器件,所述存储系统与主机连接,所述存储系统还包括至少一个控制器,各所述控制器与所述分发器件连接,所述装置包括:接收模块,用于接收主机发送的数据输入输出请求,所述数据输入输出请求中包括目标存储卷的标识信息以及请求数据的信息;确定模块,用于根据所述目标存储卷的标识信息以及所述请求数据的信息从各所述控制器中确定目标控制器;处理模块,用于将所述数据输入输出请求发送至所述目标控制器,并通过所述目标控制器请求对应的数据。19.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求7至17中任一项所述方法的步骤。20.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求7至17中任一项所述的方法的步骤。
技术总结
本申请涉及一种数据请求系统、方法、装置、计算机设备和存储介质。数据请求系统包括主机以及存储系统,存储系统与主机连接,存储系统包括分发器件及控制器,控制器与分发器件连接,控制器包括至少一个,其中,主机用于向存储系统发送数据输入输出请求,数据输入输出请求中包括目标存储卷的标识信息以及请求数据的信息;分发器件用于接收数据输入输出请求,根据目标存储卷的标识信息以及请求数据的信息从各控制器中确定目标控制器,将数据输入输出请求发送至目标控制器;目标控制器用于请求对应的数据。采用本方法能够将数据分发下沉到存储系统,从而减轻主机端的负担。从而减轻主机端的负担。从而减轻主机端的负担。
技术研发人员:吴庆凯 孙昊 孙京本 孙明刚 刘清林
受保护的技术使用者:苏州浪潮智能科技有限公司
技术研发日:2023.08.15
技术公布日:2023/9/14
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
