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

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

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



背景技术:

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至少包括两种区域,其中系统索引区、块索引区和数据区在ssd中所位于区域,能够依据各自的重要等级以及芯片颗粒的安全性级别确定,从而可以针对系统索引区、块索引区和数据区对安全性的不同等级要求,将其设置于不同芯片颗粒所对应的区域中,在保障数据安全性的同时具有低生产成本。

附图说明

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

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

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

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

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

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

图6为本发明实施例提供的文件管理系统的一种结构示意图;

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

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

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

具体实施方式

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

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

上述电子设备挂载有ssd,具体的,可以仅仅挂载一个ssd,也可以挂载一个以上ssd,电子设备所挂载的各ssd均具有ssd文件系统。其中ssd文件系统包括:系统索引区、块索引区和数据区,参考图1,其中系统主索引区和系统备索引区组成了系统索引区,sindex用以表示系统主索引区,bsindex用以表示系统备索引区;块数据区1、块数据区2……块数据区n组成了数据区,其中d1、d2……dn即表示对应块数据区1、块数据区2……块数据区n。

其中,上述数据区被划分为大小相同的块数据区;上述系统索引区,用于存储ssd信息和数据区信息;上述块索引区,用于记录每一块数据区中所存储文件的文件存储信息。

具体的,上述块索引区可以划分为多个大小相同的区域,每个块数据区在块索引区中对应一个大小相同的区域。

上述ssd可以包括至少两种区域,每一种区域可以对应一种芯片颗粒且各种区域所对应芯片颗粒可以不同,上述系统索引区、块索引区和数据区在ssd中所位于区域,可以依据系统索引区、块索引区和数据区的重要等级以及芯片颗粒的安全性级别确定。

例如,将系统索引区、块索引区和数据区中重要等级最高的区设置于芯片颗粒的安全性级别最高的区域。

具体地,上述芯片颗粒可以是slc(single-levelcell,单层单元)芯片颗粒、mlc(multi-levelcell,多层单元)芯片颗粒或tlc(trinary-levelcell,三层单元)芯片颗粒等,其中,slc芯片颗粒的安全性级别高于mlc芯片颗粒和tlc芯片颗粒的安全性级别。

由于上述系统索引区、块索引区需要频繁地读写的频率一般高于数据区频繁读写的频率,所以可以认为系统索引区和块索引区的重要等级相同且高于数据区的重要等级,这种情况下,可以将系统索引区和块索引区设置于芯片颗粒安全等级较高的区域,例如,slc芯片颗粒形成的区域,将数据区设置于芯片颗粒安全等级较低的区域,例如,mlc或tlc芯片颗粒形成的区域。

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

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

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

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

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

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

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

具体地,对具有上述ssd文件系统的ssd进行格式化的过程中,除了需要对ssd进行传统意义上的格式化外,还需要确定ssd文件系统中的系统索引区、块索引区、数据区,以及块索引区的多个区域,设置系统索引区中存储的ssd信息和数据区信息。还可以根据每个块数据区的lba(logicalblockaddress,逻辑区块地址),将每个块数据区的默认索引信息写入与块索引区对应的区域。

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

ssd信息中的可用空间的初始值可以设置为ssd的总存储容量;

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

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

将总存储空间与系统索引区的大小相减,获得差值;

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

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

s101,获得待写入ssd的待写入文件。

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

s102,生成待写入文件的标识,并通过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个块数据区用于存储该文件。

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

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

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

作为本发明实施例一种可选的实施方式,本发明实施例的ssd可以包括两种区域。具体来说,现有的ssd,其存储介质一般只由一种区域构成,上述一种区域通常只采用一种芯片颗粒,例如只采用slc芯片颗粒,或者只采用tlc芯片颗粒。但是,不同类型的芯片颗粒通常具有不同的寿命、性能,也就导致具有不同的数据安全性,同时,不同的芯片颗粒其制造成本也相差很大。例如相同容量的slc芯片颗粒的制造成本通常是相同容量的tlc芯片颗粒的数倍。现有的ssd,如果提高数据安全性,其成本将增加;如果降低成本,其数据安全性将降低。也就是说,现有的基于一种区域构成的ssd无法在保障数据安全性的同时具有低生产成本,也无法针对系统索引区、块索引区和数据区对安全性的不同等级要求,将其设置于不同芯片颗粒所对应的区域中。

本发明实施例,使系统索引区和块索引区位于第一种区域,使数据区位于第二种区域,其中,第一种区域对应第一种芯片颗粒,例如安全性高的slc芯片颗粒,第二种区域对应第二种芯片颗粒,例如mlc或tlc芯片颗粒,从而可以针对系统索引区、块索引区和数据区对安全性的不同等级要求,将其设置于不同芯片颗粒所对应的区域中,并且,还能在在保障数据安全性的同时具有低生产成本。

