一种网络编码文件系统中基于数据温度的重建方法

文档序号:6536875阅读:121来源:国知局
一种网络编码文件系统中基于数据温度的重建方法
【专利摘要】本发明公开了一种网络编码文件系统中基于数据温度的重建方法,包括下述步骤:(1)数据温度监控进程,负责监控数据区域访问频度的动态变化,统计访问频度;(2)重建任务调度进程,定义数据区域重建优先级为:该区域的数据温度值/磁盘距离,数据温度越高,与上一重建区域的距离越短,则该区域的重建优先级越高;(3)重建任务执行进程,从重建任务队列中取出等待重建的任务,并进行相应的数据重建工作,直到所有数据区域重建工作完成。本发明通过优先重建热点数据缓解了网络编码文件系统重建过程中用户请求数据流与磁盘重建数据流争用IO资源的矛盾,明显地缩短了整个重建过程的耗时。
【专利说明】一种网络编码文件系统中基于数据温度的重建方法
【技术领域】
[0001]本发明属于计算机存储【技术领域】,具体涉及了一种在网络编码文件系统中基于数据温度的重建方法。
【背景技术】
[0002]在这个大数据的年代,数据量增长的速度是惊人的。据IDC报告显示,预计到2020年全球数据总量将超过40ZB(相当于4万亿GB),这一数据量是2011年的22倍。为了给海量数据提供有效的存储及服务的能力,诞生了许多大规模数据存储系统,比如GFS (谷歌文件系统),Hadoop, OceanStore, Lustre, Gluster等。在这些大型存储系统中,数据分布在一系列的节点(磁盘等物理介质)上,为了保证数据的可用性,系统必须能够容忍节点失效。为了达到这一目的,分布式存储系统弓I入了冗余数据以提供容错能力。
[0003]一般的容错技术包括副本技术,纠删码技术和网络编码技术。副本技术对一个数据对象创建多个副本,并到这些副本分散到不同的节点上。当一个节点失效时,可以通过访问其它节点的数据副本来重建新节点。比如GFS为每个数据块提供了三个副本。纠删码技术是能够容忍一个或多个节点同时失效的编码技术,而且比副本技术有更高的空间存储效率。常见的纠删码有Reed-Solomon码,LDPC码等。网络编码技术通过选择特殊的编码系数来构造生成矩阵,在节点修复时,把存储在同一节点上的若干数据块做线性运算,所以该节点传输一个数据块就等于提供了做运算之前的若干个数据块的信息,从而有效地节省了带宽。
[0004]Dimakis等人于2007年首先在分布式存储系统中引入网络编码思想,提出了一种称为再生码(regenerating code)的编码技术。随后,Rashmi等人提出了 exact minimumbandwidth regenerating (E-MBR)码,突破了网络编码的理论阶段给出了一个具体的最优带宽再生码方案。虽然网络编码在数据重建时的下载带宽方面表现优越,但是其付出的运算开销却不可忽视。据NCFS研究表明,网络编码在退化模式下的表现明显不如RAID5和RAID6。Lei Tian等人实现了以访问频度优先的数据重构优化方法来改善磁盘阵列中数据重建缓慢的问题,不过他们只限于对RAID5和RAIDlO的研究。基于此,本发明提出了一种在网络编码修复过程中利用数据温度来加快数据重建过程的方法。

【发明内容】

