一种文件管理方法、文件管理装置、电子设备及存储介质与流程

文档序号:17488192发布日期:2019-04-23 20:09阅读:199来源:国知局
一种文件管理方法、文件管理装置、电子设备及存储介质与流程

本发明涉及数据存储技术领域,特别是涉及一种文件管理方法、文件管理装置、电子设备及存储介质。



背景技术:

ssd(solidstatedrive,固态硬盘)是一种用于存储数据的存储设备,与传统硬盘相比,由于其具有读写速度快、功耗低、可靠性高等特点,逐渐被越来越多的电子设备使用。ssd在挂载到电子设备上时,通常由电子设备所运行操作系统自带文件系统对其进行文件管理,例如,通过电子设备运行的windows操作系统或linux操作系统自带文件系统对ssd进行文件管理。

现有操作系统自带文件系统在对ssd进行文件管理过程中,例如,在读取一个ssd中存储的文件时,需要先确定待读取文件在ssd中的存储路径,才能在所确定的存储路径处读取该文件。上述存储路径即为,现有操作系统自带文件系统所确定的该文件的存储位置信息。

虽然操作系统自带文件系统采用上述基于存储路径的文件管理方法,能够对挂载到电子设备上的ssd进行文件管理,但是上述文件管理方法应用在需要进行较为频繁的文件操作的场景时,例如海量图片识别等需要进行大量文件实时读取操作的场景,由于操作系统自带的文件系统需要同时确定多个文件各自的存储路径,再基于所确定的存储路径读取ssd中的文件,往往会花费较多时间,造成文件的读取速度下降。



技术实现要素:

本发明实施例的目的在于提供一种文件管理方法、文件管理装置、电子设备及存储介质,以实现在ssd中提高文件的读取速度的目的。具体技术方案如下:

第一方面,本发明实施例提供了一种文件管理方法,应用于电子设备,所述电子设备挂载有固态硬盘ssd,ssd具有ssd文件系统和操作系统自带文件系统,所述ssd文件系统包括:系统索引区和数据区;所述系统索引区用于存储ssd信息和数据区信息,所述数据区被划分为大小相同的块,每一个块包括:块索引区和块数据区,一个块的块索引区用于记录该块的块数据区所存储文件的文件存储信息;所述操作系统自带文件系统,用于运行所述电子设备所运行操作系统自带的文件系统;所述操作系统自带文件系统设置有数据库,所述数据库用于记录所述数据区每一块的块数据区所存储文件的标识和文件存储位置信息的对应关系,一个文件的文件存储位置信息包括:存储有该文件的ssd的ssd信息、用于存储该文件的块数据区所属块的块信息、文件的文件存储信息;所述文件管理方法包括:

获得待从ssd读取的待读取文件的标识;

在所述操作系统自带文件系统的数据库中,查找与所述待读取文件的标识对应的文件存储位置信息;

根据查找到的文件存储位置信息中记录的ssd信息以及块信息,定位ssd中用于存储所述待读取文件的块;

根据查找到的文件存储位置信息中记录的文件存储信息,从定位到的块中读取所述待读取文件。

可选地,当定位到一个以上块时,所述根据所述文件存储位置信息中记录的文件存储信息,从定位到的块中读取所述待读取文件,包括:

根据所述文件存储位置信息中记录的文件存储信息,分别从定位到的各个块中读取属于所述待读取文件的数据;

对读取到的数据进行合并处理,获得所述待读取文件。

可选地,所述文件管理方法还包括:

获得待写入ssd的待写入文件;

生成所述待写入文件的标识,并通过所述ssd文件系统确定用于存储所述待写入文件的块,作为第一块;

将所述待写入文件存储至所述第一块的块数据区,并获得所述待写入文件的文件存储信息,将所获得的文件存储信息存储至所述第一块的块索引区;

根据所述待写入文件的文件存储信息、所述第一块的块信息以及所述第一块所属ssd的ssd信息,生成所述待写入文件的文件存储位置信息;

将所述待写入文件的标识与所生成文件存储位置信息之间的对应关系存储至所述操作系统自带文件系统的数据库中。

可选地,所述数据区信息包括:各个块的使用状态;

在所述将所述待写入文件存储至所述第一块的块数据区之后,所述文件管理方法还包括:

判断所述第一块的当前使用状态是否为写满状态;

若为是,将所述数据区信息中记录的所述第一块的使用状态更新为写满状态;

若为否,在写入前状态为未写入状态时,将所述数据区信息中记录的所述第一块的使用状态更新为已写入状态,其中,所述写入前状态为:将所述待写入文件存储至所述第一块的块数据区之前所述第一块的使用状态。

可选地,所述系统索引区包括:系统主索引区和系统备索引区;

所述系统主索引区,用于存储ssd信息和数据区信息;

所述系统备索引区,用于存储所述系统主索引区的备份信息。

可选地,一个块的块索引区包括:该块的块主索引区和该块的块备索引区;

一个块的块主索引区,用于记录该块的块数据区所存储文件的文件存储信息;

一个块的块备索引区,用于存储该块的块主索引区的备份信息。

