主机与双控存储设备间数据传输方法、装置、设备及介质与流程

文档序号:18162735发布日期:2019-07-13 09:24阅读:306来源:国知局
主机与双控存储设备间数据传输方法、装置、设备及介质与流程

本发明实施例涉及存储设备的数据读写技术领域,特别是涉及一种主机与双控存储设备间的数据传输方法、装置、设备及计算机可读存储介质。



背景技术:

随着大数据、云计算的快速发展,数据呈现爆炸式的增长,相应的,数据存储技术也得到相应的发展,尤其是对后端双控存储系统的成功使用更加满足了服务器主机下发数据的快速性和稳定性的要求。缓存和闪存在存储技术中的应用,满足了各个计算机领域对于计算资源和计算速率的需求,极大地加快了数据处理的速度。

然而,相关技术中的主机与双控存储系统之间的io(input/output)数据传输方式,并没有完全利用双控设备进行io数据的下发,多数是为了控制器的冗余,并没有实质上加强主机与存储系统之间的数据传输效率,使得这种极速的数据处理速度陷入瓶颈。



技术实现要素:

本公开实施例提供了一种主机与双控存储设备间的数据传输方法、装置、设备及计算机可读存储介质,提高了主机与双控存储设备之间的数据传输效率。

为解决上述技术问题,本发明实施例提供以下技术方案:

本发明实施例一方面提供了一种主机与双控存储设备间的数据传输方法,基于存储设备端,包括:

预先分别为后端存储系统映射至主机的各存储卷设置标识信息和数据传输路径,并设置双控互为主节点和辅助节点;

当接收到所述主机的io请求,利用当前存储卷主节点的数据传输路径下发所述io请求,并将等待处理的io请求放入等待处理队列;

当所述等待处理队列深度超过预设深度阈值,则利用所述当前存储卷的辅助节点处理所述等待处理队列中超出所述深度阈值的io请求;

其中,所述标识信息用于标识负责处理相应存储卷的主节点控制器;所述数据传输路径包括主控数据传输路径和辅控数据传输路径,所述主控数据传输路径用于传输所述主节点下发的io数据,所述辅控数据传输路径用于传输所述辅助节点下发的io数据。

可选的,所述当接收到所述主机的io请求之后,还包括:

将所述io请求进行命令类型封装,所述命名类型包括主节点标识信息和非主节点标识信息;

将所述io请求进行传输数据地址封装,以将所述io请求的数据地址和数据进行隔离。

可选的,所述将所述io请求进行命令类型封装为将所述io请求组建为主机命令控制块结构格式。

可选的,所述io请求对应的数据由驱动层直接到缓存中传递。

可选的,双控存储设备包括第一类线程集和第二类线程集,所述利用当前存储卷主节点的数据传输路径下发所述io请求包括:

调用所述第一类线程集中的线程处理所述当前存储卷的io请求;

相应的,所述利用所述当前存储卷的辅助节点处理所述等待处理队列中超出所述深度阈值的io请求为:

调用所述第二类线程集中的线程处理所述等待处理队列中超过所述深度阈值的io请求;

其中,所述第一类线程集包含多个线程,用于处理属于主节点的存储卷的io;

所述第二类线程集包含多个线程,用于处理属于辅点的存储卷的io。

本发明实施例另一方面提供了一种主机与双控存储设备间的数据传输装置,

基于存储设备端,包括:

信息预设置模块,用于预先分别为后端存储系统映射至主机的各存储卷设置标识信息和数据传输路径,并设置双控互为主节点和辅助节点;

所述标识信息用于标识负责处理相应存储卷的主节点控制器;

所述标识信息用于标识负责处理相应存储卷的主节点控制器;所述数据传输路径包括主控数据传输路径和辅控数据传输路径,所述主控数据传输路径用于传输所述主节点下发的io数据,所述辅控数据传输路径用于传输所述辅助节点下发的io数据;

