分布式文件系统纠删码数据重构存储节点选择方法及装置与流程

文档序号:16207666发布日期:2018-12-08 07:19阅读:287来源:国知局
分布式文件系统纠删码数据重构存储节点选择方法及装置与流程

本发明实施例涉及分布式存储系统技术领域,具体涉及一种分布式文件系统纠删码数据重构存储节点选择方法及装置。

背景技术

由于单核计算能力有限,越来越多的应用开始采用分布式计算的方式实现,比如解决复杂的数学问题,密码破解,基因编码以及蛋白质结构研究等等。另外互联网公司的崛起,电子商务的流行也使得越来越多的数据被存放到大规模的分布式集群上。分布式计算任务往往在分布式文件系统的基础上运行。分布式文件系统能基于多台独立的机器建立统一的存储系统,为程序提供统一的存储服务。谷歌的gfs,hadoop项目的hdfs以及微软的windowsazurestorage都属于分布式文件系统。

在大型的分布式文件系统中,宕机、错误和异常等等故障是在所难免的。人们希望它能在日复一日的使用中都能保持高可靠性和高可用性。因此需要设立容错机制,使得因为机器故障而丢失的数据能够被恢复。通用的做法之一是把数据拷贝多份,存在不同的地方,比如hadoop3.0之前的版本都采用的这种方案。三重复制是常见的做法,许多数据中心都采用这种做法。这种做法的坏处是会占用较多额外的存储空间,导致系统资源的开销过大。如今各个数据中心需要存储的数据量暴增,多份复制的开销就越发难以承受了。纠删码(erasurecoding)相较于多份复制的传统方法,能在较小的额外存储开销下取得更强的容错能力。现如今纠删码被越来越多的应用到分布式文件中,来加强集群的可靠性。

当分布式文件系统中出现机器故障时,数据重构的速度对集群的整体性能的影响是巨大的。纠删码在进行数据重构时需要从多个节点读数据来修复数据受损节点的数据。而当前分布式文件系统集群中的各存储节点的硬盘i/o(输入输出)压力,以及网络传输压力是不同的,因此选择适合的存储节点,以尽可能低的延迟来读取数据显得尤为重要。现阶段对数据重构中选择读取存储节点的研究还十分薄弱,大多数的系统实现如ceph等只是随机的从备选节点中选择若干节点,不能进一步的优化数据重构的速度。

鉴于此,在分布式文件系统纠删码数据重构中如何选择存储节点,以提高数据重构中数据读取的速度成为目前需要解决的技术问题。



技术实现要素:

由于现有方法存在上述问题,本发明实施例提出一种分布式文件系统纠删码数据重构存储节点选择方法及装置。

第一方面,本发明实施例提出一种分布式文件系统纠删码数据重构存储节点选择方法,包括:

对于分布式文件系统中的任一存储节点,在该存储节点有数据损坏时,根据分布式文件系统中所有存储节点的读取记录表,获取选择决策算法所需的各项数据;

根据所述选择决策算法所需的各项数据,获取各备选存储节点的优先级权重,所述各备选存储节点为分布式文件系统中除了本存储节点之外的其他各存储节点;

将所述各备选存储节点的优先级权重进行排序,从各备选存储节点中选取优先级权重最大的预设数量个备选存储节点,并从选取的预设数量个备选存储节点中读取数据进行数据重构。

可选地,所述选择决策算法所需的各项数据,包括:本存储节点总的数据重构读取次数、本存储节点从其他各存储节点读取数据的次数和其他各存储节点的性能参数,所述其他各存储节点为分布式文件系统中除了本存储节点之外的其他各存储节点。

可选地,在对于分布式文件系统中的任一存储节点,在该存储节点有数据损坏时,根据分布式文件系统中所有存储节点的读取记录表,获取选择决策算法所需的各项数据之前,所述方法还包括:

分布式文件系统中的每个存储节点维护一张读取记录表,记录该存储节点从其他各存储节点读取数据的平均延迟、该存储节点从其他各存储节点读取数据的次数、以及该存储节点总的数据重构读取次数。

可选地,所述选择决策算法,包括:博弈论老虎机banditucb算法。

可选地,所述方法还包括:

从选取的预设数量个备选存储节点中读取数据进行数据重构时,记录每一次读取数据的延迟时间,更新读取记录表中每个存储节点对应记录的该存储节点从其他各存储节点读取数据的平均延迟和该存储节点从其他各存储节点读取数据的次数。

第二方面,本发明实施例还提出一种分布式文件系统纠删码数据重构存储节点选择装置,包括:

第一获取模块,用于对于分布式文件系统中的任一存储节点,在该存储节点有数据损坏时,根据分布式文件系统中所有存储节点的读取记录表,获取选择决策算法所需的各项数据;

