实现防掉电文件系统的方法、装置以及防掉电文件系统的制作方法
【技术领域】
[0001]本发明涉及计算机技术领域,尤其涉及一种基于异质存储介质实现防掉电文件系统的方法、装置以及防掉电文件系统。
【背景技术】
[0002]文件系统作为操作系统的必备组件已经得到了广泛的应用。目前的文件系统中的数据存储介质大多采用传统的存储介质,例如硬盘、软盘、光盘等。任何一种文件系统的数据存储,都可以分为两个部分,第一个部分是元数据区,第二个部分是数据存储区。数据存储区存储的是用户写入的数据,而元数据区则实现对存储介质(硬盘、软盘、光盘等)的空间分配和管理,对文件属性的管理,和文件层次结构的管理。
[0003]对文件系统的文件进行增加删除和修改的时候,需要进行多次的操作,这些操作既可能是针对数据存储区的操作,又可能是针对元数据区的操作,不同的操作之间可能被中打断,也就是发生异常的掉电。而异常的掉电,有可能造成文件系统的不一致和错误。
[0004]比如,写入文件时,首先要利用元数据区为文件分配空间,然后在数据存储区写入文件的数据。如果这两步操作之间被打断,有可能分配了空间,而实际并没有写入数据。文件系统就会出现不一致的错误。
[0005]为了避免不一致的问题,技术人员开发出了日志文件系统(journaling filesystem)。日志文件系统在非日志文件系统的基础上,加入了文件系统更改的日志记录,跟踪记录文件系统的变化,并将变化内容记录入日志。在文件系统发生变化时,文件系统驱动程序首先将相关信息写入日志区域中,然后再将变化写入文件系统的有关区域。如果对文件系统的操作由于某种原因(如系统掉电)而中断,发生不一致的问题,那么系统重启时,通过读取日志区域,可以根据日志记录来恢复掉电前的操作,保证系统的一致性。
[0006]使用日志技术的文件系统虽然解决了不一致的问题,但也有一些缺陷:在系统掉电故障发生的情况,保存在文件系统中但尚未写入传统存储介质中的数据仍然会丢失,而数据是系统中最重要的信息,数据丢失比其它故障更严重,也更不可被容忍。
【发明内容】
[0007]有鉴于此,本发明提供一种能够防掉电的文件系统的实现方法、装置以及防掉电文件系统。
[0008]本发明一实施例提出一种基于异质存储介质实现防掉电文件系统的方法,所述文件系统包括第一存储介质、具有掉电保护功能的第二存储介质。所述方法可以包括:在对所述第一存储介质中的数据进行改变前,直接在所述第二存储介质中写入所述数据以及对应的日志条目,所述日志条目用于描述所述数据的改变信息,并标记所述日志条目的状态标识为第一状态标识;根据所述日志条目改变所述第一存储介质中的所述数据,当所述改变完成后,标记所述日志条目的状态标识为第二状态标识;以及当所述文件系统掉电重启后,读取所述第二存储介质中的所述状态标识并根据所述状态标识恢复掉电前的操作。
[0009]本发明另一实施例提供一种基于异质存储介质实现防掉电文件系统的装置,所述文件系统包括第一存储介质以及具有掉电保护功能的第二存储介质,所述装置可以包括:第一掉电保护模块,用于在对所述第一存储介质中的数据进行改变前,直接在所述第二存储介质中写入所述数据以及对应的日志条目,所述日志条目用于描述所述数据的改变信息,并标记所述日志条目的状态标识为第一状态标识;第二掉电保护模块,用于根据所述日志条目改变所述第一存储介质中的所述数据,当所述改变完成后,标记所述日志条目的状态标识为第二状态标识;以及掉电恢复模块,用于当所述文件系统掉电重启后,读取所述第二存储介质中的所述状态标识并根据所述状态标识恢复掉电前的操作。
[0010]本发明又一实施例提供一种防掉电文件系统可以包括第一存储介质、具有掉电保护功能的第二存储介质以及掉电保护模块,其中,所述掉电保护模块用于在对所述第一存储介质中的数据进行改变前,直接在所述第二存储介质中写入所述数据以及对应的日志条目,所述日志条目用于描述所述数据的改变信息,并标记所述日志条目的状态标识为第一状态标识,根据所述日志条目改变所述第一存储介质中的所述数据,当所述改变完成后,标记所述日志条目的状态标识为第二状态标识,以及当所述文件系统掉电重启后,读取所述第二存储介质中的所述状态标识并根据所述状态标识恢复掉电前的操作。
[0011]本发明实施例提供的基于异质存储介质实现防掉电文件系统的方法、装置以及防掉电文件系统,通过将文件系统的数据存储介质设计为普通存储介质和具有掉电保护功能的存储介质。普通存储介质保存文件系统的元数据和用户写入的数据,而具有掉电保护功能的存储介质则保存文件系统的日志信息,即使发生系统掉电故障,仍然可以将文件系统的改变写入具有掉电保护功能的存储介质中,当系统重启时,通过读取日志信息,可以根据日志信息来恢复掉电前的操作,保证系统的一致性。
[0012]为让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。
【附图说明】
[0013]图1为本发明第一实施例提供的基于异质存储介质实现防掉电文件系统的方法的流程图。
[0014]图2为本发明第二实施例提供的基于异质存储介质实现防掉电文件系统的方法的流程图。
[0015]图3为本发明第三实施例提供的实现防掉电文件系统的装置的结构框图
[0016]图4为本发明第四实施例提供的防掉电文件系统的结构框图。
【具体实施方式】
[0017]为更进一步阐述本发明为实现预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明的【具体实施方式】、结构、特征及其功效,详细说明如后。
[0018]本发明的主要思路在于:通过将文件系统的数据存储介质设计为普通存储介质和具有掉电保护功能的存储介质两个部分。普通存储介质保存文件系统的元数据和用户写入的数据,而具有掉电保护功能的存储介质则包括用于备份数据的备份数据区以及用于存储日志的日志存储区,即使发生系统掉电故障,仍然可以将文件系统的改变写入具有掉电保护功能的存储介质中,当系统重启时,通过读取日志信息,可以根据日志信息来恢复掉电前的操作,保证系统的一致性。
[0019]于本发明实施例中,第一存储介质优选为传统的存储介质,例如可以包括硬盘、软盘、光盘等不具有非易失性的存储介质。第二存储介质优选为快闪存储介质,又称为闪存,其存储介质是flash memory,是非易失存储器(所谓非易失性即掉电仍能保存信息的特性),可以对称为块的存储器单元块进行擦写和再编程。由于传统存储介质的成本比快闪存储介质的成本低,因此,本发明实施例提供的基于异质存储介质实现防掉电文件系统的方案既可以解决现有的基于传统存储介质的文件系统在掉电时容易丢失数据的问题,相对于完全基于快闪存储介质的文件系统,又可以节省很多成本。
[0020]本发明实施例中的具有掉电保护功能的第二存储介质,为具有提供电量的电容以及充放电电路的快闪存储介质。例如可以采用现有的利用快闪存储介质作为存储单元的固态硬盘,这种固态硬盘在PCB电路板的背面加入了一个很大的电容,称为“超级电容”,主要功能是提供掉电保护以及电流过载保护,保证硬盘和数据存储的安全,避免电源异常导致的损坏硬盘。其核心就是这块特定的超级大电容(相当于一颗电池)和充放电电路,不但能够提供供电信息给主控,还能够提供足够