一种数据存储的方法、系统及相关装置与流程

文档序号:13675660阅读:168来源:国知局

本申请涉及存储领域,特别涉及一种数据存储的方法、系统和一种计算机可读存储介质及服务器。



背景技术:

目前传统的存储系统均提供数据的自动分层存储迁移等功能。自动分层技术根据对系统io的监控数据根据特定算法将数据分为热数据/温数据/冷数据三种,同时存储系统通常采用ssd/hdd/nl等不同转速的硬盘构建,对应称之为三层,自动分层及时将存储系统中的热数据自动迁移到性能更高的ssd存储设备上,同时也会将温冷数据对应迁移到hdd/sata/nl等更廉价的存储设备上.降低存储成本并提高系统对热数据的响应速度。

但是,目前这种数据分层迁移仅限在存储系统自身内部,对于某些对性能要求很高的应用场景,基于外部存储的网络环境,从客户请求到应用主机再到存储系统整个的环节过多,仅仅将热数据迁移到ssd,所能优化提升的性能空间是有限的。

申请内容

本申请的目的是提供一种数据存储的方法、系统和一种计算机可读存储介质及服务器,减少了应用主机到存储器之间的io请求环节,提高了系统性能。

为解决上述技术问题,本申请提供一种数据存储的方法,技术方案如下:

读取存储系统中的数据记录并确定热数据的存储位置;

按照设定规则提取所述热数据中的高热数据;

将所述高热数据发送到迁移功能插件以便所述迁移功能插件将所述高热数据存储至主机端的缓存中。

其中,按照设定规则提取热数据中的高热数据之前,还包括:

根据所述主机端的空闲缓存确定所述高热数据的最大数据量。

其中,所述方法还包括:

接收客户端发送的数据访问请求;

判断所述数据访问请求对应的数据是否为高热度数据;

若是,则直接从缓存中返回相应的数据;

若否,则将所述数据访问请求转发至所述存储系统。

本申请还提供一种数据存储的系统,包括:

读取模块,用于读取存储系统中的数据记录并确定热数据的存储位置;

提取模块,用于照设定规则提取所述热数据中的高热数据;

存储模块,用于将所述高热数据发送到迁移功能插件以便所述迁移功能插件将所述高热数据存储至主机端的缓存中。

其中,所述系统还包括:

确定模块,用于根据所述主机端的空闲缓存确定所述高热数据的最大数据量。

其中,还包括:

接收模块,用于接收客户端发送的数据访问请求;

判断模块,用于判断所述数据访问请求对应的数据是否为高热度数据;

返回模块,用于若是高热度数据时,则直接从缓存中返回相应的数据;

转发模块,用于若不是高热度数据时,则将所述数据访问请求转发至所述存储系统。

本申请还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被执行时实现如下步骤:

读取存储系统中的数据记录并确定热数据的存储位置;

按照设定规则提取所述热数据中的高热数据;

将所述高热数据发送到迁移功能插件以便所述迁移功能插件将所述高热数据存储至主机端的缓存中。

本申请还提供一种服务器,包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如下步骤:

读取存储系统中的数据记录并确定热数据的存储位置;

按照设定规则提取所述热数据中的高热数据;

将所述高热数据发送到迁移功能插件以便所述迁移功能插件将所述高热数据存储至主机端的缓存中。

本申请所提供的一种数据存储的方法,包括:读取存储系统中的数据记录并确定热数据的存储位置;按照设定规则提取所述热数据中的高热数据;将所述高热数据发送到迁移功能插件以便所述迁移功能插件将所述高热数据存储至主机端的缓存中。通过这种方法,使得这些高热数据被访问时可以直接从缓存中返回,减少了应用主机到存储之间的io请求环节,极大的提高了系统性能。本申请还提供一种数据存储的系统、一种计算机可读存储介质和一种服务器,具有上述有益效果,此处不再赘述。

附图说明

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

图1为本申请实施例所提供的一种数据存储的方法流程图;

图2为本申请实施例所提供的另一种数据存储的方法流程图;

图3为本申请实施例所提供的一种数据存储的系统结构示意图。

具体实施方式

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

请参考图1,图1为本申请实施例所提供的一种数据存储的方法流程图,技术方案如下:

s101:读取存储系统中的数据记录并确定热数据的存储位置;

