降低I/O写延时的系统与方法与流程

文档序号:11965408阅读:734来源:国知局
降低I/O写延时的系统与方法与流程
本发明涉及存储技术领域,尤其涉及一种降低I/O写延时的系统与方法。

背景技术:
企业的存储应用越来越要求较高的响应速度,而应用程序的性能很大程度上取决于I/O的响应速度,即降低I/O延时。产生I/O延时有很多原因:如应用程序有大量的I/O,而后端存储容量有限,导致磁盘繁忙;I/O产生了惩罚导致大量额外的I/O发往存储端使主机端延迟偏高;链路带宽和I/O的并发以及大量随机读写I/O的出现都会影响到I/O的响应时间。目前主要通过加入更多磁盘或者修改程序来改善I/O性能,但这使结构较为麻烦,且改善性能不明显。综上可知,现有的降低I/O写延时的系统与方法,在实际使用上显然存在不便与缺陷,所以有必要加以改进。

技术实现要素:
针对上述的缺陷,本发明的目的在于提供一种降低I/O写延时的系统与方法,可以缓解I/O压力,降低I/O延时,提高应用的效率。为了实现上述目的,本发明提供一种降低I/O写延时的系统,包括主存储单元、副存储单元及命令处理单元,所述命令处理单元包括:第一检测模块,用于检测主机端下发到所述主存储单元的写I/O的延时时间,并判断所述延时时间是否超过预设的延时时间阈值,若是,则交由命令分流模块处理;命令分流模块,用于将部分写I/O分流到所述副存储单元。根据本发明的降低I/O写延时的系统,所述命令处理单元还包括时间设置模块,用于预设所述写I/O的延时时间阈值。根据本发明的降低I/O写延时的系统,所述命令处理单元还包括第二检测模块,用于检测所述主存储单元是否处于空闲状态,若是,则将所述副存储单元的数据刷入到所述主存储单元。根据本发明的降低I/O写延时的系统,所述第一检测模块检测到主存储单元的写I/O的延时时间恢复到小于所述延时时间阈值时,将接收到的写I/O全部发送到所述主存储单元。根据本发明的降低I/O写延时的系统,所述主存储单元为硬盘驱动器,所述副存储单元为固态硬盘。本发明还提供一种通过上述系统实现的降低I/O写延时的方法,所述方法包括:检测主机端下发到主存储单元的写I/O的延时时间,判断所述延时时间是否超过预设的延时时间阈值;若所述延时时间超过预设的延时时间阈值,则将部分写I/O分流到副存储单元。根据本发明的降低I/O写延时的方法,所述检测主机端下发到主存储单元的写I/O的延时时间步骤之前包括预设所述写I/O的延时时间阈值。根据本发明的降低I/O写延时的方法,所述方法还包括:检测所述主存储单元是否处于空闲状态,若是,则将所述副存储单元的数据刷入到所述主存储单元。根据本发明的降低I/O写延时的方法,所述方法还包括:所述主存储单元的写I/O的延时时间恢复到小于所述延时时间阈值时,将接收到的写I/O全部发送到所述主存储单元。根据本发明的降低I/O写延时的方法,所述主存储单元为硬盘驱动器,所述副存储单元为固态硬盘。本发明通过设置一命令处理单元,处理主机端发往主存储单元的I/O命令,通过第一检测模块检测判断其I/O延时时间是否大于预设的延时时间阈值,如果是,则通过命令分流模块将部分写I/O分流到副存储单元,使部分数据写入到副存储单元。优选的,当I/O延时时间恢复到小于预设的延时时间阈值范围时,将再接收到的I/O命令全部发送到主存储单元。借此,大大提高写I/O的效率,降低延迟。附图说明图1是本发明一实施例的降低I/O写延时的系统结构示意图;图2是本发明另一实施例的降低I/O写延时的系统结构示意图;图3是本发明一实施例的降低I/O写延时的方法流程图;图4是本发明另一实施例的降低I/O写延时的方法流程图。具体实施方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。参见图1,本发明提供了一种降低I/O写延时的系统100,其至少包括主存储单元10、副存储单元20以及命令处理单元30。其中:主存储单元10优选采用硬盘驱动器(HDD),副存储单元20采用固态硬盘(SSD),命令处理单元30可以是内置于系统100的软件单元,硬件单元或软硬件结合单元。具体的,命令处理单元30包括第一检测模块31和命令分流模块32,其中:第一检测模块31用于检测主机端下发到主存储单元10的写I/O的延时时间,并判断所述延时时间是否超过预设的延时时间阈值,若是,则交由命令分流模块32处理。命令分流模块32用于将部分写I/O分流到所述副存储单元20。需要说明的,本发明可以通过预先设置,将分流的I/O数量随着延时的增大而增加,借此更加智能化。当第一检测模块31检测到写I/O延时时间大于阈值时,说明此时写I/O产生了应用程序不允许的延时,因此通过命令分流模块32将该写I/O分流一部分发到副存储单元中20去,从而将数据写到副存储单元20上,借此提高I/O效率,降低延迟。优选的,本发明的另一实施例中,结合图2,命令处理单元30还包括时间设置模块33及第二检测模块34,其中:所述时间设置模块33用于预设所述写I/O的延时时间阈值,该时间阈值可以根据不同系统或不同应用需求设置适应的时间。所述第二检测模块34用于检测所述主存储单元10是否处于空闲状态,若是,则将副存储单元20的数据刷入到主存储单元10。由于SSD有限的空间和掉电不易恢复,同时为了保证数据的一致性,本发明通过检测主存储单元10(HDD)处于不繁忙或者说空闲状态时,将副存储单元20(SSD)上的数据刷入到主存储单元10,借此保证主存储单元10内数据的完整性。更好的是,若第一检测模块31检测到主存储单元10的写I/O的延时时间恢复到小于所述延时时间阈值时,将接收到的写I/O全部发送到所述主存储单元10,不再进行分流,借此使资源利用更加合理化。参见图3,本发明提供了一种降低I/O写延时的方法,其可以通过如图1所示的系统100实现,所述系统100至少包括主存储单元10、副存储单元20以及命令处理单元30。其中:主存储单元10优选采用硬盘驱动器(HDD),副存储单元20采用固态硬盘(SSD)。所述方法包括:步骤S301,检测主机端下发到主存储单元10的写I/O的延时时间,并判断所述延时时间是否超过预设的延时时间阈值,若是,则执行步骤S302。步骤S302,将部分写I/O分流到所述副存储单元20。本发明可以通过预先设置,将分流的I/O数量随着延时的增大而增加,借此更加智能化。系统100检测到写I/O延时时间大于阈值时,说明此时写I/O产生了应用程序不允许的延时,因此通过分流将该写I/O分流一部分发到副存储单元中20去,从而将数据写到副存储单元20上,借此提高I/O效率,降低延迟。更好的是,若系统100检测到主存储单元10的写I/O的延时时间恢复到小于所述延时时间阈值时,将接收到的写I/O全部发送到所述主存储单元10,不再进行分流,借此使资源利用更加合理化。再参见图4,本发明另一实施例的降低I/O写延时的方法,其可以通过如图2所示的系统100实现,该方法包括:步骤S401,预设所述写I/O的延时时间阈值,该时间阈值可以根据不同系统或不同应用需求设置适应的时间。步骤S402,检测主机端下发到主存储单元10的写I/O的延时时间,并判断所述延时时间是否超过预设的延时时间阈值,若是,则执行步骤S403。步骤S403,将部分写I/O分流到所述副存储单元20。步骤S404,检测所述主存储单元10是否处于空闲状态,若是,则执行步骤S405,否则继续检测。步骤S405,将副存储单元20的数据刷入到主存储单元10,主存储单元10内数据的完整性。综上所述,本发明通过设置一命令处理单元,处理主机端发往主存储单元的I/O命令,通过第一检测模块检测判断其I/O延时时间是否大于预设的延时时间阈值,如果是,则通过命令分流模块将部分写I/O分流到副存储单元,使部分数据写入到副存储单元。优选的,当I/O延时时间恢复到小于预设的延时时间阈值范围时,将再接收到的I/O命令全部发送到主存储单元。借此,大大提高写I/O的效率,降低延迟。当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1