第二方面,本发明实施例提供了一种文件管理装置,应用于电子设备,所述电子设备挂载有固态硬盘ssd,ssd具有ssd文件系统和操作系统自带文件系统,所述ssd文件系统包括:系统索引区和数据区;所述系统索引区用于存储ssd信息和数据区信息,所述数据区被划分为大小相同的块,每一个块包括:块索引区和块数据区,一个块的块索引区用于记录该块的块数据区所存储文件的文件存储信息;所述操作系统自带文件系统,用于运行所述电子设备所运行操作系统自带的文件系统;所述操作系统自带文件系统设置有数据库,所述数据库用于记录所述数据区每一块的块数据区所存储文件的标识和文件存储位置信息的对应关系,一个文件的文件存储位置信息包括:存储有该文件的ssd的ssd信息、用于存储该文件的块数据区所属块的块信息、文件的文件存储信息;所述文件管理装置包括:

第一获取模块,用于获得待从ssd读取的待读取文件的标识;

查找模块,用于在所述操作系统自带文件系统的数据库中,查找与所述待读取文件的标识对应的文件存储位置信息;

定位模块,用于根据查找到的文件存储位置信息中记录的ssd信息以及块信息,定位ssd中用于存储所述待读取文件的块;

读取模块,用于根据查找到的文件存储位置信息中记录的文件存储信息,从定位到的块中读取所述待读取文件。

可选地,当定位到一个以上块时,所述读取模块,具体用于:

根据所述文件存储位置信息中记录的文件存储信息,分别从定位到的各个块中读取属于所述待读取文件的数据;

对读取到的数据进行合并处理,获得所述待读取文件。

可选地,所述文件管理装置还包括:

第二获取模块,用于获得待写入ssd的待写入文件;

确定模块,用于生成所述待写入文件的标识,并通过所述ssd文件系统确定用于存储所述待写入文件的块,作为第一块;

第一存储模块,用于将所述待写入文件存储至所述第一块的块数据区,并获得所述待写入文件的文件存储信息,将所获得的文件存储信息存储至所述第一块的块索引区;

生成模块,用于根据所述待写入文件的文件存储信息、所述第一块的块信息以及所述第一块所属ssd的ssd信息,生成所述待写入文件的文件存储位置信息;

第二存储模块,用于将所述待写入文件的标识与所生成文件存储位置信息之间的对应关系存储至所述操作系统自带文件系统的数据库中。

可选地,所述数据区信息包括:各个块的使用状态;

所述文件管理装置还包括:

判断模块,用于判断所述第一块的当前使用状态是否为写满状态;

所述判断模块包括:

第一更新子模块,用于当判断模块判断为是时,将所述数据区信息中记录的所述第一块的使用状态更新为写满状态;

第二更新子模块,用于当判断模块判断为否时,在写入前状态为未写入状态时,将所述数据区信息中记录的所述第一块的使用状态更新为已写入状态,其中,所述写入前状态为:将所述待写入文件存储至所述第一块的块数据区之前所述第一块的使用状态。

可选地,所述系统索引区包括:系统主索引区和系统备索引区;

所述系统主索引区,用于存储ssd信息和数据区信息;

所述系统备索引区,用于存储所述系统主索引区的备份信息。

可选地,一个块的块索引区包括:该块的块主索引区和该块的块备索引区;

一个块的块主索引区,用于记录该块的块数据区所存储文件的文件存储信息;

一个块的块备索引区,用于存储该块的块主索引区的备份信息。

第三方面,本发明实施例提供了一种电子设备,所述电子设备挂载有固态硬盘ssd,ssd具有ssd文件系统和操作系统自带文件系统,所述ssd文件系统包括:系统索引区和数据区;所述系统索引区用于存储ssd信息和数据区信息,所述数据区被划分为大小相同的块,每一个块包括:块索引区和块数据区,一个块的块索引区用于记录该块的块数据区所存储文件的文件存储信息;所述操作系统自带文件系统,用于运行所述电子设备所运行操作系统自带的文件系统;所述操作系统自带文件系统设置有数据库,所述数据库用于记录所述数据区每一块的块数据区所存储文件的标识和文件存储位置信息的对应关系,一个文件的文件存储位置信息包括:存储有该文件的ssd的ssd信息、用于存储该文件的块数据区所属块的块信息、文件的文件存储信息,所述电子设备还包括:处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口、所述存储器通过所述通信总线完成相互间的通信;

所述存储器,用于存放计算机程序;

所述处理器,用于执行存储器上所存放的程序时,执行以下步骤:

获得待从ssd读取的待读取文件的标识;

在所述操作系统自带文件系统的数据库中,查找与所述待读取文件的标识对应的文件存储位置信息;

根据查找到的文件存储位置信息中记录的ssd信息以及块信息,定位ssd中用于存储所述待读取文件的块;

根据查找到的文件存储位置信息中记录的文件存储信息,从定位到的块中读取所述待读取文件。

第四方面,本发明实施例提供了一种计算机可读存储介质,所述电子设备挂载有固态硬盘ssd,ssd具有ssd文件系统和操作系统自带文件系统,所述ssd文件系统包括:系统索引区和数据区;所述系统索引区用于存储ssd信息和数据区信息,所述数据区被划分为大小相同的块,每一个块包括:块索引区和块数据区,一个块的块索引区用于记录该块的块数据区所存储文件的文件存储信息;所述操作系统自带文件系统,用于运行所述电子设备所运行操作系统自带的文件系统;所述操作系统自带文件系统设置有数据库,所述数据库用于记录所述数据区每一块的块数据区所存储文件的标识和文件存储位置信息的对应关系,一个文件的文件存储位置信息包括:存储有该文件的ssd的ssd信息、用于存储该文件的块数据区所属块的块信息、文件的文件存储信息,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行以下步骤:

获得待从ssd读取的待读取文件的标识;

