首页 / 专利库 / 电信 / 节点 / 分布式存储系统及其存储方法

分布式存储系统及其存储方法

阅读:0发布:2020-05-29

专利汇可以提供分布式存储系统及其存储方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种分布式存储系统及其存储方法。其中,该系统包括:第一存储介质和第二存储介质,其中,第二存储介质的存取速度低于第一存储介质的存取速度;从第一存储介质和第二存储介质中抽象得到的至少一个混合虚拟存储设备,设置在分布式存储系统的存储 节点 中,其中,混合虚拟存储设备包括与第一存储介质对应的第一区域和与第二存储介质对应的第二区域;存储节点 控制器 ,设置在存储节点中,用于对混合虚拟存储设备中的数据在第一区域和第二区域之间进行迁移。本发明解决了现有的 云 存储技术中数据的多个备份只能存储在同一种固定的存储介质上无法改变的技术问题。,下面是分布式存储系统及其存储方法专利的具体信息内容。

1.一种分布式存储系统,包括:
第一存储介质和第二存储介质,其中,所述第二存储介质的存取速度低于所述第一存储介质的存取速度;
从所述第一存储介质和所述第二存储介质中抽象得到的至少一个混合虚拟存储设备,设置在分布式存储系统的存储节点中,其中,所述混合虚拟存储设备包括与所述第一存储介质对应的第一区域和与所述第二存储介质对应的第二区域;
存储节点控制器,设置在所述存储节点中,用于对所述混合虚拟存储设备中的数据在所述第一区域和所述第二区域之间进行迁移。
2.根据权利要求1所述的系统,其中,所述系统还包括:
降级接口加速接口,其中,所述存储节点控制器通过调用所述降级接口,将所述第一区域内的第一数据迁移至所述第二区域,或通过调用所述加速接口,将所述第二区域内的第二数据迁移至所述第一区域。
3.根据权利要求1所述的系统,其中,所述存储节点控制器还用于检测所述第一区域内的第一数据的利用率是否低于预设利用率,如果所述利用率低于预设利用率,则将所述第一数据迁移至所述第二区域。
4.根据权利要求3所述的系统,其中,所述第一数据的利用率由如下任意一项或多项确定:所述第一数据的读写频率、所述第一数据持续未被读写的时间以及前端设备的负载。
5.根据权利要求1所述的系统,其中,所述存储节点控制器还用于检测是否接收到所述第二区域的第二数据对应的加速指令,如果接收到所述加速指令,则将所述第二数据迁移至所述第一区域。
6.根据权利要求1所述的系统,其中,所述系统还包括:
从第一存储介质中抽象得到的第一虚拟存储设备;
从第二存储介质中抽象得到的第二虚拟存储设备。
7.根据权利要求6所述的系统,其中,所述系统还包括:
创建接口,所述创建接口用于在存储对象被创建时,根据接收到的存储指令,将所述存储对象存储至任意一个虚拟存储设备,其中,所述虚拟存储设备包括:混合虚拟存储设备、第一虚拟存储设备和第二虚拟存储设备。
8.根据权利要求7所述的系统,其中,在所述存储对象为多个的情况下,多个所述存储对象被存储至不同的所述虚拟存储设备。
9.根据权利要求6所述的系统,其中,所述系统还包括:
中心节点,所述中心节点在检测到所述第一虚拟存储设备中的数据对应的降级指令的情况下,对所述第一虚拟存储设备中的数据进行备份后,将备份得到的数据存储至其他存储节点的第二虚拟存储设备中,并删除所述第一虚拟存储设备中的数据。
10.根据权利要求9所述的系统,其中,所述中心节点还用于在检测到所述第二虚拟存储设备中的数据对应的加速指令的情况下,对所述第二虚拟存储设备中的数据进行备份后,将备份得到的数据存储至其他存储节点的第一虚拟存储设备中,并删除所述第二虚拟存储设备中的数据。
11.根据权利要求6所述的系统,其中,所述分布式存储系统的中心节点还用于通过修改第一虚拟存储设备或第二虚拟存储设备中的数据的元信息,以将所述第一虚拟存储设备或第二虚拟存储设备中的数据的虚拟存储设备变更为所述混合虚拟存储设备,其中,所述元信息用于表示所述数据对应的虚拟存储设备。
12.一种分布式存储系统的存储方法,包括:
判断是否需要对混合虚拟存储设备中的数据进行迁移,其中,所述混合虚拟存储设备从第一存储介质和第二存储介质中抽象得到,所述第二存储介质的存取速度低于所述第一存储介质的存取速度,所述混合虚拟存储设备包括与所述第一存储介质对应的第一区域和与所述第二存储介质对应的第二区域;
如果判断结果为需要对所述数据进行迁移,则对所述数据在所述第一区域和所述第二区域之间进行迁移。
13.根据权利要求12所述的方法,其中,判断是否需要对混合虚拟存储设备中的数据进行迁移,包括:
所述第一区域内的第一数据的利用率是否低于预设利用率,如果所述第一数据的利用率低于预设利用率,则确定需要对所述第一数据进行迁移;和/或
是否接收到所述第二区域内的第二数据对应的加速指令,如果接收到所述加速指令,则确定需要对所述第二数据进行迁移。
14.根据权利要求13所述的方法,其中,所述第一数据的利用率由如下任意一项或多项确定:所述第一数据的读写频率、所述第一数据持续未被读写的时间以及前端设备的负载。
15.根据权利要求12所述的方法,其中,所述分布式存储系统还包括:从第一存储介质中抽象得到的第一虚拟存储设备和从第二存储介质中抽象得到的第二虚拟存储设备,所述方法还包括:
接收存储指令,其中,所述存储指令中包括存储对象;
将所述存储对象存储至混合虚拟存储设备、第一虚拟存储设备和第二虚拟存储设备中的任意一个虚拟存储设备。
16.根据权利要求15所述的方法,其中,在所述存储对象为多个的情况下,多个所述存储对象被存储至不同的所述虚拟存储设备。
17.一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行如下步骤:
判断是否需要对混合虚拟存储设备中的数据进行迁移,其中,所述混合虚拟存储设备从第一存储介质和第二存储介质中抽象得到,所述第二存储介质的存取速度低于所述第一存储介质的存取速度,所述混合虚拟存储设备包括与所述第一存储介质对应的第一区域和与所述第二存储介质对应的第二区域;
如果判断结果为需要对所述数据进行迁移,则对所述数据在所述第一区域和所述第二区域之间进行迁移。
18.一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行如下步骤:
判断是否需要对混合虚拟存储设备中的数据进行迁移,其中,所述混合虚拟存储设备从第一存储介质和第二存储介质中抽象得到,所述第二存储介质的存取速度低于所述第一存储介质的存取速度,所述混合虚拟存储设备包括与所述第一存储介质对应的第一区域和与所述第二存储介质对应的第二区域;
如果判断结果为需要对所述数据进行迁移,则对所述数据在所述第一区域和所述第二区域之间进行迁移。

