一种基于纠删码的分布式存储系统的退化读优化方法技术方案

技术编号:17837116 阅读:78 留言:0更新日期:2018-05-03 18:58
本发明专利技术公开一种基于节点性能评估的纠删码存储系统退化读优化方法,该方法根据分布式存储系统各节点的硬件性能实时状况和软件请求情况,将各节点性能数据发送至性能评估节点,性能评估节点根据各节点的硬件性能状况以及分布式存储系统的排队延迟,过滤无用数据,通过评价公式获得每个节点的实时性能权值,将权值写回至各个存储节点。当某些节点出现故障,上层读请求转变为退化读请求,系统根据全局性能状态挑选最优的某些节点并进行解码操作。该方法在保证退化读操作顺利完成的情况,降低了读操作响应时间,充分利用了各节点软硬件资源。

A degradation read optimization method for distributed storage system based on erasure code

The invention discloses a degenerate reading optimization method of erasure code storage system based on node performance evaluation. This method sends the performance data of each node to performance evaluation node according to the real-time status of hardware performance and software request of the nodes of the distributed storage system, and the performance evaluation node is based on the hardware performance of each node. And queuing delay of distributed storage system, filtering useless data, obtaining the real-time performance weights of each node by evaluation formula, and writing the weights back to each storage node. When some nodes fail, the upper reading request is converted to the degenerate read request, and the system selects the best nodes according to the global performance state and performs the decoding operation. This method reduces the read response time and ensures the completion of the degraded read operation, and makes full use of the hardware and software resources of each node.

