本公开总体上涉及分布式存储系统,并且更具体地,涉及用于分解的(disaggregated)分布式存储系统中的数据复制的设备和方法。
背景技术:
1、数据复制是在任何分布式存储系统中使用的、以免受存储节点故障时的数据损失的关键冗余技术。分解的分布式存储系统通过启用可扩展性和灵活性来启用计算资源的有效使用。在分解的分布式存储系统中,数据复制用于确保存储节点故障时的数据可用性。复制的数据需要被有效地放置在存储节点中,以便有效地利用集群资源,并且在存储复制的数据的存储节点故障时恢复复制的数据。
2、尽管分解的分布式存储系统启用对计算资源的有效使用以复制数据,但是存储节点的异构性质典型地不被利用于数据复制。在示例中,当与另一个存储节点“b”相比时,存储节点“a”的存储空间和磨损水平可能是更好的,但是存储节点“a”的计算能力明显小于存储节点“b”的计算能力。因此,在识别用于数据复制的最优存储节点中,不将存储节点的这种异构性质作为因素纳入考虑。此外,分解的分布式存储系统中存储节点的动态性质也影响存储节点的耐久性。在示例中,特定存储节点可能频繁地用于数据复制,因此,该存储节点经历高负载和高延迟,因为该存储节点必须服务于大量客户端。因此,复制的数据的放置和复制的数据的恢复过程缺乏闪存感知(flash awareness)。因此,缺乏闪存感知可能导致存储节点中使用的nand设备的降级。类似地,在一些分解的分布式存储系统中,服务于读取请求的控制器既不有效地利用存储节点的异构性质,也不有效地利用存储节点的动态性质来为客户端服务读取请求。在示例中,已经经历了重负载(例如,为10个客户端服务读取请求)的存储节点被选择来为新客户端服务复制的数据,这添加了需要被服务的未决读取请求。
3、鉴于以上情况,需要考虑所有上述挑战的动态运行时间方法。此外,采用提高读取性能的读取机制将是有利的。
4、在公开部分的该背景技术中公开的信息仅用于增强对本发明的一般背景技术的理解,并且不应该被视为是对该信息形成本领域技术人员已知的现有技术的承认或任何形式的建议。
技术实现思路
1、在实施例中,公开了用于在分解的分布式存储系统中动态复制数据的方法。该方法包括由处理器从控制器接收用于复制数据的请求。该方法包括由处理器基于与多个存储节点中的每个存储节点相关联的一个或多个复制参数,在多个存储节点当中动态地确定用于复制数据的存储节点。一个或多个复制参数包括存储节点的闪存因素和控制器与存储节点之间的延迟中的至少一个。该方法还包括由处理器向控制器提供所确定的存储节点的信息用于复制数据。
2、在另一个实施例中,公开了用于从分解的分布式存储系统中读取数据的方法。该方法包括由处理器从至少一个客户端设备接收用于读取数据的读取请求。数据被存储在数据复制(replica)群组中。该方法包括由处理器基于一个或多个读取参数从数据复制群组中确定用于服务读取请求的存储节点。一个或多个读取参数是实时确定的。与数据复制群组中的每个存储节点相关的一个或多个读取参数包括:控制器和每个存储节点之间的延迟、每个存储节点的闪存因素和每个存储节点上的负载。
3、在又一个实施例中,公开了用于在分解的分布式存储系统中动态复制数据的设备。该设备包括存储器和处理器。存储器被配置为存储指令,并且处理器被配置为执行存储在存储器中的指令,从而使设备从控制器接收用于复制数据的请求。使该设备基于与多个存储节点中的每个存储节点相关联的一个或多个复制参数,在多个存储节点当中动态地确定存储节点。一个或多个复制参数包括存储节点的闪存因素和控制器与存储节点之间的延迟中的至少一个。使该设备向控制器提供所确定的存储节点的信息用于复制数据。
4、在再一个实施例中,公开了用于从分解的分布式存储系统中读取数据的设备。该设备包括存储器和处理器。存储器被配置为存储指令,并且处理器被配置为执行存储在存储器中的指令,从而使设备从至少一个客户端设备接收用于读取数据的读取请求。数据被存储在数据复制群组中。使设备基于一个或多个读取参数从数据复制群组中确定用于服务读取请求的存储节点。一个或多个读取参数是实时确定的。与数据复制群组中的每个存储节点相关的一个或多个读取参数包括:控制器和每个存储节点之间的延迟、每个存储节点的闪存因素和每个存储节点上的负载。
5、前面的概述仅仅是说明性的,并不旨在以任何方式进行限制。除了上述说明性的方面、实施例和特征之外,通过参考附图和以下详细描述,进一步的方面、实施例和特征将变得清晰。
1.一种用于在分解的分布式存储系统中动态复制数据的方法,所述方法包括:
2.如权利要求1所述的方法,其中,所述多个存储节点属于来自多个故障域中的一个故障域。
3.如权利要求1所述的方法,其中,确定所述存储节点包括:
4.如权利要求1所述的方法,还包括:
5.如权利要求4所述的方法,其中,所述多个节点中的每个节点包括至少一个存储节点。
6.根据权利要求4所述的方法,其中,每个故障域的第二权重值基于与对应的故障域中的多个存储节点中的每个存储节点相关联的第一权重值。
7.如权利要求4所述的方法,还包括:
8.如权利要求1所述的方法,其中,所述存储节点的闪存因素是基于以下各项中的一项或多项来确定的:存储节点的磨损水平和存储节点的类型。
9.一种用于从分解的分布式存储系统读取数据的方法,所述方法包括:
10.如权利要求9所述的方法,其中,确定所述存储节点包括:
11.如权利要求9所述的方法,其中,当用于从drg读取数据的读取请求的数量大于阈值时,数据被移动到新的数据复制群组。
12.如权利要求9所述的方法,其中,在数据被移动到新的数据复制群组时,更新drg。
13.一种用于在分解的分布式存储系统中动态复制数据的设备,所述设备包括:
14.如权利要求13所述的设备,其中,为了确定存储节点,还使得所述设备:
15.如权利要求13所述的设备,其中,还使得所述设备:
16.如权利要求13所述的设备,其中,所述多个节点中的每个节点包括至少一个存储节点。
17.如权利要求15所述的设备,其中,每个故障域的第二权重值基于与对应的故障域中的多个存储节点中的每个存储节点相关联的第一权重值。
18.如权利要求15所述的设备,其中,还使得所述设备:
19.如权利要求13所述的设备,其中,所述存储节点的闪存因素是基于以下各项中的一项或多项来确定的:存储节点的磨损水平和存储节点的类型。