说明书全文

分布式存储系统及其存储方法

技术领域

[0001] 本发明涉及分布式存储领域,具体而言,涉及一种分布式存储系统及其存储方法。

背景技术

[0002] 随着计算技术的快速发展,云计算市场规模不断扩大,越来越多的机构、企业和个人选择云存储作为自己的数据存储终端,随着用户规模的扩大,云存储面临的用户需求的多样性越来越强,如何在满足性能、成本要求的前提下提供更灵活的云存储技术成为亟待解决的问题。
[0003] 在云存储系统中,数据的读写特点是:写操作发生在多个Replica上,读操作只发生在其中一个Replica上,用户往往希望读的Replica在高速设备上,其他冗余的Replica则存储在慢速设备上以节约成本。
[0004] 数据的价值由数据的热度决定,但数据的热度通常并非一成不变的,当数据的热度发生变化,用户对存储数据的介质的需求也发生变化,而在当前的云存储技术中,一旦数据上云,用户难以再改变数据的存储介质,这就使得一旦确定了存储数据的存储介质,就无法根据数据热度的变化而更改,从而难以需求用户多样化的存储需求,对于用户控制存储成本,配置和调整数据存储方案都非常不利。
[0005] 针对现有的云存储技术中数据的多个备份只能存储在同一种固定的存储介质上无法改变的问题,目前尚未提出有效的解决方案。

发明内容

[0006] 本发明实施例提供了一种分布式存储系统及其存储方法,以至少解决现有的云存储技术中数据的多个备份只能存储在同一种固定的存储介质上无法改变的技术问题。
[0007] 根据本发明实施例的一个方面,提供了一种分布式存储系统,包括:第一存储介质和第二存储介质,其中,第二存储介质的存取速度低于第一存储介质的存取速度;从第一存储介质和第二存储介质中抽象得到的至少一个混合虚拟存储设备,设置在分布式存储系统的存储节点中,其中,混合虚拟存储设备包括与第一存储介质对应的第一区域和与第二存储介质对应的第二区域;存储节点控制器,设置在存储节点中,用于对混合虚拟存储设备中的数据在第一区域和第二区域之间进行迁移。
[0008] 根据本发明实施例的另一方面,还提供了一种分布式存储系统的存储方法,包括:判断是否需要对混合虚拟存储设备中的数据进行迁移,其中,混合虚拟存储设备从第一存储介质和第二存储介质中抽象得到,第二存储介质的存取速度低于第一存储介质的存取速度,混合虚拟存储设备包括与第一存储介质对应的第一区域和与第二存储介质对应的第二区域;如果判断结果为需要对数据进行迁移,则对数据在第一区域和第二区域之间进行迁移。
[0009] 根据本发明实施例的另一方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行如下步骤:判断是否需要对混合虚拟存储设备中的数据进行迁移,其中,混合虚拟存储设备从第一存储介质和第二存储介质中抽象得到,第二存储介质的存取速度低于第一存储介质的存取速度,混合虚拟存储设备包括与第一存储介质对应的第一区域和与第二存储介质对应的第二区域;如果判断结果为需要对数据进行迁移,则对数据在第一区域和第二区域之间进行迁移。
[0010] 根据本发明实施例的另一方面,还提供了一种处理器,处理器用于运行程序,程序运行时执行如下步骤:判断是否需要对混合虚拟存储设备中的数据进行迁移,其中,混合虚拟存储设备从第一存储介质和第二存储介质中抽象得到,第二存储介质的存取速度低于第一存储介质的存取速度,混合虚拟存储设备包括与第一存储介质对应的第一区域和与第二存储介质对应的第二区域;如果判断结果为需要对数据进行迁移,则对数据在第一区域和第二区域之间进行迁移。
[0011] 在本发明实施例中,在分布式存储系统的存储节点中,设置从第一存储介质和第二存储介质中抽象得到的混合虚拟存储设备,得到的混合虚拟存储设备既包括与第一存储介质对应的第一区域,也包括与第二存储介质对应的第二区域,从而使得能够将混合虚拟存储设备中,两个不同区域的数据进行迁移。通过该迁移功能,可以实现对云存储的应用中用户存储的数据在不同的存储介质上进行迁移的效果,进而可以满足用户对高价值数据的高速存取的需求,以及用户对低价值数据低成本存储的需求。由此,本申请上述实施例解决了现有的云存储技术中数据的多个备份只能存储在同一种固定的存储介质上无法改变的技术问题。附图说明
[0012] 此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0013] 图1是根据本申请实施例1的一种分布式存储系统的示意图;
[0014] 图2是根据本申请实施例1的一种抽象虚拟存储设备的示意图;
[0015] 图3是根据本申请实施例1的一种可选的分布式存储系统的示意图;
[0016] 图4示出了一种用于实现分布式存储系统的存储方法的计算机终端(或移动设备)的硬件结构框图
[0017] 图5是根据本申请实施例2的一种分布式存储系统的存储方法的流程图
[0018] 图6是根据本申请实施例3的一种分布式存储系统的存储装置的示意图;以及[0019] 图7是根据本申请实施例4的一种计算机终端的结构框图。

具体实施方式

