数据存储方法以及分布式系统与流程

文档序号:30459974发布日期:2022-06-18 04:20阅读:175来源:国知局
数据存储方法以及分布式系统与流程

1.本说明书实施例涉及计算机技术领域,特别涉及一种数据存储方法。


背景技术:

2.为了提高数据的安全性,对数据进行冗余存储被广泛应用于数据存储场景中。
3.相关技术中,可以通过副本方式、纠删码(ec,erasure code)方式等等实现冗余存储。其中,副本方式指存储原始数据的副本,纠删码方式指存储原始数据经过纠删码切分得到的各数据块。
4.但是,上述方式进行冗余存储的调整时,通常从安全性需求的差异角度出发,仅调整存储结果的冗余度,能够满足的需求过于单一,不够合理。因此,需要提供更加合理的方案。


技术实现要素:

5.有鉴于此,本说明书实施例提供了一种数据存储方法。本说明书一个或者多个实施例同时涉及一种分布式系统,,一种数据存储装置,一种计算设备,一种计算机可读存储介质以及一种计算机程序,以解决现有技术中存在的技术缺陷。
6.根据本说明书实施例的第一方面,提供了一种数据存储方法,应用于分布式系统的元数据节点,包括:
7.获取原始数据的热度指标、以及所述原始数据的当前存储方式;
8.根据所述热度指标和所述当前存储方式,确定所述原始数据的目标存储方式;
9.基于所述目标存储方式,更新对所述原始数据的存储。
10.根据本说明书实施例的第二方面,提供了一种分布式系统,包括:元数据节点和数据存储节点;
11.所述元数据节点,被配置为获取原始数据的热度指标、以及所述原始数据的当前存储方式;根据所述热度指标和所述当前存储方式,确定所述原始数据的目标存储方式,发送基于所述目标存储方式的存储指示至所述数据存储节点;
12.所述数据存储节点,被配置为基于所述存储指示,更新对所述原始数据的存储。
13.根据本说明书实施例的第三方面,提供了一种计算设备,包括:
14.存储器和处理器;
15.所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现上述数据存储方法的步骤。
16.根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现上述数据存储方法的步骤。
17.根据本说明书实施例的第五方面,提供了一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述数据存储方法的步骤。
18.本说明书一个实施例实现了获取原始数据的热度指标、以及原始数据的当前存储
方式;根据热度指标和当前存储方式,确定原始数据的目标存储方式;基于目标存储方式,更新对原始数据的存储。
19.本说明书实施例中,不同的存储方式可以满足不同的读写效率需求。并且,原始数据的热度指标可以反映对原始数据的读写效率需求。因此,可以根据原始数据的热度指标和当前存储方式,确定与原始数据的热度指标对应的目标存储方式。在此基础上,基于目标存储方式,更新对原始数据的存储,可以保证对原始数据的存储可以满足读写效率需求。并且,任一存储方式为能够满足安全性需求的存储方式。因此,通过存储方式的调整,保证所进行的调整能够兼顾读写效率需求和安全性需求,满足的需求更加全面,存储更加合理。
附图说明
20.图1是本说明书一个实施例提供的一种数据存储方法的流程图;
21.图2是本说明书一个实施例提供的一种数据存储方法中,副本存储的情况下存储更新的处理过程流程图;
22.图3是本说明书一个实施例提供的一种数据存储方法中,纠删码存储的情况下存储更新的处理过程流程图;
23.图4是本说明书一个实施例提供的一种数据存储方法在分布式系统中的应用场景示例图;
24.图5是本说明书一个实施例提供的一种分布式系统的结构示意图;
25.图6是本说明书一个实施例提供的一种数据存储装置的结构示意图;
26.图7是本说明书一个实施例提供的一种计算设备的结构框图。
具体实施方式
27.在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
28.在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
29.应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
30.首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
31.分布式系统:是多个处理机通过通信线路互联而构成的松散耦合的系统。。
32.元数据节点(metanode):分布式系统中,用于存储元数据的中心化节点。其中,元数据(metadata),又称中介数据、中继数据,为描述数据的数据(data about data),主要是
描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。例如,元数据通常可以为所存储文件的状态信息、所存储文件的数据段(chunk)的位置信息等、chunk的长度信息等。
33.数据节点(datanode):分布式系统中存储数据块的节点,通常负责数据块副本的写入,存储,读取,删除等操作。
34.客户端(client):分布式系统中提供给用户,进行基于元数据的操作和数据读写的组件。
35.纠删码(ec,erasure coding):是一种编码容错算法。其基本原理就是把传输的信号分段,加入一定的校验再让各段间发生相互关联,即使在传输过程中丢失部分信号,接收端仍然能通过算法将完整的信息计算出来。在数据存储中,纠删码将数据分割成片段也就是数据块,把冗余数据块扩展和编码,并将其存储在不同的位置,例如,存储在不同的磁盘、存储节点等存储位置。利用纠删码算法对原始数据分块,得到的总数据块个数=原始数据块个数+校验块个数,即n=k+m,纠删码技术允许在数据存储中任意m个数据块损坏的场景中,可以利用余下的数据块恢复出原始数据。其中,原始数据块为直接切分原始数据得到的数据块。
36.分布式存储系统往往将写入该系统的字节流切分成小段(chunk),将chunk以ec条带、副本的形式存储在分布式系统的不同节点中。其中,ec条带也就是纠删码处理数据后得到的数据块。例如,将一个chunk存储为3个副本,将另一个chunk存储为含有8个原始数据块3个校验数据块的ec条带,存储后的数据可供后续读取。相对于多副本,ec条带的冗余比更低;副本数越少,冗余比越低;ec条带越宽,冗余比更低。其中,冗余比为容灾数据的总数与原始数据的比值,容灾数据具体为副本、ec条带的各数据块。在数据读取时,对于副本存储的原始数据,可以通过读取任意一个副本获得,副本数越多,可供读取的数据源越多。ec存储的原始数据,可以通过读取原始数据的各数据块重构得到,ec条带越宽,重构需要的数据块越多。这样,副本存储方式中可以直接读取以及拷贝存储,因此读写效率相对于纠删码存储更高。而ec条带冗余比更低,相应地,在同等容灾能力下,占用的存储空间更小。
37.在上述基础上,在本说明书中,提供了一种数据存储方法,本说明书同时涉及一种分布式系统,一种数据存储装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
38.参见图1,图1示出了根据本说明书一个实施例提供的一种数据存储方法的流程图,应用于分布式系统的元数据节点,具体包括以下步骤:
39.s102,获取原始数据的热度指标、以及原始数据的当前存储方式。
40.其中,原始数据包括分布式系统中存储的数据。在一种情况中,原始数据可以为分布式系统存储的数据中心,允许进行存储更新的数据。原始数据的当前存储方式为在更新对原始数据的存储前,原始数据在分布式系统中的存储方式。例如,原始数据的当前存储方式可以为副本存储或者纠删码存储等方式。副本存储包括:存储原始数据以及原始数据的至少一个副本。纠删码存储包括:利用预设纠删码算法对原始数据进行分块,存储得到的多个数据块。并且,原始数据的热度指标为能够反映对原始数据的读写效率需求的指标。为此,在一种可选的实施方式中,上述获取原始数据的热度指标,具体可以包括如下步骤:
41.获取原始数据的读写频度,基于读写频度,获得原始数据的热度指标。
42.具体的,在数据结构中,频度是指一个定义变量在它的函数中,并且是它在执行到该段语句为止时,这个定义变量在函数总共执行基本操作的次数。示例性的,客户端client可以收集原始数据的读写频度,也就是读取/写入频度,并通过心跳连接定期将原始数据的读写频度发送给元数据节点metanode。这样,无需经过复杂的计算、解析即可得到原始数据的热度指标,更加便捷。
43.在一种情况中,原始数据的热度指标可以由元数据节点定期向客户端请求。或者,元数据节点可以接收到客户端对原始数据的访问请求,该访问请求可以包括读请求或者写请求,因此,可以由元数据节点直接收集原始数据的读写频度。对于副本存储形式的原始数据,任一副本的读写频度与该副本的同源副本的读写频度相同,也即读写频度是针对同一源数据的读写频度。源数据是指作为分布式系统存储的原始数据来源的数据,例如,用于拷贝得到副本的数据,用于分块得到ec条带的数据。
44.在一种情况中,上述获取原始数据的热度指标,具体可以包括如下步骤:
45.获取与原始数据的访问请求存在交互的项目数据,对所获取的项目数据进行统计得到原始数据的热度指标。例如,原始数据为视频数据,与视频数据的访问请求存在交互的项目数据为收藏量、播放量、评论数等数据。对收藏量、播放量、评论数等数据进行统计,得到视频数据的热度指标。
46.在一种可选的实施方式中,分布式系统存储有目标用户的多个数据;
47.相应地,在上述获取原始数据的热度指标之前,本说明书实施例提供的数据存储方法,还可以包括如下步骤:
48.展示与多个数据对应的存储配置界面,接收目标用户的客户端发送的存储配置信息;
49.相应地,上述获取原始数据的热度指标,具体可以包括如下步骤:
50.根据存储配置信息,确定多个数据中的原始数据,获取原始数据的热度指标。
51.在具体应用中,元数据节点可以将多个数据对应的存储配置界面的渲染数据发送至目标用户的客户端,从而接收目标用户的客户端发送的存储配置信息。其中,存储配置信息用于表征原始数据的存储规范。示例性的,存储配置信息至少可以包括:存储配置信息所针对的原始数据的数据标识和最小容错能力也就是容灾能力,还可以包括数据冗余度上下限、是否允许存储更新等等。示例性的,最小容错能力可以为可容两份数据块丢失,数据冗余度上下限为1.375-10等等。
52.在上述基础上,根据存储配置信息,确定多个数据中的原始数据,具体可以包括:将存储配置信息与多个数据进行匹配,匹配成功则得到原始数据。或者,存储配置信息中,提取是否允许存储更新的信息,若提取结果为允许存储更新,则将多个数据中与存储配置信息包含的数据标识对应的数据确定为原始数据。这样,分布式系统可以在冗余度范围内变更文件的配置,并保证存储更新结果的最小容错能力。通过本实施例,用户可以自主设置原始数据的存储规范,从而保证对原始数据的存储更加符合用户需求。
53.任何可以获取热度指标的方式均可用于本说明书,本实施例对此不作限制。
54.s104,根据热度指标和当前存储方式,确定原始数据的目标存储方式。
55.在具体应用中,目标存储方式是指与热度指标匹配的存储方式。并且,不同的存储方式可以满足不同的读写效率需求。原始数据的热度指标可以反映对原始数据的读写效率
需求。因此,可以根据原始数据的热度指标和当前存储方式,确定与原始数据的热度指标对应的目标存储方式。根据热度指标和当前存储方式,确定原始数据的目标存储方式的具体方式,可以包括:从预先建立的热度指标、当前存储方式以及目标存储方式的对应关系中,查找原始数据的目标存储方式。或者,示例性的,可以根据热度指标满足的不同条件,在当前存储方式的基础上,确定原始数据的目标存储。为了便于理解和合理布局,后续以可选实施例的形式对该示例进行具体说明。
56.s106,基于目标存储方式,更新对原始数据的存储。
57.在具体应用中,基于目标存储方式,更新对原始数据的存储,可以保证对原始数据的存储可以满足读写效率需求。并且,任一存储方式为能够满足安全性需求的存储方式。因此,通过存储方式的调整,保证所进行的调整能够兼顾读写效率需求和安全性需求,满足的需求更加全面,存储更加合理。并且,对应于不同的目标存储方式,基于目标存储方式,更新对原始数据的存储的具体方式不同,为了便于理解和合理布局,后续以可选实施例的形式进行具体说明。并且,在一种可选的实施方式中,在上述基于目标存储方式,更新对原始数据的存储之后,本说明书实施例提供的数据存储方法,还可以包括如下步骤:
58.获取更新后的存储结果;
59.基于更新后的存储结果,更新原始数据的存储记录。
60.其中,原始数据的存储记录可以为更新后的存储结果的元数据的形式。例如,该存储记录可以包括:更新后的存储结果也就是存储更新后的原始数据在分布式系统中的存储位置、存储配置信息等等。其中,存储位置可以为各段的副本的存储位置,ec条带的存储位置。存储配置信息用于表征原始数据的存储规范。示例性的,存储配置信息至少可以包括:存储配置信息所针对的原始数据的数据标识和最小容错能力也就是容灾能力,还可以包括数据冗余度上下限、是否允许存储更新等等。示例性的,最小容错能力可以为可容两份数据块丢失,数据冗余度上下限为1.375-10等等。
61.本说明书实施例中,不同的存储方式可以满足不同的读写效率需求。并且,原始数据的热度指标可以反映对原始数据的读写效率需求。因此,可以根据原始数据的热度指标和当前存储方式,确定与原始数据的热度指标对应的目标存储方式。在此基础上,基于目标存储方式,更新对原始数据的存储,可以保证对原始数据的存储可以满足读写效率需求。并且,任一存储方式为能够满足安全性需求的存储方式。因此,通过存储方式的调整,保证所进行的调整能够兼顾读写效率需求和安全性需求,满足的需求更加全面,存储更加合理。
62.在一种可选的实施方式中,上述基于目标存储方式,更新对原始数据的存储,具体可以包括如下步骤:
63.在目标存储方式与当前存储方式不同的情况下,识别当前存储方式下原始数据中容灾数据的当前数量;
64.根据当前数量,确定目标存储方式下原始数据中容灾数据的目标数量,按照目标数量,利用目标存储方式,更新对原始数据的存储。
65.存储方式变更,通过容灾数据的当前冗余度,确定目标存储方式,保证安全性在调整前后一致,更加符合需求。
66.在具体应用中,当前存储方式下原始数据中容灾数据的当前数量,可以表征当前存储方式的容灾效果。例如,容灾数据的当前数量可以为当前存储方式下原始数据中副本
的个数以、校验块的个数等等。并且,目标存储方式与当前存储方式不同,表明读写效率需求发生变化,而安全性能也就是容灾能力的需求很可能不变。在此基础上,为了通过容灾数据的当前数量,确定目标存储方式,保证容灾能力在存储更新前后一致,更加符合用户需求,可以执行本实施例的步骤。示例性的,副本存储的容灾能力是可以容忍2个副本丢失,那么副本的数目是3个。相应地,转换为纠删码存储时容灾能力为可以容忍2次丢失,那么纠删码算法中m为2,再根据纠删码算法的冗余度,可以得到容灾效果与副本存储一致的纠删码算法的分割参数。其中,纠删码算法的冗余度为总数据块个数与m的比值,这样,可以根据上述冗余度确定容灾效果与副本存储一致的纠删码算法的分割参数k的值。
67.在一种可选的实施方式中,上述根据热度指标和当前存储方式,确定原始数据的目标存储方式,具体可以包括如下步骤:
68.若热度指标符合第一热度条件,则确定原始数据的目标存储方式为副本存储方式;
69.若热度指标符合第二热度条件,则确定原始数据的目标存储方式为纠删码存储方式。
70.在具体应用中,热度指标符合第一热度条件可以包括:热度指标属于第一热度区间,或者热度指标≥第一热度阈值。其中,副本存储方式为对原始数据进行多副本存储的方式。热度指标符合第二热度条件可以包括:热度指标属于第二热度区间,或者热度指标小于第二热度阈值。其中,纠删码存储方式为利用纠删码算法获得原始数据的多个数据块,并存储多个数据块的方式。这样,可以实现对热度相对高也就是读写效率需求更高的原始数据采用副本存储方式,对热度相对低也就是读写效率需求更低的原始数据采用纠删码存储方式。因此,后续以目标存储方式进行原始数据的存储更新,可以保证副本存储满足高热数据对读写效率的高要求。并且低热数据也就是热度指标符合第二热度条件的原始数据从副本存储转为ec存储,节省存储空间,解决ec转为副本后造成的存储空间占用,从而实现兼顾提高读写效率、以及降低存储空间占用的效果。
71.在一种可选的实施方式中,上述根据热度指标和当前存储方式,确定原始数据的目标存储方式,具体可以包括如下步骤:
72.比较热度指标与第三热度条件,根据比较结果确定是否调整原始数据的容灾数据的当前数量;
73.若确定调整,则根据比较结果和当前数量,确定容灾数据的目标数量,按照目标数量更新当前存储方式,获得原始数据的目标存储方式。
74.在具体应用中,比较热度指标与第三热度条件具体可以包括:判断热度指标是否属于第三热度区间或者与第三热度阈值间的大小关系。这样,根据比较结果确定是否调整原始数据的容灾数据的当前数量,具体可以包括:热度指标属于第三热度区间,则确定调整;或者,热度指标不等于第三热度阈值,则确定调整。本实施例的调整也就是目标存储方式,是指冗余存储方式不变,调整冗余数据也就是容灾数据的个数。因此,可以根据比较结果和当前数量,确定容灾数据的目标数量,按照目标数量更新当前存储方式,获得原始数据的目标存储方式。这样,容灾数据的个数根据比较结果调整,保证调整结果更加准确。并且调整方式与当前存储方式一致,因此,可以减少更换存储方式进行调整造成的调整效率降低问题。
75.其中,根据比较结果和当前数量,确定容灾数据的目标数量,具体可以包括:热度指标属于第三热度区间中的第一子区间,则对预设增量和当前数量求和,得到容灾数据的目标数量;热度指标属于第三热度区间中的第二子区间,则对预设增量和当前数量求差,得到容灾数据的目标数量。第一子区间的下限大于第二子区间的上限。预设增量为正值,并且,可以按照存储配置信息中的最小容错能力、数据冗余度上下限等配置信息进行设置。或者,根据比较结果和当前数量,确定容灾数据的目标数量,具体可以包括:热度指标≥第三热度阈值,则对预设增量和当前数量求和,得到容灾数据的目标数量;热度指标小于第三热度阈值,则对预设增量和当前数量求差,得到容灾数据的目标数量。
76.在一种可选的实施方式中,上述按照目标数量更新当前存储方式,获得原始数据的目标存储方式,具体可以包括如下步骤包括:
77.在当前存储方式为纠删码存储的情况下,按照目标数量更新纠删码存储对应的切片参数,获得目标存储方式;
78.在当前存储方式为副本存储的情况下,将原始数据的副本数量调整为目标数量,获得目标存储方式。
79.在具体应用中,纠删码存储包括:利用纠删码算法对原始数据分块,得到的总数据块个数=原始数据块个数+校验块个数,即n=k+m,纠删码技术允许在数据存储中任意m个数据块损坏的场景中,可以利用余下的数据块恢复出原始数据。其中,原始数据块为直接切分原始数据得到的数据块。因此,纠删码存储对应的切片参数可以包括:原始数据块个数、校验块个数中的至少一种。这样,利用切片结果更新原始数据的容灾数据,与直接调整容灾数据的个数相比,可以保证调整的有效性:容灾个数减少后仍能恢复原始数据,容灾作用有效;容灾个数增加后占用的存储空间相对更低,保留纠删码算法的优势。并且,对副本存储更新是将原始数据的副本数量调整为目标数量,这样,对于副本数量增加的情况直接拷贝即可,对于副本数量减少的情况直接删除即可,读写效率更高。
80.示例性的,如图2本说明书一个实施例提供的一种数据存储方法中,副本存储的情况下存储更新的处理过程流程图所示:本实施例引入一个调度器和多个执行器。其中,调度器在分布式系统中是中心化部署的,可以专门部署一个调度器,或者调度器可以是元数据节点metanode下的一个进程,或者调度器可以是元数据节点metanode的工作进程的一部分。对于以副本形式存储的数据,增加或降低副本数,只需要经过段chunk级别的复制和删除。以调度器为原数据节点metanode下的一个进程为例,变更流程包括:1.metanode获取进行存储更新的原始数据的所有chunk,并选择节点/副本进行副本的增加或删除。例如,将文件file1划分为chunk0至chunk5的段。对此,chunk03副本—》5副本:将chunk0从3副本存储更新为5副本存储;chunk13副本—》5副本:将chunk1从3副本存储更新为5副本存储。并且,删除副本的指令由metanode的调度器直接发送给存储有相应副本的执行器。复制副本的任务以chunk粒度发送到调度器。2.调度器根据一定规则,为每一个chunk的复制副本的任务选择执行器。例如,chunk03副本—》5副本的任务和chunk13副本—》5副本,分别由执行器1和执行器3执行。3.执行器完成上述复制副本的任务后,发送复制成功的通知至调度器。例如,执行器3完成上述复制。4.调度器向元数据节点反馈存储更新的结果。例如,调度器反馈chunk1更新为5副本存储的结果至元数据节点。
81.为此,在一种可选的实施方式中,上述基于目标存储方式,更新对原始数据的存
储,具体可以包括如下步骤:
82.根据目标存储方式,确定针对原始数据的存储指示;
83.发送存储指示至分布式系统的调度器,以使调度器获取分布式系统中各存储节点的处理性能指标,并根据处理性能指标和存储指示,确定各存储节点中的目标存储节点,发送存储指示至目标存储节点,以指示目标存储节点更新对原始数据的存储。
84.在具体应用中,处理性能指标可以为各存储节点的存储任务数量、存储任务所针对的数据量的大小等等。其中,存储指示至少包含针对原始数据执行目标存储方式的各参数,例如副本数量、切片个数等等,用于确定执行节点的数量。执行器一般在datanode上,可以是datanode的一个独立进程,或者datanode的工作进程的一部分。这样,在选择执行器也就是目标存储节点时,可以减少选择任务量过大、任务数过高的执行器,从而提高存储效率。目标存储节点更新对原始数据的存储,具体可以包括执行器复制副本到指定位置,其中,指定位置可以是目标存储节点中的存储空间,或者指定存储节点,这都是合理的,具体可以根据应用场景进行设置。
85.并且在一种可选的实施方式中,上述目标存储方式为副本存储;存储指示包含原始数据对应的源节点的节点信息、以及目的节点的节点信息;
86.相应地,上述发送存储指示至分布式系统的调度器,具体可以包括如下步骤:
87.发送存储指示至分布式系统的调度器,以使调度器根据源节点的节点信息以及目的节点的节点信息,确定各存储节点中的目标存储节点。
88.其中,源节点指存储原始数据的源数据的节点,源数据可以包括原始数据或者原始数据的副本。目的节点指对源数据进行副本存储的节点。并且,根据源节点的节点信息以及目的节点的节点信息,确定各存储节点中的目标存储节点,可以包括:将源节点本身,目的节点本身,与源节点间的距离小于距离阈值的节点,或者与目的节点间的距离小于距离阈值的节点,确定为各存储节点中的目标存储节点。
89.扩展内容:与这两个节点的距离满足距离条件。这样,本实施例可以实现选择源节点、目的节点、与源节点间数据传输效率相对更高、与目的节点间数据传输效率相对更高的节点,作为目标存储节点执行任务,从而节省数据读取和存储时进行数据传输耗费的时间,可以提高存储更新的效率。
90.示例性的,如图3本说明书一个实施例提供的一种数据存储方法中,纠删码存储的情况下存储更新的处理过程流程图所示:对于纠删码数据冗余度的变化、以及存储方式的变化,例如纠删码转副本、副本转纠删码,处理的粒度是文件级别的重写。该存储更新的流程可以包括:1.元数据节点metanode确定新的配置,将文件复制任务发送给调度器进行文件级别的数据复制。例如,新的配置为file1重写为8+3ec。2.元数据节点的调度器从多个执行器中选择执行器执行复制任务,并发送新的配置给所选择的执行器。例如,发送“复制file1为8+3ec”的配置给执行器3,也就是指示执行器3对file1进行8+3的ec存储。并且,调度器可以避免挑选有较多复制任务的执行器,以保证效率更高。3.执行器按照新的配置进行存储更新,并反馈复制成功的消息至调度器。其中,复制成功表征完成更新存储。4.调度器在任务执行完毕后返回执行结果给元数据节点metanode,元数据节点metanode将原文件替换为新复制的文件,并在一定时间后删除原文件。例如,调度器反馈结果后,元数据节点将file1替换为8+3ec文件:将file1的存储信息替换为8+3ec的存储信息。
91.并且,执行器进行执行任务时,可以观察执行器的网络、磁盘的带宽用量,调节后台复制的速率,避免影响前台应用。为此,在一种可选的实施方式中,上述基于目标存储方式,更新对原始数据的存储,具体可以包括如下步骤:
92.根据目标存储方式,确定分布式系统中的目标存储节点、以及针对原始数据的存储指示;
93.发送存储指示至目标存储节点,以使目标存储节点获取当前可用计算资源,基于当前可用计算资源,分配目标计算资源,并按照目标计算资源,基于存储指示对原始数据的存储进行更新。
94.在具体应用中,当前可用计算资源为目标存储节点当前未被占用的计算资源。例如,当前可用计算资源可以包括目标存储节点当前可用的网络、磁盘的带宽用量、可接受的负载大小等等。并且,基于当前可用计算资源,分配目标计算资源,可以包括:按照分配比例,从当前可用计算资源中划分目标计算资源。其中,分配比例可以为预先设置的固定值,例如70%。示例性的,可以为获取目标存储节点在上一个存储更新阶段的历史负载,例如客户端访问目标存储节点占用的带宽,计算历史负载与目标存储节点的总带宽的差值,得到当前可用计算资源。在一种情况中,可以预先设置最小计算资源,若上述当亲可用计算资源小于最小计算资源,则将最小计算资源作为当前可用计算资源。另外,调度器可以轮询执行器得到任务完成情况。
95.下述结合附图4,以本说明书提供的数据存储方法在分布式系统的应用为例,对所述数据存储方法进行进一步说明。其中,图4示出了本说明书一个实施例提供的一种数据存储方法在分布式系统中的应用场景示例图,具体包括以下步骤:
96.步骤1,存储系统也就是分布式系统,提供一种文件也就是原始数据,其配置范围可以由用户控制。用户可以通过客户端例如client1、client2设置该文件的最小容错能力(如可容两份数据块丢失)、数据冗余度上下限(如1.375-10)。分布式系统可以在冗余度范围内变更文件的配置,并保证文件的最小容错能力。例如,客户端针对可变配置文件file1,也就是存储可以更新的文件file1的配置信息为:冗余度1.375-5,最小容错2,也就是可以2份容灾数据丢失后不影响原始数据的完好。并且,可以有备选配置:副本3/4/5,ec8+3,6+3,4+3,2+3。
97.步骤2,客户端client收集可变配置文件的读取/写入频度,并通过心跳定期告知元数据节点metanode这些文件的访问频度。例如,client1告知元数据节点metanode文件f1的读写频度,client2告知元数据节点metanode文件f1的读写频度。其中,文件f1可以指文件file1。
98.步骤3,元数据节点metanode收集频度,参照所有需收集文件也就是可以进行存储更新的文件的访问频度分布,对不同访问频度的文件进行不同的存储更新。例如,对相对高频访问的文件提高冗余度,对相对低频访问的文件降低冗余度。例如,相对低频访问的file4,那么file4从5副本变到3副本。
99.步骤4,对于副本存储的数据,增加或降低副本数,只需要经过段chunk级别的副本复制和删除,代价较小。对于纠删码数据冗余度的变化、以及存储方式的变化(例如,纠删码存储转变为副本存储、副本存储转变为纠删码存储等),处理的粒度是文件级别的重写。因此,副本存储的副本冗余度变化的调整很可能会比纠删码数据冗余度的变化、以及存储方
式的情形出现更加高频。
100.本实施例中的原始数据可以看作一种能够自动伸缩配置的文件。在数据读取、写入过程中,通过记录全局数据读取频度,将频繁访问数据复制成热数据友好配置(如高拷贝数的副本),将冷数据降级为冷数据友好配置(如宽条带ec)。在配置更新的过程中,涉及到数据搬迁,本专利提供完整搬迁协议,定义不同文件配置更新的优先级,并通过编排调度的方式使得优先级得以实现、配置更新行为对前台服务干扰低。
101.与上述方法实施例相对应,本说明书还提供了分布式系统实施例,图5示出了本说明书一个实施例提供的一种分布式系统的结构示意图。如图5所示,该分布式系统500包括:元数据节点502和数据存储节点504;
102.元数据节点502,被配置为获取原始数据的热度指标、以及原始数据的当前存储方式;根据热度指标和当前存储方式,确定原始数据的目标存储方式,发送基于目标存储方式的存储指示至数据存储节点;
103.数据存储节点504,被配置为基于存储指示,更新对原始数据的存储。
104.本说明书实施例中,不同的存储方式可以满足不同的读写效率需求。并且,原始数据的热度指标可以反映对原始数据的读写效率需求。因此,可以根据原始数据的热度指标和当前存储方式,确定与原始数据的热度指标对应的目标存储方式。在此基础上,基于目标存储方式,更新对原始数据的存储,可以保证对原始数据的存储可以满足读写效率需求。并且,任一存储方式为能够满足安全性需求的存储方式。因此,通过存储方式的调整,保证所进行的调整能够兼顾读写效率需求和安全性需求,满足的需求更加全面,存储更加合理。
105.可选地,元数据节点502,进一步被配置为:
106.在目标存储方式与当前存储方式不同的情况下,识别当前存储方式下原始数据中容灾数据的当前数量;
107.根据当前数量,确定目标存储方式下原始数据中容灾数据的目标数量,按照目标数量,利用目标存储方式,确定基于目标存储方式的存储指示。
108.可选地,元数据节点502,进一步被配置为:
109.若热度指标符合第一热度条件,则确定原始数据的目标存储方式为副本存储方式;
110.若热度指标符合第二热度条件,则确定原始数据的目标存储方式为纠删码存储方式。
111.可选地,元数据节点502,进一步被配置为:
112.比较热度指标与第三热度条件,根据比较结果确定是否调整原始数据的容灾数据的当前数量;
113.若确定调整,则根据比较结果和当前数量,确定容灾数据的目标数量,按照目标数量更新当前存储方式,获得原始数据的目标存储方式。
114.可选地,元数据节点502,进一步被配置为:
115.在当前存储方式为纠删码存储的情况下,按照目标数量更新纠删码存储对应的切片参数,获得目标存储方式;
116.在当前存储方式为副本存储的情况下,将原始数据的副本数量调整为目标数量,获得目标存储方式。
117.可选地,元数据节点502,进一步被配置为:
118.根据目标存储方式,确定分布式系统中的目标存储节点、以及针对原始数据的存储指示,发送存储指示至目标存储节点;
119.数据存储节点504,进一步被配置为目标存储节点获取当前可用计算资源,基于当前可用计算资源,分配目标计算资源,并按照目标计算资源,基于存储指示对原始数据的存储进行更新。
120.可选地,元数据节点502,进一步被配置为:
121.根据目标存储方式,确定针对原始数据的存储指示;发送存储指示至分布式系统的调度器,以使调度器获取分布式系统中各存储节点的处理性能指标,并根据处理性能指标和存储指示,确定各存储节点中的目标存储节点,发送存储指示至目标存储节点,以指示目标存储节点更新对原始数据的存储。
122.可选地,目标存储方式为副本存储;存储指示包含原始数据对应的源节点的节点信息、以及目的节点的节点信息;
123.相应地,元数据节点502,进一步被配置为:
124.发送存储指示至分布式系统的调度器,以使调度器根据所源节点的节点信息以及目的节点的节点信息,确定各存储节点中的目标存储节点。
125.可选地,元数据节点502,还被配置为:
126.获取更新后的存储结果;
127.基于更新后的存储结果,更新原始数据的存储记录。
128.可选地,元数据节点502,进一步被配置为:
129.获取原始数据的读写频度,基于读写频度,获得原始数据的热度指标。
130.可选地,分布式系统存储有目标用户的多个数据;
131.相应地,元数据节点502,进一步被配置为:
132.展示与多个数据对应的存储配置界面,接收目标用户的客户端发送的存储配置信息;
133.根据存储配置信息,确定多个数据中的原始数据,获取原始数据的热度指标。
134.上述为本实施例的一种分布式系统的示意性方案。需要说明的是,该分布式系统的技术方案与上述的数据存储方法的技术方案属于同一构思,分布式系统的技术方案未详细描述的细节内容,均可以参见上述数据存储方法的技术方案的描述。
135.与上述方法实施例相对应,本说明书还提供了数据存储装置实施例,图6示出了本说明书一个实施例提供的一种数据存储装置的结构示意图。如图6所示,应用于分布式系统的元数据节点,该装置包括:
136.参考信息获取模块602,被配置为获取原始数据的热度指标、以及原始数据的当前存储方式;
137.目标方式确定模块604,被配置为根据热度指标和当前存储方式,确定原始数据的目标存储方式;
138.数据存储更新模块606,被配置为基于目标存储方式,更新对原始数据的存储。
139.本说明书实施例中,不同的存储方式可以满足不同的读写效率需求。并且,原始数据的热度指标可以反映对原始数据的读写效率需求。因此,可以根据原始数据的热度指标
和当前存储方式,确定与原始数据的热度指标对应的目标存储方式。在此基础上,基于目标存储方式,更新对原始数据的存储,可以保证对原始数据的存储可以满足读写效率需求。并且,任一存储方式为能够满足安全性需求的存储方式。因此,通过存储方式的调整,保证所进行的调整能够兼顾读写效率需求和安全性需求,满足的需求更加全面,存储更加合理。
140.可选地,数据存储更新模块606,进一步被配置为:
141.在目标存储方式与当前存储方式不同的情况下,识别当前存储方式下原始数据中容灾数据的当前数量;
142.根据当前数量,确定目标存储方式下原始数据中容灾数据的目标数量,按照目标数量,利用目标存储方式,更新对原始数据的存储。
143.可选地,目标方式确定模块604,进一步被配置为:
144.若热度指标符合第一热度条件,则确定原始数据的目标存储方式为副本存储方式;
145.若热度指标符合第二热度条件,则确定原始数据的目标存储方式为纠删码存储方式。
146.可选地,目标方式确定模块604,进一步被配置为:
147.比较热度指标与第三热度条件,根据比较结果确定是否调整原始数据的容灾数据的当前数量;
148.若确定调整,则根据比较结果和当前数量,确定容灾数据的目标数量,按照目标数量更新当前存储方式,获得原始数据的目标存储方式。
149.可选地,目标方式确定模块604,进一步被配置为:
150.在当前存储方式为纠删码存储的情况下,按照目标数量更新纠删码存储对应的切片参数,获得目标存储方式;
151.在当前存储方式为副本存储的情况下,将原始数据的副本数量调整为目标数量,获得目标存储方式。
152.可选地,数据存储更新模块606,进一步被配置为:
153.根据目标存储方式,确定分布式系统中的目标存储节点、以及针对原始数据的存储指示;
154.发送存储指示至目标存储节点,以使目标存储节点获取当前可用计算资源,基于当前可用计算资源,分配目标计算资源,并按照目标计算资源,基于存储指示对原始数据的存储进行更新。
155.可选地,数据存储更新模块606,进一步被配置为:
156.根据目标存储方式,确定针对原始数据的存储指示;
157.发送存储指示至分布式系统的调度器,以使调度器获取分布式系统中各存储节点的处理性能指标,并根据处理性能指标和存储指示,确定各存储节点中的目标存储节点,发送存储指示至目标存储节点,以指示目标存储节点更新对原始数据的存储。
158.可选地,目标存储方式为副本存储;存储指示包含原始数据对应的源节点的节点信息、以及目的节点的节点信息;
159.相应地,数据存储更新模块606,进一步被配置为:
160.发送存储指示至分布式系统的调度器,以使调度器根据所源节点的节点信息以及
目的节点的节点信息,确定各存储节点中的目标存储节点。
161.可选地,所述装置还包括记录更新模块,被配置为:
162.获取更新后的存储结果;
163.基于更新后的存储结果,更新原始数据的存储记录。
164.可选地,参考信息获取模块602,进一步被配置为:
165.获取原始数据的读写频度,基于读写频度,获得原始数据的热度指标。
166.可选地,分布式系统存储有目标用户的多个数据;
167.相应地,参考信息获取模块602,进一步被配置为:
168.在获取原始数据的热度指标之前,展示与多个数据对应的存储配置界面,接收目标用户的客户端发送的存储配置信息;
169.根据存储配置信息,确定多个数据中的原始数据,获取原始数据的热度指标。
170.上述为本实施例的一种数据存储装置的示意性方案。需要说明的是,该数据存储装置的技术方案与上述的数据存储方法的技术方案属于同一构思,数据存储装置的技术方案未详细描述的细节内容,均可以参见上述数据存储方法的技术方案的描述。
171.图7示出了根据本说明书一个实施例提供的一种计算设备的结构框图。该计算设备700的部件包括但不限于存储器710和处理器720。处理器720与存储器710通过总线730相连接,数据库750用于保存数据。
172.计算设备700还包括接入设备740,接入设备740使得计算设备700能够经由一个或多个网络760通信。这些网络的示例包括公用交换电话网(pstn,public switched telephone network)、局域网(lan,local area network)、广域网(wan,wide area network)、个域网(pan,personal area network)或诸如因特网的通信网络的组合。接入设备740可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(nic,network interface controller))中的一个或多个,诸如ieee802.11无线局域网(wlan,wireless local area networks)无线接口、全球微波互联接入(wi-max,worldwide interoperability for microwave access)接口、以太网接口、通用串行总线(usb,universal serial bus)接口、蜂窝网络接口、蓝牙接口、近场通信(nfc,near field communication)接口,等等。
173.在本说明书的一个实施例中,计算设备700的上述部件以及图7中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图7所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
174.计算设备700可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或pc的静止计算设备。计算设备700还可以是移动式或静止式的服务器。
175.其中,处理器720用于执行如下计算机可执行指令,该计算机可执行指令被处理器执行时实现上述数据存储方法的步骤。
176.上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技
术方案与上述的数据存储方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述数据存储方法的技术方案的描述。
177.本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述数据存储方法的步骤。
178.上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的数据存储方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述数据存储方法的技术方案的描述。
179.本说明书一实施例还提供一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述数据存储方法的步骤。
180.上述为本实施例的一种计算机程序的示意性方案。需要说明的是,该计算机程序的技术方案与上述的数据存储方法的技术方案属于同一构思,计算机程序的技术方案未详细描述的细节内容,均可以参见上述数据存储方法的技术方案的描述。
181.上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
182.所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。
183.需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
184.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
185.以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1