一种基于存储系统的控制方法及装置与流程

文档序号:12785988阅读:195来源:国知局
一种基于存储系统的控制方法及装置与流程

本发明涉及计算机技术领域,尤其涉及一种基于存储系统的控制方法及装置。



背景技术:

在云存储系统中可采用多种存储介质进行存储,每种存储介质都有其处理能力的上限,每一种存储介质的处理能力也相差甚远,若一味的增加存储介质的处理压力不考虑存储介质的实际处理能力,会导致存储介质负载过大而出现性能下降。



技术实现要素:

有鉴于此,本发明提供了一种基于存储系统的控制方法及装置,能够解决现有技术中存储介质的处理压力过大出现的性能下降的问题。

本发明实施例提供的一种基于存储系统的控制方法,所述存储系统包括:服务器和至少一个存储介质;所述方法应用于所述服务器,包括:

接收客户端发送的存储请求,所述存储请求携带有待存储数据的信息;

根据所述待存储数据的信息,得到所述存储介质预计增加的存储压力;

获取所述存储介质的当前存储压力;

判断所述存储介质的可用存储压力是否小于所述预计增加的存储压力,所述存储介质的可用存储压力为该存储介质的预设压力阈值与该存储介质的当前存储压力之差;

当所述存储介质的可用存储压力小于所述预计增加的存储压力时,将所述存储请求加入该存储介质对应的等待队列。

可选的,所述接收客户端发送的存储请求,之前还包括:

获取所述存储介质的处理能力;

根据所述存储介质的处理能力,设置该存储介质的预设压力阈值。

可选的,当所述存储系统包括至少两个存储介质时,所述判断所述存储介质的可用存储压力是否小于所述预计增加的存储压力,之前还包括:

根据所述存储系统中每个存储介质的当前存储压力,获得所述存储系统的当前存储压力;

判断所述存储系统的可用存储压力是否小于所述预计增加的存储压力,所述存储系统的可用存储压力为所述存储系统的预设压力阈值与所述存储系统的当前存储压力之差;

当所述存储系统的可用存储压力小于所述预计增加的存储压力时,将所述存储请求加入所述存储系统的等待队列;

当所述存储系统的可用存储压力大于或等于所述预计增加的存储压力时,逐一对所述存储系统的每个存储介质执行所述判断所述存储介质的可用存储压力是否小于所述预计增加的存储压力。

可选的,所述将所述存储请求加入所述存储介质的等待队列,之后还包括:

检测是否存在已完成的请求;

当存在已完成的请求时,根据该存储请求对应的预计增加的存储压力,更新所述存储介质的可用存储压力;

判断更新后的可用存储压力是否小于所述预计增加的存储压力;

当更新后的可用存储压力大于或等于所述预计增加的存储压力时,处理所述存储请求。

可选的,所述存储介质的存储压力包括该存储介质的等待任务队列长度和/或该存储介质的内存消耗。

本发明实施例提供的一种基于存储系统的控制装置,所述存储系统包括:服务器和至少一个存储介质;所述装置应用于所述服务器,包括:接收单元、获取单元、第一判断单元和处理单元;

所述接收单元,用于接收客户端发送的存储请求,所述存储请求携带有待存储数据的信息;

所述获取单元,用于根据所述待存储数据的信息,得到所述存储介质预计增加的存储压力;还于获取所述存储介质的当前存储压力;

所述第一判断单元,用于判断所述存储介质的可用存储压力是否小于所述预计增加的存储压力,所述存储介质的可用存储压力为该存储介质的预设压力阈值与该存储介质的当前存储压力之差;

所述处理单元,用于当所述第一判断单元判断所述存储介质的可用存储压力小于所述预计增加的存储压力时,将所述存储请求加入该存储介质对应的等待队列。

可选的,还包括:设置单元;

所述获取单元,还用于获取所述存储介质的处理能力;

所述设置单元,用于根据所述存储介质的处理能力,设置该存储介质的预设压力阈值。

可选的,当所述存储系统包括至少两个存储介质时,所述装置还包括:第二判断单元和所述触发单元;

所述获取单元,还用于根据所述存储系统中每个存储介质的当前存储压力,获得所述存储系统的当前存储压力;

所述第二判断单元,用于判断所述存储系统的可用存储压力是否小于所述预计增加的存储压力,所述存储系统的可用存储压力为所述存储系统的预设压力阈值与所述存储系统的当前存储压力之差;

所述处理单元,还用于当所述第二判断单元判断所述存储系统的可用存储压力小于所述预计增加的存储压力时,将所述存储请求加入所述存储系统的等待队列;