【技术实现步骤摘要】
一种基于纠删码的分布式存储系统的退化读优化方法
本专利技术涉及计算机存储领域,尤其涉及了分布式存储中纠删码优化,应用了分布式监控技术、纠删码理论,提出一种退化读优化方法。
技术介绍
随着近年来数据规模的爆炸式增长,纠删码容错技术在分布式存储系统受到了业界的广泛关注,开源存储系统Ceph、HDFS、Swift等实现了纠删码方法作为可使用的容错技术。与多副本容错技术相比,纠删码容错技术能够以低得多的存储开销提供相同甚至更高的数据可靠性。当分布式存储系统中出现节点失效时,当上层用户需要读取损坏节点的数据时,系统需要利用校验块数据将失效数据块恢复出来,并通过解码操作获得原始数据然后响应客户端读请求,这称为退化读操作。采用纠删码容错的分布式存储系统进行退化读操作时,需要从多个存储节点下载数据并对这些数据进行编解码运算,此过程中需要读取并传输大量的数据,占用多个节点的网络、IO、计算资源。在当前异构的分布式存储系统中,存储节点会由于频繁更换造成硬件不同,同时每个节点会由于软件实现造成负载不均衡、繁忙程度不同等情况。当节点发生故障时,系统会简单选取某些节点进行解码操作,从而在退化读操作过程中无法充分利用各节点的性能差异,一方面导致无法合理使用节点资源,另一方面导致退化读性能下降,影响系统的整体响应时间。在对纠删码退化读操作优化中,传统方法往往仅考虑各节点的硬件资源带来的影响,而忽略了真实存储系统的软件影响,导致评估节点并不准确,不能充分利用各节点的差异性。
技术实现思路
在当前纠删码分布式系统中,虽然实现方法各不相同,但是对于一个读写操作而言过程是相似的,在纠删码的编码过程中,为了保证系统的可靠性,通常将k个数据块和m个校验块分布到k+m个节点上,以保证对于极大距离可分码(MDS码)而言当小于等于m个块失效时,通过读取存活节点的k个数据块或校验块可以恢复出原始数据,这是本专利技术的前提,同时对于一个含有纠删码的分布式系统而言,该前提也是一定成立的。为了克服现有技术存在的问题,本专利技术的目的是提高纠删码分布式存储系统中退化读的性能,充分利用异构节点的资源和软件性能,通过结合软件各项数据和硬件指标的实时性能数据,动态评估各节点的性能状况,为退化读请求选择最优的k个节点,以此来提高退化读性能,降低系统响应读请求时间。为了实现上述目的,本专利技术采取的技术方案为:1)第一阶段,本专利技术首先建立纠删码分布式存储系统IO栈,对存储系统中的纠删码读操作进行分层分析。对于大型分布式存储系统而言,虽然IO流程在实现过程中步骤十分繁杂,但是可以将IO栈从不同的存储系统中抽象出来,而对于纠删码中的退化读操作而言,主要需要考虑纠删码读IO栈。在读IO栈中包括了从客户端发出读数据请求到存储节点接受到读请求进行响应读取数据,直到将完整数据返回至客户端。关于纠删码读IO栈主要可以分为以下四层:消息处理层、操作分发层、操作处理层、对象读取层。在消息处理层中,主要负责接受从各个客户端发送来的读请求;在操作分发层中,系统会根据需要读取的数据块或者校验块分发至各个节点;在操作处理层,节点会对现有中读请求队列中的请求进行封装,为读取数据做准备;在对象读取层,节点会根据读请求从存储设备上读取数据,并等待其他节点的数据块或者校验块,然后进行解码操作,最后将完整数据发送至客户端。2)第二阶段,收集每个节点的纠删码读请求中每层的延迟情况、队列排队状态、指定时间内处理读写请求的个数等软件性能数据,同时收集每个节点中的硬件数据,包含CPU、IO、网络等数据,将这些数据进行格式统一处理,以三元组<时间,性能指标,性能数据>的方式传输至性能收集节点进行保存。3)第三阶段,性能收集节点会收集保存每项性能数据,并对无用数据进行过滤操作,对过期数据进行清理操作,避免对存储空间的浪费以及分析节点性能时无用数据带来的干扰。4)第四阶段,根据建立的异构存储环境系的节点性能评价方案,根据获取的存储软件性能数据和节点硬件数据评估每个节点的实时性能状态,计算出每个节点的性能权值,以此来反映各节点当前处理读请求的能力。5)第五阶段,数据收集评估节点将评估后各节点的实时性能权值分别发送至每个存储节点,每个存储节点接受到权值数据后更新原有的性能权值数据,保证数据的实时性。6)第六阶段,读请求所在的主节点会查看所需要的数据块节点是否都存活,如果发生故障的节点大于m个,则代表损坏的数据块过多,无法恢复原有的数据;如果发生故障的节点小于等于m个,便会发起退化读操作。系统会根据保存在本地的节点性能权值数据选择性能最优的k-1个节点(不包括该节点),而不是按照序号选择k-1个节点,然后向这个最优的k-1个节点发送读请求。7)第七阶段,性能最优的k-1个节点响应主节点的读请求,将数据块或者校验块发送至主节点。主节点收到所有的数据(校验)块后进行解码操作,最后将完整数据发送至客户端,完成退化读操作。在第四阶段计算性能权值时,结合CPU、IO以及网络各项指标以及指标所占比例进行计算,得出一个综合权值反应节点的性能状态。在第六阶段所述的小于等于m个,是要求分布式存储在丢失小于或等于m个数据块或者校验块时可以恢复出完整数据,如果丢失块数大于m代表无法利用解码操作恢复出原始数据。本专利技术的方法可用于分布式存储系统,在存储系统中使用纠删码冗余技术时,可通过使用该技术提高存储系统读性能,可充分利用各个节点的计算资源、IO资源以及网络资源,避免出现节点性能瓶颈,提高整体系统的吞吐量。附图说明图1是退化读优化方法整体实施框架图图2是存储系统退化读节点选择流程图具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步地详细说明。应当理解,此处所描述的具体实施例仅仅用于解释本专利技术的基本构想,并不用于限定本专利技术。本领域技术人员可由本说明书所表述的内容了解本专利技术的其它优点与功效。本专利技术还可以有其它不同的具体实施方式加以实施或应用,本说明书的各项细节也可以有基于不同观点与应用,在没有违背本专利技术精神下可以进行各种修饰或改变。本专利技术具体实施方式提供了一种对纠删码分布式存储系统退化读的优化方案,通过收集异构分布式存储环境下每个存储节点的软硬件性能数据,评估各节点性能权值,为退化读操作选择出实时性能最优的k个节点,从而提高退化读性能,降低响应延迟,充分利用异构环境下各节点的系统资源,下面将参考附图详细描述本专利技术。图1为退化读优化方法整体实施框架图,为了实现异构环境下基于软硬件性能数据的退化读优化方法,需要实现以下五个模块:性能监控模块、节点性能数据收集模块、节点性能评估模块、节点信息存储模块和退化读处理模块。为了实现退化读优化方法,五个模块需要各自分工,协调工作,最终通过退化读处理模块选择性能最优的k个节点响应退化读请求。性能监控模块负责收集中分布式存储系统中各节点的软硬件数据,其中OSD代表节点存储设备。在此模块中用户需要依据不同分布式存储系统架构从逻辑层面划分IO栈,这里IO栈代表了当客户端发起读写请求时存储系统为了处理请求所经历的不同层次阶段,当用户划分完成IO栈后,将不同的软件性能指标对应到不同的IO栈中,以此通过获取不同的软件性能数据来评估不同IO层次的性能状况。为了本文档来自技高网...
一种基于纠删码的分布式存储系统的退化读优化方法

【技术保护点】
一种基于纠删码的分布式存储系统的退化读优化方法,其特征在于,包括以下步骤:1)第一阶段,首先建立纠删码分布式存储系统IO栈,对存储系统中的纠删码读操作进行分层分析,将纠删码读IO栈主要可以分为以下四层:消息处理层、操作分发层、操作处理层、对象读取层;2)第二阶段,收集每个节点的纠删码读请求中每层的延迟情况、队列排队状态、指定时间内处理读写请求的个数等软件性能数据,同时收集每个节点中的硬件数据,包含CPU、IO、网络等数据,将这些数据进行格式统一处理,以三元组<时间,性能指标,性能数据>的方式传输至性能收集节点进行保存;3)第三阶段,性能收集节点会收集保存每项性能数据,并对无用数据进行过滤操作,对过期数据进行清理操作;4)第四阶段,根据建立的异构存储环境系的节点性能评价方案,根据获取的存储软件性能数据和节点硬件数据评估每个节点的实时性能状态,计算出每个节点的性能权值;5)第五阶段,数据收集评估节点将评估后各节点的实时性能权值分别发送至每个存储节点,每个存储节点接受到权值数据后更新原有的性能权值数据;6)第六阶段,读请求所在的主节点会查看所需要的数据块节点是否都存活,如果发生故障的节点小于等于m个,便会发起退化读操作,系统根据保存在本地的节点性能权值数据选择性能最优的k‑1个节点,然后发送读请求;7)第七阶段,性能最优的k‑1个节点响应主节点的读请求,将数据块或者校验块发送至主节点,主节点收到所有的数据(校验)块后进行解码操作,最后将完整数据发送至客户端,完成退化读操作。...

【技术特征摘要】
1.一种基于纠删码的分布式存储系统的退化读优化方法,其特征在于,包括以下步骤:1)第一阶段,首先建立纠删码分布式存储系统IO栈,对存储系统中的纠删码读操作进行分层分析,将纠删码读IO栈主要可以分为以下四层:消息处理层、操作分发层、操作处理层、对象读取层;2)第二阶段,收集每个节点的纠删码读请求中每层的延迟情况、队列排队状态、指定时间内处理读写请求的个数等软件性能数据,同时收集每个节点中的硬件数据,包含CPU、IO、网络等数据,将这些数据进行格式统一处理,以三元组&lt;时间,性能指标,性能数据&gt;的方式传输至性能收集节点进行保存;3)第三阶段,性能收集节点会收集保存每项性能数据,并对无用数据进行过滤操作,对过期数据进行清理操作;4)第四阶段,根据建立的异构存储环境系的节点性能评价方案,根据获取的存储软件性能数据和节点硬件数据评估每个节点的实时性能状态,计算出每个节点的性能权值;5)第五阶段,数据收集评估节点将评估后各节点的实时性能权值分别发送至每个存...

【专利技术属性】
技术研发人员:张兴军蔡毅董小社梁宁静刘云飞刘威
申请(专利权)人:西安交通大学
类型:发明
国别省市:陕西,61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1