一种跨数据中心感知的分布式存储集群纠删码调度方法与流程
本发明属于分布式存储,尤其涉及一种跨数据中心感知的分布式存储集群纠删码调度方法。
背景技术:
1、随着云计算与大数据技术的蓬勃发展,企业级和组织级数据存储规模呈现出显著的指数级增长态势。为切实保障海量数据的可靠性与可用性,现代分布式存储系统普遍采用将数据分散存储于多个物理存储节点的技术架构,并依赖多副本复制机制或纠删码技术构建多维度数据冗余保护体系。纠删码技术作为存储领域的关键技术范式,其核心原理在于将原始数据分割为k个独立数据块,并基于特定编码算法生成m个校验块,使得系统在任意不超过m个数据块或校验块发生丢失的情形下,仍可凭借剩余的k个数据块通过解码运算完整恢复原始数据内容。相较于传统多副本复制方案,纠删码技术在同等数据可靠性水平下能够显著提升存储空间利用率,降低冗余存储开销,因而在大规模分布式存储系统中获得了广泛应用。
2、在跨数据中心分布式存储集群的应用场景中,系统通常将数据编码块分散部署于地理位置相互独立的不同数据中心之中。这种跨地域部署架构能够有效抵御单一数据中心级别的灾难性故障,诸如火灾、地震、区域性电力中断等极端事件,从而为关键业务数据提供更高等级可用性保障。跨数据中心分布式存储集群中的纠删码调度技术构成该领域核心问题,主要涵盖编码参数配置、编码块放置策略以及丢失块修复机制三个关键维度。
3、在编码参数配置层面,现有技术方案主要包括静态编码参数方案与基于简单阈值的参数切换方案两类。静态编码参数方案在系统部署时预先确定纠删码的编码参数组合,典型配置包括四加二、六加三、十二加四等形式,所有数据均采用统一编码配置进行冗余保护,该方案实现逻辑简洁但缺乏对网络状态动态变化的适应能力。基于阈值的参数切换方案虽引入了有限的适应性机制,但仅依据链路带宽或时延的单一阈值进行编码参数切换,未能综合考量网络状态、存储负载与数据可用性等多维因素。
4、在编码块放置层面,现有随机或轮询放置方案的实现同样较为粗放。随机放置策略将编码块任意分配至各数据中心的存储节点,轮询方案则机械地按顺序循环分配,上述方案均未充分考虑不同数据中心间链路的带宽差异、时延特征、计费模式区别以及各数据中心存储负载的非均衡状态,容易导致跨数据中心写入流量过度集中于高延迟链路、部分数据中心存储资源过载而其他数据中心资源闲置、数据读取时延偏高等连锁问题。
5、在修复策略层面,以最小化修复流量为唯一优化目标的修复方案未全面兼顾跨数据中心修复场景下的多维度需求。再生码等技术的核心目标在于降低修复过程中的数据传输量,但未充分考量跨数据中心链路的时延约束与计费差异,可能造成修复耗时过长或修复成本攀升。
6、然而,随着跨数据中心分布式存储集群规模的持续扩张以及应用场景对性能指标提出更为严苛的要求,上述技术方案在原理层面的固有局限性逐渐显现。首先,编码参数决策缺乏动态自适应能力,静态配置或简单阈值切换方案无法根据跨数据中心链路的实时状态(包括可用带宽、往返时延、丢包率、抖动特征及链路计费单价)以及各数据中心内部节点的负载状况(包括剩余存储空间、处理器利用率、内存占用率)对编码参数进行联合优化。当跨数据中心链路状态劣化时,固定编码参数可能导致修复流量激增、修复时长剧增;而当链路状态优良时,固定参数又无法充分利用链路资源提升数据可用性。其次,编码块放置策略未能实现跨数据中心感知的联合优化,现有随机或轮询方案未将故障域层级信息纳入放置决策,导致同一条带的多个编码块可能分布于同一故障域内,严重削弱数据容灾能力。再者,修复策略未综合权衡时延、带宽与费用因素,以流量最小化为单一目标的修复方案在选择修复代理节点时未考量链路的综合状态,可能导致修复时间超出业务容忍范围。最后,现有方案均为开环调度机制,缺乏从调度执行到效果采集、从模型更新到优化决策的闭环反馈路径,无法通过持续积累的实际运行数据优化编码参数决策模型,致使调度策略难以随集群环境的长期演变而自适应改进。
7、综上所述,当前技术领域迫切需要一种能够综合感知跨数据中心多维状态信息、自适应决策编码参数、联合优化编码块放置与修复策略、并通过闭环反馈机制持续迭代优化的分布式存储集群纠删码调度方法,以有效解决上述技术缺陷。
技术实现思路
1、本发明的目的在于提供一种跨数据中心感知的分布式存储集群纠删码调度方法,用以解决上述现有技术中存在的技术问题。
2、为解决上述技术问题,本发明采用的技术方案如下:
3、一种跨数据中心感知的分布式存储集群纠删码调度方法,包括以下步骤:
4、s1、周期性采集所述分布式存储集群中各数据中心之间的链路状态信息以及各数据中心内部的节点状态信息,对其进行融合处理后生成跨数据中心状态向量;
5、s2、将跨数据中心状态向量输入预设的编码参数决策模型,得到与当前集群状态匹配的纠删码编码参数,包括数据块数量k、校验块数量m以及条带大小;
6、s3、根据所述纠删码编码参数对待存储数据进行编码生成k个数据块和m个校验块,并基于跨数据中心状态向量中的故障域层级信息和链路状态信息,按照预设的放置优化目标,将所述k个数据块和m个校验块分别调度放置到不同数据中心的存储节点中;
7、s4、当检测到所述分布式存储集群中发生数据块或校验块丢失时,基于所述跨数据中心状态向量确定丢失块的修复策略,所述修复策略包括修复节点选择、修复带宽分配和修复时机调度,并按照所述修复策略完成丢失块的修复;
8、s5、采集编码块放置调度和修复调度的执行结果数据,将执行结果数据作为反馈输入更新所述编码参数决策模型的参数,以用于下一轮跨数据中心状态感知后的编码参数决策。
9、优选的,步骤s1的具体过程如下:
10、s11、采集链路状态信息,包括可用带宽、往返时延、丢包率、抖动以及链路计费单价;
11、s12、采集节点状态信息包括剩余存储空间、cpu利用率、内存利用率以及故障域层级标识,故障域层级标识表示节点所属的故障域层级,取整数1至5;
12、s13、将链路状态信息和节点状态信息的各项指标按照正向指标和负向指标进行划分,正向指标为值越大表示状态越好的指标,包括可用带宽、剩余存储空间;负向指标为对于值越小表示状态越好的负向指标,包括往返时延、丢包率、抖动、链路计费单价、cpu利用率以及内存利用率;根据正向指标和负向指标分别进行归一化处理;
13、s14、对各项归一化状态值进行加权融合,分别得到链路综合状态值和数据中心节点综合状态值,再将二者拼接生成最终的跨数据中心状态向量。
14、优选的,步骤s14的具体过程如下:
15、s141、链路综合状态值计算:对于每对数据中心,,将其链路五个维度的归一化值按预设权重进行加权求和,得到该链路的综合状态值;
16、s142、数据中心节点综合状态值计算:对于每个数据中心,对内所有存储节点的归一化状态值先按节点加权求和,再取均值,得到该数据中心的节点综合状态值;
17、s143、跨数据中心状态向量生成:将所有数据中心对的链路综合状态值与所有数据中心的节点综合状态值按预设顺序拼接,生成最终的跨数据中心状态向量。
18、优选的,步骤s2的具体过程如下:
19、s21、状态特征提取:将跨数据中心状态向量输入预设的特征提取网络,通过全连接层和非线性激活函数进行特征变换,得到用于编码参数决策的状态特征向量;
20、s22、编码参数候选空间构建:根据分布式存储集群的硬件配置和业务需求,预设编码参数的取值范围,构建编码参数候选动作空间;编码参数候选动作空间中每个元素为一组编码参数;为纠删码的数据块数量;为纠删码的校验块数量;为纠删码的条带大小;
21、s23、综合效用值计算:对于候选动作空间中的每一组编码参数,从存储效率、修复流量代价和数据可用性三个维度进行评估,并加权融合为综合效用值:
22、s24、最优编码参数求解:在编码参数候选动作空间中,选择使综合效用函数取最大值的编码参数组合,作为与当前集群状态匹配的最优纠删码编码参数;求解得到最优编码参数后,输出三元组,其中为最优数据块数量,为最优校验块数量,为最优条带大小。
23、优选的,步骤s23的具体过程如下:
24、s231、计算数据块数量占编码后总块数量的比例作为存储效率;
25、s232、修复流量代价计算:
26、基于所有数据中心对的链路综合状态值,计算集群中跨数据中心链路的平均综合状态值;
27、对于一组编码参数,修复一个丢失块需要从个存活数据块中各读取一份子数据,每份子数据的大小为条带大小除以数据块数量,即。修复流量代价与平均链路综合状态值成反比,据此计算修复流量代价:,进行归一化后得到归一化后的修复流量代价,修复效率为;
28、s233、数据可用性计算:;其中:为数据可用性;为单个数据中心发生故障的预设概率;
29、s234、综合效用值计算:将存储效率、修复效率和数据可用性三个维度按预设权重加权融合,得到综合效用值。
30、优选的,步骤s3的具体过程如下:
31、s31、数据编码:根据最优编码参数,对待存储数据按条带大小进行条带化分割,对每个条带采用纠删码编码算法进行编码,生成个数据块和个校验块;
32、s32、基于故障域层级标识和数据中心归属关系,构建放置约束条件,包括唯一放置约束、节点独占约束、数据中心隔离约束以及可用区校验块约束;
33、s33、在满足s32中所有放置约束条件的前提下,以最小化跨数据中心写入流量、均衡各数据中心存储负载和最小化数据读取时延为联合优化目标,构建放置优化目标函数:
34、s34、在满足s32中所有放置约束条件的前提下,求解使综合放置优化目标函数取最小值的最优放置决策变量,得到最优放置方案;
35、s35、根据s34求解得到的最优放置方案,将编码块集合中的每个编码块调度放置到对应的最优存储节点上;所有编码块放置完成后,记录每个编码块的放置位置信息,形成放置位置映射表,传递至步骤s4,用于在发生编码块丢失时快速定位存活块并选择修复节点。
36、优选的,步骤s33的具体过程如下:
37、s331、基于编码块从入口数据中心传输到各放置节点所属数据中心时,跨数据中心写入流量代价与链路综合状态值成反比,定义跨数据中心写入流量代价;
38、s332、基于各数据中心实际放置块数与期望放置块数之间的均方误差计算存储负载均衡代价;
39、s333、基于数据读取时需要从个数据块所在的存储节点读取数据,读取时延代价与入口数据中心到各数据块所在数据中心的链路综合状态值成反比,定义数据读取时延代价;
40、s334、将s331~s333的三个子目标分别归一化到区间后,按预设权重加权融合,得到综合放置优化目标函数。
41、优选的,步骤s4的具体过程如下:
42、s41、丢失块检测与存活块定位:当分布式存储集群中的存储节点发生故障或数据损坏时,通过心跳检测和数据校验机制检测到编码块丢失:
43、设检测到的丢失块索引集合为;同一条带的全部编码块索引集合为,则存活块索引集合为:;
44、从存活块集合中选择个块用于解码重建丢失块,记为修复用存活块集合:;
45、选择策略为:优先选择数据块,当数据块数量不足时,用校验块补充;
46、s42、确定候选修复代理节点集合,对于每个候选修复代理节点,计算其修复代理代价,定义为该节点到所有修复用存活块所在数据中心的链路状态代价之和;选择使修复代理代价最小的候选节点作为最优修复代理节点;
47、s43、确定最优修复代理节点后,为每条修复数据传输链路分配修复带宽;
48、s44、根据集群当前业务负载状态和丢失块的重要程度,决定修复开始时刻;
49、s45、在修复开始时刻,修复代理节点按照修复带宽,从个修复用存活块所在节点并行读取数据,修复代理节点接收到全部个存活块的数据后,通过纠删码解码算法重建每个丢失块;重建完成后,将重建后的丢失块写入满足步骤s3中放置约束条件的新存储节点,并对重建数据进行完整性校验。
50、优选的,步骤s5的具体过程如下:
51、s51、采集两类执行结果数据:
52、放置调度执行结果数据:采集放置调度的实际执行结果,组成放置调度执行结果向量,包括放置调度过程中实际产生的跨数据中心写入流量、放置完成后各数据中心存储负载的实际均衡度以及放置完成后数据读取的实际平均时延。
53、修复调度执行结果数据:采集修复调度的实际执行结果,组成修复调度执行结果向量,包括实际修复时长、实际修复流量、实际修复费用以及修复完成后的实际数据可用性;
54、s52、实际奖励值计算:基于执行结果数据,从存储效率、修复效率和数据可用性三个维度计算实际奖励值;
55、s53、编码参数决策模型参数更新:编码参数决策模型采用强化学习框架,模型参数记为,策略网络在状态下输出动作的概率分布记为,本轮选择的最优编码参数对应的动作为,对模型参数进行更新;
56、s54、模型收敛判断与下一轮决策:计算移动平均奖励,当连续两轮移动平均奖励的变化量小于预设收敛阈值时,判定模型收敛;若模型收敛,则固定当前模型参数,不再进行参数更新;若模型未收敛,则保留更新后的模型参数,继续下一轮迭代。
57、下一轮决策:重新采集跨数据中心状态信息,生成新的跨数据中心状态向量,将输入更新后的编码参数决策模型,得到新一轮的最优编码参数,并依次执行步骤s3~步骤s5,形成闭环优化。
58、优选的,步骤s53的编码参数决策模型参数更新具体过程如下:
59、奖励误差计算:计算实际奖励值与预期奖励值之间的奖励误差:;
60、基于策略梯度方法,定义模型的损失函数为:
61、;
62、当时,损失函数为负,参数更新将增大该动作被选择的概率;
63、当时,损失函数为正,参数更新将减小该动作被选择的概率;
64、参数梯度更新:通过随机梯度下降算法更新模型参数:
65、;
66、将代入后,参数更新可写为:
67、;
68、其中:为编码参数决策模型的参数集合;为策略网络在状态下输出动作的概率分布;为跨数据中心状态向量;为本轮选择的最优编码参数对应的动作;为奖励误差;为实际奖励值;为预期奖励值;为模型的损失函数;为最优动作在当前策略下的对数概率;为学习率,取值范围为,控制参数更新的步长;为损失函数关于模型参数的梯度;为对数策略概率关于模型参数的梯度,表示参数更新赋值。
69、本发明的有益效果包括:
70、第一,通过跨数据中心状态感知步骤,综合采集并融合了各数据中心间链路的可用带宽、往返时延、丢包率、抖动和计费单价等多维状态信息,以及各数据中心内部节点的剩余存储空间、cpu利用率、内存利用率和故障域层级标识等信息,为编码参数的自适应决策提供了全面、准确的状态输入,有效解决了现有技术中状态信息采集维度单一或缺失的问题。
71、第二,通过编码参数决策步骤,将跨数据中心状态向量输入预设的编码参数决策模型,实现了根据集群实时状态动态调整数据块数量、校验块数量和条带大小的自适应能力。该步骤从存储效率、修复流量代价和数据可用性三个维度对候选编码参数进行综合评估,并选择使综合效用函数最大化的最优编码参数,有效解决了现有技术中编码参数固定不变或仅基于简单阈值切换的局限性。
72、第三,通过编码块放置调度,在满足唯一放置约束、节点独占约束、数据中心隔离约束和可用区校验块约束的前提下,以最小化跨数据中心写入流量、均衡各数据中心存储负载和最小化数据读取时延为联合优化目标,实现了跨数据中心感知的联合优化放置。该步骤充分考虑了故障域层级隔离、链路状态差异和负载均衡需求,有效解决了现有技术中随机或轮询放置导致的问题。
73、第四,通过修复调度,在检测到编码块丢失后,综合考量修复节点选择、修复带宽分配和修复时机调度三个维度,确定丢失块的最优修复策略。该步骤在选择修复代理节点时综合考虑链路状态代价,在分配修复带宽时确保不影响正常业务流量,在调度修复时机时结合业务负载和修复优先级,有效解决了现有技术中以最小化修复流量为唯一目标导致的修复时延过长或修复费用过高的问题。
74、第五,通过反馈迭代,建立了从调度执行到效果采集、从模型更新到优化决策的闭环反馈机制。该步骤采集编码块放置调度和修复调度的实际执行结果数据,计算实际奖励值,并基于强化学习策略梯度方法更新编码参数决策模型的参数,实现了调度策略随集群环境长期变化的持续改进,有效解决了现有技术中开环调度无法自适应改进的缺陷。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com