在所述操作系统自带文件系统的数据库中,查找与所述待读取文件的标识对应的文件存储位置信息;

根据查找到的文件存储位置信息中记录的ssd信息以及块信息,定位ssd中用于存储所述待读取文件的块;

根据查找到的文件存储位置信息中记录的文件存储信息,从定位到的块中读取所述待读取文件。

本发明实施例提供的文件管理方法、文件管理装置、电子设备及存储介质,由于电子设备挂载有ssd时,ssd具有不同于操作系统自带文件系统的ssd文件系统以及操作系统自带文件系统,且操作系统自带文件系统设置有数据库,该数据库中记录有存储于块的块数据区中的文件的文件存储位置信息,在电子设备获取待从ssd读取的待读取文件的标识后,能够通过查找数据库中与待读取文件的标识对应的文件存储位置信息,直接定位ssd中用于存储待读取文件的块,并从定位到的块中直接读取待读取文件。可见,相比于现有技术,应用本发明实施例提供的方案实现文件读取时,是由操作系统自带文件系统数据库中的文件存储位置信息,确定待读取文件的读取位置,且所确定的读取位置为ssd文件系统中块数据区所包含的块,而无需确定待读取文件的存储路径,也就是无需基于存储路径读取待写入文件,从而提高了待读取文件的读取速度。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例的ssd的区域划分示意图;

图2为本发明实施例提供的文件管理方法的一种流程示意图;

图3为本发明实施例的ssd的另一种区域划分示意图;

图4为本发明实施例的ssd的再一种区域划分示意图;

图5为本发明实施例的ssd的第四种区域划分示意图;

图6为本发明实施例的ssd的第四种区域划分结构中,块组的划分示意图;

图7为本发明实施例提供的文件管理装置的一种结构示意图;

图8为本发明实施例提供的文件管理装置的另一种结构示意图;

图9为本发明实施例提供的文件管理装置中判断模块的结构示意图;

图10为本发明实施例提供的电子设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供了一种文件管理方法,该文件管理方法应用于电子设备,上述电子设备可以是服务器,当然也可以是其它类型的电子设备。

上述电子设备挂载有ssd,如图1所示,每个ssd上可以具有ssd文件系统和操作系统自带文件系统两个文件系统,其中of-fs用以表示操作系统自带文件系统。

上述电子设备可以仅仅挂载一个ssd,也可以挂载一个以上ssd,当挂载一个以上ssd时,每一ssd上均具有ssd文件系统和操作系统自带文件系统两个文件系统。

ssd文件系统包括:系统索引区和数据区,参考图1,其中系统主索引区和系统备索引区组成了系统索引区,index用以表示系统主索引区,bindex用以表示系统备索引区;块1、块2……块n组成了数据区。

其中,上述系统索引区用于存储ssd信息和数据区信息;数据区被划分为大小相同的块,每一个块包括:块索引区和块数据区,参考图1,其中i1、i2……in即为对应的块1、块2……块n的块索引区;d1、d2……dn即为对应的块1、块2……块n的块数据区。

上述ssd文件系统中的数据区用于存储文件数据;

一个块的块索引区用于记录该块的块数据区所存储文件的文件存储信息。

操作系统自带文件系统,用于运行电子设备所运行操作系统自带的文件系统,并且,操作系统自带文件系统设置有数据库。并且,在操作系统自带文件系统的区域中,还可以运行需要使用操作系统自带文件系统的应用程序。

其中,上述数据库可以用于记录数据区每一块的块数据区所存储文件的标识和文件存储位置信息的对应关系。

其中,上述一个文件的文件存储位置信息包括:存储有该文件的ssd的ssd信息、用于存储该文件的块数据区所属块的块信息、文件的文件存储信息。

具体的,上述ssd信息,可以包括该ssd的id、总存储容量、可用空间等信息。

上述用于存储该文件的块数据区所属块的块信息,可以包含该块的多种属性信息,例如该块的当前使用状态、该块在数据区中的块号等信息。

上述文件的文件存储信息,可以包括所存储文件的文件id(identity,身份标识号)、文件大小、文件位置偏移量、文件存储时间等信息。其中,上述文件位置偏移量可以理解为:文件在块中的起始存储位置相对于块的起始地址的偏移量。例如,块1存储有文件a,则块1的块索引区可以包含文件a的文件id、文件大小、文件位置偏移量、文件存储时间;块2存储有文件b,则块2的块索引区可以包含文件b的文件id、文件大小、文件位置偏移量、文件存储时间;块3存储有文件c,则块3的块索引区可以包含文件c的文件id、文件大小、文件位置偏移量、文件存储时间。

上述数据区信息,可以包括该数据区中各个块的大小、块的个数以及每个块的使用状态信息等信息。其中,上述块的使用状态信息可以理解为:用于表示块的当前使用状态的信息,从数据存储的角度来讲,块的当前使用状态可以划分为:未写入状态、已写入状态和写满状态。

未写入状态可以理解为:还未存储有任何文件的状态;

写满状态可以理解为:已存储有文件且没有空余存储空间的状态;

已写入状态可以理解为:已存储有文件但还存在空余存储空间的状态。

综合以上可以看出,上述ssd信息中的ssd的id、总存储容量以及数据区信息中的块大小、块的个数等信息在ssd存储文件的过程中是保持不变的,而ssd信息中的可用空间、数据区信息中的每个块的使用状态可能会随着文件的存储发生变化,因此,可以在对ssd进行格式化的过程中,对上述ssd信息以及数据区信息进行设定,其中,在格式化过程中所设定的ssd信息中的可用空间、数据区信息中的每个块的使用状态仅仅为初始值。

