CN114185849A - 文件操作方法、文件操作系统、电子设备及存储介质 - Google Patents
文件操作方法、文件操作系统、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114185849A CN114185849A CN202010966292.XA CN202010966292A CN114185849A CN 114185849 A CN114185849 A CN 114185849A CN 202010966292 A CN202010966292 A CN 202010966292A CN 114185849 A CN114185849 A CN 114185849A
- Authority
- CN
- China
- Prior art keywords
- file
- data
- target file
- target
- system index
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/1734—Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种文件操作方法、文件操作系统、电子设备及存储介质。其中,文件操作方法通过根据历史操作记录生成日志数据,可以利用日志数据来记录用户的操作,并根据日志数据在内存中构建储存设备的文件系统索引,如此一来,文件系统索引可以形成一个完整的文件操作系统,对文件的操作可以通过文件系统索引来进行,因此文件的元数据信息无须储存在储存设备的数据区中,对文件的操作不涉及储存设备的元数据信息的原地修改,避免储存设备的多次擦写,降低储存设备的损耗;同时,由于文件系统索引位于内存中,访问速度快,有利于提升文件操作的效率。
Description
技术领域
本发明涉及储存技术领域,特别是涉及一种文件操作方法、文件操作系统、电子设备及存储介质。
背景技术
随着闪存技术的发展,利用闪存颗粒作为存储介质的储存设备越来越得到青睐,例如固态硬盘(SolidStateDrives,SSD),具有读写速度快,低功耗、无噪音、抗震动、低热量、体积小、工作温度范围大,被广泛应用于军事、车载、工业、医疗、航空等领域。
固态硬盘采用的闪存颗粒内部一般由成千上万个大小相同的数据块(Block)所组成,数据块大小一般为数百KB到数MB。每一个数据块的内部又分为若干个大小相同的数据页(Page),数据页的大小一般为4KB或者8KB。
在向固态硬盘中写入数据时,只能以数据页为粒度进行写入,如果固态硬盘中某个数据页已经被写入了数据,那么不能向这个数据页中再次直接写入数据,只能在这个数据页的数据被清空以后才能再次写入。固态硬盘的这个特性,会引入一个写入放大的情况,即如果需要修改数据页里面的某个数据,需要将整个数据页全部搬移到别的干净的数据页上面写入新数据,即在闪存颗粒上实际写入的数据远大于用户本身修改的数据。
闪存颗粒就工作在这样的“擦除”和“编程”循环中,一次这样的循环,被称为一次擦写(Program/Erase,简称为P/E)。闪存颗粒中每个数据块的P/E次数有限;当某个数据块的P/E次数达到上限后,就无法保证能够继续有效地存取数据。
所以说固态硬盘优点虽然很多,但是固态硬盘有自身的读写特性,而且固态硬盘的使用寿命有上限,达到上限之后,固态硬盘将会不可使用。
传统的文件操作方法都是在原地修改数据,比如文件元数据等的修改。这种原地修改会带来写入放大效应,加大对固态硬盘的损耗。
发明内容
以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
本发明实施例提供了一种文件操作方法、文件操作系统、电子设备及存储介质,能够降低对储存设备的损耗。
第一方面,本发明实施例提供了一种文件操作方法,包括:
根据储存设备的历史操作信息在所述储存设备中生成对应的日志数据,根据所述日志数据在内存中构建所述储存设备的文件系统索引;
根据用户的文件操作指令确定目标文件,根据所述文件系统索引查找所述目标文件,对所述目标文件执行与所述文件操作指令对应的操作。
第二方面,本发明实施例还提供了一种文件操作系统,包括:
构建单元,用于根据储存设备的历史操作信息在所述储存设备中生成对应的日志数据,根据所述日志数据在内存中构建所述储存设备的文件系统索引;
操作单元,用于根据用户的文件操作指令确定目标文件,根据所述文件系统索引查找所述目标文件,对所述目标文件执行与所述文件操作指令对应的操作。
第三方面,本发明实施例还提供了一种电子设备:
包括至少一个处理器和用于与所述至少一个处理器通信连接的存储器;所述存储器存储有能够被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面所述的文件操作方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行第一方面所述的文件操作方法。
本发明实施例至少包括以下有益效果:根据储存设备的历史操作信息在所述储存设备中生成对应的日志数据,根据所述日志数据在内存中构建所述储存设备的文件系统索引;根据用户的文件操作指令确定目标文件,根据所述文件系统索引查找所述目标文件,对所述目标文件执行与所述文件操作指令对应的操作。通过根据历史操作记录生成日志数据,可以利用日志数据来记录用户的操作,并根据日志数据在内存中构建储存设备的文件系统索引,如此一来,文件系统索引可以形成一个完整的文件操作系统,对文件的操作可以通过文件系统索引来进行,因此文件的元数据信息无须储存在储存设备的数据区中,对文件的操作不涉及储存设备的元数据信息的原地修改,避免储存设备的多次擦写,降低储存设备的损耗;同时,由于文件系统索引位于内存中,访问速度快,有利于提升文件操作的效率。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1是本发明实施例提供的文件操作系统的结构示意图;
图2是本发明实施例提供的文件操作方法的流程图;
图3是本发明实施例提供的文件系统索引的架构示意图;
图4是本发明实施例提供的根据储存设备的历史操作信息在储存设备中生成对应的日志数据的流程图;
图5是本发明实施例提供的根据日志数据在内存中构建储存设备的文件系统索引的流程图;
图6是本发明实施例提供的日志块的结构示意图;
图7是本发明实施例提供的根据文件系统索引查找目标文件,并对目标文件执行与文件操作指令对应的操作的流程图(文件操作指令为读取文件指令);
图8是本发明实施例提供的根据文件系统索引查找目标文件,并对目标文件执行与文件操作指令对应的操作的流程图(文件操作指令为修改文件指令);
图9是本发明实施例提供的根据文件系统索引查找目标文件,并对目标文件执行与文件操作指令对应的操作的流程图(文件操作指令为另一种修改文件指令);
图10是本发明实施例提供的根据文件系统索引查找目标文件,并对目标文件执行与文件操作指令对应的操作的流程图(文件操作指令为删除文件指令);
图11是本发明实施例提供的根据文件系统索引查找目标文件,并对目标文件执行与文件操作指令对应的操作的流程图(文件操作指令为移动文件指令);
图12是本发明实施例提供的日志数据回收示意图;
图13是本发明实施例提供的数据块回收示意图;
图14是本发明实施例提供的文件操作方法的具体例子的流程图;
图15是本发明实施例提供的文件操作系统的结构示意图;
图16是本发明实施例提供的电子设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
应了解,在本发明实施例的描述中,多个(或多项)的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。如果有描述到“第一”、“第二”等只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。
本发明实施例以固态硬盘为例子进行说明。参照图1,为本发明实施例提供的文件操作系统的架构示意图,该文件操作系统包括超级块、日志区以及数据区,其中,超级块用于存放文件操作系统的全局数据,在首次使用文件操作系统时,先对硬盘进行格式化,并将全局数据写到超级块中,全局数据为硬盘的分区大小、分区起始位置等。日志区用于存放用户在文件操作系统上的历史操作记录和对应的文件的元数据等,日志区可以分为多个日志块,每个日志块对应一个操作记录,示例性地,单个日志块的大小可以为128字节。数据区用于存放文件本身的数据,数据区包含了多个数据块,每个数据块包含了多个数据页,示例性地,每个数据页的大小可以设定为4千字节。
基于图1所示的文件操作系统,参照图2,本发明实施例提供了一种文件操作方法,包括但不限于以下步骤201至步骤202:
步骤201:根据储存设备的历史操作信息在储存设备中生成对应的日志数据,根据日志数据在内存中构建储存设备的文件系统索引;
其中,在步骤201中,储存设备可以是固态硬盘,包括普通固态硬盘、可移动固态硬盘,或者其他与固态硬盘类似的储存设备。储存设备的历史操作信息包括了储存设备从最初开始使用以后的所有操作记录,根据这些操作记录生成对应的日志数据。举例来说,在硬盘上新建了一个文件,则生成该文件的创建日志,又或者,对硬盘上的某个文件进行移动,则生成该文件的移动日志。
由于文件系统索引是根据日志数据构建的,因此文件系统索引与硬盘上的日志数据是等价的,从而使得文件系统索引可以作为一个完整的文件操作系统。参照图3,在一实施例中,文件系统索引可以为树状数据结构,使得整个文件系统索引的架构更加清晰,文件系统索引可以具有多个文件节点,举例来说,文件节点A代表磁盘分区一,文件节点B1和文件节点B2代表磁盘分区一下的文件夹一和文件夹二,文件节点C1、文件节点C2和文件节点C3分别代表文件夹一中的文件一、文件二和文件三。其中,每个文件节点可以储存有文件的元数据信息、目录项的文件名、软链接的目标文件等元数据信息,例如,文件节点B1储存有文件夹一中的文件名,文件节点C1储存有文件一的元数据信息等等。
步骤202:根据用户的文件操作指令确定目标文件,根据文件系统索引查找目标文件,并对目标文件执行与文件操作指令对应的操作。
其中,在步骤202中,对目标文件进行的操作,可以是创建、移动、修改、删除等。举例来说,将某个文件从文件夹一移动至文件夹二,则在日志数据中新增此移动记录,并对应修改文件系统索引的文件节点中该文件的元数据信息。
上述步骤201至步骤202中,通过根据历史操作记录生成日志数据,可以利用日志数据来记录用户的操作,并根据日志数据在内存中构建储存设备的文件系统索引,如此一来,文件系统索引可以形成一个完整的文件操作系统,对文件的操作可以通过文件系统索引来进行,因此文件的元数据信息无须储存在储存设备的数据区中,对文件的操作不涉及储存设备的元数据信息的原地修改,避免储存设备的多次擦写,降低储存设备的损耗;同时,由于文件系统索引位于内存中,访问速度快,有利于提升文件操作的效率。
参照图4,在一实施例中,上述步骤201中,根据储存设备的历史操作信息在储存设备中生成对应的日志数据,具体可以包括以下步骤401至步骤402:
步骤401:将文件标识相同的历史操作信息进行关联;
其中,在步骤401中,储存设备的历史操作信息可以有多个,每个历史操作信息都对应有文件标识,文件标识用于对某个目标文件进行唯一标识,例如可以是文件号等,具体的文件号可以根据实际情况设置,可以是数字、字符中的一种或者多种的组合;举例来说,当某个目标文件有多个历史操作记录时,通过多个日志块进行分别记录,则每个日志块都会通过唯一的文件号进行关联,例如日志块一、日志块二通过文件号A100进行关联。
步骤402:对历史操作信息按照操作时间顺序进行排序,在储存设备中生成对应的日志数据。
其中,在步骤402中,对历史操作信息按照操作时间顺序进行排序,可以利用全局ID的方式进行标识,举例来说,可以根据历史操作信息对应的操作时间给对应的日志块分配一个全局ID,全局ID可以是1、2、3等自然数,因此对历史操作信息按照操作时间顺序进行排序,通过全局ID的大小顺序进行排序即可。结合步骤501中历史操作信息通过唯一的文件标识进行关联,再对各个历史操作信息按照操作时间顺序进行排序,可以使得储存设备中的日志数据更加整洁,有利于提高数据读取的效率。
参照图5,在一实施例中,上述步骤502中,根据日志数据在内存中构建储存设备的文件系统索引,具体可以包括以下步骤501至步骤502:
步骤501:根据日志数据确认数据块中的文件的路径信息以及数据块中的文件对应的元数据信息;
其中,在步骤501中,路径信息即多个文件节点之间的映射数据,比如磁盘分区一/文件夹一/文件一。根据日志数据确认路径信息和元数据信息,举例来说,在一实施例中,日志数据包括有:在磁盘分区一新建文件夹一,在文件夹中新建文件一,则可以根据该日志数据确认多个文件节点:磁盘分区一、文件夹一以及文件一,并且,可以确认它们之间的路径信息:磁盘分区一/文件夹一/文件一,同时,由于日志数据由历史操作信息生成,因而也可以确认数据块中文件的元数据信息。
步骤502:根据路径信息和元数据信息构建储存设备的文件系统索引。
其中,在步骤502中,可以先根据路径信息形成树状数据结构,并在对应的文件节点中存放对应的元数据信息,从而形成储存设备的文件系统索引。另外,在其他实施例中,文件系统索引并不限定于为树状数据结构,例如也可以是表格数据结构等。
在一实施例中,基于上述文件系统索引,可以对硬盘中的目标文件进行多种类型的操作,例如读取、修改、删除或者移动等等,首先,目标文件需要被创建,具体地,在文件系统索引中查找目标文件对应的目录项,在目录项下新增目标文件,其中,目标文件对应的目录项,可以是目标文件所在的文件夹,举例来说,用户需要在文件夹一中新增一个文件一,则在文件系统索引中对应文件夹一的文件节点中新增该文件一。然后,将目标文件写入储存设备中对应的数据页,在日志数据中增加目标文件的创建记录,并更新文件系统索引中目标文件对应的元数据信息。
其中,在日志数据中增加目标文件的创建记录,既对具体的操作进行描述,同时也记录目标文件相应的元数据信息,举例来说,参照图6,目标文件的创建记录可以涉及多个日志块,包括“创建文件”、“使用了数据块5”等。
下面结合不同的操作过程对本发明实施例的文件操作方法进行说明。
读取文件
在一实施例中,文件操作指令为读取文件指令,参照图7,上述步骤202中,根据文件系统索引查找目标文件,并对目标文件执行与文件操作指令对应的操作,具体可以包括以下步骤701至步骤702:
步骤701:在文件系统索引中确定目标文件所在的文件节点,从文件节点中读取目标文件对应的元数据信息;
步骤702:根据目标文件对应的元数据信息确认目标文件在储存设备中的位置,从储存设备中读取目标文件;
其中,在步骤702中,根据目标文件对应的元数据信息确认目标文件在储存设备中的位置,可以是根据目标文件的元数据信息确认目标文件在储存设备中的数据块信息或者数据页信息,进而从储存设备的对应的数据块或者数据页中读取目标文件。
步骤703:更新日志数据。
其中,在步骤703中,对目标文件进行读取之后,还对该目标文件对应的日志数据进行更新,使得断电重启后重新构建文件系统索引时,保证日志数据为最新的,例如,在该目标文件的日志数据中增加读取记录,读取记录可以包括读取的文件号、读取时间等。
修改文件
在一实施例中,文件操作指令为修改文件指令,一种情况是向目标文件中追加写入新增数据,相应地,参照图8,上述步骤202中,根据文件系统索引查找目标文件,并对目标文件执行与文件操作指令对应的操作,具体也可以包括以下步骤801至步骤803:
步骤801:在文件系统索引中确定目标文件所在的文件节点,从文件节点中读取目标文件对应的元数据信息;
步骤802:根据目标文件对应的元数据信息确认目标文件所在的数据页,将新增数据写入目标文件所在的数据页;
其中,在步骤802中,新增数据即需要追加写入目标文件的数据,新增数据可以依次写入目标文件原来所在的数据页。若目标文件原来所在的数据页已经写满,则将新增数据写到新的数据页中,再更新目标文件的元数据信息。
步骤803:更新日志数据以及文件系统索引中目标文件对应的元数据信息。
其中,在步骤803中,对目标文件追加写入了新增数据之后,还对该目标文件对应的日志数据进行更新,使得断电重启后重新构建文件系统索引时,保证日志数据为最新的,例如在该目标文件的日志数据中增加修改记录,修改记录可以包括目标文件的文件号、修改时间、新增数据所在的数据块、新增数据所在的数据页等。并且,也对文件节点中目标文件对应的元数据信息进行更新,以使得文件系统索引可以保持与储存设备的同步状态。
在一实施例中,修改文件的另一种情况是修改目标文件中的数据,相应地,参照图9,上述步骤202中,根据文件系统索引查找目标文件,并对目标文件执行与文件操作指令对应的操作,具体也可以包括以下步骤901至步骤903:
步骤901:在文件系统索引中确定目标文件所在的文件节点,从文件节点中读取目标文件对应的元数据信息;
步骤902:根据目标文件对应的元数据信息确认目标文件所在的数据页,将修改数据与目标文件合并后写入新的数据页,将目标文件原来所在的数据页标记为无效;
其中,在步骤902中,修改数据即需要修改写入目标文件的数据,修改数据与目标文件合并后写入新的数据页,举例来说,文件一包括数据ABCD,现要将文件一中的数据D改成数据E,则将文件一中的数据ABC与数据E合并后写入新的数据页中,再将文件一数据ABCD原来所在的数据页标记为无效,并更新目标文件的元数据信息。其中,将某个数据页标记为无效,该数据页的数据并不会马上被擦除掉,方便后续可以执行数据恢复等操作。
步骤903:更新日志数据以及文件系统索引中目标文件对应的元数据信息。
其中,在步骤903中,对目标文件写入了修改数据之后,还对该目标文件对应的日志数据进行更新,使得断电重启后重新构建文件系统索引时,保证日志数据为最新的,例如在该目标文件的日志数据中增加修改记录,修改记录可以包括目标文件的文件号、修改时间、修改后的目标文件所在的数据块、修改后的目标文件所在的数据页等。并且,也对文件节点中目标文件对应的元数据信息进行更新,以使得文件系统索引可以保持与储存设备的同步状态。
如此一来,对目标文件的修改通过日志数据进行记录,既不涉及文件元数据信息的原地修改,也不涉及目标文件自身数据的原地修改,从而降低储存设备的损耗。
删除文件
在一实施例中,文件操作指令为删除文件指令,参照图10,上述步骤202中,根据文件系统索引查找目标文件,并对目标文件执行与文件操作指令对应的操作,具体可以包括以下步骤1001至步骤1003:
步骤1001:在文件系统索引中确定目标文件所在的数据块,从数据块中读取目标文件对应的元数据信息;
步骤1002:根据目标文件对应的元数据信息确认目标文件所在的数据页,删除目标文件所在的文件节点,将目标文件所在的数据页标记为无效;
其中,在步骤1002中,将目标文件所在的数据页标记为无效,该数据页的数据并不会马上被擦除掉,方便后续可以执行数据恢复等操作。
步骤1003:更新日志数据。
其中,在步骤1003中,对目标文件进行删除之后,还对该目标文件对应的日志数据进行更新,使得断电重启后重新构建文件系统索引时,保证日志数据为最新的,例如,在该目标文件的日志数据中增加删除记录,删除记录可以包括删除的文件号、删除时间等。
移动文件
在一实施例中,文件操作指令为移动文件指令,参照图11,上述步骤202中,根据文件系统索引查找目标文件,并对目标文件执行与文件操作指令对应的操作,具体可以包括以下步骤1101至步骤1103:
步骤1101:在文件系统索引中确定目标文件所在的文件节点;
步骤1102:修改目标文件所在的文件节点;
其中,在步骤1102中,修改目标文件所在的文件节点,举例来说,目标文件原本位于文件夹一,现在需要将目标文件移动至文件夹二,则将目标文件所在的文件节点修改为文件夹二。
步骤1103:更新日志数据。
其中,在步骤1103中,对目标文件进行移动之后,还对该目标文件对应的日志数据进行更新,使得断电重启后重新构建文件系统索引时,保证日志数据为最新的,例如,在该目标文件的日志数据中增加移动记录,移动记录可以包括移动的文件号、移动时间、目标文件移动前后的文件节点等。
由于硬盘的空间是有限的,持续对硬盘的日志区和数据区写入数据的话,会导致日志区和数据区被写满,因此,在一实施例中,上述文件操作方法还包括对日志区的日志数据以及对数据区的数据块进行回收。
其中,对日志数据进行回收,一种方式是当目标文件被删除,将记录目标文件的删除记录的日志数据删除,另一种方式是将对应同一个目标文件的日志数据合并。举例来说,参照图12,示例性地展示6条日志数据,全局ID从1增加到6,全局ID小的说明日志数据产生的时间较早,全局ID大的说明日志数据产生的时间较晚。这6条日志数据分别涉及到3个文件,对应的文件号分别为A100,A101,A102。全局ID为1和全局ID为6的日志数据可以删除,因为全局ID为6的日志数据所对应的文件被删除了。全局ID为2和全局ID为4的日志数据可以合并,因为均是对应同一个文件。同理,全局ID为3和全局ID为5的日志数据也可以合并。对于同一个文件的数据写入和数据修改,在对应的日志数据合并之后,记录下最终文件使用的数据块即可。
在一实施例中,对日志数据进行回收的触发条件可以是当日志数据的容量达到第一阈值,其中,第一阈值可以根据实际情况自由设置,可以已使用的容量占比,例如为80%、85%或者90%等,当然,也可以是具体的容量数值,本发明实施例并不作出限定。
在一实施例中,日志区的数量可以为两个以上,当任意一个日志区被写满后,也可以触发日志数据回收。
可以理解的是,上述日志数据的两种回收方式可以择一执行,也可以均执行,本发明实施例并不作出限定。
其中,对数据块进行回收,一种方式是当数据块中所有数据页的数据均被标记为无效,则将该数据块擦除干净;另一种方式是根据剩余有效数据页占比由大到小的顺序对储存设备中的所有数据块进行排序,对排名靠后的若干个数据块合并后写到新的数据块中,并将该排名靠后的若干个数据块擦除干净。举例来说,参照图13,总共有8个数据块,每个数据块包括多个数据页,虚线框标识的白色数据页表示未使用(干净数据页),黑色数据页表示所对应的文件被删除了,实线标识的白色数据页表示所对应的文件还有效。第三个数据块所有的数据页所对应的文件都被删除了,因此直接把该数据块擦除干净回收。第四个数据块和第六个数据块中,所对应的文件被删除的数据页的数量排名靠前(按照数量由大到小排名),即其剩余有效数据页占比排名靠后,因此把第四个数据块和第六个数据块的有效数据页合并后搬移到第七个数据块,然后把第四个数据块和第六个数据块擦除干净。
在一实施例中,对数据块进行回收的触发条件可以是当储存设备中干净的数据块的占比小于第二阈值,其中,第二阈值可以根据实际情况自由设置,本发明实施例并不作出限定。
下面以一个实际例子说明本发明实施例提供的文件操作方法。
参照图14,本发明实施例提供的文件操作方法具体可以包括以下步骤1401至步骤1412:
步骤1401:挂载文件操作系统;
步骤1402:扫描超级块和日志区;
步骤1403:根据日志区的日志数据在内存中生成树状数据结构的文件系统索引;
步骤1404:响应文件操作指令,当文件操作指令为读取文件指令,跳转步骤1405;当文件操作指令为修改文件指令,跳转步骤1406;
步骤1405:从文件系统索引中获取对应的文件数据,从硬盘中读取对应的文件,跳转步骤1404;
步骤1406:从文件系统索引中获取对应的文件数据,修改对应的文件,将修改数据写入对应的数据块;
步骤1407:判断是否需要进行数据块回收,若是,跳转步骤1408;否则跳转步骤1409;
步骤1408:回收相应的数据块,跳转步骤1407;
步骤1409:更新文件操作系统中对应的元数据信息;
步骤1410:更新日志数据;
步骤1411:判断是否需要进行日志数据回收,若是,跳转步骤1412;否则结束流程;
步骤1412:回收相应的日志数据,跳转步骤1411。
本发明实施例通过根据历史操作记录生成日志数据,可以利用日志数据来记录用户的操作,并根据日志数据在内存中构建储存设备的文件系统索引,如此一来,文件系统索引可以形成一个完整的文件操作系统,对文件的操作可以通过文件系统索引来进行,因此文件的元数据信息无须储存在储存设备的数据区中,对文件的操作不涉及储存设备的元数据信息的原地修改,避免储存设备的多次擦写,降低储存设备的损耗;同时,由于文件系统索引位于内存中,访问速度快,有利于提升文件操作的效率。
还应了解,本发明实施例提供的各种实施方式可以任意进行组合,以实现不同的技术效果。
参照图15,本发明实施例还提供了一种文件操作系统,包括:
构建单元1501,用于根据储存设备的历史操作信息在储存设备中生成对应的日志数据,根据日志数据在内存中构建储存设备的文件系统索引;
操作单元1502,用于根据用户的文件操作指令确定目标文件,根据文件系统索引查找目标文件,对目标文件执行与文件操作指令对应的操作。
上述实施例中的文件操作系统与上述实施例中的文件操作方法基于相同的发明构思,因此该文件操作系统在对文件进行操作时,不涉及储存设备的数据的原地修改,能够避免储存设备的多次擦写,降低储存设备的损耗。
图16示出了本发明实施例提供的电子设备1600。电子设备1600包括:存储器1601、处理器1602及存储在存储器1601上并可在处理器1602上运行的计算机程序,计算机程序运行时用于执行上述的文件操作方法。示例性地,电子设备1600可以是个人电脑、平板电脑等。
处理器1602和存储器1601可以通过总线或者其他方式连接。
存储器1601作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序,如本发明实施例描述的文件操作方法。处理器1602通过运行存储在存储器1601中的非暂态软件程序以及指令,从而实现上述的文件操作方法。
存储器1601可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储执行上述的文件操作方法。此外,存储器1601可以包括高速随机存取存储器1601,还可以包括非暂态存储器1601,例如至少一个储存设备存储器1601件、闪存器件或其他非暂态固态存储器件。在一些实施方式中,存储器1601可选包括相对于处理器1602远程设置的存储器1601,这些远程存储器1601可以通过网络连接至该电子设备1600。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
实现上述的文件操作方法所需的非暂态软件程序以及指令存储在存储器1601中,当被一个或者多个处理器1602执行时,执行上述的文件操作方法,例如,执行图2中的方法步骤201至202、图4中的方法步骤401至402、图5中的方法步骤501至502、图7中的方法步骤701至703、图8中的方法步骤801至803、图9中的方法步骤901至903、图10中的方法步骤1001至1003、图11中的方法步骤1101至1103、图14中的方法步骤1401至1412。
本发明实施例还提供了计算机可读存储介质,存储有计算机可执行指令,计算机可执行指令用于执行上述的文件操作方法。
在一实施例中,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个控制处理器执行,例如,被上述电子设备1600中的一个处理器1602执行,可使得上述处理器1602执行上述的文件操作方法,例如,执行图2中的方法步骤201至202、图4中的方法步骤401至402、图5中的方法步骤501至502、图7中的方法步骤701至703、图8中的方法步骤801至803、图9中的方法步骤901至903、图10中的方法步骤1001至1003、图11中的方法步骤1101至1103、图14中的方法步骤1401至1412。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、储存设备存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包括计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
以上是对本发明的较佳实施进行了具体说明,但本发明并不局限于上述实施方式,熟悉本领域的技术人员在不违背本发明精神的共享条件下还可作出种种等同的变形或替换,这些等同的变形或替换均包括在本发明权利要求所限定的范围内。
Claims (15)
1.一种文件操作方法,包括:
根据储存设备的历史操作信息在所述储存设备中生成对应的日志数据,根据所述日志数据在内存中构建所述储存设备的文件系统索引;
根据用户的文件操作指令确定目标文件,根据所述文件系统索引查找所述目标文件,对所述目标文件执行与所述文件操作指令对应的操作。
2.根据权利要求1所述的文件操作方法,其特征在于,所述历史操作信息有多个,每个所述历史操作信息对应有文件标识,所述根据储存设备的历史操作信息在所述储存设备中生成对应的日志数据,包括:
将所述文件标识相同的所述历史操作信息进行关联;
对所述历史操作信息按照操作时间顺序进行排序,在储存设备中生成对应的日志数据。
3.根据权利要求1所述的文件操作方法,其特征在于,所述储存设备设置有多个数据块,所述根据所述日志数据在内存中构建所述储存设备的文件系统索引,包括:
根据所述日志数据确认所述数据块中的文件的路径信息以及所述数据块中的文件对应的元数据信息;
根据所述路径信息和所述元数据信息构建所述储存设备的文件系统索引。
4.根据权利要求1所述的文件操作方法,其特征在于,所述文件操作指令为读取指令,所述文件系统索引包括多个文件节点,所述文件节点存放有元数据信息,所述根据所述文件系统索引查找所述目标文件,对所述目标文件执行与所述文件操作指令对应的操作,包括:
在所述文件系统索引中确定所述目标文件所在的文件节点,从所述文件节点中读取所述目标文件对应的元数据信息;
根据所述目标文件对应的元数据信息确认所述目标文件在所述储存设备中的位置,从所述储存设备中读取所述目标文件;
更新所述日志数据。
5.根据权利要求1所述的文件操作方法,其特征在于,所述文件操作指令为修改指令,所述文件系统索引包括多个文件节点,所述文件节点存放有元数据信息,所述储存设备设置有多个数据页,所述根据所述文件系统索引查找所述目标文件,对所述目标文件执行与所述文件操作指令对应的操作,包括:
在所述文件系统索引中确定所述目标文件所在的文件节点,从所述文件节点中读取所述目标文件对应的元数据信息;
根据所述目标文件对应的元数据信息确认所述目标文件所在的数据页,将新增数据写入所述目标文件所在的数据页;
更新所述日志数据以及所述文件系统索引中所述目标文件对应的元数据信息。
6.根据权利要求1所述的文件操作方法,其特征在于,所述文件操作指令为修改指令,所述文件系统索引包括多个文件节点,所述文件节点存放有元数据信息,所述储存设备设置有多个数据页,所述根据所述文件系统索引查找所述目标文件,对所述目标文件执行与所述文件操作指令对应的操作,包括:
在所述文件系统索引中确定所述目标文件所在的文件节点,从所述文件节点中读取所述目标文件对应的元数据信息;
根据所述目标文件对应的元数据信息确认所述目标文件所在的数据页,将修改数据与所述目标文件合并后写入新的数据页,将所述目标文件原来所在的数据页标记为无效;
更新所述日志数据以及所述文件系统索引中所述目标文件对应的元数据信息。
7.根据权利要求1所述的文件操作方法,其特征在于,所述文件操作指令为删除指令,所述文件系统索引包括多个文件节点,所述文件节点存放有元数据信息,所述储存设备设置有多个数据页,所述根据所述文件系统索引查找所述目标文件,对所述目标文件执行与所述文件操作指令对应的操作,包括:
在所述文件系统索引中确定所述目标文件所在的文件节点,从所述文件节点中读取所述目标文件对应的元数据信息;
根据所述目标文件对应的元数据信息确认所述目标文件所在的数据页,删除所述目标文件所在的文件节点,将所述目标文件所在的数据页标记为无效;
更新所述日志数据。
8.根据权利要求1所述的文件操作方法,其特征在于,所述文件操作指令为移动指令,所述文件系统索引包括多个文件节点,所述根据所述文件系统索引查找所述目标文件,对所述目标文件执行与所述文件操作指令对应的操作,包括:
在所述文件系统索引中确定所述目标文件所在的文件节点;
修改所述目标文件所在的文件节点;
更新所述日志数据。
9.根据权利要求1所述的文件操作方法,其特征在于,所述方法还包括:
当所述日志数据的容量达到第一阈值,对所述日志数据进行回收。
10.根据权利要求9所述的文件操作方法,其特征在于,所述的对所述日志数据进行回收,具体包括以下至少之一:
当所述目标文件被删除,将记录所述目标文件的删除记录的日志数据删除;
将对应同一个所述目标文件的日志数据合并。
11.根据权利要求1所述的文件操作方法,其特征在于,所述储存设备设置有多个数据块,所述方法还包括:
当所述储存设备中干净的数据块的占比小于第二阈值,对所述储存设备的数据块进行回收。
12.根据权利要求11所述的文件操作方法,其特征在于,所述数据块包括多个数据页,所述对所述储存设备的数据块进行回收,包括以下至少之一:
当数据块中所有数据页的数据均被标记为无效,则将该数据块擦除干净;
根据剩余有效数据页占比由大到小的顺序对所述储存设备中的所有数据块进行排序,对排名靠后的若干个数据块合并后写到新的数据块中,并将该排名靠后的若干个数据块擦除干净。
13.一种文件操作系统,其特征在于,包括:
构建单元,用于根据储存设备的历史操作信息在所述储存设备中生成对应的日志数据,根据所述日志数据在内存中构建所述储存设备的文件系统索引;
操作单元,用于根据用户的文件操作指令确定目标文件,根据所述文件系统索引查找所述目标文件,对所述目标文件执行与所述文件操作指令对应的操作。
14.一种电子设备,其特征在于:
包括至少一个处理器和用于与所述至少一个处理器通信连接的存储器;所述存储器存储有能够被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至12中任意一项所述的文件操作方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如权利要求1至12中任意一项所述的文件操作方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010966292.XA CN114185849A (zh) | 2020-09-15 | 2020-09-15 | 文件操作方法、文件操作系统、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010966292.XA CN114185849A (zh) | 2020-09-15 | 2020-09-15 | 文件操作方法、文件操作系统、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114185849A true CN114185849A (zh) | 2022-03-15 |
Family
ID=80600827
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010966292.XA Pending CN114185849A (zh) | 2020-09-15 | 2020-09-15 | 文件操作方法、文件操作系统、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114185849A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116048562A (zh) * | 2022-05-30 | 2023-05-02 | 荣耀终端有限公司 | 一种数据更新方法、电子设备及存储介质 |
-
2020
- 2020-09-15 CN CN202010966292.XA patent/CN114185849A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116048562A (zh) * | 2022-05-30 | 2023-05-02 | 荣耀终端有限公司 | 一种数据更新方法、电子设备及存储介质 |
CN116048562B (zh) * | 2022-05-30 | 2023-10-27 | 荣耀终端有限公司 | 一种数据更新方法、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220413706A1 (en) | Data Storage Method, Apparatus and Storage System | |
US9183236B2 (en) | Low level object version tracking using non-volatile memory write generations | |
CN108319602B (zh) | 数据库管理方法及数据库系统 | |
CN110399310B (zh) | 一种存储空间的回收方法及装置 | |
KR101392174B1 (ko) | 소거 대상 블록의 매핑 테이블을 저장하는 플래시 메모리 제어장치 및 방법 | |
CN110018989B (zh) | 一种快照比对的方法和装置 | |
CN106527958B (zh) | 用于分布式存储系统的写入数据、获取数据的方法和设备 | |
CN106951375B (zh) | 在存储系统中删除快照卷的方法及装置 | |
KR101447188B1 (ko) | 플래시 메모리에 최적화된 입출력 제어 방법 및 장치 | |
CN1983267A (zh) | 延迟验证数据完整性的文件系统 | |
CN102696010A (zh) | 用于将数据高速缓存在固态存储设备上的装置、系统和方法 | |
CN111198856B (zh) | 文件管理方法、装置、计算机设备和存储介质 | |
CN108399047B (zh) | 一种闪存文件系统及其数据管理方法 | |
CN110673800B (zh) | 文件系统的数据操作方法、装置、设备及可读存储介质 | |
CN104572920A (zh) | 一种数据整理方法和装置 | |
CN110888837B (zh) | 对象存储小文件归并方法及装置 | |
CN113568582B (zh) | 数据管理方法、装置和存储设备 | |
CN109407985B (zh) | 一种数据管理的方法以及相关装置 | |
KR100703680B1 (ko) | 플래시 파일 시스템 | |
CN112558873A (zh) | 嵌入式音视频数据存储、检索、删除方法及装置、存储器 | |
US20070162707A1 (en) | Information recording medium data processing apparatus and data recording method | |
CN114185849A (zh) | 文件操作方法、文件操作系统、电子设备及存储介质 | |
KR20060106993A (ko) | 플래시 메모리 데이터 저장 방법 | |
CN114281242B (zh) | 存储器负载均衡的方法、装置和设备 | |
KR102107604B1 (ko) | 비휘발성 메모리 장치, 및 비휘발성 메모리의 데이터 관리 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |