一种IO请求的处理方法与流程

文档序号:12362557阅读:736来源:国知局
一种IO请求的处理方法与流程

本发明涉及存储系统缓存技术领域,特别是涉及一种IO请求的处理方法。



背景技术:

目前,在存储系统中,快照、克隆、远程复制、自精简卷等高级特性是高端存储系列产品中必不可少的高级特性,这些高级特性对IO处理的过程需要通过缓存加速,但存储系统中,只存在一个缓存层,在一定程度上就会影响存储系统的性能。一般情况下,存储系统中只有一层缓存,而快照、克隆、远程复制、自精简卷等高级特性又需要缓存进行加速,否则造成性能衰减,主机端下发的IO请求就需要经过上述高级特性的处理过程以后才能下发到缓存中,即主机端下发的IO请求需要流进这些高级特性以后,才能最终被写入到缓存,主机IO写请求的响应时间会受到高级特性处理过程的影响,这样势必会造成主机IO延时长尾,延长时间过长。



技术实现要素:

本发明的目的是提供一种IO请求的处理方法,以实现降低IO延时。

为解决上述技术问题,本发明提供一种IO请求的处理方法,包括:

当主机端下发IO写请求数据到本端控制器时,本端控制器中的上层缓存模块接收所述IO写请求数据,并将所述IO请求数据镜像到同伴partner端控制器上进行数据备份;

所述partner端控制器向所述本端控制器发送反馈信息,通知本端控制器所述IO写请求数据已成功备份;

所述本端控制器向主机端返回表示IO处理完成的响应信息;

所述本端控制器将所述IO写请求数据写入内存中。

优选的,所述本端控制器包括上层缓存模块,高级特性模块和下层缓存模块,所述高级特性模块位于所述上层缓存模块和下层缓存模块之间。

优选的,所述高级特性模块包括:快照模块、克隆模块、远程复制模块或者自精简模块。

优选的,所述本端控制器将所述IO写请求数据写入内存中,包括:

本端控制器中的上层缓存模块将所述IO写请求数据传递到本端控制器中的高级特性模块;

本端控制器中的高级特性模块对所述IO写请求数据进行处理,处理完成后将所述IO写请求数据传递至本端控制器中的下层缓存模块,写入下层缓存模块中。

优选的,所述本端控制器与所述partner端控制器之间通过NTB通道连接。

优选的,所述本端控制器中的上层缓存模块接收所述IO写请求数据,并将所述IO请求数据镜像到同伴partner端控制器上进行数据备份,包括:

所述本端控制器中的上层缓存模块接收所述IO写请求数据,并将所述IO请求数据镜像到同伴partner端控制器中的上层缓存模块上进行数据备份。

优选的,所述partner端控制器向所述本端控制器发送反馈信息,包括:

所述partner端控制器中的上层缓存模块向所述本端控制器中的上层缓存模块发送反馈信息。

优选的,所述方法还包括:

当本端控制器出现宕机事件,本端控制器向主机端返回表示IO处理完成的响应信息,将所述IO写请求数据传递至本端控制器中的高级特性模块。

本发明所提供的一种IO请求的处理方法,当主机端下发IO写请求数据到本端控制器时,本端控制器中的上层缓存模块接收所述IO写请求数据,并将所述IO请求数据镜像到同伴partner端控制器上进行数据备份;所述partner端控制器向所述本端控制器发送反馈信息,通知本端控制器所述IO写请求数据已成功备份;所述本端控制器向主机端返回表示IO处理完成的响应信息;所述本端控制器将所述IO写请求数据写入内存中。可见,该方法引入了双层缓存,当系统接收到主机端的IO请求即IO写请求数据后,IO写请求数据首先进入到上层缓存即上层缓存模块,上层缓存模块将IO写请求数据镜像到partner端,接收partner端的反馈信息后就会向主机端返回表示IO处理完成的响应信息,这样告知主机端IO处理完成即IO写请求数据的复制完成,如此让IO写请求数据直接进入上层缓存就完成IO处理完成,及时向主机反馈IO处理完成,能够屏蔽掉高级特性的IO处理过程,加速系统性能,这样通过上层缓存可以屏蔽掉由于高级特性的IO处理过程造成的主机IO延时,所以该方法实现降低IO延时,加速系统性能。

附图说明

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

图1为本发明所提供的一种IO请求的处理方法的流程图;

图2为本端控制器和partner端控制器的结构示意图;

图3为IO流处理示意图。

具体实施方式

本发明的核心是提供一种IO请求的处理方法,以实现降低IO延时。

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

请参考图1,图1为本发明所提供的一种IO请求的处理方法的流程图,该包括:

S11:当主机端下发IO写请求数据到本端控制器时,本端控制器中的上层缓存模块接收IO写请求数据,并将IO请求数据镜像到同伴partner端控制器上进行数据备份;

S12:partner端控制器向本端控制器发送反馈信息,通知本端控制器IO写请求数据已成功备份;

S13:本端控制器向主机端返回表示IO处理完成的响应信息;

S14:本端控制器将IO写请求数据写入内存中。

可见,该方法引入了双层缓存,当系统接收到主机端的IO请求即IO写请求数据后,IO写请求数据首先进入到上层缓存即上层缓存模块,上层缓存模块将IO写请求数据镜像到partner端,接收partner端的反馈信息后就会向主机端返回表示IO处理完成的响应信息,这样告知主机端IO处理完成即IO写请求数据的复制完成,如此让IO写请求数据直接进入上层缓存就完成IO处理完成,及时向主机反馈IO处理完成,能够屏蔽掉高级特性的IO处理过程,加速系统性能,这样通过上层缓存可以屏蔽掉由于高级特性的IO处理过程造成的主机IO延时,所以该方法实现降低IO延时,加速系统性能。

基于上述方法,具体的,本端控制器包括上层缓存模块,高级特性模块和下层缓存模块,高级特性模块位于上层缓存模块和下层缓存模块之间。

引入了双层缓存即上层缓存模块和下层缓存模块,上层的缓存即上层缓存模块在接收到IO写请求后,会将其镜像到partner端,也就是复制备份到partner端控制器,随后会向主机端反馈IO处理完成,随后在进行上述高级特性的数据处理过程,可以屏蔽掉这些高级特性造成的系统延时。本方法打破传统单层缓存的实现方法,在存储系统中引入了双层缓存,通过上层缓存可以屏蔽掉由于高级特性的数据处理过程造成的主机IO延时。本方法应用于存储系统中,应用在2路、4路、8路等多路存储系统中,能够有效降低系统IO延时,提升系统性能,同时保证数据安全。

具体的,高级特性模块包括:快照模块、克隆模块、远程复制模块或者自精简模块。

其中,本端控制器与partner端控制器之间通过NTB通道连接。

步骤S14优选采用以下步骤实现:

S21:本端控制器中的上层缓存模块将IO写请求数据传递到本端控制器中的高级特性模块;

S22:本端控制器中的高级特性模块对IO写请求数据进行处理,处理完成后将IO写请求数据传递至本端控制器中的下层缓存模块,写入下层缓存模块中。

步骤S11中,本端控制器中的上层缓存模块接收IO写请求数据,并将IO请求数据镜像到同伴partner端控制器上进行数据备份的过程具体为:本端控制器中的上层缓存模块接收IO写请求数据,并将IO请求数据镜像到同伴partner端控制器中的上层缓存模块上进行数据备份。

步骤S12中,partner端控制器向本端控制器发送反馈信息的过程具体为:partner端控制器中的上层缓存模块向本端控制器中的上层缓存模块发送反馈信息。

其中,partner端控制器也包括上层缓存模块,高级特性模块和下层缓存模块,高级特性模块位于上层缓存模块和缓存模块之间。

进一步的,当本端控制器出现宕机事件,本端控制器向主机端返回表示IO处理完成的响应信息,将IO写请求数据传递至本端控制器中的高级特性模块。

本方法引入了双层缓存,当系统接收到主机端的IO请求后,首先进入到上层缓存,上层缓存将IO数据镜像到partner端后,就会向主机端返回IO处理完成,就能够屏蔽掉高级特性的IO处理过程,加速系统性能。上层缓存在接收到主机IO写请求后,在将IO写请求传递到上述高级特性模块进行处理之前,将IO写请求数据镜像到partner端,依次保证数据安全,然后就会通知主机端IO处理完成,从而屏蔽了上述高级特性的IO处理延时,加速系统性能。通过上层缓存屏蔽快照、克隆、远程复制和自精简卷这些高级特定的IO处理延时,实现系统性能提升。

如图2所示,存储系统中每个控制器包含两层缓存模块,快照、克隆、远程复制和自精简等高级特性位于两层缓存之间。本端控制器包括上层缓存模块,高级特性模块和下层缓存模块,高级特性模块位于上层缓存模块和缓存模块之间。partner端控制器也包括上层缓存模块,高级特性模块和下层缓存模块,高级特性模块位于上层缓存模块和缓存模块之间。

如图3所示,图中的S1-S6数字标记表示IO流流向的步骤,也就是IO写请求数据的流向过程,IO写请求数据从S1标记的流向步骤开始,依次经过S2、S3、S4、S5、S6这些标记的流向,图中的快照/克隆/远程复制/自精简卷模块即表示快照模块、克隆模块、远程复制模块或者自精简模块,这些模块都是高级特性模块,具有快照模块、克隆模块、远程复制模块或者自精简这些高级特性。具体的,S1过程是主机端下发IO写请求数据到本端控制器中的上层缓存模块,S2过程是本端控制器中的上层缓存模块IO请求数据镜像到同伴partner端控制器中的上层缓存模块上进行数据备份,S3过程是partner端控制器中的上层缓存模块向本端控制器中的上层缓存模块发送反馈信息来通知本端控制器IO写请求数据已成功备份,S4过程是本端控制器中的上层缓存模块向主机端返回表示IO处理完成的响应信息,S5过程是本端控制器中的上层缓存模块将IO写请求数据传递至本端控制器中的快照/克隆/远程复制/自精简卷模块,S6过程是本端控制器中的快照/克隆/远程复制/自精简卷模块将IO写请求数据传递至本端控制器中的下层缓存模块。

图3中,通过S1至S6的流程,当主机端下发IO写请求到本端时,上层缓存模块接收IO写请求,并通过控制器之间的NTB通道,将数据镜像到partner端的控制器上进行数据备份,随后partner端控制器会向本端反馈信息,通知本端数据已经成功备份,然后本端控制器会将IO写请求数据写入到内存中。如果在这之后,本端控制器出现了宕机事件,这些IO数据也不会丢失,所以此时认为主机端下发的IO写请求数据时安全的,所以会向主机端返回IO处理完成。随后该IO才会被提交到快照、克隆、远程复制或者自精简模块这些高级特性模块进行后续处理。这样做也能屏蔽掉这些高级特性数据处理过程中的延时。

传统单层缓存模块的弊端是:主机IO写请求的响应时间会受到高级特性处理过程的影响,而本方法屏蔽掉,快照、克隆、远程复制和自精简这些高级特性对主机IO写请求的延时,上层缓存模块将IO写请求数据写入到内存后,高级特性模块对IO的处理过程可以基于指针进行,也能够加快处理的效率。

综上,本发明所提供的一种IO请求的处理方法,当主机端下发IO写请求数据到本端控制器时,本端控制器中的上层缓存模块接收IO写请求数据,并将IO请求数据镜像到同伴partner端控制器上进行数据备份;partner端控制器向本端控制器发送反馈信息,通知本端控制器IO写请求数据已成功备份;本端控制器向主机端返回表示IO处理完成的响应信息;本端控制器将IO写请求数据写入内存中。可见,该方法引入了双层缓存,当系统接收到主机端的IO请求即IO写请求数据后,IO写请求数据首先进入到上层缓存即上层缓存模块,上层缓存模块将IO写请求数据镜像到partner端,接收partner端的反馈信息后就会向主机端返回表示IO处理完成的响应信息,这样告知主机端IO处理完成即IO写请求数据的复制完成,如此让IO写请求数据直接进入上层缓存就完成IO处理完成,及时向主机反馈IO处理完成,能够屏蔽掉高级特性的IO处理过程,加速系统性能,这样通过上层缓存可以屏蔽掉由于高级特性的IO处理过程造成的主机IO延时,所以该方法实现降低IO延时,加速系统性能。

以上对本发明所提供的一种IO请求的处理方法进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

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