对ssd进行格式化时,可以先将ssd的部分区域格式化为具有操作系统自带文件系统的区域,再将剩余区域格式化为具有ssd文件系统的区域。

具体地,对ssd的上述剩余区域格式化为具有ssd文件系统的区域的过程中,除了需要对ssd进行传统意义上的格式化外,还需要确定ssd文件系统中的系统索引区、数据区、数据区中每一块的块索引区和块数据区,设置系统索引区中存储的ssd信息和数据区信息。

其中,系统索引区的大小、数据区中每一块的大小以及每一块中块索引区的大小可以是预先设定的;

ssd信息中的可用空间的初始值,可以先确定ssd的总存储容量,以及已经进行操作系统自带文件系统格式化的区域的空间大小,再将二者的差值作为可用空间的初始值;

由于格式化过程中数据区的每一块中还未存储文件,所以每一块的使用状态的初始值可以设置为:未写入状态;

数据区信息中块的个数,具体可以通过以下方式计算得到:

将总存储空间与具有操作系统自带文件系统的区域的空间大小相减,获得第一差值,再将所获得的第一差值与系统索引区的大小相减,获得第二差值;

将所获得的第二差值与预先设定的数据区中每个块的大小相除,并将相除后所得商作为数据区中块的个数。

如图2所示,本发明实施例提供的文件管理方法,包括以下步骤:

s101,获得待从ssd读取的待读取文件的标识。

本发明实施例中的待读取文件的标识,可以用以将该文件与其它待读取文件区分,也即,待读取文件的标识唯一对应一个待读取文件。例如,该标识可以为一个唯一的id(identity,身份标识号),或者可以是一组唯一的字符串(例如uuid(universallyuniqueidentifier,通用唯一识别码))。

容易理解,上述标识可以在待写入文件写入ssd的过程中生成,并且,在生成上述标识的过程中,该标识还可以包含待写入文件已写入的ssd的id。据此,当需要从多个ssd中确定存储有该待读取文件的ssd时,可以基于上述标识中的ssd的id确定。

s102,在操作系统自带文件系统的数据库中,查找与待读取文件的标识对应的文件存储位置信息。

由前述内容可知,操作系统自带文件系统中设置有数据库,该数据库用于记录数据区每一块的块数据区所存储文件的标识和文件存储位置信息的对应关系。

具体地,将一个文件写入ssd并生成与该文件对应的标识后,可以将该文件的标识、该文件的文件存储位置信息、以及该文件的标识和该文件的文件存储位置信息的对应关系存储至数据库中。据此,电子设备便可以根据数据库中存储的上述信息,查找与待读取文件的标识对应的文件存储位置信息。

作为一种可选的实施方式,上述待读取文件的标识可以为uuid,uuid不同于现有基于文件存储路径的逐级文件查找方式读取文件,而是可以根据uuid与文件存储位置信息的对应关系,在操作系统自带文件系统的数据库中直接查找与该uuid对应的文件存储位置信息。

文件存储位置信息通常可以存储有该文件的ssd的ssd信息、用于存储该文件的块数据区所属块的块信息、文件的文件存储信息等信息;其中,文件存储信息中通常可以记录有:该文件的文件标识、该文件的大小、该文件的位置偏移量等信息。可见,文件存储位置信息包含了上述文件存储信息所记录信息,并且可以记录有:该文件所在ssd的id、第一块的块号等信息。

作为本发明实施例一种可选的实施方式,一个待读取文件与该文件的文件存储位置信息的对应关系,可以通过文件存储位置信息是否包含该待读取文件的标识确定。例如,在操作系统自带文件系统的数据库中的多个文件存储位置信息中,如果某个文件存储位置信息中的文件标识与待读取文件的标识相同,则说明该文件存储位置信息与该待读取文件存在对应关系;反之,则说明该文件存储位置信息与该待读取文件不存在对应关系。通过上述实施方式的过程,可以在操作系统自带文件系统的数据库中的多个文件存储位置信息中,确定出与待读取文件对应的文件存储位置信息。

s103,根据查找到的文件存储位置信息中记录的ssd信息以及块信息,定位ssd中用于存储待读取文件的块。

如前文所述,文件存储位置信息中包含相应的ssd信息以及块信息,具体可以记录该文件所在ssd的id、第一块的块号等信息。通过上述信息,能够在ssd中,定位用于存储该待读取文件的块。

作为一种可选的实施方式,在确定待读取文件的标识所对应的文件存储位置信息后,上述定位ssd中用于存储待读取文件的块的过程具体可以为:在所确定的文件存储位置信息中,读取块信息中的块号及ssd的id,通过块号直接在该ssd中定位存储待读取文件的块,从而读取文件,可见,其文件读取效率将大大提升。

作为一种可选的实施方式,当待读取文件的标识为uuid时,由于uuid已经包含待写入文件已写入的ssd的id,因此可以通过uuid直接确定待读取文件所在的ssd。据此,在确定待读取文件的uuid所对应的文件存储位置信息后,上述定位ssd中用于存储所述待读取文件的块的过程具体可以为:在所确定的文件存储位置信息中,直接读取块信息中的块号,通过块号直接在该ssd中定位存储待读取文件的块,从而读取文件,可见,其文件读取效率将大大提升。

s104,根据查找到的文件存储位置信息中记录的文件存储信息,从定位到的块中读取待读取文件。