第二获取模块,用于根据所述选择决策算法所需的各项数据,获取各备选存储节点的优先级权重,所述各备选存储节点为分布式文件系统中除了本存储节点之外的其他各存储节点;

选取模块,用于将所述各备选存储节点的优先级权重进行排序,从各备选存储节点中选取优先级权重最大的预设数量个备选存储节点,并从选取的预设数量个备选存储节点中读取数据进行数据重构。

可选地,所述装置还包括:

维护模块,用于分布式文件系统中的每个存储节点维护一张读取记录表,记录该存储节点从其他各存储节点读取数据的平均延迟、该存储节点从其他各存储节点读取数据的次数、以及该存储节点总的数据重构读取次数。

可选地,所述装置还包括:

更新模块,用于从选取的预设数量个备选存储节点中读取数据进行数据重构时,记录每一次读取数据的延迟时间,更新所述读取记录表中每个存储节点对应记录的该存储节点从其他各存储节点读取数据的平均延迟和该存储节点从其他各存储节点读取数据的次数。

第三方面,本发明实施例还提出一种电子设备,包括:处理器、存储器、总线及存储在存储器上并可在处理器上运行的计算机程序;

其中,所述处理器,存储器通过所述总线完成相互间的通信;

所述处理器执行所述计算机程序时实现上述方法。

第四方面,本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述方法。

由上述技术方案可知,本发明实施例提供的一种分布式文件系统纠删码数据重构存储节点选择方法及装置,通过对于分布式文件系统中的任一存储节点,在该存储节点有数据损坏时,根据分布式文件系统中所有存储节点的读取记录表,获取选择决策算法所需的各项数据;根据选择决策算法所需的各项数据,获取各备选存储节点的优先级权重,所述各备选存储节点为分布式文件系统中除了本存储节点之外的其他各存储节点;将各备选存储节点的优先级权重进行排序,从各备选存储节点中选取优先级权重最大的预设数量个备选存储节点,并从选取的预设数量个备选存储节点中读取数据进行数据重构,由此,相比现有的随机选取,能够提高数据重构中数据读取的速度,从而进一步的提高分布式文件系统的性能。

附图说明

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

图1为本发明一实施例提供的一种分布式文件系统纠删码数据重构存储节点选择方法的流程示意图;

图2为本发明一实施例提供的一种分布式文件系统纠删码数据重构存储节点选择装置的结构示意图;

图3为本发明一实施例提供的电子设备的实体结构示意图。

具体实施方式

下面结合附图,对本发明的具体实施方式作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。

图1示出了本发明一实施例提供的一种分布式文件系统纠删码数据重构存储节点选择方法的流程示意图,如图1所示,本实施例的分布式文件系统纠删码数据重构存储节点选择方法,包括:

s1、对于分布式文件系统中的任一存储节点,在该存储节点有数据损坏时,根据分布式文件系统中所有存储节点的读取记录表,获取选择决策算法所需的各项数据。

在具体应用中,所述选择决策算法所需的各项数据,可以包括:本存储节点总的数据重构读取次数、本存储节点从其他各存储节点读取数据的次数和其他各存储节点的性能参数,所述其他各存储节点为分布式文件系统中除了本存储节点之外的其他各存储节点。

s2、根据所述选择决策算法所需的各项数据,获取各备选存储节点的优先级权重,所述各备选存储节点为分布式文件系统中除了本存储节点之外的其他各存储节点。

s3、将所述各备选存储节点的优先级权重进行排序,从各备选存储节点中选取优先级权重最大的预设数量个备选存储节点,并从选取的预设数量个备选存储节点中读取数据进行数据重构。

本实施例的分布式文件系统纠删码数据重构存储节点选择方法,通过对于分布式文件系统中的任一存储节点,在该存储节点有数据损坏时,根据分布式文件系统中所有存储节点的读取记录表,获取选择决策算法所需的各项数据,根据选择决策算法所需的各项数据,获取各备选存储节点的优先级权重,所述各备选存储节点为分布式文件系统中除了本存储节点之外的其他各存储节点,将各备选存储节点的优先级权重进行排序,从各备选存储节点中选取优先级权重最大的预设数量个备选存储节点,并从选取的预设数量个备选存储节点中读取数据进行数据重构,由此,相比现有的随机选取,能够提高数据重构中数据读取的速度,从而进一步的提高分布式文件系统的性能。

进一步地,在上述实施例的基础上,在所述步骤s1之前,本实施例所述方法还可以包括:

分布式文件系统中的每个存储节点维护一张读取记录表,记录该存储节点从其他各存储节点读取数据的平均延迟、该存储节点从其他各存储节点读取数据的次数、以及该存储节点总的数据重构读取次数。

进一步地,在上述实施例的基础上,所述步骤s2可以包括:

