日志型异构混合内存文件系统的实现方法

文档序号:10569926阅读:435来源:国知局
日志型异构混合内存文件系统的实现方法【专利摘要】本发明提供了一种日志型异构混合内存文件系统的实现方法,混合内存划分步骤:对文件系统的混合内存进行分层次划分,即划分为zone、section、segment、page这四个不同的逻辑块,并对四个逻辑块进行逻辑编号;混合内存逻辑块映射步骤:构建文件系统逻辑块到底层SCM物理地址的映射,并实现页面的动态分配和回收;多层次散列表构建步骤:构建多层次的基于散列表的目录结构,用于进行文件查找。本发明中的实现方法使文件系统能够根据异构内存介质的硬件特性合理调度分配存储空间,提高硬件的利用率,延长硬件的使用寿命,提高文件的存储效率和访问效率。【专利说明】曰志型异构混合内存文件系统的实现方法
技术领域
[0001]本发明涉及文件系统
技术领域
,具体地,涉及一种日志型异构混合内存文件系统的实现方法。【
背景技术
】[0002]新型存储技术的兴起和不同SCM(StorageClassMemory,存储类内存)器件的出现,引起了人们对混合内存系统架构和管理方式的关注和研究。SCM器件具有非易失性、读快写慢、静态功耗低而动态功耗高等特点,异于传统的内存。国内外众多的专家学者也基于SCM器件提出过多种内存组织方式和优化方法。然而众多的组织方式和优化方法都有各自的局限性和适用范围。[0003]随着云计算、物联网等技术的发展,数据正以前所未有的速度不断增长和累积,如何管理和组织这些数据,对传统的文件系统来说是一个挑战。从上层应用来看,尽管当前的文件系统为应用提供了一种易用的数据组织方式,然而数据的增长和信息复杂性扩张都加大了资源管理和检索数据的难度,而且数据处在不断变化之中,应用很难准确获得数据的全貌及数据间的潜在关系;另外从底层硬件的角度来看,传统的数据组织方式也无法充分发挥DRAM和SCM混合内存架构的效用,如何有效地组织数据,最大化地提高混合内存的性能也是一个挑战。【
发明内容】[0004]针对现有技术中的缺陷,本发明的目的是提供一种日志型异构混合内存文件系统的实现方法。[0005]根据本发明提供的日志型异构混合内存文件系统的实现方法,包括如下步骤:[0006]混合内存划分步骤:对文件系统的混合内存进行分层次划分,即划分为zone(域)、section(区)、segment(段)、page(页)这四个不同的逻辑块,并对四个逻辑块进行逻辑编号;[0007]混合内存逻辑块映射步骤:构建文件系统逻辑块到底层SCM物理地址的映射,并实现页面的动态分配和回收;[0008]多层次散列表构建步骤:构建多层次的基于散列表的目录结构,用于进行文件查找。[0009]优选地,所述混合内存划分步骤中将文件系统的混合内存划分为四层,具体地,一个文件系统的混合内存包含多个zone;-个zone包含2*nl个物理地址连续的section;-个section包含2*n2个物理地址连续的segment;-个segment包含多个物理地址空间连续的page;page是内存存储空间分配的基本单位,nl、n2为正整数。[0010]优选地,还包括顺序写步骤:采用log-structured(日志型结构)和写时复制技术对异构混合内存进行顺序写操作;具体地,当需要修改某一块数据时,不在原地进行修改,而是将原来的块数据读入DRAM中完成修改后,把修改后的数据块写入到新的SCM块中。[0011]优选地,所述混合内存逻辑块映射步骤中,采用节点地址树将内存的逻辑编号与底层SCM物理地址进行映射。[0012]优选地,页面的动态分配和回收是指:预分配一个逻辑编号到底层SCM物理地址的映射表,当文件系统需要分配存储单元存储数据时,将分配到的实际物理地址填入映射表的一个表项;当要释放页面时,只需将相应的映射表项标记为失效,通过映射表管理底层SCM的页面的分配和回收。[0013]优选地,所述多层次散列表构建步骤包括:采用多个散列表,每个散列表代表一个层次,每层次散列表bucket(桶)包含的entry(项)存在不同,但同一个散列表bucket包含的entry数目相同的;将文件的目录层次与散列表的层次对应起来,当在第n层目录写入一个文件时,尝试从第n个散列表开始映射,当第n个散列表满时,再尝试映射到第n+1个散列表,进行n的自增,直到映射成功。[0014]与现有技术相比,本发明具有如下的有益效果:[0015]1、本发明提供的日志型异构混合内存文件系统的实现方法使文件系统能够根据异构内存介质的硬件特性合理调度分配存储空间,提高硬件的利用率,延长硬件的使用寿命,提高文件的存储效率和访问效率。[0016]2、本发明提供的日志型异构混合内存文件系统的实现方法在不同粒度对文件系统进行管理;为延长异构混合内存采取的均勾写策略,采用log-structured结构和写时复制技术,在保证文件系统一致性的同时,提高系统读写性能,延长器件使用寿命;节点地址树结构把混合内存的逻辑编号映射成块物理地址;多层次散列表,提高文件查找效率。【附图说明】[0017]通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:[0018]图1为SCM内存逻辑分区层次结构示意图;[0019]图2为文件系统整体结构示意图;[0020]图3为节点地址树结构示意图;[0021]图4为inode数据块示意图;[0022]图5为文件系统目录使用的多层次散列表。【具体实施方式】[0023]下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。[0024]根据本发明提供的日志型异构混合内存文件系统的实现方法,包括如下步骤:[0025]混合内存划分步骤:对混合内存进行分层次划分,即划分为zone、section、Segment、page这四个不同的逻辑块,并对四个逻辑块进行逻辑编号;[0026]其中,Page为内存分配的基本单位;对每个segment的空间使用信息进行统计描述,每个segment中只存储数据块或者node块;根据每个segment的空间使用率等信息进行存储空间的分配、回收等操作;[0027]混合内存逻辑块映射步骤:构建上层文件系统逻辑块到底层SCM物理地址的映射,并实现页面的动态分配和回收;[0028]具体地,引用一种虚拟内存抽象机制,可以将多个SCM设备看成一个设备,通过统一的映射表来实现对多种SCM设备的访问。引用了一个地址空间映射机制,文件元数据结构inode记录的只是数据所在块的逻辑单位nid,要获得数据的物理地址需要通过NAT树将nid转化为物理地址。利用这种虚拟技术实现上层文件系统逻辑块到底层SCM物理地址的映射,隐藏实际底层物理地址空间,简化文件对象的操作,并实现页面的动态分配和回收过程。通过NAT的地址映射机制,物理地址的改变只需修改映射层内容,不需修改上层文件系统的逻辑地址,简化文件系统的修改过程,提高文件系统的可用性。[0029]多层次散列表构建步骤:采用多个散列表,每个散列表代表一个层次。每层次散列表bucket包含的entry可能不同,但同一个散列表bucket包含的entry数目是相同的。将文件的目录层次与散列表的层次对应起来,当在第n层目录写入一个文件时,尝试从第n个散列表开始映射,当第n个散列表满时,再尝试映射到第n+1个散列表。重复此步骤,直到插入成功。[0030]使用多层次散列表对文件进行查找,减少时间复杂度,提高文件查找效率。[0031]具体地,如图1所示,对SCM内存进行逻辑分区,把整个内存划分为四层,依次为zone、section、segment、page四层。一个内存块中可以包含多个zone;-个zone包含2*nl个物理地址连续的section;-个section包含2*n2个物理地址连续的segment;-个segment包含多个物理地址空间连续的page;page是内存存储空间分配的基本单位,nl、n2为正整数。[0032]以内存为1TB大小的SCM为例,一个文件最小分得一个page大小的存储空间,那么整个SCM上的最大文件数目为1TB/4KB=228。假设描述一个文件所需要的元数据大小为256字节,所有文件的元数据需要的最大存储空间为256字节*228=64GB。[0033]在文件系统中需要经常访问这些元数据,一方面对访问元数据的响应时间要求较高,另一方面频繁读写会减少SCM的使用寿命。DRAM支持随机读写,速度比SCM要快并且寿命比SCM长。当在挂载文件系统时,将元数据复制到DRAM中;在系统运行时,直接读写DRAM中的数据,并每隔一定周期就DRAM的数据同步到SCM中。[0034]如图2,文件系统整体结构,其中文件系统的元数据包括:超级块(superblock,SB)、段信息表(segmentinformationtable,SIT)、段统计区(segmentsummaryarea,SSA)、节点地址树(NodeAddressTree,NAT),通过这些信息可以描述SCM内存的整体使用状态。[0035]超级块位于文件系统的开始位置,包含了文件系统的所有基本信息,包括系统已用空间,段的总数量,块的总数量,检查点列表等。[0036]SIT包含每个segment的文件信息,如segment的正在使用的内存块数、记录内存块是否正在被使用的位图。[0037]SSA记录了块的拥有者信息如父节点inode和它在父节点的偏移量。[0038]节点地址树(NodeAddressTree,NAT)将nid转换为块物理地址。节点地址树固定使用4层的树结构,叶子节点存储nid对应的块物理地址。[0039]引用了一个地址空间映射机制,inode记录的只是数据所在块的逻辑单位nid,要获得数据的物理地址需要通过NAT树将nid转化为物理地址。[0040]如图3节点地址树所示,NAT的查找方式如下:[0041]假设nid是36位的整数,用(nid?27)&0xlFF进行对NAT的第一层寻址,用(nid>>18)&0xlFF进行对NAT的第二层寻址,用(nid?9)&0xlFF进行对NAT的第三层寻址,用(nid)&OxlFF进行对NAT的第四层寻址得到叶子节点,读取叶子节点的内容即可得到nid对于的物理地址。[0042]利用这种虚拟技术实现上层文件系统逻辑块到底层SCM物理地址的映射,隐藏实际底层物理地址空间,简化文件对象的操作,并实现页面的动态分配和回收过程。通过NAT的地址映射机制,物理地址的改变只需修改映射层内容,不需修改上层文件系统的逻辑地址,简化文件系统的操作过程,提高文件系统的可用性。[0043]在SCM中存储数据信息,由于SCM的使用寿命与写的次数有关,均匀写可以延长SCM的使用寿命,所以文件系统采用log-structured结构对SCM通过C0W(copyonwirte)的方式顺序写。当需要修改某一块数据时,不在原地进行修改,而是把原来的块读入DRAM中完成修改后,把修改后的块写入到新的SCM块中。[0044]每个segment中只存储数据块或者node块。[0045]数据块储存用户数据,node块存储文件系统内部信息,如指针表。[0046]在系统中有6种node类型:inode、directnode、indirectnode、natnode、checkpointnode。每种类型node块的大小都是4KB。inode存储文件节点信息,directnode存储指向数据块的指针,indirectnode存储指向directnode的指针,natnode存储nat树节点信息。checkpointnode存储检查点信息。一个node是由inode元数据,929个数据块指针,2个一次间接块指针,2个二次间接块指针,1个三次间接块指针组成。如图4inode数据块示意图所示。一个目录项占据11个字节,包括文件名称的hash值、inode编号、文件名长度、文件类型四部分信息。一个目录块包含214个目录项和文件名,并且含有一个位图用来记录相应的目录项是否有效。在目录结构的实现中,引入了多层次的hash表,如图5文件系统目录使用的多层次散列表所示。每个bucket的块的个数的计算公式为f(n):[0048]每个层次的bucket个数为g(n,dirlevel):[0050]式中:n表示hash层数,dirlevel表示目录所在的层数,N表示hash的总层数。[0051]当文件系统在目录中查找文件名时,要首先计算文件名的hash值,接着文件系统从第〇层开始查找包含该文件名的目录项。如果没有找到,系统会查找下一层的hash表。在每一层的hash表中,只需搜索一个bucket。要搜索的bufcket序号h(n)由以下公式给定:[0052]h(n)=Hash(filename)%g(n,dirlevel)[0053]Hash(filename)是文件名的hash值,g(n,dirlevel)是第n+dirlevel层的bucket个数。[0054]以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。【主权项】1.一种日志型异构混合内存文件系统的实现方法,其特征在于,包括如下步骤:混合内存划分步骤:对文件系统的混合内存进行分层次划分,即划分为Z〇ne、secti〇n、Segment、page这四个不同的逻辑块,并对四个逻辑块进行逻辑编号;混合内存逻辑块映射步骤:构建文件系统逻辑块到底层SCM物理地址的映射,并实现页面的动态分配和回收;多层次散列表构建步骤:构建多层次的基于散列表的目录结构,用于进行文件查找。2.根据权利要求1所述的日志型异构混合内存文件系统的实现方法,其特征在于,所述混合内存划分步骤中将文件系统的混合内存划分为四层,具体地,一个文件系统的混合内存包含多个zone;-个zone包含2*nl个物理地址连续的section;-个section包含2*n2个物理地址连续的segment;-个segment包含多个物理地址空间连续的page;page是内存存储空间分配的基本单位,nl、n2为正整数。3.根据权利要求1所述的日志型异构混合内存文件系统的实现方法,其特征在于,还包括顺序写步骤:采用log-structured结构和写时复制技术对异构混合内存进行顺序写操作;具体地,当需要修改某一块数据时,不在原地进行修改,而是将原来的块数据读入DRAM中完成修改后,把修改后的数据块写入到新的SCM块中。4.根据权利要求1所述的日志型异构混合内存文件系统的实现方法,其特征在于,所述混合内存逻辑块映射步骤中,采用节点地址树将内存的逻辑编号与底层SCM物理地址进行映射。5.根据权利要求1所述的日志型异构混合内存文件系统的实现方法,其特征在于,页面的动态分配和回收是指:预分配一个逻辑编号到底层SCM物理地址的映射表,当文件系统需要分配存储单元存储数据时,将分配到的实际物理地址填入映射表的一个表项;当要释放页面时,只需将相应的映射表项标记为失效,通过映射表管理底层SCM的页面的分配和回收。6.根据权利要求1所述的日志型异构混合内存文件系统的实现方法,其特征在于,所述多层次散列表构建步骤包括:采用多个散列表,每个散列表代表一个层次,每层次散列表bucket包含的entry存在不同,但同一个散列表bucket包含的entry数目相同的;将文件的目录层次与散列表的层次对应起来,当在第η层目录写入一个文件时,尝试从第η个散列表开始映射,当第η个散列表满时,再尝试映射到第η+1个散列表,进行η的自增,直到映射成功。【文档编号】G06F12/02GK105930356SQ201610218095【公开日】2016年9月7日【申请日】2016年4月8日【发明人】黄林鹏,朱燕民,沈艳艳,梅宏,刘昊,王振杰【申请人】上海交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1