[0020] 为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
[0021] 需要说明的是,本发明的说明书权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0022] 首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:
[0023] SSD:Solid State Drives,即固态硬盘,一种基于闪存阵列的存储设备。
[0024] HDD:Hard Disk Drive,即磁盘,一种基于磁性介质的存储设备。
[0025] Replica:分布式系统中数据的一份冗余拷贝,数据一般有3份拷贝(Replica)。
[0026] Master-Server:一种分布式系统架构,Master作为系统的中心控制节点,Server是系统的单机存储节点。
[0027] 实施例1
[0028] 根据本发明实施例,还提供了一种分布式存储系统的实施例,图1是根据本申请实施例1的一种分布式存储系统的示意图,结合图1所示,该系统包括:
[0029] 第一存储介质11和第二存储介质12,其中,第二存储介质的存取速度低于第一存储介质的存取速度。
[0030] 具体的,上述第一存储介质和第二存储介质为真正提供存储空间的实体的存储介质,二者的区别在于,第一存储介质的存取速度高于第二存储介质。
[0031] 在一种可选的实施例中,第一存储介质可以为SSD,第二存储介质可以为HDD。在一个分布式存储系统中,第一存储介质的数量和第二存储介质的数量不受限定,可以根据实际需求设置。
[0032] 从第一存储介质11和第二存储介质12中抽象得到的至少一个混合虚拟存储设备10,设置在分布式存储系统的存储节点100中,其中,混合虚拟存储设备10包括与第一存储介质对应的第一区域和与第二存储介质对应的第二区域。
[0033] 具体的,上述存储节点由存储服务器(Server)构成,一个分布式存储系统包括存储服务器集群,存储服务器集群中的每个存储服务器构成分布式存储系统中的一个存储节点。
[0034] 从第一存储介质和第二存储介质中抽象混合虚拟存储设备,指的是将第一存储介质和第二存储介质均分割成多个对象,将第一存储介质中的至少一个对象和第二存储介质中的至少一个对象进行合并,将合并的存储空间抽象成面对软件的一个虚拟的存储空间,该虚拟的存储空间即为上述混合虚拟存储设备,该软件即为进行云存储的应用软件,可以以客户端的形式供用户使用。
[0035] 由于混合虚拟存储设备是从第一存储介质和第二存储介质中抽取出的虚拟存储设备,因此混合虚拟存储设备既可以映射到第一存储介质中,也可以映射到第二存储介质中,从而使得混合虚拟存储设备具有映射到第一存储介质的第一区域和映射到第二存储介质的第二区域。当数据存储在第一区域时,该数据实际存储在第一存储介质中,当数据存储在第二区域时,该数据实际存储在第二存储介质中。
[0036] 在一种可选的实施例中,以提供云存储服务的应用软件为例进行说明,用户通过应用软件的客户端使用该应用软件,用户将存储对象传输至客户端,客户端提供的存储方式包括混合存储,如果用户选择混合存储,则由分布式存储系统的Master(中心节点)生成存储对象的3份Replica(备份),并将生成的3份Replica分别存储在分布式存储系统的三个存储节点中的混合虚拟存储设备中。
[0037] 存储节点控制器20,设置在存储节点中,用于对混合虚拟存储设备中的数据在第一区域和第二区域之间进行迁移。
[0038] 具体的,分布式存储系统中的每个存储节点中都具有存储节点控制器,存储节点控制器用于将第一区域和第二区域的数据在混合虚拟存储设备内部进行迁移,即将第一区域的数据迁移至第二区域,或将第二区域的数据迁移至第一区域。
[0039] 在上述方案中,混合虚拟存储设备中包括第一区域和第二区域,将第一区域映射在实体的第一存储介质上,第二区域映射在实体的第二存储介质上。将第一存储介质作为高速存储介质,将第二存储介质作为慢速存储介质,由于高速存储介质中的读写速度较快,其成本高于慢速存储介质,因此高速存储介质的空间非常有限。
[0040] 在此基础上,如果将利用率低的数据存储在第一区域,映射在高速存储介质上,而将利用率高的数据存储在第二区域,映射在慢速存储介质上,则用户读写数据时速度缓慢,浪费了高速存储介质上的空间。因此,需要对将数据存储在合适的位置,但是,数据的热度或利用率并非一成不变的因此,需要存储节点控制器可以基于数据的热度或数据的利用率等参数对数据在第一区域和第二区域中进行迁移,迁移的原则即为,将第二区域中的高价值数据迁移至第一区域,将第一区域中的低价值数据迁移至第二区域,数据的价值可以根据数据的热度、数据的利用率等参数确定。
[0041] 在一种可选的实施例中,根据数据在预设时间段内的热度来确定数据的价值,存储节点控制器监测混合虚拟存储设备中每份数据的热度,如果第一区域中存在热度低于预设值的数据,则将这部分数据迁移至第二区域,如果第二区域中存在热度高于预设值的数据,则将这部分数据迁移至第一区域,从而实现了对数据在不同存储介质上的迁移。
[0042] 在另一种可选的实施例,数据在第一区域和第二区域的迁移还可以由用户自行设置,如果用户在某项操作中需要频繁的读取某个数据,而这个数据在第二区域中,则用户可以在执行这项操作之前,将这个数据从第二区域中迁移第一区域。如果第一区域的数量较大,以无空间加入新的数据,用户还可以请求将第一区域的一些数据迁移至第二区域。
[0043] 本申请上述实施例在分布式存储系统的存储节点中,设置从第一存储介质和第二存储介质中抽象得到的混合虚拟存储设备,得到的混合虚拟存储设备既包括与第一存储介质对应的第一区域,也包括与第二存储介质对应的第二区域,从而使得能够将混合虚拟存储设备中,两个不同区域的数据进行迁移。通过该迁移功能,屏蔽了在云存储的技术对存储介质的依赖,无论生成何种存储技术,都可以基于上述方式构建混合虚拟存数设备,以实现对云存储的应用中用户存储的数据在不同的存储介质上进行迁移的效果,进而可以满足用户对高价值数据的高速存取的需求,以及用户对低价值数据低成本存储的需求。
[0044] 由此,本申请上述实施例解决了现有的云存储技术中数据的多个备份只能存储在同一种固定的存储介质上无法改变的技术问题。
[0045] 作为一种可选的实施例,上述系统还包括:降级接口加速接口,其中,存储节点控制器通过调用降级接口,将第一区域内的第一数据迁移至第二区域,或通过调用加速接口,将第二区域内的第二数据迁移至第一区域。
[0046] 降级接口和加速接口均为分布式存储系统在前端提供的接口,对数据的迁移操作需要通过降级接口和加速接口来实现。
[0047] 在一种可选的实施例中,如果需要将第一区域的数据迁移至第二区域,则存储节点控制器会调用降级接口对第一区域中待迁移的数据进行迁移,如果需要将第二区域的数据迁移至第一区域,则存储节点控制器会调用加速接口对第二区域中待迁移的数据进行迁移。
[0048] 作为一种可选的实施例,存储节点控制器还用于检测第一区域内的第一数据的利用率是否低于预设利用率,如果利用率低于预设利用率,则将第一数据迁移至第二区域。
[0049] 具体的,上述数据的利用率用于表示数据的热度或数据的价值,数据的利用率越高,则说明数据的热度越高,为了便于用户使用,利用率高的数据应该存储在第一区域。
[0050] 但数据的利用率并非一成不变的,对于最初利用率较高的,存储在第一区域的数据,在某段时间的利用率变低,如果仍将其保留在第一区域中,占用着第一存储介质的存储空间,则会导致对有限的第一存储介质的存储空间造成浪费,还有可能导致第一存储介质没有足够的空间存储其他利用率较高的数据。上述方案则用户实现混合虚拟存储设备中数据的自动降级,通过将利用率低于预设利用率的数据从第一区域迁移至第二区域,实现了对数据的存储介质的自动调整,并节省了存储介质的存储成本,节约了第一存储介质内的空间。
[0051] 在一种可选的实施例中,存储节点控制器监测第一区域中,第一数据的利用率,当检测到某项数据的利用率低于预设利用率时,将该数据从第一区域迁移至第二区域,实际的,是将这部分数据从第一存储介质(高速存储介质)迁移至了第二存储介质(慢速存储介质)。
[0052] 上述操作可以在后台的线程中缓慢进行,例如每间隔1s执行一次,而不在物理介质层立即触发,从而使得用户不会立即感知到数据访问性能的下降。
[0053] 在确定对数据进行降级时,也可以通过前端的客户端向用户发出提示信息,例如,可以在客户端的“xx数据的利用率较低,系统预备将其迁移至慢速存储介质”。
[0054] 作为一种可选的实施例,第一数据的利用率由如下任意一项或多项确定:第一数据的读写频率、第一数据持续未被读写的时间以及前端设备的负载。
[0055] 上述的几个参数均能够单一的表示数据的利用率,也可以根据预设权重共同表示数据的利用率。
[0056] 具体的,读写频率越高,第一数据的利用率越高,而第一数据未被读写的时间越长,第一数据的利用率越低,前端设备的负载越大,第一数据的利用率越低。
[0057] 在一种可选的实施例中,可以设置读写频率阈值,如果第一数据的读写频率小于设置的读写频率阈值,则确定第一数据的利用率低于预设利用率。
[0058] 在另一种可选的实施例中,还可以设置时间阈值,如果第一数据持续未被读写的时间超过设置的时间阈值,则确定第一数据的利用率低于预设利用率。
[0059] 作为一种可选的实施例,存储节点控制器还用于检测是否接收到第二区域的第二数据对应的加速指令,如果接收到加速指令,则将第二数据迁移至第一区域。
[0060] 具体的,上述加速指令可以由用户通过前端的客户端发出,用户可以对即将应用的数据发出加速指令。
[0061] 对于最初利用率较低的,存储在第二区域的数据,在某段时间的利用率变高,如果仍将其保留在第二区域中,则会导致用户在读取时性能较低,从而导致用户的体验较差。在该种场景下,上述方案用于实现混合虚拟存储设备中数据的升级,将用户指定的需要升级的数据从第二区域迁移至第一区域,从而提升这部分被迁移的数据的读取性能。
[0062] 在一种可选的实施例中,用户通过客户端发出对第二区域的一项数据的加速指令,存储节点控制器将该数据从而第二区域迁移至第一区域,实际的,是从第二存储介质(慢速存储介质)迁移至了第一存储介质(高速存储介质)。
[0063] 由于上述操作是用户的请求,因此应该尽快的响应用户的请求,在调用到加速接口后立即执行该迁移操作,从而使用户能够明显的感知到数据迁移后读取性能的提升。
[0064] 作为一种可选的实施例,上述系统还包括:从第一存储介质中抽象得到的第一虚拟存储设备;从第二存储介质中抽象得到的第二虚拟存储设备。
[0065] 具体的,上述第一虚拟存储设备直接从第一存储介质中抽象得到,第二虚拟存储设备直接从第二存储介质中抽象得到,由于第一存储介质的存取速度高于第二存储介质的存取速度,因此可以将第一虚拟存储设备作为高速存储设备,将第二虚拟存储设备作为慢速存储设备。
[0066] 从第一存储介质中抽象得到的第一虚拟存储设备,也可以是将第一存储介质中的一部分存储空间抽象成对软件的一个虚拟存储设备,即上述第一虚拟设备,第二虚拟存储设备可以使用同样的方式从第二存储介质中抽象得到。
[0067] 图2是根据本申请实施例1的一种抽象虚拟存储设备的示意图,结合图2所示,该存储节点包括一个真实的物理服务器,该服务器上部署了一个高速存储介质(例如SSD)和一个慢速存储介质(HDD),在该示例中,从这两个实体的物理存储介质中抽象出来六个虚拟存储设备,分别为两个高速设备(第一虚拟存储设备)、两个慢速设备(第二虚拟存储设备)以及两个混合设备(即上述虚拟存储设备),该实施例中分布式存储系统的数据存储基于虚拟存储设备进行,这就使得有限的物理存储设备能够通过虚拟存储设备的组合灵活地提供更多的存储模型。
[0068] 作为一种可选的实施例,上述系统还包括:创建接口,创建接口用于在存储对象被创建时,根据接收到的存储指令,将存储对象存储至任意一个虚拟存储设备,其中,虚拟存储设备包括:混合虚拟存储设备、第一虚拟存储设备和第二虚拟存储设备。
[0069] 具体的,上述创建接口也是在前端提供的接口,用于实现Replica级别的定制化存储。上述存储对象可以为用户需要存储的数据的备份。
[0070] 在一种可选的实施例中,仍以提供云存储服务的应用软件为例进行说明,用户通过应用软件的客户端使用该应用软件,在用户向客户端上传数据后,客户端提示用户选择存储区域,选项即包括上述混合虚拟存储设备、第一虚拟存储设备和第二虚拟存储设备,例如,客户端的界面可以显示“请选择存储设备”,并显示每个虚拟存储设备对应的控件,第一虚拟存储设备对应控件可以为“高速存储设备”,第二虚拟存储设备对应的控件可以为“慢速存储设备”,混合虚拟存储设备对应控件可以为“混合存储设备”,用户根据需求选择对应的虚拟存储设备,即可确定用于存储设备的虚拟存储设备。
[0071] Master(中心节点)根据用户存储时的指令中的介质要求,在存储服务器的集群中满足介质要求的存储服务器,然后将这些Replica分配到对应的存储服务器上,从而实现了Replica级别的定制化存储。
[0072] 作为一种可选的实施例,在存储对象为多个的情况下,多个存储对象被存储至不同的虚拟存储设备。
[0073] 存储对象通常为用户需要存储的数据的多个备份,在具有多个存储数据的情况下,用户可以指定每个存储数据存储在不同的虚拟存储设备中。
[0074] 图3是根据本申请实施例1的一种可选的分布式存储系统的示意图,结合图3所示,在该系统的前端包括存储创建接口(即为上述创建接口),用于实现用户对数据的定制化存储,还包括数据加速接口(即上述加速接口)和数据降级接口(即上述降级接口),用于分别实现对数据在混合虚拟存储设备中,由第二区域至第一区域的迁移,和由第一区域至第二区域的迁移。云存储的对象可以是通用存储、对象存储以及key-value存储等。
[0075] 在该系统的后端,包括Master和分布式存储集群,分布式存储集群包括多个存储节点,每个节点由一个存储服务器构成,每个存储服务器都虚拟出高速设备(即上述第一虚拟存储设备)、慢速设备(即上述第二虚拟存储设备)和混合设备(即上述混合虚拟存储设备)。
[0076] 在一种可选的实施例中,以支持用户在创建存储对象(3份Replica)时,可在数据的Replica级别制定存储的物理介质,结合图3所示,可以制定1份Replica存储在高速设备(如SSD)上,另2份Replica存储在不同存储服务器上的混合设备中,存储系统保证该数据后续的读操作一直发生在高速设备上,这样就降低了存储成本并且保证了数据的访问性能。
[0077] 作为一种可选的实施例,上述系统还包括:中心节点,中心节点在检测到第一虚拟存储设备中的数据对应的降级指令的情况下,对第一虚拟存储设备中的数据进行备份后,将备份得到的数据存储至其他存储节点的第二虚拟存储设备中,并删除第一虚拟存储设备中的数据。
[0078] 在同一个存储节点内部,混合虚拟存储设备中的数据可以在第一区域和第二区域之间迁移,但是第一虚拟存储设备和第二虚拟存储设备均为单一的物理介质对应的虚拟存储介质,难以自动迁移,因此在第一虚拟存储设备或第二虚拟存储设备需要迁移的情况下,需要由分布式存储系统中的Master(中心节点)来进行迁移操作。
[0079] 在一种可选的实施例中,Master接收用户对第一虚拟存储设备中的数据的降级指令后,Master先对存储节点1中的第一虚拟存储设备中,用户指定需要降级存储的数据进行备份,得到备份数据,并将备份数据存储至存储节点2(或其他存储节点)中的第二虚拟存储设备,再将存储节点1中的第一虚拟存储设备中需要降级的数据删除,即可完成了将数据从第一拟存储设备迁移至第二虚拟存储设备的降级指令。
[0080] 作为一种可选的实施例,中心节点还用于在检测到第二虚拟存储设备中的数据对应的加速指令的情况下,对第二虚拟存储设备中的数据进行备份后,将备份得到的数据存储至其他存储节点的第一虚拟存储设备中,并删除第二虚拟存储设备中的数据。
[0081] 将数据从第二虚拟存储设备迁移至第一虚拟存储设备的方式与将数据从第一虚拟存储设备迁移至第二虚拟存储设备的方式类似,此处不再赘述。
[0082] 作为一种可选的实施例,分布式存储系统的中心节点还用于通过修改第一虚拟存储设备或第二虚拟存储设备中的数据的元信息,以将第一虚拟存储设备或第二虚拟存储设备中的数据的虚拟存储设备变更为混合虚拟存储设备,其中,元信息用于表示数据对应的虚拟存储设备。
[0083] 具体的,上述元信息用于记录数据存储在哪个虚拟存储设备上,上述方案更改数据的元信息,用于更改数据所在的虚拟存储设备,以便对第一虚拟存储设备或第二虚拟存储设备中的数据进行迁移。
[0084] 例如,如果需要对第一虚拟存储设备上的数据进行迁移,可以将该数据元信息从高速设备修改为混合设备,然后由混合设备来实现对该数据的搬迁;如果需要对第二虚拟存储设备上的数据进行迁移,也可以将该数据元信息从慢速设备修改为混合设备,然后由混合设备来实现对该数据的搬迁。
[0085] 在一种可选的实施例中,仍以第一存储介质为高速存储介质,第二存储介质为慢速存储介质为例,如果高速存储介质(第一虚拟存储设备映射的高速存储介质)上的数据变冷(即利用率下降)需要搬迁至慢速存储介质,可以将该数据元信息从高速设备修改为混合虚拟存储设备,然后由混合虚拟存储设备将该数据迁移至第二区域,第二区域实际存储在慢速存储介质上,从而实现了将该数据从高速存储介质搬迁至慢速存储设备的过程。
[0086] 在另一种可选的实施例中,仍以第一存储介质为高速存储介质,第二存储介质为慢速存储介质为例,如果用户需要将慢速存储介质(第二虚拟存储设备映射的慢速存储介质)上的数据迁移至高速存储介质,则可以将该数据元信息从第速设备修改为混合虚拟存储设备,然后由混合虚拟存储设备将该数据迁移至第一区域,第一区域实际存储在高速存储介质上,从而实现了将该数据从慢速存储介质搬迁至高速存储设备的过程。
[0087] 实施例2
[0088] 根据本发明实施例,还提供了一种分布式存储系统的存储方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0089] 本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图4示出了一种用于实现分布式存储系统的存储方法的计算机终端(或移动设备)的硬件结构框图。如图4所示,计算机终端40(或移动设备40)可以包括一个或多个(图中采用402a、402b,……,402n来示出)处理器402(处理器402可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器404、以及用于通信功能的传输模块406。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图4所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端40还可包括比图4中所示更多或者更少的组件,或者具有与图4所示不同的配置。
[0090] 应当注意到的是上述一个或多个处理器402和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端40(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
[0091] 存储器404可用于存储应用软件的软件程序以及模块,如本发明实施例中的分布式存储系统的存储方法对应的程序指令/数据存储装置,处理器402通过运行存储在存储器404内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的分布式存储系统的存储方法。存储器404可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器404可进一步包括相对于处理器402远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端40。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0092] 传输装置406用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端40的通信供应商提供的无线网络。在一个实例中,传输装置406包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置406可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
[0093] 显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端40(或移动设备)的用户界面进行交互。
[0094] 此处需要说明的是,在一些可选实施例中,上述图4所示的计算机设备(或移动设备)可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图4仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算机设备(或移动设备)中的部件的类型。
[0095] 在上述运行环境下,本申请提供了如图2所示的分布式存储系统的存储方法。图5是根据本申请实施例2的一种分布式存储系统的存储方法的流程图。
[0096] 步骤S51,判断是否需要对混合虚拟存储设备中的数据进行迁移,其中,混合虚拟存储设备从第一存储介质和第二存储介质中抽象得到,第二存储介质的存取速度低于第一存储介质的存取速度,混合虚拟存储设备包括与第一存储介质对应的第一区域和与第二存储介质对应的第二区域。
[0097] 具体的,上述第一存储介质和第二存储介质为真正提供存储空间的实体的存储介质,二者的区别在于,第一存储介质的存取速度高于第二存储介质。
[0098] 在一种可选的实施例中,第一存储介质可以为SSD(Solid State Drives,固态硬盘),第二存储介质可以为HDD(Hard Disk Drive,磁盘)。在一个分布式存储系统中,第一存储介质的数量和第二存储介质的数量不受限定,可以根据实际需求设置。
[0099] 上述存储节点由存储服务器构成,一个分布式存储系统包括存储服务器集群,存储服务器集群中的每个存储服务器构成分布式存储系统中的一个存储节点。
[0100] 从第一存储介质和第二存储介质中抽象混合虚拟存储设备,指的是将第一存储介质和第二存储介质均分割成多个对象,将第一存储介质中的至少一个对象和第二存储介质中的至少一个对象进行合并,将合并的存储空间抽象成面对软件的一个虚拟的存储空间,该虚拟的存储空间即为上述混合虚拟存储设备,该软件即为进行云存储的应用软件,可以以客户端的形式供用户使用。
[0101] 由于混合虚拟存储设备是从第一存储介质和第二存储介质中抽取出的虚拟存储设备,因此混合虚拟存储设备既可以映射到第一存储介质中,也可以映射到第二存储介质中,从而使得混合虚拟存储设备具有映射到第一存储介质的第一区域和映射到第二存储介质的第二区域。当数据存储在第一区域时,该数据实际存储在第一存储介质中,当数据存储在第二区域时,该数据实际存储在第二存储介质中。
[0102] 在一种可选的实施例中,以提供云存储服务的应用软件为例进行说明,用户通过应用软件的客户端使用该应用软件,用户将存储对象传输至客户端,客户端提供的存储方式包括混合存储,如果用户选择混合存储,则由分布式存储系统的Master(中心节点)生成存储对象的3份Replica(备份),并将生成的3份Replica分别存储在分布式存储系统的三个存储节点中的混合虚拟存储设备中。
[0103] 判断是否需要对混合虚拟存储设备中的数据进行迁移,可以是判断是否接收到对数据的迁移指令,或数据是否满足预设的迁移条件。
[0104] 步骤S53,如果判断结果为需要对数据进行迁移,则对数据在第一区域和第二区域之间进行迁移。
[0105] 具体的,分布式存储系统中的每个存储节点中都具有存储节点控制器,存储节点控制器用于将第一区域和第二区域的数据在混合虚拟存储设备内部进行迁移,即将第一区域的数据迁移至第二区域,或将第二区域的数据迁移至第一区域。
[0106] 在上述方案中,混合虚拟存储设备中包括第一区域和第二区域,将第一区域映射在实体的第一存储介质上,第二区域映射在实体的第二存储介质上。将第一存储介质作为高速存储介质,将第二存储介质作为慢速存储介质,由于高速存储介质中的读写速度较快,其成本高于慢速存储介质,因此高速存储介质的空间非常有限。
[0107] 在此基础上,如果将利用率低的数据存储在第一区域,映射在高速存储介质上,而将利用率高的数据存储在第二区域,映射在慢速存储介质上,则用户读写数据时速度缓慢,浪费了高速存储介质上的空间。因此,需要对将数据存储在合适的位置,但是,数据的热度或利用率并非一成不变的因此,需要存储节点控制器可以基于数据的热度或数据的利用率等参数对数据在第一区域和第二区域中进行迁移,迁移的原则即为,将第二区域中的高价值数据迁移至第一区域,将第一区域中的低价值数据迁移至第二区域,数据的价值可以根据数据的热度、数据的利用率等参数确定。
[0108] 在一种可选的实施例中,根据数据在预设时间段内的热度来确定数据的价值,存储节点控制器监测混合虚拟存储设备中每份数据的热度,如果第一区域中存在热度低于预设值的数据,则确定需要对这部分数据进行迁移,并将这部分数据迁移至第二区域,如果第二区域中存在热度高于预设值的数据,则将这部分数据迁移至第一区域,从而实现了对数据在不同存储介质上的迁移。
[0109] 在另一种可选的实施例,数据在第一区域和第二区域的迁移还可以由用户自行设置,如果用户在某项操作中需要频繁的读取某个数据,而这个数据在第二区域中,则用户可以在执行这项操作之前,确定需要对这部分数据进行迁移,并将这个数据从第二区域中迁移第一区域。如果第一区域的数量较大,以无空间加入新的数据,用户还可以请求将第一区域的一些数据迁移至第二区域。
[0110] 本申请上述实施例在分布式存储系统的存储节点中,设置从第一存储介质和第二存储介质中抽象得到的混合虚拟存储设备,得到的混合虚拟存储设备既包括与第一存储介质对应的第一区域,也包括与第二存储介质对应的第二区域,从而使得能够将混合虚拟存储设备中,两个不同区域的数据进行迁移。通过该迁移功能,屏蔽了在云存储的技术对存储介质的依赖,无论生成何种存储技术,都可以基于上述方式构建混合虚拟存数设备,以实现对云存储的应用中用户存储的数据在不同的存储介质上进行迁移的效果,进而可以满足用户对高价值数据的高速存取的需求,以及用户对低价值数据低成本存储的需求。
[0111] 由此,本申请上述实施例解决了现有的云存储技术中数据的多个备份只能存储在同一种固定的存储介质上无法改变的技术问题。
[0112] 作为一种可选的实施例,判断是否需要对混合虚拟存储设备中的数据进行迁移,包括:第一区域内的第一数据的利用率是否低于预设利用率,如果第一数据的利用率低于预设利用率,则确定需要对第一数据进行迁移;和/或是否接收到第二区域内的第二数据对应的加速指令,如果接收到加速指令,则确定需要对第二数据进行迁移。
[0113] 具体的,上述数据的利用率用于表示数据的热度或数据的价值,数据的利用率越高,则说明数据的热度越高,为了便于用户使用,利用率高的数据应该存储在第一区域。上述加速指令可以由用户通过前端的客户端发出,用户可以对即将应用的数据发出加速指令。
[0114] 但数据的利用率并非一成不变的,对于最初利用率较高的,存储在第一区域的数据,在某段时间的利用率变低,如果仍将其保留在第一区域中,占用着第一存储介质的存储空间,则会导致对有限的第一存储介质的存储空间造成浪费,还有可能导致第一存储介质没有足够的空间存储其他利用率较高的数据。上述方案则用户实现混合虚拟存储设备中数据的自动降级,通过将利用率低于预设利用率的数据从第一区域迁移至第二区域,实现了对数据的存储介质的自动调整,并节省了存储介质的存储成本,节约了第一存储介质内的空间。
[0115] 上述操作可以在后台的线程中缓慢进行,例如每间隔1s执行一次,而不在物理介质层立即触发,从而使得用户不会立即感知到数据访问性能的下降。
[0116] 而对于最初利用率较低的,存储在第二区域的数据,在某段时间的利用率变高,如果仍将其保留在第二区域中,则会导致用户在读取时性能较低,从而导致用户的体验较差。在该种场景下,上述方案用于实现混合虚拟存储设备中数据的升级,将用户指定的需要升级的数据从第二区域迁移至第一区域,从而提升这部分被迁移的数据的读取性能。
[0117] 由于上述操作是用户的请求,因此应该尽快的响应用户的请求,在调用到加速接口后立即执行该迁移操作,从而使用户能够明显的感知到数据迁移后读取性能的提升。
[0118] 作为一种可选的实施例,第一数据的利用率由如下任意一项或多项确定:第一数据的读写频率、第一数据持续未被读写的时间以及前端设备的负载。
[0119] 具体的,读写频率越高,第一数据的利用率越高,而第一数据未被读写的时间越长,第一数据的利用率越低,前端设备的负载越大,第一数据的利用率越低。
[0120] 作为一种可选的实施例,分布式存储系统还包括:从第一存储介质中抽象得到的第一虚拟存储设备;从第二存储介质中抽象得到的第二虚拟存储设备,上述方法还包括:接收存储指令,其中,存储指令中包括存储对象;将存储对象存储至混合虚拟存储设备、第一虚拟存储设备和第二虚拟存储设备中的任意一个虚拟存储设备。
[0121] 具体的,上述第一虚拟存储设备直接从第一存储介质中抽象得到,第二虚拟存储设备直接从第二存储介质中抽象得到,由于第一存储介质的存取速度高于第二存储介质的存取速度,因此可以将第一虚拟存储设备作为高速存储设备,将第二虚拟存储设备作为慢速存储设备。
[0122] 从第一存储介质中抽象得到的第一虚拟存储设备,也可以是将第一存储介质中的一部分存储空间抽象成对软件的一个虚拟存储设备,即上述第一虚拟设备,第二虚拟存储设备可以使用同样的方式从第二存储介质中抽象得到。
[0123] 在一种可选的实施例中,仍以提供云存储服务的应用软件为例进行说明,用户通过应用软件的客户端使用该应用软件,在用户向客户端上传数据后,客户端提示用户选择存储区域,选项即包括上述混合虚拟存储设备、第一虚拟存储设备和第二虚拟存储设备,例如,客户端的界面可以显示“请选择存储设备”,并显示每个虚拟存储设备对应的控件,第一虚拟存储设备对应控件可以为“高速存储设备”,第二虚拟存储设备对应的控件可以为“慢速存储设备”,混合虚拟存储设备对应控件可以为“混合存储设备”,用户根据需求选择对应的虚拟存储设备,即可确定用于存储设备的虚拟存储设备。
[0124] Master(中心节点)根据用户存储时的指令中的介质要求,在存储服务器的集群中满足介质要求的存储服务器,然后将这些Replica分配到对应的存储服务器上,从而实现了Replica级别的定制化存储。
[0125] 作为一种可选的实施例,在存储对象为多个的情况下,多个备份被存储至不同的虚拟存储设备。
[0126] 存储对象通常为用户需要存储的数据的多个备份,在具有多个存储数据的情况下,用户可以指定每个存储数据存储在不同的虚拟存储设备中。
[0127] 在一种可选的实施例中,以支持用户在创建存储对象(3份Replica)时,可在数据的Replica级别制定存储的物理介质,结合图3所示,可以制定1份Replica存储在高速设备(如SSD)上,另2份Replica存储在不同存储服务器上的混合设备中,存储系统保证该数据后续的读操作一直发生在高速设备上,这样就降低了存储成本并且保证了数据的访问性能。
[0128] 需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
[0129] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0130] 实施例3
[0131] 根据本发明实施例,还提供了一种用于实施上述分布式存储系统的存储方法的分布式存储系统的存储装置,图6是根据本申请实施例3的一种分布式存储系统的存储装置的示意图,如图6所示,该装置600包括:
[0132] 判断模块602,用于判断是否需要对混合虚拟存储设备中的数据进行迁移,其中,混合虚拟存储设备从第一存储介质和第二存储介质中抽象得到,第二存储介质的存取速度低于第一存储介质的存取速度,混合虚拟存储设备包括与第一存储介质对应的第一区域和与第二存储介质对应的第二区域;
[0133] 迁移模块604,用于如果判断结果为需要对数据进行迁移,则对数据在第一区域和第二区域之间进行迁移。
[0134] 此处需要说明的是,上述判断模块602,和迁移模块604对应于实施例2中的步骤S51至步骤S53,两个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中。
[0135] 作为一种可选的实施例,判断模块包括:第一确定子模块,用于第一区域内的第一数据的利用率是否低于预设利用率,如果第一数据的利用率低于预设利用率,则确定需要对第一数据进行迁移;和/或第二确定子模块,用于是否接收到第二区域内的第二数据对应的加速指令,如果接收到加速指令,则确定需要对第二数据进行迁移。
[0136] 作为一种可选的实施例,第一数据的利用率由如下任意一项或多项确定:第一数据的读写频率、第一数据持续未被读写的时间以及前端设备的负载。
[0137] 作为一种可选的实施例,分布式存储系统还包括:从第一存储介质中抽象得到的第一虚拟存储设备;从第二存储介质中抽象得到的第二虚拟存储设备,上述装置还包括:接收模块,用于接收存储指令,其中,存储指令中包括存储对象;存储模块,用于将存储对象存储至混合虚拟存储设备、第一虚拟存储设备和第二虚拟存储设备中的任意一个虚拟存储设备。
[0138] 作为一种可选的实施例,在存储对象为多个的情况下,多个备份被存储至不同的虚拟存储设备。
[0139] 实施例4
[0140] 本发明的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。
[0141] 可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。
[0142] 在本实施例中,上述计算机终端可以执行分布式存储系统的存储方法中以下步骤的程序代码:判断是否需要对混合虚拟存储设备中的数据进行迁移,其中,混合虚拟存储设备从第一存储介质和第二存储介质中抽象得到,第二存储介质的存取速度低于第一存储介质的存取速度,混合虚拟存储设备包括与第一存储介质对应的第一区域和与第二存储介质对应的第二区域;如果判断结果为需要对数据进行迁移,则对数据在第一区域和第二区域之间进行迁移。
[0143] 可选地,图7是根据本申请实施例4的一种计算机终端的结构框图。如图7所示,该计算机终端A可以包括:一个或多个(图中仅示出一个)处理器702、存储器704、以及外设接口706。
[0144] 其中,存储器可用于存储软件程序以及模块,如本发明实施例中的分布式存储系统的存储方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的分布式存储系统的存储方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至终端A。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0145] 处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:判断是否需要对混合虚拟存储设备中的数据进行迁移,其中,混合虚拟存储设备从第一存储介质和第二存储介质中抽象得到,第二存储介质的存取速度低于第一存储介质的存取速度,混合虚拟存储设备包括与第一存储介质对应的第一区域和与第二存储介质对应的第二区域;如果判断结果为需要对数据进行迁移,则对数据在第一区域和第二区域之间进行迁移。
[0146] 可选的,上述处理器还可以执行如下步骤的程序代码:第一区域内的第一数据的利用率是否低于预设利用率,如果第一数据的利用率低于预设利用率,则确定需要对第一数据进行迁移;和/或是否接收到第二区域内的第二数据对应的加速指令,如果接收到加速指令,则确定需要对第二数据进行迁移。
[0147] 可选的,上述处理器还可以执行如下步骤的程序代码:第一数据的利用率由如下任意一项或多项确定:第一数据的读写频率、第一数据持续未被读写的时间以及前端设备的负载。
[0148] 可选的,上述处理器还可以执行如下步骤的程序代码:分布式存储系统还包括:从第一存储介质中抽象得到的第一虚拟存储设备和从第二存储介质中抽象得到的第二虚拟存储设备,接收存储指令,其中,存储指令中包括存储对象;将存储对象存储至混合虚拟存储设备、第一虚拟存储设备和第二虚拟存储设备中的任意一个虚拟存储设备。
[0149] 可选的,上述处理器还可以执行如下步骤的程序代码:在存储对象为多个的情况下,多个备份被存储至不同的虚拟存储设备。
[0150] 采用本发明实施例,提供了一种分布式存储系统的存储方案。通过在分布式存储系统的存储节点中,设置从第一存储介质和第二存储介质中抽象得到的混合虚拟存储设备,得到的混合虚拟存储设备既包括与第一存储介质对应的第一区域,也包括与第二存储介质对应的第二区域,从而使得能够将混合虚拟存储设备中,两个不同区域的数据进行迁移。通过该迁移功能,可以实现对云存储的应用中用户存储的数据在不同的存储介质上进行迁移的效果,从而可以满足用户对高价值数据的高速存取的需求,以及用户对低价值数据低成本存储的需求,进而解决了现有的云存储技术中数据的多个备份只能存储在同一种固定的存储介质上无法改变的技术问题。
[0151] 本领域普通技术人员可以理解,图7所示的结构仅为示意,计算机终端也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌声电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图7其并不对上述电子装置的结构造成限定。例如,计算机终端A还可包括比图7中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图7所示不同的配置。
[0152] 本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。
[0153] 实施例5
[0154] 本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的分布式存储系统的存储方法所执行的程序代码。
[0155] 可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
[0156] 可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:判断是否需要对混合虚拟存储设备中的数据进行迁移,其中,混合虚拟存储设备从第一存储介质和第二存储介质中抽象得到,第二存储介质的存取速度低于第一存储介质的存取速度,混合虚拟存储设备包括与第一存储介质对应的第一区域和与第二存储介质对应的第二区域;如果判断结果为需要对数据进行迁移,则对数据在第一区域和第二区域之间进行迁移。
[0157] 上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0158] 在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0159] 在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
[0160] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0161] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0162] 所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0163] 以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