根据所述选择决策算法所需的各项数据,通过第一公式,计算得到各备选存储节点的优先级权重;

所述第一公式为:

wj=xj+sqrt(2ln(n)/nj)

其中,wj为其他各存储节点中的第j个存储节点的优先级权重,j=1,...,s,s为其他存储节点的数量,nj为从其他各存储节点中的第j个存储节点读取数据的次数,n为本存储节点总的数据重构读取次数,sqrt表示算数平方根,xj为其他各存储节点中的第j个存储节点的性能参数,xj=c/yj,yj为从其他各存储节点中的第j个存储节点读取数据的平均延迟,c为预设常数值。c是应用到具体系统中时要设置的参数,c较大时对访问延迟更敏感,原则上取任意正数值均可。

由此,本实施例可以得到各备选存储节点的优先级权重。

进一步地,在上述实施例的基础上,所述选择决策算法有博弈论理论依据,可以包括:博弈论老虎机banditucb算法等。

可以理解的是,原始的博弈论banditucb算法在量级为n次的读取中,非最优读取的量级仅为logn,优化了数据重构中数据读取的速度。

可以理解的是,本实施例利用博弈论的算法来解决分布式文件系统中纠删码数据重构时存储节点选择的问题,它能应用到多种运用纠删码的分布式文件系统中。

进一步地,在上述实施例的基础上,所述方法还可以包括:

从选取的预设数量个备选存储节点中读取数据进行数据重构时,记录每一次读取数据的延迟时间,更新读取记录表中每个存储节点对应记录的该存储节点从其他各存储节点读取数据的平均延迟和该存储节点从其他各存储节点读取数据的次数。

在具体应用中,本实施例在每次进行数据重构,从各备选存储节点读取数据时,需要记录一次时间戳,在本次读取结束后应再次记录时间戳。

在具体应用中,所述读取记录表可实现成key(键)-value(值)形式或直接存取形式。

可以理解的是,本实施例在数据记录、数据计算以及数据提交过程中都可以采用key-value形式或直接存取形式,可方便后续快速的检索和读取数据。

本实施例的分布式文件系统纠删码数据重构存储节点选择方法,利用关于读取延迟和读取次数的统计数据,结合选择决策算法来决定最终要读取数据的存储节点,相比现有的随机选取,能够提高数据重构中数据读取的速度,从而进一步的提高分布式文件系统的性能。

图2示出了本发明一实施例提供的一种分布式文件系统纠删码数据重构存储节点选择装置的结构示意图,如图2所示,本实施例的分布式文件系统纠删码数据重构存储节点选择装置,包括:第一获取模块21、第二获取模块22和选取模块23;其中:

所述第一获取模块21,用于对于分布式文件系统中的任一存储节点,在该存储节点有数据损坏时,根据分布式文件系统中所有存储节点的读取记录表,获取选择决策算法所需的各项数据;

所述第二获取模块22,用于根据所述选择决策算法所需的各项数据,获取各备选存储节点的优先级权重,所述各备选存储节点为分布式文件系统中除了本存储节点之外的其他各存储节点;

所述选取模块23,用于将所述各备选存储节点的优先级权重进行排序,从各备选存储节点中选取优先级权重最大的预设数量个备选存储节点,并从选取的预设数量个备选存储节点中读取数据进行数据重构。

具体地,所述第一获取模块21对于分布式文件系统中的任一存储节点,在该存储节点有数据损坏时,根据分布式文件系统中所有存储节点的读取记录表,获取选择决策算法所需的各项数据;所述第二获取模块22根据所述选择决策算法所需的各项数据,获取各备选存储节点的优先级权重,所述各备选存储节点为分布式文件系统中除了本存储节点之外的其他各存储节点;所述选取模块23将所述各备选存储节点的优先级权重进行排序,从各备选存储节点中选取优先级权重最大的预设数量个备选存储节点,并从选取的预设数量个备选存储节点中读取数据进行数据重构。

在具体应用中,所述选择决策算法所需的各项数据,可以包括:本存储节点总的数据重构读取次数、本存储节点从其他各存储节点读取数据的次数和其他各存储节点的性能参数,所述其他各存储节点为分布式文件系统中除了本存储节点之外的其他各存储节点。

本实施例的分布式文件系统纠删码数据重构存储节点选择装置,相比现有的随机选取,能够提高数据重构中数据读取的速度,从而进一步的提高分布式文件系统的性能。

进一步地,在上述实施例的基础上,本实施例所述装置还可以包括图中未示出的:

维护模块,用于分布式文件系统中的每个存储节点维护一张读取记录表,记录该存储节点从其他各存储节点读取数据的平均延迟、该存储节点从其他各存储节点读取数据的次数、以及该存储节点总的数据重构读取次数。

进一步地,在上述实施例的基础上,所述第二获取模块22可以具体用于

根据所述选择决策算法所需的各项数据,通过第一公式,计算得到各备选存储节点的优先级权重;

所述第一公式为:

wj=xj+sqrt(2ln(n)/nj)

其中,wj为其他各存储节点中的第j个存储节点的优先级权重,j=1,...,s,s为其他存储节点的数量,nj为从其他各存储节点中的第j个存储节点读取数据的次数,n为本存储节点总的数据重构读取次数,sqrt表示算数平方根,xj为其他各存储节点中的第j个存储节点的性能参数,xj=c/yj,yj为从其他各存储节点中的第j个存储节点读取数据的平均延迟,c为预设常数值。c是应用到具体系统中时要设置的参数,c较大时对访问延迟更敏感,原则上取任意正数值均可。

由此,本实施例可以得到各备选存储节点的优先级权重。

进一步地,在上述实施例的基础上,所述选择决策算法有博弈论理论依据,可以包括:博弈论老虎机banditucb算法等。

可以理解的是,原始的博弈论banditucb算法在量级为n次的读取中,非最优读取的量级仅为logn,优化了数据重构中数据读取的速度。

可以理解的是,本实施例利用博弈论的算法来解决分布式文件系统中纠删码数据重构时存储节点选择的问题,它能应用到多种运用纠删码的分布式文件系统中。

进一步地,在上述实施例的基础上,本实施例所述装置还可以包括图中未示出的:

更新模块,用于从选取的预设数量个备选存储节点中读取数据进行数据重构时,记录每一次读取数据的延迟时间,更新所述读取记录表中每个存储节点对应记录的该存储节点从其他各存储节点读取数据的平均延迟和该存储节点从其他各存储节点读取数据的次数。

在具体应用中,本实施例在每次进行数据重构,从各备选存储节点读取数据时,需要记录一次时间戳,在本次读取结束后应再次记录时间戳。

在具体应用中,所述读取记录表可实现成key-value形式或直接存取形式。

可以理解的是,本实施例在数据记录、数据计算以及数据提交过程中都可以采用key-value形式或直接存取形式,可方便后续快速的检索和读取数据。

本实施例的分布式文件系统纠删码数据重构存储节点选择装置,利用关于读取延迟和读取次数的统计数据,结合选择决策算法来决定最终要读取数据的存储节点,相比现有的随机选取,能够提高数据重构中数据读取的速度,从而进一步的提高分布式文件系统的性能。

本实施例的分布式文件系统纠删码数据重构存储节点选择装置,可以用于执行前述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

图3示出了本发明实施例提供的一种电子设备的实体结构示意图,如图3所示,该电子设备可以包括:处理器31、存储器32、总线33及存储在存储器32上并可在处理器31上运行的计算机程序;

其中,所述处理器31,存储器32通过所述总线33完成相互间的通信;

所述处理器31执行所述计算机程序时实现上述各方法实施例所提供的方法,例如包括:对于分布式文件系统中的任一存储节点,在该存储节点有数据损坏时,根据分布式文件系统中所有存储节点的读取记录表,获取选择决策算法所需的各项数据;根据所述选择决策算法所需的各项数据,获取各备选存储节点的优先级权重,所述各备选存储节点为分布式文件系统中除了本存储节点之外的其他各存储节点;将所述各备选存储节点的优先级权重进行排序,从各备选存储节点中选取优先级权重最大的预设数量个备选存储节点,并从选取的预设数量个备选存储节点中读取数据进行数据重构。

本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例所提供的方法,例如包括:获取目标商户所有驻店骑士的当前信息,所述当前信息,包括:对于分布式文件系统中的任一存储节点,在该存储节点有数据损坏时,根据分布式文件系统中所有存储节点的读取记录表,获取选择决策算法所需的各项数据;根据所述选择决策算法所需的各项数据,获取各备选存储节点的优先级权重,所述各备选存储节点为分布式文件系统中除了本存储节点之外的其他各存储节点;将所述各备选存储节点的优先级权重进行排序,从各备选存储节点中选取优先级权重最大的预设数量个备选存储节点,并从选取的预设数量个备选存储节点中读取数据进行数据重构。

本领域内的技术人员应明白,本申请的实施例可提供为方法、装置、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、装置、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置/系统。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。

本发明的说明书中,说明了大量具体细节。然而能够理解的是,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。类似地,应当理解,为了精简本发明公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释呈反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。本发明并不局限于任何单一的方面,也不局限于任何单一的实施例,也不局限于这些方面和/或实施例的任意组合和/或置换。而且,可以单独使用本发明的每个方面和/或实施例或者与一个或更多其他方面和/或其实施例结合使用。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。

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