本发明属于大数据存储系统领域,具体是一种云存储系统中动态副本管理方法。
背景技术:
随着互联网和移动互联网设备的飞速发展,全球数据产业规模快速增长,数据规模不断扩增,互联网的数据规模已经达到了pb级。据统计,到2020年后,全球每年产生的数据总量将达到44zb。显然传统的计算机系统无法满足用户对大规模的数据储存和处理的需求。为了解决这些问题,专家学者们提出了云存储模式。云计算采用按用户的需求量提供服务的模式,具有按需服务、宽带网络接入、资源池化、快速弹性和可度量的服务的特征。而云存储是云计算服务的组成的一部分,其目的在于为授权用户提供高性能的大规模数据存储服务。
云存储是指以集群、网络化、虚拟化、分布式操作系统、分布式文件系统等方式,将网络中大量的异构存储设备进行资源整合,并协同的为用户提供了统一的存储系统。随着大规模互联网服务的广泛采用和不断增加的交换数据,云存储已经成为满足日益增长的存储需求的终极手段,提供了看似无限的容量、高可用性和更快的访问时间。云存储系统采用数据冗余的方式保证存储在云数据中心的数据的完整性和可靠性,数据冗余一般采用多副本和编码冗余技术,多副本技术是当前云存储系统最常用的数据冗余技术。多副本技术是将一个数据项复制多份并分别存放在云存储系统的多个节点上,用以提高系统的可靠性、负载均衡以及访问速率。动态副本技术根据用户访问量、带宽等变化动态调整文件的副本数目和副本位置。
尽管很多科研人员对现有的动态副本技术,大都是在当前周期检测文件的实际访问量,并得出文件所需的副本数,或者用单一的预测算法预测文件副本下一周期的访问量,但是单一的预测算法无法应对用户访问变化的复杂性,预测的精确度不高。很多研究者在研究文件副本放置时,仅仅考虑了固定数目的副本放置情况,而没有考虑到文件副本数目的动态变化,无法满足变化副本数目动态变化的放置需求。或者放置算法容易陷入局部最优,未能充分满足负载均衡、降低访问延迟、提高系统可靠性、降低能耗等多目标个优化的需求。
针对以上情况,本文将提出一种基于iowa算子组合预测模型的文件访问量预测算法;之后对需要进行增加或者删除文件,设计并提出一种基于布谷鸟搜索算法的文件副本放置策略,实现多目标的优化。
技术实现要素:
本发明旨在解决以上现有技术的问题。提出了一种提高云文件访问量预测精确度、同时降低文件的访问延迟的云存储系统中基于组合预测的动态文件放置方法。本发明的技术方案如下:
一种云存储系统中基于组合预测的动态文件放置方法,其包括以下步骤:
s1,依据云存储系统中文件的历史访问量,获取文件访问量的时序序列;
s2,根据文件访问的访问量的时序序列和设置的一个文件响应时间阈值计算文件的副本数目;
s3,利用iowa算子组合预测方法对文件的下周期访问经行预测,根据预测结果计算下周期文件副本的数目;iowa算子组合预测方法;
s4,以降低云副系统平均访问延迟,提高系统可靠性和均衡系统负载构建云存储系统目标优化函数;
s5,根据文件副本变化数目和云存储系统目标优化函数,通过布谷鸟算法对存储系统的文件副本进行增加和删减。
进一步的,所述步骤s1依据云存储系统中文件的历史访问量,获取文件访问量的时序序列{xit,i=1,2,…n},其中xit为文件i在t周期的访问量,t为周期数;所述xit为正整数,n表示文件的数目,且i、t均为不大于n的正整数。
进一步的,所述步骤s2中要求被访问的文件副本的响应时间超过设定的阈值t阈值,单个节点上处理的文件访问量不得超过:
其中ttran表示访问文件的响应时间;t阈值为由管理员设定的文件fi最大响应时间,v(dj)为节点dj的数据发送速率,s(fi)表示文件的大小;;kfi表示单个节点上文件fi的最大访问数量。
计算文件fi的副本数目numfi:
其中,afi表示文件fi的访问量;
如果numfi>3,将文件划副本数目设置为numfi;如果numfi<3,将文件副本数目设为3。
进一步的,所述步骤s3中利用iowa算子组合预测方法对热点文件的下周期访问经行预测,组合预测模型的预测值:
组合预测模型的单个预测模型权重计算方法:
其中,xt表示t时间段文件的访问量,ait是t时间段单个预测模型i预测值,m表示预测模型的数量,fwt表示t时间段组合预测的值,vit是ait的诱导值,即单个预测模型i在t时间段的精确度,v-index(it)是v1t,v2t,…vmt中从小到大的顺序排列的第i个大的下标,wi与a1t,a2t,...amt的大小和位置无关,只与其诱导值大小排序的位置有关,et是组合预测模型t时刻的组合预测模型误差,mins(w)最小化n个周期组合预测模型的误差。
根据当前副本数目和预测得到的下一副本数目,计算得到需要增加和减少的副本集合{numiop,i=1,2,…n},numiop大于0表示需要增加文件fi的副本,numiop小于0表示需要减少文件fi的副本,numiop等于0表示文件fi的副本不需要增加或者减少,所述numiop为整数,i为正整数。
进一步的,所述步骤s4中,构建云存储系统目标优化函数具体包括:
云存储系统可靠性可定义为:
其中i为文件fi,n为文件的个数,与上面步骤s1的n指的是同一个含义,j为节点dj,m为节点的个数与上面步骤s1的m指的是同一个含义,m(i,j)若为1,则表示文件i在节点j上,pj表示节点dj的故障概率;
系统的发送时延可以定义为所有文件的平均发送时延:
a(i,j)表示文件fi在节点j上的访问量;s(i)表示文件fi的大小,v(j)表示节点dj的发送速率,k表示文件访问队列中序号。
节点j上的负载定义为访问速率与服务时间的乘积:
系统的平均负载可以表示如下:
负载变化目标函数lv:
所述优化函数如下所示:
α β γ=1
α,β,γ为系统常量。
进一步的,所述步骤s5中基于布谷鸟算法,对新增文件副本和需要删除的文件副本进行管理,具体包括:初始化鸟巢个数q、适应度函数fitness,设置迭代次数it,鸟巢中的一个鸟蛋代表一种副本的一个布局方案,迭代方案如下:
第一步,根据现有的文件副本布局和需要增删的文件副本个数,随机生成q个布局;
第二步,通过预测的下周期文件访问量分别对q个布局进行计算适应度,找到适应度最高的布局方案,并标记为当前最优布局qmax;
第三步,随机从不是最优布局qmax的其他个布局q-1种选择一个布局a,进行随机行走,得到新的布局a',并计算其适应度;
第四步,随机从不是最优布局qmax的其他个布局q-1种选择一个布局b,比较a'的适应度和b的适应度,如果a'的适应度大于b的适应度,则抛弃布局b,将a'放入布局集合中;
第五步,抛弃q个布局方案中的适应度低的布局,并产生新的布局放入布局集合中,并计算找到适应度最高的布局方案,并标记为当前最优布局qmax;
第六步,判断是否达到最大迭代次数,如果没有达到,继续执行第三步,如果达到,布局qmax将作为下周期的布局。
本发明的优点及有益效果如下:
1.在文件的副本计算阶段,考虑到文件的访问量的周期性变化,通过iowa算子组合预测算法对下周期文件的访问量进行预测,提高了预测的准确度。
2.在为文件副本选择节点的过程中,综合考虑文件的访问延迟,系统负载和系统安全性,使文件的副本放置更加合理。
附图说明
图1是本发明提供优选实施例的模型建立原理图;
图2为本发明文件管理示意图;
图3为本发明的布谷鸟迭代示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、详细地描述。所描述的实施例仅仅是本发明的一部分实施例。
本发明解决上述技术问题的技术方案是:
本发明公开了一种基于组合预测的动态文件放置策略文件副本管理方法,如图1所示,包括一下步骤:
第一步,获取文件访问量数据集,文件访问量数据集以{xit,t=1,2,...,n}表示,其中xit表示文件i第t周期的访问量;
第二步,预测得到下一个周期文件的访问量
第三步,计算下周期文件副本的数目,根据预测得到的下周期文件访问量
第四步,构建文件副本与存储节点的01矩阵,将文件副本在存储系统中的存放的存放位置用01表示,如果节点n中存在文件f的副本,则用1表示,否则为0;
第五步,计算下周期文件副本数目与当前布局文件副本数量的变化量,根据预测得到的文件副本数目与当前存储系统中的文件副本数量计算文件副本的增删数目;
第六步,通过布谷鸟算法迭代选择系统中节点进行文件副本的增加或者删除。根据计算得到的文件副本增删数目以及存储节点的数据发送速率,节点的存储空间大小,节点的负载,通过布谷鸟算法为每一个副本选择存储节点。
在本实施例,步骤一中,假设有8个文件的6个周期的访问量如下
在本实施例,步骤二中,根据第一步的文件副本历史访问量对下一周期的访问量进行预测,预测结果分别为:6,207,76,46,93,114,53,43。
在本实施例,步骤三中,根据预测得到的下周期文件访问量结果,以及文件的大小size,访问最大等待延迟t阈值,节点的最小发送速率300mb/s,文件大小分别为452,886,558,669,901,684,753,851,单位为mb,t阈值设置为2min。则计算得到的副本数目分别为1,5,2,1,2,4,1,1。因为文件副本存储策略设置的最少副本数目为3,因此计算得到的第6周期副本数目为3,5,3,3,3,3,3,3。
在本实施例,步骤四中,第5周期的文件副本数目分别为3,3,3,3,3,4,3,3。假设有6个节点,节点的属性包括节点的发送速率vnode和节点的故障率pnode,在本次实例vnode的大小范围在(300,600)之间,单位为mb/s,节点故障率pnode的取值在(0.001,0.041)之间,具体设置中如下:
第5周期的布局的01矩阵表示如下:
表中节点与文件对应矩阵值为1表示,该节点存在该文件的副本,否则表示该节点不存在该文件的副本,比如表中(f1,node1)对应的值为1,表示在node1的节点上存在文件f1的副本,比如表中(f1,node2)对应的值为0,表示在node2的节点上不存在文件f1的副本。
在本实施例,步骤五中,根据第三步中计算得到的第6周期的副本数分别为(3,5,3,3,3,3,3,3),第5周期每个文件的副本数目分别为(3,3,3,3,3,4,3,3),副本数目没有改变的文件不需要调整位置,既文件f1、f3、f4、f5、f7、f8的副本不需要调整位置;文件f2增加了2个副本,需要从节点上不存在f2副本的节点上选择2个节点存放f2新的副本;文件f6减少了1个副本,需要从存放了f6副本的节点中选择一个节点从中删除f6的副本。
在本实施例,步骤六中,将新的文件副本根据布谷鸟算法进行优化布局,布局结果如下
选择在将文件f2的新副本放置在节点node3和节点node6上,删除节点node2上的f6的副本;为了降低访问延迟,可以将访问量与文件大小乘积大的文件的副本尽可能放置在发送速率高的节点上;假设第6周期个文件的访问量分别为4,488,73,47,96,123,43,58,则没有经过预测的布局访问延迟为:65.524s,文件平均可靠性为0.9999959;经过预测的的总的平均访问延迟为53.208s,文件平均可靠性为0.9999966。
以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范围。在阅读了本发明的记载的内容之后,技术人员可以对本发明作各种改动或修改,这些等效变化和修饰同样落入本发明权利要求所限定的范围。
1.一种云存储系统中基于组合预测的动态文件放置方法,其特征在于,包括以下步骤:
s1,依据云存储系统中文件的历史访问量,获取文件访问量的时序序列;
s2,根据文件访问的访问量的时序序列和设置的一个文件响应时间阈值计算文件的副本数目;
s3,利用iowa算子组合预测方法对文件的下周期访问经行预测,根据预测结果计算下周期文件副本的数目;iowa算子组合预测方法先分别用自回归滑动平均模型和三次指数平滑模型预测下周期访问量,在根据两种预测模型的精确度计算两种预测模型的权值,根据权值和分别预测得到的数据得到下周期预测访问量;
s4,构建云存储系统目标优化函数;
s5,根据文件副本变化数目和云存储系统目标优化函数,通过布谷鸟算法对存储系统的文件副本进行增加和删减。
2.根据权利要求1所述的一种云存储系统中基于组合预测的动态文件放置方法,其特征在于,所述步骤s1依据云存储系统中文件的历史访问量,获取文件访问量的时序序列{xit,i=1,2,…n},其中xit为文件i在t周期的访问量,t为周期数;所述xit为正整数,n表示文件的数量,且i、t均为不大于n的正整数。
3.根据权利要求1所述的一种云存储系统中基于组合预测的动态文件放置方法,其特征在于,所述步骤s2中要求被访问的文件副本的响应时间超过设定的阈值t阈值,单个节点上处理的文件访问量不得超过:
其中ttran表示访问文件的响应时间;t阈值为由管理员设定的文件fi最大响应时间,v(dj)为节点dj的数据发送速率,s(fi)表示文件的大小;kfi表示单个节点上文件fi的最大访问数量;
计算文件fi的副本数目numfi:
其中,afi表示文件fi的访问量;
如果numfi>3,将文件划副本数目设置为numfi;如果numfi<3,将文件副本数目设为3。
4.根据权利要求3所述的一种云存储系统中基于组合预测的动态文件放置方法,其特征在于,所述步骤s3中利用iowa算子组合预测方法对热点文件的下周期访问经行预测,组合预测模型的预测值:
组合预测模型的单个预测模型权重计算方法:
其中,xt表示t时间段文件的访问量,ait是t时间段单个预测模型i预测值,vit是ait的诱导值,m表示预测模型的数量,即单个预测模型i在t时间段的精确度,v-index(it)是v1t,v2t,…vmt中从小到大的顺序排列的第i个大的下标,fwt表示t时间段组合预测的值,wi与a1t,a2t,...amt的大小和位置无关,只与其诱导值大小排序的位置有关,et是组合预测模型t时刻的组合预测模型误差,mins(w)最小化n个周期组合预测模型的误差。
根据当前副本数目和预测得到的下一副本数目,计算得到需要增加和减少的副本集合{numiop,i=1,2,…n},numiop大于0表示需要增加文件fi的副本,numiop小于0表示需要减少文件fi的副本,numiop等于0表示文件fi的副本不需要增加或者减少,所述numiop为整数,i为正整数。
5.根据权利要求4所述的一种云存储系统中基于组合预测的动态文件放置方法,其特征在于,所述步骤s4中,构建云存储系统目标优化函数具体包括:
云存储系统可靠性可定义为:
其中i为文件fi,n为文件的个数,j为节点dj,m为节点的个数,m(i,j)若为1,则表示文件i在节点j上,pj表示节点dj的故障概率;
系统的发送时延可以定义为所有文件的平均发送时延:
a(i,j)表示文件fi在节点j上的访问量;s(i)表示文件fi的大小,v(j)表示节点dj的发送速率,k表示文件访问队列中序号;
节点j上的负载定义为访问速率与服务时间的乘积:
系统的平均负载可以表示如下:
负载变化目标函数lv:
所述优化函数如下所示:
α β γ=1
α,β,γ为系统常量。
6.根据权利要求5所述的一种云存储系统中基于组合预测的动态文件放置方法,其特征在于,所述步骤s5中基于布谷鸟算法,对新增文件副本和需要删除的文件副本进行管理,具体包括:初始化鸟巢个数q、适应度函数fitness,设置迭代次数it,鸟巢中的一个鸟蛋代表一种副本的一个布局方案,迭代方案如下:
第一步,根据现有的文件副本布局和需要增删的文件副本个数,随机生成q个布局;
第二步,通过预测的下周期文件访问量分别对q个布局进行计算适应度,找到适应度最高的布局方案,并标记为当前最优布局qmax;
第三步,随机从不是最优布局qmax的其他个布局q-1种选择一个布局a,进行随机行走,得到新的布局a',并计算其适应度;
第四步,随机从不是最优布局qmax的其他个布局q-1种选择一个布局b,比较a'的适应度和b的适应度,如果a'的适应度大于b的适应度,则抛弃布局b,将a'放入布局集合中;
第五步,抛弃q个布局方案中的适应度低的布局,并产生新的布局放入布局集合中,并计算找到适应度最高的布局方案,并标记为当前最优布局qmax;
第六步,判断是否达到最大迭代次数,如果没有达到,继续执行第三步,如果达到,布局qmax将作为下周期的布局。
技术总结