所述触发单元,用于当所述第二判断单元判断所述存储系统的可用存储压力大于或等于所述预计增加的存储压力时,逐一对所述存储系统的每个存储介质触发所述第一判断单元。

可选的,还包括:检测单元和更新单元;

所述检测单元,用于检测是否存在已完成的请求;

所述更新单元,用于当所述检测单元检测到已完成的请求时,根据该存储请求对应的预计增加的存储压力,更新所述存储介质的可用存储压力;

所述第一判断单元,还用于判断更新后的可用存储压力是否小于所述预计增加的存储压力;

所述处理单元,还用于当所述第一判断单元判断更新后的可用存储压力大于或等于所述预计增加的存储压力时,处理所述存储请求。

可选的,所述存储介质的存储压力包括该存储介质的等待任务队列长度和/或该存储介质的内存消耗。

与现有技术相比,本发明至少具有以下优点:

本发明实施例提供的基于存储系统的控制方法,在接收到客户端发送的存储请求时,根据该存储请求携带的待存储数据的信息,判断存储介质预计增加的存储压力。然后,根据存储介质当前的存储压力,判断当该存储介质处理存储请求时,存储介质的存储压力是否大于预设压力阈值,其中预设压力阈值是根据存储介质的实际处理能力,预先设定的能够保证该存储介质处理性能的存储压力阈值。当该存储介质处理存储请求时,存储介质的存储压力小于或等于预设压力阈值时,说明存储介质处理该存储请求会使其出现性能不符合预期的现象。此时,将该存储请求加入存储介质对应的等待队列中,使得存储介质的存储压力不会过大,有效的控制存储介质的负载,保证存储介质的处理性能。

附图说明

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

图1为本发明提供的基于存储系统的控制方法实施例的流程示意图;

图2为本发明提供的基于存储系统的控制方法另一实施例的流程示意图;

图3为本发明提供的基于存储系统的控制装置实施例的结构示意图。

具体实施方式

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

方法实施例:

参见图1,该图为本发明提供的基于存储系统的控制方法实施例的流程示意图。

本实施例提供的存储系统的控制方法,应用于该存储系统的服务器。存储系统除了服务器之外,还包括至少一个存储介质,磁盘池是最常见的存储介质。当然,本领域技术人员还可以根据实际情况,具体设置存储介质的形式,这里不再一一列举。服务器与客户端进行通信,将客户端发送的数据交由存储介质进行存储。

本实施例提供的方法,包括:

S101:接收客户端发送的存储请求,所述存储请求携带有待存储数据的信息。

客户端向服务器发送存储请求,请求存储系统存储其发送的待存储数据。该存储请求中携带有待存储数据的信息,该信息具体包括待存储数据的需占用的存储空间大小,以便向存储系统申请存储空间。

需要说明的是,例如当待存储数据的大小为10MB时,客户端一般向存储系统申请大于待存储数据实际大小的空间(如12MB),以便存储系统完整保存待存储数据以及与其对应的校验信息等内容。

S102:根据所述待存储数据的信息,得到所述存储介质预计增加的存储压力。

S103:获取所述存储介质的当前存储压力。

可以理解的是,服务器可以获取到存储系统中各存储介质实际的状态,如存储介质的写入速度和温度等,而存储介质的实际性能与其状态相关。因此,服务器能够根据存储请求中携带的待存储数据的信息,得到该存储介质处理待存储数据的存储任务会增加的存储压力情况,即存储介质预计增加的存储压力。

这里需要说明的是,存储介质的存储压力包括该存储介质的等待任务队列的长度和/或该存储介质的内存消耗程度。

S104:判断所述存储介质的可用存储压力是否小于所述预计增加的存储压力,所述存储介质的可用存储压力为该存储介质的预设压力阈值与该存储介质的当前存储压力之差。

需要说明的是,在通过存储介质的等待任务队列和其内存的消耗程度来判断其存储压力时,应综合考虑待存储数据需占用的内存和存储介质的等待任务队列来判断存储介质的可用存储压力是否小于预计增加的存储压力。

在存储系统初始搭建时期,预设压力阈值的设置可以根据存储介质的性能和经验设定,以避免存储介质的负载过大造成其性能下降,代表了对该存储介质性能的最低要求。

在本实施例的一些可能的实现方式中,需要在接收到客户端发送的存储请求之前,根据实际需要设置存储介质的预设压力阈值。具体的,在步骤S101,之前还包括以下步骤:获取所述存储介质的处理能力;根据所述存储介质的处理能力,设置该存储介质的预设压力阈值。