目前传统的存储系统均提供数据的自动分层存储迁移等功能。自动分层技术根据对系统io的监控数据根据特定算法将数据分为热数据、温数据和冷数据三种,同时存储系统通常采用ssd/hdd/nl等不同转速的硬盘构建,对应称之为三层,自动分层及时将存储系统中的热数据自动迁移到性能更高的ssd存储设备上,同时也会将温冷数据对应迁移到hdd/sata/nl等更廉价的存储设备上,降低存储成本并提高系统对热数据的响应速度。此步骤的目的是读取该自动分层存储迁移的记录,以确定热数据的存储位置。因为高热数据只会存在于热数据中,因此不必关注温数据和冷数据。热数据经过存储系统自动分层之后,通常放在转速最高的硬盘——ssd(solidstatedrives,固态硬盘),即确定的存储位置可以是确定热数据所在的ssd以及具体存储路径。存储系统中可以有多个ssd,这时还需确定存储热数据的ssd。

s102:按照设定规则提取所述热数据中的高热数据;

所述的设定规则并不限定其设置方式,可以人工设置,也可以是处理器根据特定算法进行设置,例如可以根据数据被访问的可能性或者已访问的频率来制定设定规则,或者根据热度表中热度较高的数据来提取高热数据。

值得一提的是,在提取高热数据前,还可以根据主机端的空闲缓存计算出最大数据量,即该迁移功能插件能迁移的最大数据量。比如应用主机内存16g,系统及应用消耗10g,大约有6g内存是空闲的,这样的话就可以拿出一半比如3g(不能全占,要考虑系统波动)来用,那么最大的数据量就是3g。因此最大数据量是根据实际情况配置的。这里并不对提取过程作任何限定,可以一次性将所有高热数据提取完,也可以分批提取。

s103:将所述高热数据发送到迁移功能插件以便所述迁移功能插件将所述高热数据存储至主机端的缓存中。

提取高热数据后,处理器将高热数据发送至迁移功能插件,再由迁移功能插件将高热数据存储至主机端的缓存中。这里的缓存指的是应用主机的缓存。而应用主机和存储器是两个不同的元件。通常客户端向应用主机获取数据时,应用主机需要向存储器发送数据请求,存储器再从自身的存储中寻找相应的数据并返回至应用主机,最后由应用主机将数据返回给客户端。而将高热数据存储至缓存后,客户端发送数据请求后应用主机的动作变为:

接收客户端发送的数据访问请求;判断所述数据访问请求对应的数据是否为高热度数据;若是,则直接从缓存中返回相应的数据;若否,则将所述数据访问请求转发至所述存储系统。

值得一提的是,迁移功能插件工作在主机端,因此此步骤实质是由存储系统中的处理器提取高热数据后将高热数据发送至迁移功能插件,迁移功能插件再将高热数据存储至主机端的缓存中。这样的好处是避免了高热数据被客户端请求时主机端向存储系统发送相关io请求,提高了数据的相应速度,提升了整个存储系统的性能。

本申请实施例提供了一种数据存储方法,可以通过上述方法能够实现高热数据被访问时直接从应用主机的缓存返回,而无需再进行向存储系统发送io请求,极大的提高了系统性能。

参见图2,图2为本申请实施例所提供的另一种数据存储的方法流程图,技术方案如下:

s201:读取存储系统中的数据记录并确定热数据的存储位置;

s202:根据所述主机端的空闲缓存确定所述高热数据的最大数据量;

s203:按照设定规则提取所述热数据中的高热数据;

s204:将所述高热数据发送到迁移功能插件以便所述迁移功能插件将所述高热数据存储至主机端的缓存中。

下面对本申请实施例提供的一种数据存储的系统进行介绍,下文描述的数据存储系统与上文描述的数据存储的方法可相互对应参照。

参见图3本申请还提供一种数据存储的系统,包括:

读取模块100,用于读取存储系统中的数据记录并确定热数据的存储位置;

提取模块200,用于照设定规则提取所述热数据中的高热数据;

存储模块300,用于将所述高热数据发送到迁移功能插件以便所述迁移功能插件将所述高热数据存储至主机端的缓存中。

基于上述实施例,作为优选的实施例,所述系统还可以包括:

确定模块,用于根据所述主机端的空闲缓存确定所述高热数据的最大数据量。

基于上述实施例,作为优选的实施例,所述系统还可以包括:

接收模块,用于接收客户端发送的数据访问请求;

判断模块,用于判断所述数据访问请求对应的数据是否为高热度数据;

返回模块,用于若是高热度数据时,则直接从缓存中返回相应的数据;

转发模块,用于若不是高热度数据时,则将所述数据访问请求转发至所述存储系统。

本申请还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以为:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

本申请还提供了一种服务器,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然所述服务器还可以包括各种网络接口,电源等组件。

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

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

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

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