如前文所述,文件存储信息用于记录诸如该文件的标识、该文件的大小、该文件的位置偏移量等信息,因此,在定位到待读取文件所在的块后,便可以利用上述文件存储信息,读取块中的待读取文件。

作为本发明实施例一种可选的实施方式,当定位到一个以上块时,本发明实施例在读取待读取文件时,还可以根据所获得文件存储位置信息中记录的文件存储信息,分别从定位到的各个块中读取属于待读取文件的数据,并可以对读取到的数据进行合并处理,获得待读取文件。

本发明实施例提供的文件管理方法,由于电子设备挂载有ssd时,ssd具有不同于操作系统自带文件系统的ssd文件系统以及操作系统自带文件系统,且操作系统自带文件系统设置有数据库,该数据库中记录有存储于块的块数据区中的文件的文件存储位置信息,在电子设备获取待从ssd读取的待读取文件的标识后,能够通过查找数据库中与待读取文件的标识对应的文件存储位置信息,直接定位ssd中用于存储待读取文件的块,并从定位到的块中直接读取待读取文件。可见,相比于现有技术,应用本发明实施例提供的方案实现文件读取时,是由操作系统自带文件系统数据库中的文件存储位置信息,确定待读取文件的读取位置,且所确定的读取位置为ssd文件系统中块数据区所包含的块,而无需确定待读取文件的存储路径,也就是无需基于存储路径读取待写入文件,从而提高了待读取文件的读取速度。

除了可以从上述ssd读取文件外,还可以向ssd中写入文件,本发明的一种实现方式中,在ssd中写入待写入文件的过程可以为:

步骤a,获得待写入ssd的待写入文件。

本发明实施例中,待写入文件为待写入ssd中的文件,该文件可以包括:图片格式文件、文本格式文件、音频格式文件、视频格式文件等文件。容易理解的是,待写入文件的获得途径可以有多种,例如可以通过应用程序发送的文件写入请求获得,还可以主动地查找存储于云端数据库中的待写入文件,示例性地,如果某个图像处理应用程序向电子设备发送一个图片文件,则电子设备可以接收该文件,并将其作为待写入文件。

步骤b,生成待写入文件的标识,并通过ssd文件系统确定用于存储待写入文件的块,作为第一块。

当获得待写入文件后,电子设备生成一个该文件唯一的标识,以将该文件与其他文件进行区分。由前述内容可知,一个ssd的数据区可以被划分为多个大小相同的块,因此可以通过该ssd文件系统,确定用于存储待写入文件的一个块,并将所确定的块作为第一块。具体地,ssd文件系统可以为待写入文件分配一个数据区中的块,用以存储该待写入文件。

作为一种可选的实施方式,当一台电子设备挂载多个ssd时,电子设备可以通过各ssd系统索引区存储的ssd信息,如ssd的id,选择其中一块ssd用于存储待写入文件。示例性地,当一台电子设备挂载3个ssd时,3个ssd的id分别为001a、002b和003c,电子设备可以随机选择id为002b的ssd作为存储待写入文件的ssd,并通过该ssd的文件管理系统,分配一个数据区中的块用以存储待写入文件;或者还可以基于当前待写入文件的格式,选择一个ssd作为存储待写入文件的ssd。

由于所获得的文件可以具有不同的大小,因此,ssd文件系统所分配的第一块可以为一个,也可以为多个。也就是,当一个文件的大小大于数据区中一个块的大小时,则可以为该文件分配多个块用于存储该文件。例如,一个文件的大小为80mb,一个块的大小为64mb,则文件管理系统可以分配2个块用于存储该文件。

步骤c,将待写入文件存储至第一块的块数据区,并获得待写入文件的文件存储信息,将所获得的文件存储信息存储至第一块的块索引区。

本发明实施例中,当为待写入文件分配第一块后,表明已经做好存储该待写入文件的准备,便可以将该文件存储至第一块的块数据区中。待写入文件被存储后,可以获取该文件的诸如文件id、文件大小、文件位置偏移量、文件存储时间等文件存储信息,并将这些信息存储至第一块的块索引区。通过将该文件的存储信息存储至块索引区,能够在存储该文件的块中建立该文件的索引信息,便于往后查看该文件的存储情况,提高本发明实施例的文件管理方法的使用便利性。

可选地,还可将多个分配至第一块的待写入文件按顺序存储至第一块的块数据区,从而能够利用ssd的顺序写入性能优势,加快对多个文件的存储速度,提升文件存储效率。

步骤d,在获取已被存储的待写入文件的文件存储信息后,本发明实施例还可以生成该文件对应的文件存储位置信息。如前文所述,文件存储位置信息中通常包括该文件的文件存储信息、第一块的块信息以及第一块所属ssd的ssd信息。第一块的块信息可以包含第一块的多种属性信息,例如第一块的当前使用状态、第一块在数据区中的块号等。文件存储位置信息可以包括:该文件的文件id、该文件的大小、该文件的位置偏移量、该文件所在ssd的id、第一块的块号等信息。

作为一种可选的实施方式,在上述实施方式的基础上,在待写入文件存储至ssd后,还可以向发送文件写入请求的应用程序反馈该文件存储位置信息,从而使应用程序的使用者获知待写入文件已被存储至ssd,同时还能够获知该文件的存储位置、文件id等信息,便于用户日后查找该文件。示例性地,可以以url(uniformresourcelocator,统一资源定位器)的形式向发送文件写入请求的应用程序反馈该文件存储位置信息,该url地址中可以包含例如ssd的id、文件所在块的信息(例如第一块的块号)、文件位置偏移量、文件大小、文件id等信息。

