模块32,用于根据所述日志条目改变所述第一存储介质中的所述数据,当所述改变完成后,标记所述日志条目的状态标识为第二状态标识;以及
[0055]掉电恢复模块33,用于当所述文件系统掉电重启后,读取所述第二存储介质中的所述状态标识并根据所述状态标识恢复掉电前的操作。
[0056]其中,所述第一存储介质可以包括:硬盘、软盘或光盘,所述具有掉电保护功能的第二存储介质可以为具有提供电量的电容以及充放电电路的快闪存储介质。
[0057]进一步的,所述第二存储介质可以包括:用于备份数据的备份数据区以及用于存储日志的日志存储区。
[0058]所述第一掉电保护模块31可以用于将发生改变的所述数据直接写入所述第二存储介质的备份数据区;以及在所述第二存储介质的日志存储区写入日志条目,所述日志条目用于描述所述数据的改变信息。
[0059]进一步的,所述第二掉电保护模块32可以用于读取存储在所述第二存储介质的备份数据区中的所述数据,根据所述目录条目在所述第一存储介质中对所述数据进行改变;以及标记所述日志条目的状态标识为第二状态标识。
[0060]进一步的,所述掉电恢复模块33可以用于当所述文件系统掉电重启后,读取所述第二存储介质中的所述状态标识以进行掉电恢复处理,当所述状态标识为第一状态标识时,读取存储在所述第二存储介质的备份数据区中的所述数据,根据所述目录条目在所述第一存储介质中对所述数据进行改变,完成改变后,将所述状态标识标记为第二状态标识;当所述状态标识为第二状态标识时,结束所述掉电恢复处理。
[0061]以上各模块可以是由软件代码实现,此时,上述的各模块可存储于计算机的存储器内。以上各模块同样可以由硬件例如集成电路芯片实现。
[0062]本实施例对实现防掉电文件系统的装置30的各功能模块实现各自功能的具体过程,请参见上述图1至图2所示实施例中描述的具体内容,此处不再赘述。
[0063]本发明实施例提供的基于异质存储介质实现防掉电文件系统的装置,通过将文件系统的数据存储介质设计为普通存储介质和具有掉电保护功能的存储介质两个部分,普通存储介质保存文件系统的元数据和用户写入的数据,而具有掉电保护功能的存储介质则保存文件系统的日志信息,即使发生系统掉电故障,仍然可以将文件系统的改变写入具有掉电保护功能的存储介质中,当系统重启时,通过读取日志信息,可以根据日志信息来恢复掉电前的操作,保证系统的一致性。
[0064]第四实施例
[0065]请参见图4,为本发明第四实施例提供的防掉电文件系统的结构示意图;请参照图4,所述系统40可以包括:第一存储介质41、具有掉电保护功能的第二存储介质42以及掉电保护模块43。
[0066]其中,所述第一存储介质可以包括:硬盘、软盘或光盘,所述具有掉电保护功能的第二存储介质可以为具有提供电量的电容以及充放电电路的快闪存储介质。第一存储介质41可以包括元数据区411和数据存储区412。
[0067]所述掉电保护模块43用于在对所述第一存储介质中的数据进行改变前,直接在所述第二存储介质中写入所述数据以及对应的日志条目,所述日志条目用于描述所述数据的改变信息,并标记所述日志条目的状态标识为第一状态标识,根据所述日志条目改变所述第一存储介质中的所述数据,当所述改变完成后,标记所述日志条目的状态标识为第二状态标识,以及当所述文件系统掉电重启后,读取所述第二存储介质中的所述状态标识并根据所述状态标识恢复掉电前的操作。
[0068]进一步的,所述第二存储介质42可以包括:用于备份数据的备份数据区421以及用于存储日志的日志存储区422。
[0069]进一步的,所述掉电保护模块43还可以用于将发生改变的所述数据直接写入所述第二存储介质的备份数据区;以及在所述第二存储介质的日志存储区写入日志条目,所述日志条目用于描述所述数据的改变信息。
[0070]进一步的,所述掉电保护模块43还可以用于读取存储在所述第二存储介质的备份数据区中的所述数据,根据所述目录条目在所述第一存储介质中对所述数据进行改变;以及标记所述日志条目的状态标识为第二状态标识。
[0071]进一步的,所述掉电保护模块43还可以用于当所述文件系统掉电重启后,读取所述第二存储介质中的所述状态标识以进行掉电恢复处理,当所述状态标识为第一状态标识时,读取存储在所述第二存储介质的备份数据区中的所述数据,根据所述目录条目在所述第一存储介质中对所述数据进行改变,完成改变后,将所述状态标识标记为第二状态标识;当所述状态标识为第二状态标识时,结束所述掉电恢复处理。
[0072]掉电保护模块作用于文件系统的数据改变过程,加入本模块后先需要将待改变的数据写入第二存储介质的备份数据区中,并写入对应的日志条目,对日志条目的状态标识进行标记,之后再在第一存储介质中对所述数据进行相应的改变。加入本模块后对第一存储介质的读取没有任何影响。
[0073]以上模块可以是由软件代码实现,此时,上述的各模块可存储于服务器的存储器内。以上模块同样可以由硬件例如集成电路芯片实现。
[0074]本实施例对防掉电文件系统的功能模块实现功能的具体过程,请参见上述图1至图3所示实施例中描述的具体内容,此处不再赘述。
[0075]本实施例提供的防掉电文件系统,通过将文件系统的数据存储介质设计为普通存储介质和具有掉电保护功能的存储介质。普通存储介质保存文件系统的元数据和用户写入的数据,而具有掉电保护功能的存储介质则保存文件系统的日志信息,即使发生系统掉电故障,仍然可以将文件系统的改变写入具有掉电保护功能的存储介质中,当系统重启时,通过读取日志信息,可以根据日志信息来恢复掉电前的操作,保证系统的一致性。另外,由于传统存储介质的成本比快闪存储介质的成本低,因此,本发明实施例提供的基于异质存储介质实现防掉电文件系统的方案既可以解决现有的基于传统存储介质的文件系统在掉电时容易丢失数据的问题,相对于完全基于快闪存储介质的文件系统,又可以节省很多成本。
[0076]需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0077]需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者装置中还存在另外的相同要素。
[0078]本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0079]以上,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容做出些许更动或修饰为等同变化的等