作为本发明实施例一种可选的实施方式,本发明实施例的ssd可以包括三种区域。虽然mlc芯片颗粒的安全级别低于slc芯片颗粒,但它却高于tlc芯片颗粒的安全级别,且制造成本显著低于slc芯片。因此可以使系统索引区位于第一种区域,其中,第一种区域对应第一种芯片颗粒,例如安全性最高的slc芯片颗粒;使块索引区位于第二种区域,其中,第二种区域对应第二种芯片颗粒,例如安全性次之的mlc芯片颗粒;使数据区位于第三种区域,其中,第三种区域对应第三种芯片颗粒,例如安全性较低的tlc芯片颗粒,从而进一步降低ssd的制造成本。

并且,现有的基于一种区域构成的ssd,在存储文件时通常只采用全局磨损均衡处理或局部独立磨损均衡处理二者之一,本发明实施例由于包括两种区域,因此在存储文件时,针对不同的区域,可以分别采用全局磨损均衡处理或局部独立磨损均衡处理。例如,在slc芯片颗粒所对应的区域中采用局部独立磨损均衡处理,在mlc芯片颗粒所对应的区域中采用局部独立磨损均衡处理,从而提高本发明实施例的应用灵活性。

作为本发明实施例一种可选的实施方式,在获取已被存储的待写入文件的文件存储信息后,本发明实施例还可以生成该文件对应的文件存储位置信息。文件存储位置信息中通常包括该文件的文件存储信息、第一块数据区的块数据区信息以及第一块数据区所属ssd的ssd信息。容易理解的是,第一块数据区的块数据区信息可以包含第一块数据区的多种属性信息,例如第一块数据区的当前状态是否为写满状态,第一块数据区在数据区中的块数据区号等。具体地例如可以包括:该文件的文件id、该文件的大小、该文件的位置偏移量、该文件所在ssd的id、第一块数据区的块数据区号等信息。

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

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

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

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

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

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

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

作为本发明实施例一种可选的实施方式,如图3所示,块索引区可以仅仅由一部分构成。也就是,块索引区中直接记录每一块数据区中所存储文件的文件存储信息,此时的块索引区即可以为图1中的块主索引区。上述块索引区可以划分为多个大小相同的区域,每个块数据区在块索引区中对应一个大小相同的区域。参考图3,块索引区被划分为n个区域,其中,块数据区1在块索引区中对应区域1,块数据区2在块索引区中对应区域2,块数据区n在块索引区中对应区域n,且区域1、区域2……区域n大小相同。

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

参考图1,上述块主索引区可以划分为多个大小相同的区域,每个块数据区在块主索引区中对应一个大小相同的区域。块主索引区被划分为n个区域,其中,块数据区1在块主索引区中对应区域1,块数据区2在块主索引区中对应区域2,块数据区n在块主索引区中对应区域n,且区域1、区域2……区域n大小相同。块备索引区同样可以具有与块主索引区相同的结构,即,块备索引区也可以被划分为多个大小相同的区域。

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

作为本发明实施例一种可选的实施方式,待写入文件写入本发明实施例的文件系统所管理的ssd后,还可以读取ssd中的文件数据,可以将该文件称为待读取文件。

可选地,可以利用所生成的文件存储位置信息读取ssd中的待读取文件。

如上文所述,待写入文件写入ssd后,会生成一个与该文件一个对应的文件存储位置信息,其中,该文件存储位置信息中包含相应的ssd信息以及块数据区信息,具体可以记录该文件所在ssd的id、第一块数据区的块数据区号等信息。通过上述信息,能够在ssd中,定位用于存储该待读取文件的块数据区。如上文所述,文件存储位置信息还可以包含文件存储信息,其中,文件存储信息中可以记录有该文件的文件id、该文件的大小、该文件的位置偏移量等信息,因此,可以通过文件存储位置信息中记录的文件存储信息,读取待读取文件。

具体地,可以通过该文件存储位置信息中的ssd的id,先确定待读取文件所在的ssd,再通过该文件所在第一块数据区的块数据区号,在ssd中定位待读取文件所在的块数据区;进而通过文件位置存储信息中,该文件的大小和该文件的位置偏移量,在所定位的块数据区中,从上述定位到的块数据区中读取待读取的文件。

本发明实施例在读取ssd中的文件时,可以直接通过与该文件对应的文件存储位置信息中的ssd信息以及块数据区信息,定位待读取文件所在的块数据区,再通过文件位置存储信息中记录的文件存储信息,从定位到的块数据区中读取待读取文件,无需基于文件存储路径读取文件,从而提高文件的读取速度。

在前述实施例中,当一个文件的大小大于数据区中一个块数据区的大小时,则可以为该文件分配多个块数据区用于存储该文件。相应地,在读取该文件时,同样可能存在定位到一个以上块数据区的情况。

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