步骤e,将待写入文件的标识与所生成文件存储位置信息之间的对应关系存储至操作系统自带文件系统的数据库中。

本发明实施例中,生成待写入文件的标识以及待写入文件的文件存储位置信息后,由于该待写入文件的文件存储位置信息中同样包含待写入文件的标识,因此,可以将该待写入文件存储位置信息包含该待写入文件的标识这一关系,作为待写入文件的标识与所生成文件存储位置信息之间的对应关系,并可以将上述对应关系存储只操作系统自带文件系统的数据库中。在对待读取文件进行读取时,便可以在操作系统自带文件系统的数据库中的多个文件存储位置信息中,查找到与该待读取文件的标识存在对应关系的文件存储位置信息。

本发明实施例的上述在ssd中写入待写入文件的过程,在电子设备获取待写入文件后,生成该文件的标识,并通过上述ssd文件系统确定用于存储待写入文件的块,直接将待写入文件存储至上述所确定的块中,可见,相比于现有技术,应用本发明实施例提供的方案实现文件存储时,是由ssd自身具有的文件系统确定文件的存储位置的,且所确定的存储位置为ssd文件系统中块数据区所包含的块,而无需确定待写入文件的存储路径,也就是无需基于存储路径写入待写入文件,从而提高了待写入文件的写入速度。

作为本发明实施例一种可选的实施方式,数据区信息还可以包括各个块的使用状态。一个块的使用状态可以为未写入状态、已写入状态和写满状态。未写入状态表明块中的数据为空,可以写入数据;已写入状态表明块中存储有数据,仍可以再写入数据;写满状态表明块中存储的数据已满,无法再写入数据。在待写入文件存储至第一块后,第一块的状态可能会发生改变,因此需要结合第一块在存储待写入文件前后的使用状态,对第一块的使用状态进行更新,从而保证正确地存储第一块所处的使用状态。

当待写入文件存储至第一块后,可能存在两种情况,情况一,第一块处于写满状态;情况二,第一块处于未写满状态。根据上述两种情况,可以先判断第一块的使用状态是否为写满状态,再根据判断结果采用不同的方式对第一块的使用状态进行更新。

可选地,具体的更新过程可以为,如果第一块的当前使用状态为写满状态,则可以将数据区信息中记录的第一块的使用状态更新为写满状态;如果第一块的当前使用状态为未写满状态,且在写入前状态为未写入状态时,表明待写入文件存储至第一块的块数据区之前,第一块的使用状态为还未存储数据,则可以将数据区信息中记录的第一块的使用状态更新为已写入状态。

另外,当第一块的当前使用状态为未写满状态,而上述写入前状态为已写入状态,说明待写入文件存储至第一块的块数据区之前,第一块已存储有文件,第一块的使用状态为已写入状态,而存储待写入文件后,第一块仍然还存在空余空间,这种情况下,第一块的使用状态保持不变,依然为已写入状态。

作为本发明实施例一种可选的实施方式,如图3所示,系统索引区可以仅仅由一部分构成。也就是,系统索引区中直接存储了ssd信息和数据区信息,此时的系统索引区即可以为图1中的系统主索引区。

与上述实施方式相对应,作为本发明实施例另一种可选的实施方式,系统索引区可以由两部分构成,也就是系统索引区可以分为:系统主索引区和系统备索引区。其中,系统主索引区,用于存储ssd信息和数据区信息;系统备索引区,用于存储系统主索引区的备份信息,也就是,系统备索引区作为系统主索引区的备份,也用于存储ssd信息和数据区信息。本发明实施例的系统备索引区,由于存储有系统主索引区的备份信息,因此可以在系统主索引区出现故障时,通过系统备索引区中的备份信息对系统主索引区中的数据进行恢复,从而提高ssd的数据安全性。

作为本发明实施例一种可选的实施方式,如图3所示,一个块的块索引区可以仅仅由一部分构成。也就是,一个块的块索引区中直接记录该块的块数据区所存储文件的文件存储信息,此时的块索引区即可以为图1中的块主索引区。

与上述实施方式相对应,作为本发明实施例另一种可选的实施方式,一个块的块索引区可以由两部分构成,也就是块索引区可以分为:该块的块主索引区和该块的块备索引区。其中,块主索引区用于记录该块的块数据区所存储文件的文件存储信息;块备索引区,用于存储该块的块主索引区的备份信息,也就是,块备索引区作为块主索引区的备份,也用于记录块的块数据区所存储文件的文件存储信息,参考图1,其中bi1、bi2……bin即为对应的块1、块2……块n的块备索引区。本发明实施例的块备份索引区,由于存储有该块的块主索引区的备份信息,因此可以在块主索引区损坏时,通过块备份索引区的备份信息对块主索引区中的数据进行恢复,从而提高ssd的数据安全性。

作为本发明实施例一种可选的实施方式,如图4所示,在对ssd进行区域划分时,还可以将数据区中的各个块的块索引区集中设置在块主索引区中,也即,将上述块主索引区划分为多个大小相同的区域,每个块数据区在块主索引区中对应一个大小相同的区域,从而对各个块的块索引区集中管理。参考图4,块主索引区被划分为n个区域,其中,块数据区1在块索引区中对应区域1,块数据区2在块索引区中对应区域2,块数据区n在块索引区中对应区域n,且区域1、区域2……区域n大小相同。

