基于纠删码的细粒度云存储调度方法技术

技术编号:15226237 阅读:189 留言:0更新日期:2017-04-27 05:43
本发明专利技术提供了一种基于纠删码的细粒度云存储调度方法,基于真实的云计算平台,通过对云存储系统中大量存储节点的负载信息进行分析,确定影响数据下载时延的性能指标;基于负载信息设计一种新的云存储调度算法,通过利用存储节点的负载信息反向指导代理节点的线程调度来优化现有云存储系统调度方案;通过多种不同的纠删码对海量文件进行编码存储。本发明专利技术利用开源项目OpenStack搭建了一个真实的云计算平台,并根据真实的用户请求数据在云平台上进行部署和验证,本发明专利技术中提出的调度策略最高能减少15%的平均时延,同时还能降低数据下载时延的波动,提高数据获取的稳定性,提供更好的用户体验。

【技术实现步骤摘要】

本专利技术涉及云存储
,具体地,涉及一种基于纠删码的细粒度云存储调度方法。
技术介绍
随着云计算技术的发展,云存储服务也受到越来越多行业的关注和使用。云存储是一个数据存储模型,数据被存储在一个逻辑存储池中,实际的物理存储则由多台物理服务器组成,通常情况下,这些物理环境由企业或公司进行管理。云存储系统拥有灵活、易维护、可扩展等特性,并提供数据存储的可靠性保证。用户可以在任何地点通过网络非常方便地访问云存储服务,完成数据存储和获取等操作。而且,相对于传统的存储服务,它具有成本低、便捷性好的优点。毫无疑问,云存储已经成为了当前最流行的在线数据存储方案。目前,国外最流行的云存储服务包括Dropbox、GoogleDriver、MicrosoftOneDriver、AppleiCloud,国内的有百度云盘、腾讯微云、华为云盘、360网盘等。在云存储系统中,通常使用两种方式来提高数据容错和防灾备份能力,以及保证数据的可用性。一是通过简单的冗余备份,对原始数据进行多份拷贝并分别保存在多个不同的存储节点中。二是通过纠删码(ErasureCode)技术,将原始数据经过一定编码分成若干较小的数据块并保存在多个不同的存储节点中。对于一个(n,k)纠删码(n>k),原始数据先被等分成k个大小相同的数据块,再将k个数据块经过一定编码生成n个数据块,并保存在n个不同的存储节点中,每次只需从n个数据块中任意获取k个数据块并进行解码即可恢复原始数据。对于任意(ni,ki),只需满足MDS码(MaximumDistanceSeparablecode,最大距离可分码),即可使用纠删码对文件进行编码存储。目前,存储云基本都使用多种不同纠删码对文件进行编码存储,从而来保证数据的可靠性。如,Facebook数据仓库集群对频繁访问的数据简单地使用3份拷贝进行存储,而对一些较少访问的数据利用(14,10)纠删码进行保存。一些主流的开源云存储平台也开始支持纠删码技术并利用多种不同的纠删码进行数据存储,如OpenStack的Swift服务和HDFS-RAID。相比于简单的对原始数据进行冗余备份,利用纠删码对数据进行编码存储能够更高效地利用存储空间,并能降低数据获取时延。云存储系统的一个重要设计准则就是实现数据的快速获取。据Amazon、Microsoft和Google等企业的相关报道,即使轻微的时延增加也会导致企业出现实质性的收益降低。由于纠删码能比较有效地降低时延,所以目前被广泛地运用在企业或一些开源的云平台中。对于使用(n,k)纠删码进行存储的文件,通常利用L个线程并行下载k个已编码的数据块(k<=L<=n),只要任意k个数据块下载结束,通过对该k个数据块进行解码即可恢复原始数据。相对于下载整个原始数据,由于每个数据块小于原始数据,因此大大降低了数据获取时延。然而,线程调度策略会对数据获取时延产生影响,因此,目前最关键的问题是如何优化线程调度以降低数据获取时延?本专利技术基于存储节点的负载信息提出了一种新的调度策略和调度方法,通过对大量存储节点的负载信息进行分析,包括内存利用率、磁盘利用率、CPU利用率、硬盘读写次数和收发的数据包等,找出可能影响时延的性能指标,根据这些指标设计更细粒度的调度策略,并实现对应的调度算法。利用多种不同的纠删码对大量文件进行编码存储,在用户请求到达满足不同分布的情况下进行测试,包括真实的用户请求数据和用户请求到达满足韦伯分布两种情况。最后,利用开源项目OpenStack搭建了一个真实的云计算平台进行测试。
技术实现思路
针对现有技术中的缺陷,本专利技术的目的是提供一种基于纠删码的细粒度云存储调度方法。根据本专利技术提供的基于纠删码的细粒度云存储调度方法,包括如下步骤:步骤1:对云存储系统中的存储节点的负载信息进行分析,确定影响数据下载时延的性能指标;步骤2:根据步骤1的性能指标和负载信息制定基于纠删码的云存储调方法,即利用存储节点的负载信息反向指导代理节点进行线程调度;步骤3:通过多种不同的纠删码对云存储系统中文件进行编码存储。优选地,利用开源项目OpenStack搭建云计算平台,根据实际用户请求数据在云平台上进行部署和验证。优选地,所述的步骤1中的云存储系统是指:一个数据存储模型,数据在逻辑层面被存储在一个逻辑存储池中,实际的物理存储则由多台物理服务器完成。优选地,所述步骤1中的性能指标包括:内存利用率、CPU利用率、每秒收/发字节数、磁盘利用率、磁盘每秒读/写次数、RTT,即代理节点到存储节点之间的往返延时。优选地,所述步骤2中的代理节点是指:用户与云存储系统进行直接交互的节点;代理节点根据用户的需求进行文件下载任务,对代理节点线程池中线程进行调度,与存储节点建立TCP连接进行数据获取,从存储节点中下载对应的文件后返回给用户。优选地,所述步骤2中的存储节点是指:文件或数据在云平台中实际存储的物理节点。优选地,所述步骤3中的通过多种不同的纠删码对海量文件进行编码是指:将原始文件数据进行编码后分成若干个大小相等的数据块并保存在多个不同的存储节点中;对于一个(n,k)纠删码是指将原始数据等分成k个大小相同的数据块,再将k个数据块经过编码后生成n个数据块并分别保存在n个不同的存储节点中,其中n>k;更进一步地,每次只需从n个数据块中任意获取k个数据块并进行解码后即能够恢复原始数据。优选地,所述步骤2中的基于纠删码的云存储调度算法包括如下步骤:步骤2.1:同时接收多个用户请求文件;步骤2.2:将请求文件的下载请求映射到对数据块的下载请求,每个请求文件通过(n,k)纠删码,将已编码的数据块保存到n个存储节点中,只需从n个存储节点中下载k个数据块即能够恢复原始数据,完成请求文件的下载;步骤2.3:获取保存数据块的存储节点负载信息,并根据负载信息指导代理节点进行线程的调度;步骤2.4:假设有足够多的线程能够同时下载所有请求文件对应的数据块,当下载所述数据块时,对应的存储节点负载信息会发生相应变化;步骤2.5:更新存储节点的负载信息用于进行调度安排;步骤2.6:选择负载最大的存储节点,并消耗代理节点中的一个线程用于数据块下载,选择最大的数据块进行下载;步骤2.7:判断一个文件所需的k个数据块是否下载完毕,若下载完毕,则进行文件恢复并结束操作;若未下载完毕,则返回执行步骤2.5。与现有技术相比,本专利技术具有如下的有益效果:1、本专利技术提供的基于纠删码的细粒度云存储调度方法通过对大量存储节点的负载信息进行分析,确定影响数据获取时延的性能指标,优化云存储系统现有调度策略,根据存储节点的负载信息反向指导代理节点进行线程调度,不仅能够有效地降低数据获取时延,还能保证不同用户的数据下载时延趋于一致。2、本专利技术提供的基于纠删码的细粒度云存储调度方法利用OpenStack搭建真实的云计算平台,并通过多种不同的纠删码对大量文件进行编码存储,经基于真实的云存储平台和用户请求到达数据验证,本专利技术中的方法最高能减15%的平均时延,同时还能降低数据下载时延的波动,提高数据获取的稳定性。附图说明通过阅读参照以下附图对非限制性实施例所作的详细描述,本专利技术的其它特征、目的和优点将会变得更明显:图1为本专利技术提供的云存储系统架构图;图2为基于本文档来自技高网
...
基于纠删码的细粒度云存储调度方法

