文件系统检查方法、系统、电子设备及介质与流程

文档序号:29692220发布日期:2022-04-16 12:05阅读:108来源:国知局
文件系统检查方法、系统、电子设备及介质与流程

1.本发明涉及数据存储技术,特别涉及一种文件系统检查方法、系统、电子设备及介质。


背景技术:

2.日志是在文件系统中保证原子性和持久性的一种技术。磁盘读写的最小单位是扇区,扇区的读写是原子的,当文件系统系统在修改元数据时会超过一个扇区的大小,可以通过日志来保证原子性。数据可以先写入日志,在合适的时间再刷到磁盘上的目标位置。
3.为了保证计算机数据存储系统的可靠性,需要对文件系统进行一致性检查。在对运行时的文件系统进行检查时,读取的数据必须是只读的,因为修改的元数据都在日志中,所以检查时需要跳过日志。跳过日志的检查无法保证文件系统的一致性。


技术实现要素:

4.本技术提供文件系统检查方法、系统、电子设备及介质,通过将数据写入至写缓存,从而实现文件系统的在线一致性检查,可以及时发现文件系统的异常。
5.本技术的第一方面公开了一种文件系统检查的方法,所述述方法包括:当所述文件系统在经历文件检查时,接收向磁盘的第一位置写入数据的请求;将所述数据写入写缓存的第二位置。
6.在上述第一方面的一种可能的实现中,所述磁盘包括日志区域和非日志区域,所述第一位置位于所述非日志区域。
7.在上述第一方面的一种可能的实现中,将所述数据写入写缓存包括,创建动态查找树,所述动态查找树记录了与所述第一位置和所述第二位置相关的信息。
8.在上述第一方面的一种可能的实现中,所述动态查找树为b树,所述b树的key为所述第一位置,所述b树的value为所述第二数据。
9.本技术的第二方面公开了一种文件检查系统,所述系统包括:接收模块,接当所述文件系统在经历文件检查时,接收向磁盘的第一位置写入数据的请求;第一写入模块,用于将所述数据写入写缓存的第二位置。
10.在上述第一方面的一种可能的实现中,所述系统还包括创建模块,用于当将所述数据写入所述写缓存时,在内存中创建动态查找树,所述动态查找树记录了与与所述第一位置和所述第二位置相关的信息。
11.在上述第一方面的一种可能的实现中,所述创建模块用于创建b树,所述b树的key为所述第一位置,所述b树的value为所述第二位置。
12.本技术的第三方面公开了一种电子设备,包括存储有计算机可执行指令的存储器和处理器;当所述指令被所述处理器执行时,使得所述设备实施本技术第一方面的方法。
13.本技术的第四方面公开了一种计算机可读存储介质,计算机可读存储介质存储有一个或多个计算机程序,一个或多个计算机程序被一个或多个处理器执行,使得处理器执
行上述第一方面实施例的方法。
14.本技术提供电子设备的文件系统检查方法、系统、电子设备及介质,在对文件进行一致性检查时,通过将数据写入磁盘中的某个位置改为将数据写入临时的写缓存,实现在线检查文件系统而无需卸载文件系统,能够在不影响用户数据的情况下对文件系统检查,可以及时发现文件系统的异常。
附图说明
15.图1为相关技术中数据写入的方法示意图;
16.图2为本技术的一个实施例中的文件系统检查方法示意图;
17.图3为本技术的一个实施例的用于文件系统检查的方法的流程图;
18.图4为本技术的一个实施例的文件系统检查系统的模块示意图;
19.图5为本技术一个实施例的电子设备的结构示意图。
具体实施方式
20.下面结合具体实施例和附图对本技术做进一步说明。可以理解的是,本公开的说明性实施例包括但不限于用于文件系统检查的方法、系统、电子设备及介质,此处描述的具体实施例仅仅是为了解释本技术,而非对本技术的限定。此外,为了便于描述,附图中仅示出了与本技术相关的部分而非全部的结构或过程。
21.以下由特定的具体实施例说明本技术的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本技术的其他优点及功效。虽然本技术的描述将结合较佳实施例一起介绍,但这并不代表此发明的特征仅限于该实施方式。恰恰相反,结合实施方式作发明介绍的目的是为了覆盖基于本技术的权利要求而有可能延伸出的其它选择或改造。为了提供对本技术的深度了解,以下描述中将包含许多具体的细节。本技术也可以不使用这些细节实施。此外,为了避免混乱或模糊本技术的重点,有些具体细节将在描述中被省略。需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。
22.此外,各种操作将以最有助于理解说明性实施例的方式被描述为多个离散操作;然而,描述的顺序不应被解释为暗示这些操作必须依赖于顺序。特别是,这些操作不需要按呈现顺序执行。
23.除非上下文另有规定,否则术语“包含”,“具有”和“包括”是同义词。短语“a/b”表示“a或b”。短语“a和/或b”表示“(a和b)或者(a或b)”。
24.如这里所使用的,术语“模块”或“单元”可以指代、是或者包括:专用集成电路(asic)、电子电路、执行一个或多个软件或固件程序的(共享、专用或组)处理器和/或存储器、组合逻辑电路和/或提供所描述的功能的其他合适的组件。
25.在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由一个或多个暂时或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理器读取和执行。例如,指令可以通过网络或通过其他计算机可读介质的途径分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制、但不限于、软盘、光盘、光盘、只读存储器(cd-rom)、磁光盘、只读存储器(rom)、随机存取存储器(ram)、可擦除可编程只
读存储器(eprom)、电可擦除可编程只读存储器(eeprom)、磁卡或光卡、闪存、或用于通过电、光、声或其他形式的传播信号(例如,载波、红外信号、数字信号等)通过因特网传输信息的有形的机器可读存储器。因此,机器可读介质包括适合于以机器(例如,计算机)可读的形式存储或传输电子指令或信息的任何类型的机器可读介质。
26.在附图中,以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可以不需要这样的特定布置和/或排序。在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来布置。另外,在特定图中包含结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。
27.应当理解的是,虽然在这里可能使用了术语“第一”、“第二”等等来描述各个单元或是数据,但是这些单元或数据不应当受这些术语限制。使用这些术语仅仅是为了将一个特征与另一个特征进行区分。举例来说,在不背离示例性实施例的范围的情况下,第一特征可以被称为第二特征,并且类似地第二特征可以被称为第一特征。
28.应注意的是,在本说明书中,相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
29.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术的实施方式作进一步地详细描述。
30.参考图1,图1示出了相关技术中向磁盘100写入数据的示意图。磁盘100中包括非日志区域101和日志区域102。当更新磁盘100时,在覆盖原先的数据结构之前,可以首先将数据写入日志区域中,再将日志区域的数据写入非日志区域。
31.在s110中,将数据写入日志区域102。在日志区域中确认写入的数据无误后,可以进入s120。在s120中,将更新的数据内容写入非日志区域101中对应的最终位置103。更新的数据内容包括元数据和数据。一旦数据安全地更新在磁盘上,即可覆盖原先的数据,这个过程成为“检查点(check pointing)”。
32.如果在更新数据的期间发生了断电,可以检查日志区域102中的数据,从而将s120再重复一次。这样为了修复数据而不必扫描整个磁盘。
33.图1示出了在相关技术中通过日志实现文件系统的原子性。然而,通过日志的文件系统在面临在线一致性检查的时候可能会遇到漏查的问题。在对运行中的文件系统进行一致性检查时,被检查的内容的格式必须为只读的,而因为修改的元数据位于日志中,修改的元数据为非只读,所以在检查过程中会跳过日志,这样,在文件系统在线一致性检查的时候无法对日志中的内容进行检查。
34.为了解决上述问题,本技术的一个实施例提供了一种文件系统检查方法,参见图2。当文件系统正在经历文件检查时,接收向磁盘200的第一位置(202,203)写入数据的请求;将所述数据写入写缓存(205)的第二位置。即,将s220中从日志区域202写入非日志区域201中位置203,改为s230的从日志区域202写入内存204的写缓存205中。或者,在检查期间对日志的写入s210改为s240中的对写缓存205的写入。通过将待写入数据写入到写缓存中,而不是磁盘中的预留区域可以减小磁盘的开销。
35.图2中的文件系统检查方法,在对文件进行一致性检查时,将相关技术中的数据写
入磁盘中的某个位置改为将数据写入临时的写缓存,保证了磁盘中接收检查的位置没有写入,可以避免因写入导致的不一致;同时将待写入的数据转移到内存中的某个位置,利用该位置承接写入,在检查过程中可以对该位置的写入数据进行一致性检查,没有绕过日志的内容或绕过检查期间磁盘的待写入内容,避免了漏查的现象。这样,在进行文件一致性检查的时候,无需卸载文件系统,实现在线一致性检查,从而能够在不影响用户数据的情况下对文件系统检查,可以及时发现文件系统的异常。
36.为了更好地说明图2示出的方法,图3示出了本技术的一个实施例的用于文件系统检查的方法300的流程图。
37.在图3中,在310中,文件系统处于在线状态。“在线”指的是文件系统被安装时,对应的,离线指的是文件系统被卸载时。
38.在320中,判断当前文件系统是否正经历在线文件检查。当在线文件系统检查正在进行时,该文件系统可以由用户读取。
39.在一些实施方式中,在线文件系统检查可以例如响应于用户请求而被执行,或者被自动周期性地执行或者响应于文件系统检测到文件错误而自动地执行。
40.当文件系统没有正在经历线文件检查状态时,则进入到350,可以按照常规的方法接收向磁盘的第一位置写入数据的请求,并将数据最终写到第一位置。
41.当文件系统正在经历文件检查状态时,则进入到330,接收向磁盘的第一位置写入数据的请求。在接收请求之后将待写入的数据写入到写缓存中的第二位置。
42.在一些实施方式中,第一位置指的是磁盘中非日志区域中的某个位置,此时向第一位置写入数据对应于上文中的“检查点”。
43.在其它一些实施方式中,第一位置指的是磁盘中日志区域中的某个位置,此时向第一位置写入数据指的是,文件系统在在线检查期间,因文件修复产生的写入。
44.在340之后,文件在线检查结束,写入写缓存的数据可以丢弃。若在文件在线检查结束后,若有对磁盘的写入请求,则可以按照350进行。
45.图3中的文件系统检查方法,当文件系统没有经历在线一致性检查时,将数据直接写入磁盘中的最终位置;在对文件进行一致性检查时,将相关技术中的数据写入磁盘中的某个位置改为将数据写入临时的写缓存,保证了磁盘中接收检查的位置没有写入,可以避免因写入导致的不一致;同时将待写入的数据转移到内存中的某个位置,利用该位置承接写入,在检查过程中可以对该位置的写入数据进行一致性检查,没有绕过日志的内容或绕过检查期间磁盘的待写入内容,避免了漏查的现象。这样,在进行文件一致性检查的时候,无需卸载文件系统,实现在线一致性检查,从而能够在不影响用户数据的情况下对文件系统检查,可以及时发现文件系统的异常。
46.在一些实施方式中,读取第二数据可通过创建动态查找树来实现。动态查找树主要包括:二叉搜索树,平衡二叉树,红黑树,b树,b-树。动态查找树记录了第一数据对应的非日志区域中的第一位置的信息,在读取磁盘数据,即文件系统在线检查时,从动态查找树上查找待读取数据的位置。可以减少磁盘的i/o操作。
47.在一些实施方式中,动态查找树为b树。b树的每一个节点都包含key和value,所有节点组成该b树。key可以记录待读取的磁盘中的某个位置是否存在写入数据,对应的value为写入数据的最终位置。b树提供了一种基于内存的写缓存,根据offset来返回具体数据的
接口的方式。
48.例如,当磁盘的日志区域接收到写入第一数据的请求,根据第一数据生成第二数据,第一数据对应于磁盘非日志区域的第一位置。如果此时文件系统正经历在线文件检查,可以将第二数据写入缓存,同时可在内存中创建b树,b树的key为所述第一位置的偏移,如果磁盘的非日志区域中的某个位置有写入数据的任务,则b树的key为第一位置,value为保存第二数据的最终位置。如果此时文件系统没有经历在线文件检查,可以将第二数据写入磁盘非日志区域的第一位置。
49.当在一致性检查的过程中需要读取磁盘中的数据时,首先查找b树,如果根据b树的key检查待读取的数据的磁盘位置是否为第一位置,如果是,则根据value查找最终位置,直接在内存中获得第二数据;如果根据b树的key检查待读取的数据的磁盘位置不是第一位置,即待读取的磁盘位置上没有写入数据的任务,则直接从待读取的磁盘位置读取数据。利用b树可以快速地读取数据,并且减少磁盘的i/o次数。
50.在一些实施方式中,可以通过hash散列来记录磁盘的待写入的位置信息和写入数据实际存储的位置信息。
51.参考图4,本技术提供一种文件检查系统400,文件检查系统400包括:
52.接收模块410,当所述文件系统在经历文件检查时,接收向磁盘的第一位置写入数据的请求;
53.第一写入模块420,用于将所述数据写入写缓存的第二位置。
54.图4的文件检查系统,在对文件进行一致性检查时,将相关技术中的数据写入磁盘中的某个位置改为将数据写入临时的写缓存,保证了磁盘中接收检查的位置没有写入,可以避免因写入导致的不一致;同时将待写入的数据转移到内存中的某个位置,利用该位置承接写入,在检查过程中可以对该位置的写入数据进行一致性检查,没有绕过日志的内容或绕过检查期间磁盘的待写入内容,避免了漏查的现象。这样,在进行文件一致性检查的时候,无需卸载文件系统,实现在线一致性检查,从而能够在不影响用户数据的情况下对文件系统检查,可以及时发现文件系统的异常。
55.在一些实施方式中,文件检查系统400还包括第二写入模块,当文件系统没有经历在线一致性检查时,将数据直接写入磁盘中的最终位置。
56.在一些实施方式中,文件检查系统400还包括创建模块450,用于当将所述数据写入所述写缓存时,在内存中创建动态查找树,所述动态查找树记录了与与所述第一位置和所述第二位置相关的信息。
57.在一些实施方式中,创建模块450在内存中创建b树,所述b树的key为所述第一位置,所述b树的value为所述第二位置。
58.现在参考图5,所示为根据本技术的一个实施例的电子设备500的框图。电子设备500可以包括一个或多个处理器502,与处理器502中的至少一个连接的系统控制逻辑508,与系统控制逻辑508连接的系统内存504,与系统控制逻辑508连接的非易失性存储器(nvm)506,以及与系统控制逻辑508连接的网络接口510。
59.处理器502可以包括一个或多个单核或多核处理器。处理器502可以包括通用处理器和专用处理器(例如,图形处理器,应用处理器,基带处理器等)的任何组合。在本文的实施例中,处理器502可以被配置为执行根据如图2所示的各种实施例的一个或多个实施例。
60.在一些实施例中,系统控制逻辑508可以包括任意合适的接口控制器,以向处理器502中的至少一个和/或与系统控制逻辑508通信的任意合适的设备或组件提供任意合适的接口。
61.在一些实施例中,系统控制逻辑508可以包括一个或多个存储器控制器,以提供连接到系统内存504的接口。系统内存504可以用于加载以及存储数据和/或指令。在一些实施例中设备500的内存504可以包括任意合适的易失性存储器,例如合适的动态随机存取存储器(dram)。
62.nvm/存储器506可以包括用于存储数据和/或指令的一个或多个有形的、非暂时性的计算机可读介质。在一些实施例中,nvm/存储器506可以包括闪存等任意合适的非易失性存储器和/或任意合适的非易失性存储设备,例如hdd(hard disk drive,硬盘驱动器),cd(compact disc,光盘)驱动器,dvd(digital versatile disc,数字通用光盘)驱动器中的至少一个。
63.nvm/存储器506可以包括安装在设备500的装置上的一部分存储资源,或者它可以由设备访问,但不一定是设备的一部分。例如,可以经由网络接口510通过网络访问nvm/存储506。
64.特别地,系统内存504和nvm/存储器506可以分别包括:指令520的暂时副本和永久副本。指令520可以包括:由处理器502中的至少一个执行时导致设备500实施如图1所示的方法的指令。在一些实施例中,指令520、硬件、固件和/或其软件组件可另外地/替代地置于系统控制逻辑508,网络接口510和/或处理器502中。
65.网络接口510可以包括收发器,用于为设备500提供无线电接口,进而通过一个或多个网络与任意其他合适的设备(如前端模块,天线等)进行通信。在一些实施例中,网络接口510可以集成于设备500的其他组件。例如,网络接口510可以集成于处理器502的,系统内存504,nvm/存储器506,和具有指令的固件设备(未示出)中的至少一种,当处理器502中的至少一个执行所述指令时,设备500实现图3所示的各种实施例的一个或多个实施例。
66.网络接口510可以进一步包括任意合适的硬件和/或固件,以提供多输入多输出无线电接口。例如,网络接口510可以是网络适配器,无线网络适配器,电话调制解调器和/或无线调制解调器。
67.在一个实施例中,处理器502中的至少一个可以与用于系统控制逻辑508的一个或多个控制器的逻辑封装在一起,以形成系统封装(sip)。在一个实施例中,处理器502中的至少一个可以与用于系统控制逻辑508的一个或多个控制器的逻辑集成在同一管芯上,以形成片上系统(soc)。
68.设备500可以进一步包括:输入/输出(i/o)设备512。i/o设备512可以包括用户界面,使得用户能够与设备500进行交互;外围组件接口的设计使得外围组件也能够与设备500交互。
69.在一些实施例中,用户界面可包括但不限于显示器(例如,液晶显示器,触摸屏显示器等),扬声器,麦克风,一个或多个相机(例如,静止图像照相机和/或摄像机),手电筒(例如,发光二极管闪光灯)和键盘。
70.在一些实施例中,外围组件接口可以包括但不限于非易失性存储器端口、音频插孔和电源接口。
71.本技术的各方法实施方式均可以以软件、磁件、固件等方式实现。
72.可将程序代码应用于输入指令,以执行本文描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本技术的目的,处理系统包括具有诸如例如数字信号处理器(dsp)、微控制器、专用集成电路(asic)或微处理器之类的处理器的任何系统。
73.程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本文中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
74.至少一个实施例的一个或多个方面可以由存储在计算机可读存储介质上的表示性指令来实现,指令表示处理器中的各种逻辑,指令在被机器读取时使得该机器制作用于执行本文所述的技术的逻辑。被称为“ip核”的这些表示可以被存储在有形的计算机可读存储介质上,并被提供给多个客户或生产设施以加载到实际制造该逻辑或处理器的制造机器中。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1