一种分布式存储系统数据写入方法及分布式存储系统与流程

文档序号:11176746 阅读:656 来源:国知局
一种分布式存储系统数据写入方法及分布式存储系统与流程

本发明涉及数据存储领域,特别是涉及一种分布式存储系统数据写入方法及分布式存储系统。



背景技术:

现有分布式存储系统通常可以向客户提供多种协议的存储服务方式,例如网络文件系统(networkfilesystem,简称nfs)、通用网络文件系统(commoninternetfilesystem,简称cifs)、小型计算机系统接口(internetsmallcomputersysteminterface,简称iscsi),对象存储等。针对某一协议进行性能优化,能够在该协议场景下提升系统的性能。为了全面提升分布式存储系统在不同协议下的性能,对底层io流程的优化尤为重要,也更有实际价值。

当客户端向协议层下发频繁的小io写操作时,协议层与存储资源层频繁交互,造成大量的网络消耗,同时在写流程的处理上有较多的时间消耗,从而影响这种场景下的存储性能。

目前,现有的文件聚合是一种常用的合并技术,具体的实现方法是指在文件系统客户端将写入的多个文件合并在一起,然后下发给分布式存储资源层。该方法的具体合并是在客户端实现的,针对的对象是文件,而非来自客户端的操作,较复杂。并且,该技术只针对文件系统形式的共享存储协议如nfs、cifs等进行io合并优化,但是块存储如iscsi协议并不适用,此外对文件系统中大文件小io的情况也不能很好的解决。

因此,不针对某一单独的协议,如何更好的解决写io流程网络交互频繁、耗时过多的情况,是本领域技术人员亟待解决的技术问题。



技术实现要素:

有鉴于此,本发明的目的在于提供一种分布式存储系统数据写入方法及分布式存储系统,可以有效减少频繁写操作时的网络交互和流程耗时,同时合并操作还有利于缓解网络拥堵、减少cpu资源占用。其具体方案如下:

一种分布式存储系统数据写入方法,包括:

客户端向协议层持续发送请求指令;

所述协议层将接收到的所述请求指令中的写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请求进行合并,即不针对某一单独的协议,在分布式存储系统的底层流程中执行一次操作即可完成客户端向协议层下发的一批操作,从而有效减少频繁写操作时的网络交互和流程耗时,同时合并操作还有利于缓解网络拥堵、减少cpu资源占用,有效提升整个分布式存储系统的性能。

附图说明

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

图1为本发明实施例提供的分布式存储系统数据写入方法的流程图;

图2为本发明实施例提供的分布式存储系统数据写入方法的具体流程图;

图3为本发明实施例提供的分布式存储系统的架构图。

具体实施方式

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

本发明提供一种分布式存储系统数据写入方法,如图1所示,包括以下步骤:

s101、客户端向协议层持续发送请求指令;

s102、协议层将接收到的请求指令中的写io请求进行合并,并发送至存储资源层;

s103、存储资源层对合并后的写io请求进行处理,并下发至物理磁盘。

在本发明实施例提供的上述分布式存储系统数据写入方法中,首先客户端向协议层持续发送请求指令;然后协议层将接收到的请求指令中的写io请求进行合并,并发送至存储资源层;最后存储资源层对合并后的写io请求进行处理,并下发至物理磁盘。在这个方法过程中,协议层将接收到的写io请求进行合并,即不针对某一单独的协议,在分布式存储系统的底层流程中执行一次操作即可完成客户端向协议层下发的一批操作,从而有效减少频繁写操作时的网络交互和流程耗时,同时合并操作还有利于缓解网络拥堵、减少cpu资源占用,有效提升整个分布式存储系统的性能。

需要说明的是,将本发明的原理以一个简单的场景进行解释说明,假设a为客户端、b为协议层、c为存储资源层,如果消息从a到b,再到c,如果从b到c的交互开销较大,频繁交互有可能造成网络拥堵的话,在合适的场景下,可以由b将a发送来的消息进行分析处理,对该消息(尤其是具有相同特性的消息)进行合并处理,然后对合并处理的消息下发至c,从而实现提升传输性能、减少交互次数,节约网络资源的目的。

在具体实施时,在本发明实施例提供的上述分布式存储系统数据写入方法中,如图2所示,步骤s102协议层将接收到的请求指令中的写io请求进行合并,具体可以包括:

s201、协议层将接收到的请求指令中待写入至相同的物理磁盘的写io请求进行合并。

进一步地,在具体实施时,在本发明实施例提供的上述分布式存储系统数据写入方法中,步骤s201协议层将接收到的请求指令中待写入至相同的物理磁盘的写io请求进行合并,具体包括:

协议层判断当前接收到的请求指令是否是写操作;

若当前接收到的请求指令是写操作,则将当前接收到的请求指令中的写io请求和与当前接收到的请求指令待写入的物理磁盘相同的之前接收到的请求指令中的写io请求进行合并;

若否,则将当前接收到的请求指令中的io直接下发。

需要说明的是,这里的“之前接收到的请求指令”可以是一个,也可以是多个。

进一步地,在具体实施时,在本发明实施例提供的上述分布式存储系统数据写入方法中,若当前接收到的请求指令是写操作,则将当前接收到的请求指令中的写io请求和与当前接收到的请求指令待写入的物理磁盘相同的之前接收到的请求指令中的写io请求进行合并,具体包括:

若当前接收到的请求指令是写操作,判断之前接收到的请求指令与当前接收到的请求指令待写入的物理磁盘是否相同;

若是,则将当前接收到的请求指令中的写io请求与之前接收到的请求指令中的写io请求进行合并;

若否,则将之前接收到的请求指令中的写io请求直接下发,将当前接收到的请求指令中的写io请求进行保存。

在具体实施时,在本发明实施例提供的上述分布式存储系统数据写入方法中,若之前接收到请求指令的数量超过预设阈值,则将之前接收到请求指令中的写io请求直接下发。

在具体实施时,在本发明实施例提供的上述分布式存储系统数据写入方法中,若之前接收到请求指令等待下一个请求指令到来的时间超过预设时

间,则将之前接收到请求指令中的写io请求直接下发。

在具体实施时,在本发明实施例提供的上述分布式存储系统数据写入方法中,在执行步骤s102协议层将接收到的请求指令中的写io请求进行合并的同时,还包括:

保存写io请求的标志信息,形成标志完成信息,并发送至存储资源层。

在具体实施时,在本发明实施例提供的上述分布式存储系统数据写入方法中,为了实现提升分布式存储系统的总体写性能的目标,在执行步骤s103存储资源层对合并后的写io请求进行处理之后,还包括以下步骤:

首先,存储资源层向协议层发送标志完成信息;

然后,协议层接收到标志完成信息后,向客户端返回标志信息。

具体地,下面通过一个具体的实例对本发明实施例提供的上述分布式存储系统数据写入方法进行详细的说明,具体步骤如下:

如图3所示,客户端持续向协议层下发请求指令op1-op8,协议层对接收到的请求指令进行分析判断:

若op(当前接收到的请求指令)不是写操作,则将op_x(之前接收到的请求指令,可以是一个请求指令,也可以是多个请求指令组合而成)中io下发,然后直接将本次op中的io下发;

若op是写操作,判断op_x是否存在io,若op_x存在io,且op_x中的io与op中的io待写入相同的物理磁盘,即属于相同设备,则将op添加至op_x中并保存请求标志flag;若op_x与op不属于相同设备,则将op_x中的io下发,然后将op中的io保存到新的op_x;

若op_x达到最大合并数(预设阈值),或等待到最大等待时间(预设时间)无新op到来,则将op_x下发;

假设在协议层经判断确认op1-op8中的io均待写入相同的物理磁盘,则将所有的写io请求进行合并,同时保存这些写io请求的标志信息flag1至flag8;

将op1至op8合并为一个op_x,经虚拟资源层(这个合并过程形成的虚拟层),发送至存储资源层;

存储资源层对请求进行处理,向物理磁盘进行写入的操作,完成标志完成信息flag_x到协议层;

协议层在获取标志完成信息flag_x后,向客户端返回标志信息flag1至flag8等;

至此,分布式存储系统数据写入方法的整个流程结束。

基于同一发明构思,本发明实施例还提供了一种分布式存储系统,由于该分布式存储系统解决问题的原理与前述一种分布式存储系统数据写入方法相似,因此该分布式存储系统的实施可以参见分布式存储系统数据写入方法的实施,重复之处不再赘述。

在具体实施时,本发明实施例提供的分布式存储系统,如图3所示,具体包括:客户端、协议层和具有物理磁盘的存储资源层;

客户端,用于向协议层持续发送请求指令;

协议层,用于将接收到的请求指令中的写io请求进行合并,并发送至存储资源层;

存储资源层,用于对合并后的写io请求进行处理,并下发至物理磁盘。

在本发明实施例提供的上述分布式存储系统中,可以从底层减少io流程耗时,实现对存储性能的优化,同时对io流程的合并优化也减少了存储操作对cpu、网络等资源的消耗。

在具体实施时,在本发明实施例提供的上述分布式存储系统中,协议层,具体用于将接收到的请求指令中待写入至相同的物理磁盘的写io请求进行合并。减少分布式存储系统cpu压力和通信压力。

本发明实施例提供的一种分布式存储系统数据写入方法及分布式存储系统,包括:客户端向协议层持续发送请求指令;协议层将接收到的请求指令中的写io请求进行合并,并发送至存储资源层;存储资源层对合并后的写io请求进行处理,并下发至物理磁盘。本发明在协议层将接收到的写io请求进行合并,即不针对某一单独的协议,在分布式存储系统的底层流程中执行一次操作即可完成客户端向协议层下发的一批操作,从而有效减少频繁写操作时的网络交互和流程耗时,同时合并操作还有利于缓解网络拥堵、减少cpu资源占用,有效提升整个分布式存储系统的性能。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上对本发明所提供的分布式存储系统数据写入方法及分布式存储系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

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