【技术保护点】
一种基于纠删码的细粒度云存储调度方法,其特征在于,包括如下步骤:步骤1:对云存储系统中的存储节点的负载信息进行分析,确定影响数据下载时延的性能指标;步骤2:根据步骤1的性能指标和负载信息制定基于纠删码的云存储调方法,即利用存储节点的负载信息反向指导代理节点进行线程调度;步骤3:通过多种不同的纠删码对云存储系统中文件进行编码存储。

【技术特征摘要】
1.一种基于纠删码的细粒度云存储调度方法,其特征在于,包括如下步骤:步骤1:对云存储系统中的存储节点的负载信息进行分析,确定影响数据下载时延的性能指标;步骤2:根据步骤1的性能指标和负载信息制定基于纠删码的云存储调方法,即利用存储节点的负载信息反向指导代理节点进行线程调度;步骤3:通过多种不同的纠删码对云存储系统中文件进行编码存储。2.根据权利要求1所述的基于纠删码的细粒度云存储调度方法,其特征在于,利用开源项目OpenStack搭建云计算平台,根据实际用户请求数据在云平台上进行部署和验证。3.根据权利要求1所述的基于纠删码的细粒度云存储调度方法,其特征在于,所述的步骤1中的云存储系统是指:一个数据存储模型,数据在逻辑层面被存储在一个逻辑存储池中,实际的物理存储则由多台物理服务器完成。4.根据权利要求1所述的基于纠删码的细粒度云存储调度方法,其特征在于,所述步骤1中的性能指标包括:内存利用率、CPU利用率、每秒收/发字节数、磁盘利用率、磁盘每秒读/写次数、RTT,即代理节点到存储节点之间的往返延时。5.根据权利要求1所述的基于纠删码的细粒度云存储调度方法,其特征在于,所述步骤2中的代理节点是指:用户与云存储系统进行直接交互的节点;代理节点根据用户的需求进行文件下载任务,对代理节点线程池中线程进行调度,与存储节点建立TCP连接进行数据获取,从存储节点中下载对应的文件后返回给用户。6.根据权利要求1所述的基于纠删码的细粒度云存储调度方法,其特征在于,所述步骤2中的存储节点是指:文件或数据在云平台中实际存...

【专利技术属性】
技术研发人员:薛广涛钱诗友李明禄廖辉
申请(专利权)人:上海交通大学
类型:发明
国别省市:上海;31

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

1