由上可知,上述ssd可以由至少三种区域构成,每一种区域可以对应一种芯片颗粒且各种区域所对应芯片颗粒可以不同,上述操作系统自带文件系统所在区域、系统主索引区、块主索引区、数据区在ssd中所位于区域,可以依据操作系统自带文件系统所在区域、系统主索引区、块主索引区和数据区的重要等级以及芯片颗粒的安全性级别确定。例如,将操作系统自带文件系统所在区域、系统主索引区、块主索引区和数据区中重要等级最高的区设置于芯片颗粒的安全性级别最高的区。

具体地,上述芯片颗粒可以是slc(single-levelcell,单层单元)芯片颗粒、mlc(multi-levelcell,多层单元)芯片颗粒或tlc(trinary-levelcell,三层单元)芯片颗粒等,其中,slc芯片颗粒的安全性级别高于mlc芯片颗粒和tlc芯片颗粒的安全性级别。由于上述系统主索引区、块主索引区需要频繁地读写的频率一般高于数据区频繁读写的频率,所以可以认为系统主索引区和块主索引区的重要等级相同且高于数据区的重要等级,这种情况下,可以将系统主索引区和块主索引区设置于芯片颗粒安全等级较高的区域,例如,slc芯片颗粒形成的区域,将数据区设置于芯片颗粒安全等级较低的区域,例如,mlc或tlc芯片颗粒形成的区域,从而能够依据各自区域的重要等级以及芯片颗粒的安全性级别确定,在保障数据安全性的同时具有低生产成本。或者,还可以根据实际的数据安全要求,将操作系统自带文件系统所在区域设置于具有不同芯片颗粒安全等级的区域。例如,如果对操作系统自带文件系统所在区域的数据安全要求高,可以将操作系统自带文件系统所在区域设置于芯片颗粒安全等级较高的区域,例如,slc芯片颗粒形成的区域;如果对操作系统自带文件系统所在区域的数据安全要求不高,可以将操作系统自带文件系统所在区域设置于芯片颗粒安全等级较低的区域,例如,mlc或tlc芯片颗粒形成的区域,从而能够根据不同区域的实际安全需求,灵活设置于具有不同安全等级的区域。

作为本发明实施例一种可选的实施方式,如图5和图6所示,块主索引区还可以由多个块组组成,每个块组中还可以包含多个区域。例如,块主索引区由块组1、块组2……块组n组成,其中,块组1中包含区域1、区域2……区域n。通过将块主索引区划分为多个块组,可以使每个块组处理一种类型的文件的文件存储信息,例如在块组1中处理视频文件的文件存储信息,在块组2中处理图像文件的文件存储信息,从而能够在技术人员需要查找某一文件的文件存储信息时,直接从对应文件类型的块组中查找该文件,提高文件存储信息的查找效率。

相应于上面的方法实施例,本发明实施例还提供了相应的装置实施例。

如图7所示,本发明实施例提供了一种文件管理装置,该装置挂载有固态硬盘ssd,ssd具有ssd文件系统和操作系统自带文件系统,所述ssd文件系统包括:系统索引区和数据区;所述系统索引区用于存储ssd信息和数据区信息,所述数据区被划分为大小相同的块,每一个块包括:块索引区和块数据区,一个块的块索引区用于记录该块的块数据区所存储文件的文件存储信息;所述操作系统自带文件系统,用于运行所述电子设备所运行操作系统自带的文件系统;所述操作系统自带文件系统设置有数据库,所述数据库用于记录所述数据区每一块的块数据区所存储文件的标识和文件存储位置信息的对应关系,一个文件的文件存储位置信息包括:存储有该文件的ssd的ssd信息、用于存储该文件的块数据区所属块的块信息、文件的文件存储信息;该装置包括:

第一获取模块201,用于获得待从ssd读取的待读取文件的标识。

查找模块202,用于在操作系统自带文件系统的数据库中,查找与待读取文件的标识对应的文件存储位置信息。

定位模块203,用于根据查找到的文件存储位置信息中记录的ssd信息以及块信息,定位ssd中用于存储待读取文件的块。

读取模块204,用于根据查找到的文件存储位置信息中记录的文件存储信息,从定位到的块中读取待读取文件。

可选地,当定位到一个以上块时,读取模块204具体用于:根据文件存储位置信息中记录的文件存储信息,分别从定位到的各个块中读取属于待读取文件的数据;对读取到的数据进行合并处理,获得待读取文件。

本发明实施例提供的文件管理装置,由于电子设备挂载有ssd时,ssd具有不同于操作系统自带文件系统的ssd文件系统以及操作系统自带文件系统,且操作系统自带文件系统设置有数据库,该数据库中记录有存储于块的块数据区中的文件的文件存储位置信息,在电子设备获取待从ssd读取的待读取文件的标识后,能够通过查找数据库中与待读取文件的标识对应的文件存储位置信息,直接定位ssd中用于存储待读取文件的块,并从定位到的块中直接读取待读取文件。可见,相比于现有技术,应用本发明实施例提供的方案实现文件读取时,是由操作系统自带文件系统数据库中的文件存储位置信息,确定待读取文件的读取位置,且所确定的读取位置为ssd文件系统中块数据区所包含的块,而无需确定待读取文件的存储路径,也就是无需基于存储路径读取待写入文件,从而提高了待读取文件的读取速度。