本发明实施例提供的文件管理方法,由于电子设备挂载有ssd时,ssd自身具有不同于操作系统自带文件系统的ssd文件系统,在电子设备获取待写入文件后,生成该文件的标识,并通过上述ssd文件系统确定用于存储待写入文件的块数据区,直接将待写入文件存储至上述所确定的块数据区中,可见,相比于现有技术,应用本发明实施例提供的方案实现文件存储时,是由ssd自身具有的文件系统确定文件的存储位置的,且所确定的存储位置为ssd文件系统中的块数据区,而无需确定待写入文件的存储路径,也就是无需基于存储路径写入待写入文件,从而提高了待写入文件的写入速度。并且,本发明实施例的ssd至少包括两种区域,每一种区域对应一种芯片颗粒且各种区域所对应芯片颗粒不同,其中系统索引区、块索引区和数据区在ssd中所位于区域,能够依据各自的重要等级以及芯片颗粒的安全性级别确定,从而可以针对系统索引区、块索引区和数据区对安全性的不同等级要求,将其设置于不同芯片颗粒所对应的区域中,在保障数据安全性的同时具有低生产成本。

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

如图6所示,本发明实施例提供了一种文件管理系统,该系统挂载有固态硬盘ssd,ssd具有ssd文件系统,其中ssd文件系统包括:系统索引区、块索引区和数据区,数据区被划分为大小相同的块数据区,系统索引区,用于存储ssd信息和数据区信息,块索引区,用于记录每一块数据区中所存储文件的文件存储信息,ssd至少包括两种区域,每一种区域对应一种芯片颗粒且各种区域所对应芯片颗粒不同,系统索引区、块索引区和数据区在ssd中所位于区域,依据系统索引区、块索引区和数据区的重要等级以及芯片颗粒的安全性级别确定,该系统包括:

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

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

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

作为一种可选的实施方式,本发明实施例的ssd可以包括两种区域;其中,系统索引区和块索引区可以位于第一种区域,数据区可以位于第二种区域,第一种区域可以对应第一种芯片颗粒,第二种区域可以对应第二种芯片颗粒,第一种芯片颗粒的安全性高于第二种芯片颗粒的安全性。

本发明实施例提供的文件管理系统,由于电子设备挂载有ssd时,ssd自身具有不同于操作系统自带文件系统的ssd文件系统,在电子设备获取待写入文件后,生成该文件的标识,并通过上述ssd文件系统确定用于存储待写入文件的块数据区,直接将待写入文件存储至上述所确定的块数据区中,可见,相比于现有技术,应用本发明实施例提供的方案实现文件存储时,是由ssd自身具有的文件系统确定文件的存储位置的,且所确定的存储位置为ssd文件系统中的块数据区,而无需确定待写入文件的存储路径,也就是无需基于存储路径写入待写入文件,从而提高了待写入文件的写入速度。并且,本发明实施例的ssd至少包括两种区域,每一种区域对应一种芯片颗粒且各种区域所对应芯片颗粒不同,其中系统索引区、块索引区和数据区在ssd中所位于区域,能够依据各自的重要等级以及芯片颗粒的安全性级别确定,从而可以针对系统索引区、块索引区和数据区对安全性的不同等级要求,将其设置于不同芯片颗粒所对应的区域中,在保障数据安全性的同时具有低生产成本。

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

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

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

本发明实施例的文件管理系统还包括:

判断模块205,用于判断第一块数据区的当前使用状态是否为写满状态。

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

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

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

可选地,块索引区包括:块主索引区和块备索引区;

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

块备索引区,用于存述块主索引区的备份信息。

可选地,本发明实施例的文件管理系统还包括:

读取模块206,用于获得待从ssd读取的待读取文件的文件存储位置信息;根据所获得文件存储位置信息中记录的ssd信息以及块数据区信息,定位ssd中用于存储所述待读取文件的块数据区;根据所获得文件存储位置信息中记录的文件存储信息,从定位到的块数据区中读取所述待读取文件。

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

根据所获得文件存储位置信息中记录的文件存储信息,分别从定位到的各个块数据区中读取属于待读取文件的数据;对读取到的数据进行合并处理,获得所述待读取文件。

可选地,如图8所示,判断模块205还包括:

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

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

本发明实施例提供的文件管理系统,通过生成模块204,能够生成文件存储位置信息,便于用户日后查找该文件;通过系统备索引区,可以在系统主索引区损坏时,通过系统备索引区中的备份信息对系统主索引区中的数据进行恢复,从而保障ssd的数据安全性;通过块备索引区,能够在块主索引区损坏时,通过块备索引区的备份信息对块主索引区中的数据进行恢复,从而保障ssd的数据安全性。

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

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

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

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

生成待写入文件的标识,并通过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至少包括两种区域,每一种区域对应一种芯片颗粒且各种区域所对应芯片颗粒不同,其中系统索引区、块索引区和数据区在ssd中所位于区域,能够依据各自的重要等级以及芯片颗粒的安全性级别确定,从而可以针对系统索引区、块索引区和数据区对安全性的不同等级要求,将其设置于不同芯片颗粒所对应的区域中,在保障数据安全性的同时具有低生产成本。

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

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

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

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

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

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