这里需要说明的是,为了提高存储介质的使用率,提升存储系统的整体性能,可以根据存储介质的处理能力,适当的提高预设压力阈值,不拘泥于将存储介质的性能限定为其最佳状态。本领域技术人员可以根据实际需要,灵活的设定存储介质的预设压力阈值。

S105:当所述存储介质的可用存储压力小于所述预计增加的存储压力时,将所述存储请求加入该存储介质的等待队列。

当存储介质的可用存储压力小于预计增加的存储压力时,说明若存储介质处理该存储请求则会导致其处理性能不满足预设的最低要求。此时,服务器将该存储请求加入到等待队列中等待,不发送给存储介质处理,使得存储介质的存储压力不会过大,有效的控制存储介质的负载,保证了存储介质的处理性能。

可以理解的是,当存储介质的可用存储压力大于或等于预计增加的存储压力时,说明若存储介质处理该存储请求不会导致其处理性能不满足预设的最低要求。服务器可以直接将该存储请求发送给存储介质处理,相应的,将服务器需更新该存储介质的当前存储压力,这里不再赘述。

在本实施例的一些可能的实现方式中,步骤S105之后还包括以下步骤:

第一步,检测是否存在已完成的请求。

当存储介质处理完一个存储请求时,发送通知给服务器。服务器根据接收到的通知,检测是否存在存储介质已完成的存储请求。

第二步,当存在已完成的请求时,根据该存储请求对应的预计增加的存储压力,更新所述存储介质的可用存储压力。

存储介质处理完一个存储请求时,其存储压力减小。由于服务器在将该存储请求发送给存储介质时,已知该存储介质处理待存储数据的存储任务会增加的存储压力情况,即存储介质预计增加的存储压力。当检测到存在已完成的请求时,直接将该请求对应的预计增加的存储压力释放,更新后的该存储介质的可用存储压力增加该请求对应的预计增加的存储压力部分。

第三步,判断更新后的可用存储压力是否小于所述预计增加的存储压力;当所述更新后的可用存储压力大于或等于所述预计增加的存储压力时,处理所述存储请求。

可以理解的是,若更新后的可用存储压力仍小于所述预计增加的存储压力,所述存储请求仍需放在该存储介质对应的等待队列中。服务器可以间隔一定时间多次检测是否有已完成的请求,并以此为依据更新存储介质的可用存储压力。直到存储介质的可用存储压力大于或等于该存储介质处理所述存储请求预计增加的存储压力时,再将该存储请求发送给该存储介质处理。

上述实施例提供的基于存储系统的控制方法,在接收到客户端发送的存储请求时,根据该存储请求携带的待存储数据的信息,判断存储介质预计增加的存储压力。然后,根据存储介质当前的存储压力,判断当该存储介质处理存储请求时,存储介质的存储压力是否大于预设压力阈值,其中预设压力阈值是根据存储介质的实际处理能力,预先设定的能够保证该存储介质处理性能的存储压力阈值。当该存储介质处理存储请求时,存储介质的存储压力小于或等于预设压力阈值时,说明存储介质处理该存储请求会使其出现性能不符合预期的现象。此时,将该存储请求加入存储介质对应的等待队列中,使得存储介质的存储压力不会过大,有效的控制存储介质的负载,保证存储介质的处理性能。

在上述实施例的一些可能的实现方式中,还可以增加一个存储系统的整体控制过程,以更好更精确的限制存储系统中存储介质的压力,保证存储介质和存储系统处理性能。

具体参见图2,当所述存储系统包括至少两个存储介质时,在步骤S104之前还包括以下步骤:

S201:根据所述存储系统中每个存储介质的当前存储压力,获得所述存储系统的当前存储压力。

存储系统的当前存储压力由其中每个存储介质的存储压力反映。比如,可以将每个存储介质的等待任务队列综合成存储介质的存储压力,也可以进一步考虑到每个存储介质的内存消耗。

S202:判断所述存储系统的可用存储压力是否小于所述预计增加的存储压力,所述存储系统的可用存储压力为存储系统的预设压力阈值与所述存储系统的当前存储压力之差。

同理,存储系统的预设压力阈值的设置可以根据系统中每个存储介质的性能和经验设定,以避免存储系统整体的负载过大造成其性能下降,代表了对该存储系统性能的最低要求。本领域技术人员还可以根据实际需要,灵活的设定存储系统的预设压力阈值。

S203:当所述存储系统的可用存储压力小于所述预计增加的存储压力时,将所述存储请求加入所述存储系统的等待队列。

当存储系统的可用存储压力小于预计增加的存储压力时,说明若存储系统处理该存储请求则会导致其处理性能不满足预设的最低要求。此时,服务器将该存储请求加入到等待队列中等待,不发送给存储介质处理,无需再逐一检测每个存储介质是否能够在保证其性能的情况下处理所述存储请求。

