一种文件系统管理模型及系统
文献发布时间:2023-06-19 19:28:50
技术领域
本发明涉及文件系统设计方法,尤其涉及一种基于闪存存储介质的文件系统。
背景技术
大数据时代背景下,数据信息的类型与数量急剧增加,给存储系统的设计带来了新的挑战。目前的技术中,文件系统提供各种混合数据的存储、查询、处理功能,各种多媒体数据,记录数据,以及归档数据等通常只会在存储的时候写一次,之后不会修改文件,而管理数据则需要支持可读写,目前的文件系统并不针对这两种情况做区分设计。
随着SSD的普及应用,文件系统为尽可能利用SSD的性能优势,一般采取合并随机写,转换为顺序日志记录的方式加速存储系统性能,但随着数据混合程度的增加和文件系统自身垃圾回收的影响,SSD内部有效数据分布趋于分散,对于文件系统来说,文件系统本身的空间整理、垃圾回收也会带来额外开销,目前在SSD之上构建的文件系统并不能利用多媒体数据,记录数据,以及归档数据自身特点,发挥出闪存介质最大性能。
另一方面,随着计算存储技术的应用,存储系统本身能够提供更多的计算功能,但是计算需求通常跟应用场景本身相关,已有的技术方案通过文件系统和块管理等技术搭建计算存储系统,数据存储粒度为定长逻辑块,而应用场景计算则是基于文件级,因此存储端只能完成基于数据块级别计算加速,应用场景的计算模块需要结合文件系统部署在主机端,造成实际上数据存储和计算分离,不能充分发挥计算存储降低系统开销的优势。
发明内容
本发明提供一种可以减少闪存存储系统写放大的技术方案,针对一次性写文件和计算存储的应用场景专门优化的文件系统模型和系统。
本发明提供了一种文件系统模型,所述文件系统模型至少包括文件管理模块第一子模型、对象管理第二子模型和闪存介质管理模块第三子模型;
其中,所述文件管理模块第一子模型被配置为接收用户的文件访问请求,文件管理策略对所述文件访问请求进行处理,将所述文件访问请求转换为对所述对象管理第二子模型的对象访问请求;
所述对象管理第二子模型被配置为向所述文件管理模块第一子模型提供连续逻辑对象区域,并接收来自所述文件管理模块第一子模型的所述对象访问请求,逻辑对象管理策略对所述对象访问请求进行处理,将所述对象访问请求转换为对闪存介质管理模块第三子模型的闪存读写擦操作请求;
所述闪存介质管理模块第三子模型提供读、写、擦除接口给所述对象管理第二子模型,并接收来自第二子模型的所述闪存读、写或擦除操作请求,完成对闪存介质的读写擦除操作,并记录闪存运行状态信息和失效介质信息;
所述文件管理模块第一子模型将所述对象管理第二子模块提供的所述连续逻辑对象区域划分为至少包括管理区、可读写文件区和一次性文件区;所述对象管理第二子模型将连续的物理地址分区划分成至少包括定长逻辑区和可变长逻辑区。
进一步,所述定长逻辑区被配置为用于存储来自文件系统的所述管理区的数据和所述可读写文件区的数据,所述定长逻辑区内所述对象数据大小固定;所述可变长逻辑区被配置为存储来自文件系统的所述一次性文件区的数据,所述定长逻辑区和所述变长逻辑区根据用户配置策略决定实际占用物理Zone分区大小以及是否共享物理Zone分区。
进一步,所述文件管理策略被配置为:对于一次性文件,占用的逻辑对象ID记录在上层目录文件中,所述目录文件记录了所有一次性文件的地址映射,每个映射表项包含文件名、逻辑对象ID和Size等三个字段,其中所述文件名用于索引,所述逻辑对象ID指向实际存储的逻辑对象,所述Size表示该文件大小。
进一步,所述逻辑对象管理策略对所述对象访问请求进行处理包括:根据一张逻辑对象映射表,将一个逻辑对象映射到一段连续的物理存储空间,所述逻辑对象映射表包括多个映射表项;每个所述映射表项包含至少物理地址PBA和逻辑对象大小Size的两个字段,所述逻辑对象映射表根据所述逻辑对象ID号索引;所述物理地址PBA分成Zone编码和Zone内偏移两部分。
进一步,所述对象管理第二子模型还包括对象存储优化单元,所述对象存储优化单元用于获取所述逻辑对象的ID和Size信息,形成Size信息池;并通过预定规则将所述Size信息池中Size信息进行组合求和并与所述Zone分区大小进行比较和匹配。
进一步,所述Size信息池中Size信息大小分别为A
进一步,所述闪存介质管理模块根据闪存页读写,按块擦除,块内页顺序写的物理规则特性,将相同操作的物理地址组织成连续的Zone分区,其中所述擦除操作按Zone分区进行,所述写操作必须在一个Zone分区内且地址连续。
进一步,所述Zone分区按照从小到大的顺序依次排列,且相邻Zone分区大小不同。
进一步,所述用户配置策略至少包括以下步骤:1)读取所述可读写文件对应的Zone分区的数据到系统内存中,在内存中对所述可读写文件进行读、写、删除或覆盖操作;2)在预设时间间隔内,将内存中最新所述可读写文件对所述定长逻辑区的所述可读写文件对应的Zone分区的数据进行覆盖操作。
同时,本发明提供了一种应用所述的文件系统模型的系统,所述系统包括文件管理模块、逻辑对象管理模块和闪存介质管理模块;所述系统响应于用户请求,完成相应的操作;所述操作包括:
当收到用户的新写一次性文件请求时,首先所述文件管理模块根据当前可用对象状态,进行可变长写逻辑对象分配,然后由所述逻辑对象管理模块根据当前写入点状态,将对象ID转换为新的物理地址,接着所述闪存介质管理模块启动文件数据传输,将一次文件数据写入到转换后的物理地址,写入完成后将结果反馈给所述文件管理模块,所述文件管理模块修改管理区数据,将文件名、分配的对应逻辑对象号和文件长度记录到管理区数据,完成写文件操作;
当收到用户的读一次性文件请求时,首先所述文件管理模块通过管理区数据索引到文件对应逻辑对象号,转换成对象读请求,将相应读请求发往所述逻辑对象管理模块,然后所述逻辑对象管理模块查找对象地址映射表,得到读请求对应闪存物理地址,发起闪存读操作,最后由所述闪存介质管理模块发起闪存读操作,将读数据传回应用,完成读操作;
当收到用户的重写一次性文件请求时,首先所述文件管理模块通过管理区数据索引到文件对应逻辑对象号,转换成对象写请求,然后由所述逻辑对象管理模块根据当前写入点状态,将对象ID转换为新的物理地址,并作废旧的物理地址,接着所述闪存介质管理模块启动文件数据传输,将一次文件数据写入到转换后的物理地址,写入完成后将结果反馈给所述文件管理模块,所述文件管理模块修改管理区数据,将修改后的文件长度和属性记录到管理区数据,完成重写文件操作;
当收到用户的删除一次性文件请求时,首先所述文件管理模块通过管理区数据索引到文件对应逻辑对象号,转换成对象回收请求,发给所述逻辑对象管理模块,所述逻辑对象管理模块作废对象占用的物理地址,后台垃圾回收在可用空间不足时启动,回收作废物理地址供后续文件写入操作,删除完成后将结果反馈给所述文件管理模块,所述文件管理模块修改管理区数据,将该文件对应的管理数据删除,完成删除写文件操作。
本发明与背景技术相比,具有的有益的效果是:通过将文件存储系统划分成三个子模型,去除了文件系统和块管理模块双重映射逻辑,简化了IO路径,消除了文件系统内部和块管理模块内部双重写放大,通过将文件全部属性赋予对象,基于文件的计算加速可以直接通过对象完成,达到在存储设备端完成近数据计算的功能,同时,对象存储管理模块也能够利用继承来的文件本身属性特征做存储优化,如冷热数据、不同应用数据彼此分开存储,减少不同模式数据混合存储造成的垃圾回收开销,同一文件连续存储发挥介质顺序访问时性能优势,提升存储系统整体性能。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
本说明书附图所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本申请可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本申请所能产生的功效及所能达成的目的下,均应仍落在本申请所揭示的技术内容得能涵盖的范围内。
图1为本发明文件系统模型结构图
图2为本发明文件存储系统层次架构图
图3为本发明一次性文件存储地址映射图
图4为本发明逻辑对象存储地址映射图
图5为本发明闪存物理地址组成图
图6为本发明写文件流程图
图7为本发明读文件流程图
图8为本发明重写文件流程图
图9为本发明为删除文件流程图
具体实施方式
下面将结合本申请实施例中的附图,对本申请中的实施例进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本发明提供一种可以减少闪存存储系统写放大,针对一次性写文件和计算存储的应用场景专门优化的文件系统模型和系统。
本发明是一种文件系统模型和系统,将文件存储系统划分成三个子模型,文件管理模块第一子模型、对象管理第二子模型和闪存介质管理第三子模型,通过虚拟出一个存储对象的概念,将存储粒度和计算单位统一成对象,并支持可变长对象,文件系统基于对象而不是逻辑块构建,去除了文件系统和块管理模块双重映射逻辑,文件本身的大小等同于对象的大小,因此,对象的属性继承了文件全部属性。
文件管理模块第一子模型,负责文件存储,对存入的文件进行访问控制和检索,以可变长对象为管理单位,对存储空间进行组织和分配,其中,文件系统元数据、目录文件和可读写文件以定长对象为存储单元,可以采用传统文件系统的管理方法,例如采用流式文件方式、记录式文件方式或树式文件方式或者采用内存管理的方法,进一步优选为采用内存管理的方法,通过将经常需要访问修改的元数据、目录文件和可读写文件加载到内存中,可以直接在内存中对相应的数据进行读、写、擦除或重写操作,不需要对块进行整体操作,避免储存设备的多次擦写,降低储存设备的损耗,有利于减少写方大。同时,由于文件系统数据位于内存中,访问速度快,有利于提升文件操作的效率。针对一次性写文件,采用可变长对象为存储单元,文件数据完整存储在一个对象单元中,文件和对象一一对应,去除了文件索引节点中复杂的逻辑块映射表,按照文件内数据的逻辑顺序和物理顺序保持统一,文件的重写、删除和回收对应对象的相应操作,因此文件管理模块第一子模型只需维护一张当前可用对象位图。
对象管理第二子模型,将存储空间组织成可变长对象,尤其适合于需要异位更新的闪存介质,通过将对象映射到一段物理存储区域实现数据存取,每次对象写入时按序分配新的物理空间,并记录每个对象对应的物理地址和存储大小,存储空间不足时,启动垃圾回收,将有效对象集中存储,然后释放出一整块连续的物理空间供后续对象写入,连续物理空间的大小基于闪存介质模块特性和实际情况调整,典型值为若干个闪存块大小。
闪存介质管理第三子模型,负责闪存失效管理,操作闪存进行实际的闪存页读、闪存页写和闪存块擦除操作,并提供读、写、擦除接口给对象管理第二子模型。闪存介质的实际物理空间根据闪存块大小按Zone区块组织,以Zone为单位擦除,支持随机读,以及Zone区块内按续写操作。
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
实施例1
一种文件系统模型,如图1所示,所述文件系统模型包括至少三个子模型,分别为文件管理模块第一子模型、对象管理模块第二子模型和闪存介质管理模块第三子模型;
其中,所述文件管理模块第一子模型被配置为接收用户的文件访问请求,经过文件管理策略处理文件请求,并将所述文件请求转换为对第二子模型的对象操作;
所述对象管理模块第二子模型接收来自文件管理模块第一子模型的对象访问请求,经过逻辑对象管理策略处理所述对象请求,并将所述对象请求转换为对第三子模型的闪存读写擦操作;
所述闪存介质管理模块第三子模型接收来自第二子模型的闪存操作请求,完成对闪存介质的读写擦操作,负责记录闪存运行状态信息和管理失效介质信息。
如图2所示,所述文件管理模块把所述对象管理模块提供的连续逻辑对象区域划分成三个区:管理区、可读写文件区和一次性文件区。其中所述管理区或所述可读写文件区采用内存进行管理。通过文件系统将所述管理区或所述可读写文件区读取到内存中,当需要对所述管理区或所述可读写文件区的数据进行修改时,可以直接在数据的原位置处进行修改操作,不需要对块整体进行操作,避免储存设备的多次擦写,降低储存设备的损耗,有利于减少写方大。同时,由于文件系统数据位于内存中,访问速度快,有利于提升文件操作的效率。其中所述管理区用来存储文件系统元数据,所述可读写文件区用来存储目录文件和来自用户的可读写文件,而所述一次性文件区用于管理用户的一次性文件,根据用户需求配置三个区各自的逻辑对象。
逻辑对象管理模块把连续的物理地址分区划分成两个区:定长逻辑区和可变长逻辑区。定长逻辑区内对象数据大小固定,用于存储来自文件系统的管理区数据和可读写文件数据,可变长逻辑区则存储文件系统的一次性文件,定长逻辑区和变长逻辑区根据用户配置策略决定实际占用物理Zone分区大小,以及是否共享物理Zone分区。所述闪存介质管理模块根据闪存按页读写,按块擦除,块内页顺序写的物理特性,组织成连续的Zone分区。
进一步,对于一次性文件,如图3所示,所述文件管理策略被配置为:对于一次性文件,占用的逻辑对象ID记录在上层目录文件中,所述目录文件记录了所有一次性文件的地址映射,每个映射表项包含文件名、逻辑对象ID和Size等三个字段,其中所述文件名用于索引,所述逻辑对象ID指向实际存储的逻辑对象,所述Size表示该文件大小。
进一步,所述逻辑对象管理策略对所述对象访问请求进行处理包括:根据一张逻辑对象映射表,将一个逻辑对象映射到一段连续的物理存储空间,所述逻辑对象映射表包括多个映射表项;每个所述映射表项包含至少物理地址PBA和逻辑对象大小Size的两个字段,所述逻辑对象映射表根据所述逻辑对象ID号索引;所述物理地址PBA分成Zone编码和Zone内偏移两部分,如图4,图5所示。
所述对象管理第二子模型还可以包括对象存储优化单元,所述对象存储优化单元用于获取所述逻辑对象的ID和Size信息,形成Size信息池;所述Size信息池中Size信息大小分别为A
所述预定规则包括以下步骤:1)对任意数量的所述逻辑对象的Size进行求和操作,2)若求和的结果小于2
在使用该文件系统模型的系统时,所述系统包括文件管理模块、逻辑对象管理模块和闪存介质管理模块;所述系统响应于用户请求,完成相应的操作。所述操作包括:新写一次性文件请求、读一次性文件请求、重写一次性文件请求和删除一次性文件请求。
如图6所示,收到用户的新写一次性文件请求时,首先由文件管理模块根据当前可用对象状态,进行可变长写逻辑对象分配,然后由逻辑对象管理模块根据当前写入点状态,将对象ID转换为新的物理地址,接着传输文件数据,写入到转换后的物理地址,最后,修改管理区数据,将文件名、分配的对应逻辑对象号和文件长度记录到管理区数据,完成写文件操作。
如图7所示,收到用户的读一次性文件请求时,文件管理模块首先通过管理区数据索引到文件对应逻辑对象号,转换成对象读请求,将相应读请求发往逻辑对象管理模块,然后逻辑对象管理模块查找对象地址映射表,得到读请求对应闪存物理地址,发起闪存读操作,最后由闪存介质管理模块发起闪存读操作,将读数据传回应用,完成读操作。
如图8所示,收到用户的重写一次性文件请求时,文件管理模块首先通过管理区数据索引到文件对应逻辑对象号,转换成对象写请求,然后由逻辑对象管理模块根据当前写入点状态,将对象ID转换为新的物理地址,并作废老的物理地址,接着传输文件数据,写入到转换后的物理地址,最后,修改管理区数据,将修改后的文件长度和属性记录到管理区数据,完成重写文件操作。
如图9所示,收到用户的删除一次性文件请求时,文件管理模块首先通过管理区数据索引到文件对应逻辑对象号,转换成对象回收请求,发给逻辑对象管理模块,逻辑对象管理模块作废对象占用的物理地址,后台垃圾回收在可用空间不足时启动,回收作废物理地址供后续文件写入操作,最后,修改管理区数据,将该文件对应的管理数据删除,完成删除写文件操作。
通过将文件存储系统划分成三个子模型,去除了文件系统和块管理模块双重映射逻辑,简化了IO路径,消除了文件系统内部和块管理模块内部双重写放大,通过将文件全部属性赋予对象,直接通过对象完成基于文件的计算加速,达到在存储设备端完成近数据计算的功能,同时,对象存储管理模块也能够利用继承来的文件本身属性特征做存储优化,如冷热数据、不同应用数据彼此分开存储,减少不同模式数据混合存储造成的垃圾回收开销,同一文件连续存储发挥介质顺序访问时性能优势,提升存储系统整体性能。
本说明书中各个实施例采用递进、或并列、或递进和并列结合的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
需要说明的是,在本申请的描述中,需要理解的是,术语“上”、“下”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。当一个组件被认为是“连接”另一个组件,它可以是直接连接到另一个组件或者可能同时存在居中设置的组件。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括上述要素的物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
- 一种集群文件系统管理方法和系统
- 一种通信设备中轻量级文件系统管理方法
- 一种文件系统管理方法、系统和文件系统管理器
- 一种文件系统管理方法、系统和文件系统管理器