SMR磁盘学习4--HiSMRfs

Posted taoliu_alex

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SMR磁盘学习4--HiSMRfs相关的知识,希望对你有一定的参考价值。

HiSMRfs a high performance file system for   shingled storage array

 

论文报告

 

第一部分:总述

 

HiSMRfs是一种运行在SMR磁盘上的文件系统,能够在没有重映射层的情况下管理SMR磁盘和支持随机写操作。为了达到比较好的性能,HiSMRfs分离了元数据和文件数据,并且分开管理它们。全文主要包括四个方面的内容,分别是SMR的简介,HiSMRfs的设计和实现,不同存储阵列下的性能表现,以及总结。

全文的重点在于HiSMRfs的设计与实现。HiSMRfs提供给应用程序标准的可移植操作系统接口。使用元数据管理模块和文件数据管理块通过设备的读写接口直接分别在磁盘的unshingled部分和shingled部分管理元数据和文件数据。并且使用File Caching and Placement 模块依据文件大小和读取频次来辨别和分离热数据和冷数据并且将数据存放在不同类型的磁盘上。使用树结构的元数据管理模块,并且使用哈希表来加快文件的查询。在文件数据管理模块中实现了四个主要的模块,分别是文件数据分配模块,垃圾回收模块,需求队列调度模块以及band layout模块。HiSMRfs中的RAID 模块则是实现在文件系统层面的,并且提供了良好的容错性能。以上几个模块共同组成了HiSMRfs的结构。

在文章的后面则是比较了在两种不同的阵列中,分别在使用HiSMRfs和传统的EXT4下比较预分配时间,吞吐率,每秒操作数以及延时四种性能,得到了HiSMRfs性能相对更优的结论。

整篇文章的组织结构如下图所示。

 

第二部分:重难点详解

1 元数据

 

为描述数据的数据(data about data),主要是描述数据属性信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。 HISMRFS是将元数据与数据分开,因为元数据比较小而且读取和更改频繁,存放到非瓦片记录的部分,而较大的文件数据,则因为读取较少,存放到瓦片式磁盘中去。

 

2 HISMRfs的组织结构

 

从图中容易看出HiSMRfs6个部分组成,分别是应用接口,元数据管理模块,文件数据管理模块,文件缓存,规约模块,RAID模块以及设备接口。元数据管理模块采用树型结构,每个节点存储元数据信息,各节点之间采用父指针,孩子指针以及邻居指针相连接,最重要的是,管理模块才用了hash表的结构,加快了在文件目录中目标数据的查找速度。另外对于元数据的操作都会被时间戳记录在日志文件中,并且存储在非瓦片磁盘上。文件数据的管理模块又分成四个部分,分别是文件数据分配模块,垃圾回收模块,需求队列调度模块以及band/zone布局模块。文件数据分配模块决定数据写的位置。需求队列调度模块高效的调度文件的读写需求以获取更高的文件系统利用率和性能表现。垃圾回收模块则负责回收被释放的空间,在HiSMRfs中,提供了两种垃圾回收方式,一种是基于文件的,一种是基于band的。基于文件的是在空余的地方顺序写,而释放原文件空间。基于band的则是将有用数据重新写在新的band中,释放原来的band

3 RAID模块。

相对于传统的RAID系统是在block层面实现的,HiSMRfs则是在文件层实现RAID的功能的。因而HISMRfs能够工作在一系列SMR存储设备上。一次同时,它还提供了很好的容错性。通过文件系统信息的反馈,HISMRfs能够进一步的在错误发生和设备出错方面有更好的性能表现。RAID整体结构如下图所示。

 

 

以上是关于SMR磁盘学习4--HiSMRfs的主要内容,如果未能解决你的问题,请参考以下文章

SMR磁盘学习5---skylight

SMR磁盘学习3---caveat-scriptor

SMR磁盘学习8---Novel Address Mappings for Shingled Write Disks

Linux学习-软件磁盘阵列的设定(mdadm)

asm磁盘组,asm磁盘状态学习

磁盘性能测试学习之路1-认识磁盘的各项参数