S204:当所述存储系统的可用存储压力大于或等于所述预计增加的存储压力时,逐一对所述存储系统的每个存储介质执行所述判断所述存储介质的可用存储压力是否小于所述预计增加的存储压力。

当存储系统的可用存储压力大于或等于预计增加的存储压力时,说明系统能够在保证其存储性能的前提下,处理所述存储请求。此时,服务器再判断逐一判断每个存储介质的存储压力是否能够处理该存储请求。比如,找到存储压力最小的存储介质,将存储请求发送给该存储介质处理。

基于上述实施例提供的基于存储系统的控制方法,本发明实施例还提供了一种基于存储系统的控制装置。

装置实施例:

参见图3,该图为本发明提供的基于存储系统的控制装置实施例的结构示意图。

本实施例提供的存储系统的控制装置,应用于该存储系统的服务器。存储系统除了服务器之外,还包括至少一个存储介质,磁盘池是最常见的存储介质。当然,本领域技术人员还可以根据实际情况,具体设置存储介质的形式,这里不再一一列举。服务器与客户端进行通信,将客户端发送的数据交由存储介质进行存储。

本实施例提供的装置,包括:接收单元100、获取单元200、第一判断单元301和处理单元400;

所述接收单元100,用于接收客户端发送的存储请求,所述存储请求携带有待存储数据的信息;

所述获取单元200,用于根据所述待存储数据的信息,得到所述存储介质预计增加的存储压力;还于获取所述存储介质的当前存储压力;

在本实施例的一些可能的实现方式中,所述存储介质的存储压力包括该存储介质的等待任务队列长度和/或该存储介质的内存消耗。

所述第一判断单元300,用于判断所述存储介质的可用存储压力是否小于所述预计增加的存储压力,所述存储介质的可用存储压力为该存储介质的预设压力阈值与该存储介质的当前存储压力之差;

所述处理单元400,用于当所述第一判断单元300判断所述存储介质的可用存储压力小于所述预计增加的存储压力时,将所述存储请求加入该存储介质对应的等待队列。

在本实施例的一些可能的实现方式中,所述装置还包括:设置单元(未在图中示出);

所述获取单元200,还用于获取所述存储介质的处理能力;

所述设置单元,用于根据所述存储介质的处理能力,设置该存储介质的预设压力阈值。

在本实施例的一些可能的实现方式中,当所述存储系统包括至少两个存储介质时,所述装置还包括:第二判断单元和所述触发单元(均未在图中示出);

所述获取单元200,还用于根据所述存储系统中每个存储介质的当前存储压力,获得所述存储系统的当前存储压力;

所述第二判断单元,用于判断所述存储系统的可用存储压力是否小于所述预计增加的存储压力,所述存储系统的可用存储压力为存储系统的预设压力阈值与所述存储系统的当前存储压力之差;

所述处理单元400,还用于当所述第二判断单元判断所述存储系统的可用存储压力小于所述预计增加的存储压力时,将所述存储请求加入所述存储系统的等待队列;

所述触发单元,用于当所述第二判断单元判断所述存储系统的可用存储压力大于或等于所述预计增加的存储压力时,逐一对所述存储系统的每个存储介质触发所述第一判断单元。

在本实施例的一些可能的实现方式中,所述装置还包括:检测单元和更新单元(未在图中示出);

所述检测单元,用于检测是否存在已完成的请求;

所述更新单元,用于当所述检测单元检测到已完成的请求时,根据该存储请求对应的预计增加的存储压力,更新所述存储介质的可用存储压力;

所述第一判断单元300,还用于判断更新后的可用存储压力是否小于所述预计增加的存储压力;

所述处理单元400,还用于当所述第一判断单元300判断更新后的可用存储压力大于或等于所述预计增加的存储压力时,处理所述存储请求。

本实施例提供的基于存储系统的控制装置,在接收到客户端发送的存储请求时,根据该存储请求携带的待存储数据的信息,判断存储介质预计增加的存储压力。然后,根据存储介质当前的存储压力,判断当该存储介质处理存储请求时,存储介质的存储压力是否大于预设压力阈值,其中预设压力阈值是根据存储介质的实际处理能力,预先设定的能够保证该存储介质处理性能的存储压力阈值。当该存储介质处理存储请求时,存储介质的存储压力小于或等于预设压力阈值时,说明存储介质处理该存储请求会使其出现性能不符合预期的现象。此时,将该存储请求加入存储介质对应的等待队列中,使得存储介质的存储压力不会过大,有效的控制存储介质的负载,保证存储介质的处理性能。

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

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

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

以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。

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