主节点优先处理请求模块,用于当接收到所述主机的io请求,利用当前存储卷主节点的数据传输路径下发所述io请求,并将等待处理的io请求放入等待处理队列;

辅助节点处理超出阈值请求模块,用于当所述等待处理队列深度超过预设深度阈值,则利用所述当前存储卷的辅助节点处理所述等待处理队列中超出所述深度阈值的io请求。

可选的,还包括格式封装模块,用于将所述io请求进行命令类型封装,所述命名类型包括主节点标识信息和非主节点标识信息;将所述io请求进行传输数据地址封装,以将所述io请求的数据地址和数据进行隔离。

可选的,所述主节点优先处理请求模块为调用第一类线程集中的线程处理所述当前存储卷的io请求的模块,所述辅助节点处理超出阈值请求模块为调用第二类线程集中的线程处理所述等待处理队列中超过所述深度阈值的io请求的模块;双控存储设备包括所述第一类线程集和所述第二类线程集,所述第一类线程集包含多个线程,用于处理属于主节点的存储卷的io;所述第二类线程集包含多个线程,用于处理属于辅点的存储卷的io。

本发明实施例还提供了一种主机与双控存储设备间的数据传输设备,包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如前任一项所述主机与双控存储设备间的数据传输方法的步骤。

本发明实施例最后还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有主机与双控存储设备间的数据传输程序,所述主机与双控存储设备间的数据传输程序被处理器执行时实现如前任一项所述主机与双控存储设备间的数据传输方法的步骤。

本申请提供的技术方案的优点在于,将要映射给主机的存储卷进行分类处理,为每个存储卷设置主节点控制器,双控中与主节点控制器相对的另外一个控制器即作为当前存储卷的辅助节点控制器,首先利用主节点处理存储卷的io请求,当主机下发的io请求较多时,主节点无法快速处理完所有io请求,利用辅助节点处理超过预设队列深度的剩余io请求,从而极大地改善了双控存储系统io处理能力,提高了冗余控制器的利用率,有效地提升主机与双控存储设备间的数据传输效率。

此外,本发明实施例还针对主机与双控存储设备间的数据传输方法提供了相应的实现装置、设备及计算机可读存储介质,进一步使得所述方法更具有实用性,所述装置、设备及计算机可读存储介质具有相应的优点。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。

附图说明

为了更清楚的说明本发明实施例或相关技术的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种主机与双控存储设备间的数据传输方法的流程示意图;

图2为本发明实施例提供的主机与双控存储设备间的数据传输装置的一种具体实施方式结构图;

图3为本发明实施例提供的主机与双控存储设备间的数据传输装置的另一种具体实施方式结构图;

图4为本发明实施例提供的主机与双控存储设备间的数据传输设备的一种具体实施方式结构图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等是用于区别不同的对象,而不是用于描述特定的顺序。此外术语“包括”和“具有”以及他们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。

在介绍了本发明实施例的技术方案后,下面详细的说明本申请的各种非限制性实施方式。

首先参见图1,图1为本发明实施例提供的一种主机与双控存储设备间的数据传输方法的流程示意图,本发明实施例可包括以下内容:

s101:预先分别为后端存储系统映射至主机的各存储卷设置标识信息和数据传输路径,并设置双控互为主节点和辅助节点。

将双控存储设备的双控(控制器a和控制器b)设置互为主节点、辅助节点,将不同卷分别设置不同的控制器为主节点,则另一控制器为辅助节点,也就是说,对于某个存储卷若控制器a为主节点,则对应的控制器b为该存储卷的辅助节点。

将要映射给主机的存储卷进行分类处理,对于不同存储卷进行不同类型的标识,标识信息为用于标识负责处理相应存储卷的主节点控制器。也就是说,将双控存储设备的所有存储卷分为两类,第一类存储卷的主节点为第一控制器,第二存储卷的主节点为第二控制器,然后为每个存储卷增加标识信息,标识信息中包含主节点控制器的信息。相应的,针对第一类存储卷来说,第一控制器为其主节点,那么第二控制器为其辅助节点;针对第二类存储卷来说,第二控制器为其主节点,那么第一控制器为其辅助节点。