[0005]本发明的主要目的是提供一种在网络编码文件系统中基于数据温度的重建方法,本发明很好地解决了在网络编码文件系统中磁盘数据重建缓慢的问题,通过对访问频度高的数据区域优先重建,让热点数据的后续访问请求能在磁盘上被命中,减少了重复的数据恢复解码运算,另外,用户请求数据流与磁盘重建数据流相互融合,能够大幅度地缩短数据重建时间和用户响应时间,提高存储系统吞吐率。
[0006]本发明的目的通过下述技术方案实现:
[0007]一种网络编码文件系统中基于数据温度的重建方法,包括下述步骤:[0008]( I)数据温度监控进程,负责监控数据区域访问频度的动态变化,统计访问频度;
[0009](2)重建任务调度进程,定义数据区域重建优先级为:该区域的数据温度值/磁盘距离,数据温度越高,与上一重建区域的距离越短,则该区域的重建优先级越高。然后对数据区域的重建优先级按从高到低进行排序,选取优先级最高的数据区域作为当前任务,并把该任务放入重建任务队列,直到所有数据区域的重建任务都已放入重建任务队列;
[0010](3)重建任务执行进程,从重建任务队列中取出等待重建的任务,并进行相应的数据重建工作,直到所有数据区域重建工作完成;
[0011](4)元数据对齐进程,新磁盘重建完成之后,把新磁盘的元数据上传至上层文件系统集中管理,保持分布式存储系统数据一致性。
[0012]优选的,当网络编码存储系统中的某一个磁盘失效后,需要一个新磁盘来替代它,并且在新磁盘上面重建失效磁盘的原有数据信息;对于新磁盘,把它划分成N个不重叠的连续区域,假如磁盘大小为M,数据区域大小为B,那么N=M/B ;每个区域对应一个访问频度,用数组accessCount [N]表示,初始化为O ;用数组distance [N]来维护每个区域与当前重建区域的距离,初始化全为I ;用数组priority [N]来表示每个区域的重建优先级,初始化为O ;对于新磁盘上每个数据区域的重建状态,用O代表未重建,I代表已重建,用数组constructed [N]表示,初始化为O ;启动数据温度监控进程,重建任务调度进程和重建任务执行进程。
[0013]优选的,步骤(I)中,数据温度监控进程具体为:
[0014](1.U在文件系统的IO调度层注册钩子函数,监控每一个文件系统的对磁盘的IO请求,记录IO请求的磁盘号及偏移地址Addr ;
[0015](1.2)如果磁盘号不是失效盘,则交给文件系统处理,否则计算该请求落入的区域号为 D=Addr/B ;
[0016](1.3)对访问频度数组作accessCount[D]做+1运算;
[0017](1.4)返回(1.3)。
[0018]优选的,步骤(2)中,重建任务调度进程具体为:
[0019](2.1)通过生产者-消费者模型,检查重建任务队列conQueue是否为空,如果不为空,则阻塞,否则转到(2.2);
[0020](2.2)计算重建优先级 priority[N],对于 i (O ?N-1),priority[i]=accessCount[i]/distance[i]ο 其中 accessCount[i]是数据温度,distance [i]是i区域与上一个重建区域的区域号差的绝对值,如果i是上一个重建区域本身,那么distance[i]取232 — I (理论上应取无穷大);
[0021](2.3)遍历数组priority [N],选取最大值priority [I],把I放入重建任务队列conQueue,并把 accessCount [I]置为 _1 ;
[0022](2.4)返回(2.1)。
[0023]优选的,步骤(3)中,重建任务执行进程具体为:
[0024](3.1)检查数组constructed [N]是否全为I,以判断是否全部数据区域都已重建完成,如果是转到(3.5),否则转到(3.2);
[0025](3.2)通过生产者-消费者模型检查重建任务队列conQueue是否为空,如果为空,则阻塞,否则转到(3.3);[0026](3.3)获取重建数据区域号I,执行以I为参数的数据重建函数,重建函数的过程与网络编码文件系统本身的重建过程一致;
[0027](3.4)修改表示数据区域是否已重建的状态数组constructed [N],置constructed [I]为 I ;返回(3.1);
[0028](3.5)结束。
[0029]优选的,步骤(4)中,元数据对齐进程具体为:
[0030](4.1)收集新磁盘的元数据信息,包括磁盘设备号,磁盘容量大小,数据区域大小,数据重建的时间戳等;
[0031](4.2)把元数据信息写入网络编码文件系统的元数据文件。
[0032]优选的,采用网络编码数据重建函数,无需连接所有存活节点,而只需要连接部分存活节点,利用生成矩阵来生成冗余编码块,即可下载比原始信息少甚至和单个磁盘容量相等的冗余信息来恢复数据。
[0033]优选的,所述网络编码为确定性最小带宽再生码E-MBR,所述E-MBR为一种准确性数据重建编码,编码时每个节点上的每个数据块都在其余节点中存在一个备份,每个节点的数据块交集为I。
[0034]本发明相对于现有技术具有如下的优点及效果:
[0035](I)通过优先重建热点数据缓解了重建过程中用户请求数据流与磁盘重建数据流争用IO资源的矛盾,明显地缩短了整个重建过程的耗时。在存储系统中,当磁盘失效之后,整个系统就处于退化模式。此时,用户对失效磁盘的访问由之前的直接访问转化成一系列复杂的流程,包括连接存活节点,从存活节点下载相应的冗余信息,经过解码得到原始信息,再从原始信息中提取失效磁盘存储的那部分数据,以提供给用户访问。而另一方面,磁盘数据重建也需要从存活节点下载相应的数据信息,把经过解码得到的数据写到新的替代节点上。优先重建访问频度高的数据,可以把后续访问该数据的请求直接引导到新磁盘节点上,从而避免了上述两个过程的频繁来回寻道,从而降低了磁盘重建的时间。
[0036](2)本发明通过优先重建热点数据避免了反复的数据恢复的编码操作,使用户请求的响应更加迅速。系统处于退化模式时,需从其它节点下载数据来恢复需要访问的数据,再返回给用户。如果该数据一直没有被重建在新磁盘上,那么每次这部分数据的访问请求都会执行一遍数据恢复的编码操作。优先重建热点数据,让热点数据的访问直接从新磁盘返回,加之热点数据本身的访问量大,从而避免了大量重复的编码操作,加快了用户请求的响应速度。。
[0037](3)本发明通过优先重建热点数据提升了 I/O的效率,获得了更高的吞吐率。磁盘完成一个I/O请求所花费的时间,由寻道时间、旋转延迟和数据传输时间三部分构成,任何一部分时间的延迟都会使整个I/O请求的时间加长。本方法使得磁盘在某个时间段内,用户请求数据和磁盘重建数据尽可能地重合,磁盘的读写尽量集中在某一片区域,从而减少了寻道的次数,缩短了旋转延迟,每个I/O请求所花费的时间减少,获得更高的吞吐率。。
【专利附图】

【附图说明】
[0038]图1为本发明的网络编码文件系统中基于数据温度的重建方法的系统架构示意图;[0039]图2为本发明的数据温度监控进程工作流程图;
[0040]图3为本发明的重建任务调度进程工作流程图;
[0041]图4为本发明的重建任务执行进程工作流程图。
【具体实施方式】
[0042]下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
[0043]实施例
[0044]如图1所示,网络编码文件系统中基于数据温度的重建方法的系统架构示意图:
[0045]系统架构包括用户、NCFS(Network Coding File System)和若干存储节点。其中NCFS是基于FUSE,实现在用户空间的网络编码文件系统。通过把物理节点挂载到当前的文件系统下面(如/mnt/ncfs),就可以像访问逻辑节点一样访问节点里面的数据。NCFS主要由文件系统层,编码层,存储层组成。文件系统层负责文件系统的操作,比如文件读、写,删除等;编码层提供了 RAID5,RAID6, E-MBR的存储编码方式;存储层提供访问具体物理设备的接口。在实验中,我们用Iinux操作系统的伪块设备/dev/loop来模拟物理磁盘的存储行为,用户的读、写请求都是针对/dev/loopl,/dev/loop2等块设备的读写。
[0046]另外,从用户的角度,我们用帕雷托法则模拟了用户请求的访问行为。帕雷托法则又称80-20法则,在计算机科学里,80-20法则代表80%的资源只被20%的操作所使用。具体到文件系统的访问行为,是指80%的请求往往集中在20%的文件上,从而导致某一部分数据被频繁重复地访问,而其它数据则相对访问频度较低。我们用该法则来产生用户的请求,
以使数据访问行为具有80-20特征。具体公式为Px(j〕=長,其中
【权利要求】
1.一种网络编码文件系统中基于数据温度的重建方法,其特征在于,该方法基于网络编码文件系统,即以网络编码为存储编码的文件系统;方法包括下述步骤: (1)数据温度监控进程,负责监控数据区域访问频度的动态变化,统计访问频度; (2)重建任务调度进程,定义数据区域重建优先级为:该区域的数据温度值/磁盘距离,数据温度越高,与上一重建区域的距离越短,则该区域的重建优先级越高;然后对数据区域的重建优先级按从高到低进行排序,选取优先级最高的数据区域作为当前任务,并把该任务放入重建任务队列,直到所有数据区域的重建任务都已放入重建任务队列; (3)重建任务执行进程,从重建任务队列中取出等待重建的任务,并进行相应的数据重建工作,直到所有数据区域重建工作完成; (4)元数据对齐进程,新磁盘重建完成之后,把新磁盘的元数据上传至上层文件系统集中管理,保持分布式存储系统数据一致性。
2.根据权利要求1所述的网络编码文件系统中基于数据温度的重建方法,其特征在于,当网络编码存储系统中的某一个磁盘失效后,需要一个新磁盘来替代它,并且在新磁盘上面重建失效磁盘的原有数据信息;对于新磁盘,把它划分成N个不重叠的连续区域,假如磁盘大小为M,数据区域大小为B,那么N=M/B;每个区域对应一个访问频度,用数组accessCount[N]表示,初始化为O ;用数组distance[N]来维护每个区域与当前重建区域的距离,初始化全为I ;用数组priority [N]来表示每个区域的重建优先级,初始化为O ;对于新磁盘上每个数据区域的重建状态,用O代表未重建,I代表已重建,用数组constructed [N]表示,初始化为O ;启动数据温度监控进程,重建任务调度进程和重建任务执行进程。
3.根据权利要求2所述的网络编码文件系统中基于数据温度的重建方法,其特征在于,步骤(1)中,数据温度监控进程具体为: (1.1)在文件系统的IO调度层注册钩子函数,监控每一个文件系统的对磁盘的IO请求,记录IO请求的磁盘号及偏移地址Addr ; (1.2)如果磁盘号不是失效盘,则交给文件系统处理,否则计算该请求落入的区域号为D=Addr/B ; (1.3)对访问频度数组作accessCount[D]做+1运算;
(1.4)返回(1.3)。
4.根据权利要求1所述的网络编码文件系统中基于数据温度的重建方法,其特征在于,步骤(2)中,重建任务调度进程具体为: (2.1)通过生产者-消费者模型,检查重建任务队列conQueue是否为空,如果不为空,则阻塞,否则转到(2.2);
(2.2)计算重建优先级 priority [N],对于 i(0 ~N_1), priority [i] =accessCount [i] /distance [i];其中accessCount [i]是数据温度,distance [i]是i区域与上一个重建区域的区域号差的绝对值,如果i是上一个重建区域本身,那么distance[i]取232 — I ; (2.3)遍历数组pri ority [N],选取最大值priority [I],把I放入重建任务队列conQueue,并把 accessCount [I]置为 _1 ;
(2.4)返回(2.1)。
5.根据权利要求1所述的网络编码文件系统中基于数据温度的重建方法,其特征在于,步骤(3)中,重建任务执行进程具体为: (3.1)检查数组constructed [N]是否全为1,以判断是否全部数据区域都已重建完成,如果是转到(3.5),否则转到(3.2); (3.2)通过生产者-消费者模型检查重建任务队列conQueue是否为空,如果为空,则阻塞,否则转到(3.3); (3.3)获取重建数据区域号I,执行以I为参数的数据重建函数,重建函数的过程与网络编码文件系统本身的重建过程一致; (3.4)修改表示数据区域是否已重建的状态数组constructed [N],置constructed [I]为I ;返回(3.1); (3.5)结束。
6.根据权利要求1所述的网络编码文件系统中基于数据温度的重建方法,其特征在于,步骤(4)中,元数据对齐进程具体为: (4.1)收集新磁盘的元数据信息,包括磁盘设备号,磁盘容量大小,数据区域大小,数据重建的时间戳等; (4.2)把元数据信息写入网络编码文件系统的元数据文件。
7.根据权利要求1所述的网络编码文件系统中基于数据温度的重建方法,其特征在于: 采用网络编码数据重建函数,无需连接所有存活节点,而只需要连接部分存活节点,利用生成矩阵来生成冗余编码块,即可下载比原始信息少甚至和单个磁盘容量相等的冗余信息来恢复数据。
8.根据权利要求1所述的网络编码文件系统中基于数据温度的重建方法,其特征在于: 所述网络编码为确定性最小带宽再生码E-MBR,所述E-MBR为一种准确性数据重建编码,编码时每个节点上的每个数据块都在其余节点中存在一个备份,每个节点的数据块交集为I。
【文档编号】G06F9/46GK103810027SQ201410037043
【公开日】2014年5月21日 申请日期:2014年1月24日 优先权日:2014年1月24日
【发明者】邓玉辉, 李凯 申请人:暨南大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1