如图8所示,作为本发明实施例一种可选的实施方式,在上述装置实施例的基础上,本发明实施例的文件管理装置还可以包括:

第二获取模块205,用于获得待写入ssd的待写入文件。

确定模块206,用于生成待写入文件的标识,并通过ssd文件系统确定用于存储待写入文件的块,作为第一块。

第一存储模块207,用于将待写入文件存储至所述第一块的块数据区,并获得待写入文件的文件存储信息,将所获得的文件存储信息存储至第一块的块索引区。

生成模块208,用于根据待写入文件的文件存储信息、第一块的块信息以及第一块所属ssd的ssd信息,生成待写入文件的文件存储位置信息。

第二存储模块209,用于将待写入文件的标识与所生成文件存储位置信息之间的对应关系存储至操作系统自带文件系统的数据库中。

可选地,数据区信息包括:各个块的使用状态;

本发明实施例的文件管理装置还可以包括:

判断模块2010,用于判断第一块的当前使用状态是否为写满状态;

如图9所示,其中,判断模块2010包括:

第一更新子模块20101,用于当判断模块判断为是时,将数据区信息中记录的第一块的使用状态更新为写满状态;

第二更新子模块20102,用于当判断模块判断为否时,在写入前状态为未写入状态时,将数据区信息中记录的第一块的使用状态更新为已写入状态,其中,写入前状态为:将待写入文件存储至第一块的块数据区之前第一块的使用状态。

可选地,所述系统索引区包括:系统主索引区和系统备索引区;

所述系统主索引区,用于存储ssd信息和数据区信息;

所述系统备索引区,用于存储所述系统主索引区的备份信息。

可选地,一个块的块索引区包括:该块的块主索引区和该块的块备索引区;

一个块的块主索引区,用于记录该块的块数据区所存储文件的文件存储信息;

一个块的块备索引区,用于存储该块的块主索引区的备份信息。

本发明实施例还提供了一种电子设备,如图10所示,电子设备包括处理器301、通信接口302、存储器303和通信总线304,其中,处理器301,通信接口302,存储器303通过通信总线304完成相互间的通信,

存储器303,用于存放计算机程序;

处理器301,用于执行存储器303上所存放的程序时,实现如上述图2实施例及上述其它方法实施例所述的文件管理方法的如下步骤:

获得待从ssd读取的待读取文件的标识;

在操作系统自带文件系统的数据库中,查找与待读取文件的标识对应的文件存储位置信息;

根据查找到的文件存储位置信息中记录的ssd信息以及块信息,定位ssd中用于存储所述待读取文件的块;

根据查找到的文件存储位置信息中记录的文件存储信息,从定位到的块中读取待读取文件。

本发明实施例提供的电子设备,由于电子设备挂载有ssd时,ssd具有不同于操作系统自带文件系统的ssd文件系统以及操作系统自带文件系统,且操作系统自带文件系统设置有数据库,该数据库中记录有存储于块的块数据区中的文件的文件存储位置信息,在电子设备获取待从ssd读取的待读取文件的标识后,能够通过查找数据库中与待读取文件的标识对应的文件存储位置信息,直接定位ssd中用于存储待读取文件的块,并从定位到的块中直接读取待读取文件。可见,相比于现有技术,应用本发明实施例提供的方案实现文件读取时,是由操作系统自带文件系统数据库中的文件存储位置信息,确定待读取文件的读取位置,且所确定的读取位置为ssd文件系统中块数据区所包含的块,而无需确定待读取文件的存储路径,也就是无需基于存储路径读取待写入文件,从而提高了待读取文件的读取速度。

上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述电子设备与其他设备之间的通信。

存储器可以包括随机存取存储器(randomaccessmemory,简称ram),也可以包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessing,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现场可编程门阵列(field-programmablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,用以实现如上述图2实施例及上述其它方法实施例所述的文件管理方法的如下步骤:

获得待从ssd读取的待读取文件的标识;

在操作系统自带文件系统的数据库中,查找与待读取文件的标识对应的文件存储位置信息;

根据查找到的文件存储位置信息中记录的ssd信息以及块信息,定位ssd中用于存储所述待读取文件的块;

根据查找到的文件存储位置信息中记录的文件存储信息,从定位到的块中读取待读取文件。

本发明实施例提供的计算机可读存储介质,由于电子设备挂载有ssd时,ssd具有不同于操作系统自带文件系统的ssd文件系统以及操作系统自带文件系统,且操作系统自带文件系统设置有数据库,该数据库中记录有存储于块的块数据区中的文件的文件存储位置信息,在电子设备获取待从ssd读取的待读取文件的标识后,能够通过查找数据库中与待读取文件的标识对应的文件存储位置信息,直接定位ssd中用于存储待读取文件的块,并从定位到的块中直接读取待读取文件。可见,相比于现有技术,应用本发明实施例提供的方案实现文件读取时,是由操作系统自带文件系统数据库中的文件存储位置信息,确定待读取文件的读取位置,且所确定的读取位置为ssd文件系统中块数据区所包含的块,而无需确定待读取文件的存储路径,也就是无需基于存储路径读取待写入文件,从而提高了待读取文件的读取速度。

对于装置/电子设备/存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

需要说明的是,本发明实施例的装置、电子设备及存储介质分别是应用上述基于随机博弈理论的动态竞争窗口调整方法的装置、电子设备及存储介质,则上述基于随机博弈理论的动态竞争窗口调整方法的所有实施例均适用于该装置、电子设备及存储介质,且均能达到相同或相似的有益效果。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1