存储卷可包括物理存储设备的卷和虚拟卷。

每个存储卷均具有两个数据传输路径,即主控数据传输路径(fast_path)和辅控数据传输路径(slow_path)。主控数据传输路径用于传输主机通过主节点下发的io数据,所述辅控数据传输路径用于传输辅助节点下发的io数据。

s102:当接收到主机的io请求,利用当前存储卷主节点的数据传输路径下发io请求,并将等待处理的io请求放入等待处理队列。

服务器主机io请求首先选择通过主节点的fast_path进行数据的下发,并且将等待处理的io请求放入等待处理队列。

随着服务器主机的io请求的增多,放入等待处理队列中的io请求越来越多,主节点处理一条io请求所需时间不变,若仅依靠主节点处理需要较多时间,导致存储设备的io处理效率较低。兼顾考虑冗余控制器的利用率。可预先设置深度阈值,当等待处理队列的队列深度超过深度阈值后,需要耗费较长时间处理所有io请求,为了提高系统io处理性能,可将等待处理队列中超过深度阈值的io请求发送至辅助节点处理。

深度阈值的具体值可根据双控存储设备的软硬件环境参数及运行业务来确定,本申请对此不做任何限定。

s103:判断等待处理队列深度超过预设深度阈值,若是,则执行s104,若否,则返回执行s102。

s104:利用当前存储卷的辅助节点处理等待处理队列中超出深度阈值的io请求。

通过计算等待处理队列来确定当前节点等待处理的io数量,当估算值达到队列深度阈值时,可使用send_next_thread开启辅助节点线程处理剩余io请求。

也就是说,等待处理队列中的io请求分为两部分,一部分由主节点处理,剩余部分由辅助节点处理。举例来说,等待处理队列中的io请求包括100条,深度阈值为80,那么等待处理队列中的前80条io请求由主节点处理,后20条io请求转移至辅助节点处理。

在本发明实施例提供的技术方案中,将要映射给主机的存储卷进行分类处理,为每个存储卷设置主节点控制器,双控中与主节点控制器相对的另外一个控制器即作为当前存储卷的辅助节点控制器,首先利用主节点处理存储卷的io请求,当主机下发的io请求较多时,主节点无法快速处理完所有io请求,利用辅助节点处理超过预设队列深度的剩余io请求,从而极大地改善了双控存储系统io处理能力,提高了冗余控制器的利用率,有效地提升主机与双控存储设备间的数据传输效率。

基于上述实施例,为了进一步提升系统的io处理性能,双控存储设备可开启多个线程处理主节点命令和辅助节点的命令。多个线程可分为第一类线程集和第二类线程集,第一类线程集包含多个线程,用于处理属于主节点的存储卷的io;第二类线程集包含多个线程,用于处理属于辅点的存储卷的io。

具体来说,调用第一类线程集中的线程处理当前存储卷的io请求;当等待处理队列深度超过预设深度阈值,将超过深度阈值的io请求迁移至辅助节点处理,也即调用第二类线程集中的线程处理等待处理队列中超过深度阈值的io请求。

在处理io请求时首先通过主节点进行数据的下发,当下发io数据较多时,io请求等待处理队列就会增大,当达到队列深度阈值时,就会将处理数据部分转移到辅助节点进行处理。主机向双控存储设备发布命令并进行数据传输时,双控存储设备都会开启多条线程来处理io数据,并且使用fastpath和slowpath两种类型的线程来处理区分的命令,有利于进一步提升存储系统的io处理性能。

为了进一步优化主机向后端存储进行数据传输的方式,可将io请求的命令和数据独立区分,只进行命令和数据地址的传输,以确保数据的安全性和并且在最大程度上减少系统资源的消耗。

在接收到io请求后,可首先将io请求进行命令类型封装,命名类型包括主节点标识信息和非主节点标识信息;可选的,可将io请求进行命令类型封装为将io请求组建为主机命令控制块结构格式。

然后将io请求进行传输数据地址封装,从而将io请求的数据地址和数据进行隔离,在主机和存储设备之间传输时只传输数据地址,而io请求对应的数据可由驱动层直接到缓存层中传递。此处,驱动层包括主机驱动层和双控存储设备的驱动层。

由上可知,本发明实施例极大地改善了双控存储系统io的转发能力,并且根据命令块的优化,只进行数据块地址的传送,这就极大地提高了数据传输的快速性和安全性。

本发明实施例还针对主机与双控存储设备间的数据传输方法提供了相应的实现装置,进一步使得所述方法更具有实用性。下面对本发明实施例提供的主机与双控存储设备间的数据传输装置进行介绍,下文描述的主机与双控存储设备间的数据传输装置与上文描述的主机与双控存储设备间的数据传输方法可相互对应参照。

参见图2,图2为本发明实施例提供的主机与双控存储设备间的数据传输装置在一种具体实施方式下的结构图,该装置设置在存储设备端,可包括:

信息预设置模块201,用于预先分别为后端存储系统映射至主机的各存储卷设置标识信息和数据传输路径,并设置双控互为主节点和辅助节点;标识信息用于标识负责处理相应存储卷的主节点控制器;数据传输路径包括主控数据传输路径和辅控数据传输路径,主控数据传输路径用于传输主节点下发的io数据,辅控数据传输路径用于传输辅助节点下发的io数据。

主节点优先处理请求模块202,用于当接收到主机的io请求,利用当前存储卷主节点的数据传输路径下发io请求,并将等待处理的io请求放入等待处理队列。

辅助节点处理超出阈值请求模块203,用于当等待处理队列深度超过预设深度阈值,则利用当前存储卷的辅助节点处理等待处理队列中超出深度阈值的io请求。

可选的,在本实施例的一些实施方式中,请参阅图3,所述装置例如还可以包括格式封装模块204,用于将io请求进行命令类型封装,命名类型包括主节点标识信息和非主节点标识信息;将io请求进行传输数据地址封装,以将io请求的数据地址和数据进行隔离。

可选的,在本实施例的另一些实施方式中,所述主节点优先处理请求模块202还可为调用第一类线程集中的线程处理所述当前存储卷的io请求的模块;所述辅助节点处理超出阈值请求模块203还可为调用第二类线程集中的线程处理等待处理队列中超过深度阈值的io请求的模块;双控存储设备包括第一类线程集和第二类线程集,第一类线程集包含多个线程,用于处理属于主节点的存储卷的io;第二类线程集包含多个线程,用于处理属于辅点的存储卷的io。

本发明实施例所述主机与双控存储设备间的数据传输装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。

由上可知,本发明实施例不仅提高了主机与双控存储设备之间的数据传输效率,还提高了数据传输安全性。

本发明实施例还提供了一种主机与双控存储设备间的数据传输设备,请参阅图4,主机与双控存储设备间的数据传输设备4可包括:

存储器41,用于存储计算机程序;

处理器42,用于执行计算机程序以实现如上任意一实施例所述主机与双控存储设备间的数据传输方法的步骤。

本发明实施例所述主机与双控存储设备间的数据传输设备的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。

由上可知,本发明实施例不仅提高了主机与双控存储设备之间的数据传输效率,还提高了数据传输安全性。

本发明实施例还提供了一种计算机可读存储介质,存储有主机与双控存储设备间的数据传输程序,所述主机与双控存储设备间的数据传输程序被处理器执行时如上任意一实施例所述主机与双控存储设备间的数据传输方法的步骤。

本发明实施例所述计算机可读存储介质的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。

由上可知,本发明实施例不仅提高了主机与双控存储设备之间的数据传输效率,还提高了数据传输安全性。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上对本发明所提供的一种主机与双控存储设备间的数据传输方法、装置、设备及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

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