利用重复数据删除和增量编码有效利用基于闪存的SSD
发布时间:2020-02-16 04:12
【摘要】:为解决基于闪存的固态盘寿命有限及随容量被消耗可靠性也逐渐衰减的特性,基于两个重要的观察结果:a)存在大量的重复数据块;b)元数据块比数据块被更加频繁地访问或修改,但每次更新仅有微小变化,提出了flash saver,耦合EXT2/3文件系统,结合重复数据删除和增量编码来减少到SSD的写流量。Flash saver将重复数据删除用于文件系统数据块,将增量编码用于文件系统元数据块。实验结果表明,flash saver可减少高达63%的总写流量,从而使其具有更长的使用寿命、更大的有效flash空间和更高的可靠性。
【图文】:
牡刂反佣鈁范ㄕ飧銮?求是元数据块写还是普通数据块写。如果是元数据块写,计算它的增量变化,并链接到相应的列表;如果是普通数据块写,计算块的SHA-1哈希值作为指纹,然后检查它是否已经存在。图1给出了flashsaver的设计框架。图1中有三个主要部分,即语义grubber、增量编码和哈希引擎。语义grubber负责从底层SSD提取语义信息构造元数据块集;增量编码管理元数据块增量;哈希引擎进行指纹计算和维护两个哈希表。本文在EXT2/3文件系统的代码中添加、修改了一千余行代码来实现flashsaver。下面将详细讨论这三个组成部分。图1Flashsaver设计框架2.1如何识别语义元数据块语义grubber主要是基于SDS的工作,用离线分析方法来提取元数据块。对于某些类型的文件系统,可以很容易地找出它的大部分元数据块。例如EXT2/3中有六种类型的元数据块,分别是超级块、组描述符块、i节点表块、间接块、数据位图块和i节点位图块,大部分的元数据块可以通过执行简单的计算很容易地推断出。提取元数据块后,构造一个按升序排列存储所有元数据块地址的数组,每个数组元素包括块地址、记录元数据块最近更新次数的计数器、将所有发生在该块的增量连接在一起的头结构和一些其他的辅助信息。但是,语义grubber并不能获得所有文件系统元数据块,例如间接块是动态分配的,并难以以静态离线方法跟踪。但这并不会对flashsaver有太大影响,原因在于:a)只有相对较大的文件才使用间接块,但小文件在文件总数中占绝大多数;b)遗漏的元数据块会当做数据块进行哈希计算并进行重复数据删除处理。2.2消除重复数据块与重复数据删除系统一样,每个数据块用哈希引擎中的SHA-1算法进行指纹登记来测试其唯一性[2,,5]。此外,哈希引擎维护两个哈希表,第一个哈希表将数据块?
瓿杀嘁牍
本文编号:2580015
【图文】:
牡刂反佣鈁范ㄕ飧銮?求是元数据块写还是普通数据块写。如果是元数据块写,计算它的增量变化,并链接到相应的列表;如果是普通数据块写,计算块的SHA-1哈希值作为指纹,然后检查它是否已经存在。图1给出了flashsaver的设计框架。图1中有三个主要部分,即语义grubber、增量编码和哈希引擎。语义grubber负责从底层SSD提取语义信息构造元数据块集;增量编码管理元数据块增量;哈希引擎进行指纹计算和维护两个哈希表。本文在EXT2/3文件系统的代码中添加、修改了一千余行代码来实现flashsaver。下面将详细讨论这三个组成部分。图1Flashsaver设计框架2.1如何识别语义元数据块语义grubber主要是基于SDS的工作,用离线分析方法来提取元数据块。对于某些类型的文件系统,可以很容易地找出它的大部分元数据块。例如EXT2/3中有六种类型的元数据块,分别是超级块、组描述符块、i节点表块、间接块、数据位图块和i节点位图块,大部分的元数据块可以通过执行简单的计算很容易地推断出。提取元数据块后,构造一个按升序排列存储所有元数据块地址的数组,每个数组元素包括块地址、记录元数据块最近更新次数的计数器、将所有发生在该块的增量连接在一起的头结构和一些其他的辅助信息。但是,语义grubber并不能获得所有文件系统元数据块,例如间接块是动态分配的,并难以以静态离线方法跟踪。但这并不会对flashsaver有太大影响,原因在于:a)只有相对较大的文件才使用间接块,但小文件在文件总数中占绝大多数;b)遗漏的元数据块会当做数据块进行哈希计算并进行重复数据删除处理。2.2消除重复数据块与重复数据删除系统一样,每个数据块用哈希引擎中的SHA-1算法进行指纹登记来测试其唯一性[2,,5]。此外,哈希引擎维护两个哈希表,第一个哈希表将数据块?
瓿杀嘁牍
本文编号:2580015
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/2580015.html