CN103092719B - 一种文件系统的断电保护方法 - Google Patents
一种文件系统的断电保护方法 Download PDFInfo
- Publication number
- CN103092719B CN103092719B CN201110336102.7A CN201110336102A CN103092719B CN 103092719 B CN103092719 B CN 103092719B CN 201110336102 A CN201110336102 A CN 201110336102A CN 103092719 B CN103092719 B CN 103092719B
- Authority
- CN
- China
- Prior art keywords
- daily record
- data
- critical data
- district
- critical
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 15
- 230000001360 synchronised effect Effects 0.000 claims abstract description 23
- 238000012795 verification Methods 0.000 claims abstract description 3
- 230000000052 comparative effect Effects 0.000 claims 1
- 235000015170 shellfish Nutrition 0.000 claims 1
- 230000002159 abnormal effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000000205 computational method Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种文件系统的断电保护方法,包括:1.一种文件系统的断电保护方法,其特征在于,该方法包括以下步骤:将文件系统在运行过程中可能会修改的关键数据都保存两份,对应为关键数据区一和关键数据区二;写日志,包括:把关键数据中需要修改的数据的地址以及数据的长度记录到日志中;同步计数更新一次;以及计算校验码;把日志保存到日志区一,对应为日志一;在关键数据区一修改数据;把日志保存到日志区二,对应为日志二;在关键数据区二修改数据;以及,在断电重启后数据的恢复步骤包括:读取日志一和日志二,校验日志一和日志二的完整性,根据日志一和日志二的完整性以及日志一和日志二的日志记录的信息来恢复关键数据。
Description
技术领域
本发明涉及信息处理技术领域,尤其涉及文件系统的断电保护方法。
背景技术
在数字化音视频监控领域,随着嵌入式技术的发展,嵌入式数字硬盘录像机(EDVR,Embedded Digital Video Recorder)在性能、功能、适用性、可维护性、稳定性各方面有了根本性的改善,因此其应用领域也越来越广,从最初的金融领域发展到交通、公安、电力、移动车载、采矿等各种应用场所。随着应用环境的多样化、复杂化,对嵌入式数字硬盘录像机的可靠性和故障恢复能力提出了更高的要求。
常见的嵌入式硬盘录像机无法正常录像或丢失录像文件主要是由于系统异常掉电等原因引起的文件系统关键信息丢失或不完整等原因导致的错误。
传统的文件系统,如fat32、ext3等在异常断电这块做的并不是很好,经常在多次异常断电后出现大量文件丢失,或者文件系统遭到破坏无法再恢复。其主要原因是文件系统在更新关键数据时发生断电,此时就可能造成文件丢失,或者文件系统关键数据不完整造成文件系统不可用的情况。针对这一问题,目前已有一种解决办法就是在格式化时把文件系统关键数据一次性写完,以后就不再修改,这种方法会使文件系统不具有通用性,不能适用很多应用场景。
发明内容
为克服上述不足,本发明提供了一种文件系统的断电保护方法,该方法包括以下步骤:
将文件系统在运行过程中可能会修改的关键数据都保存两份,对应为关键数据区一和关键数据区二;
写日志,所述日志记录的信息包括关键数据中需要修改的数据的地址以及数据的长度;同步计数,关键数据每修改一次,同步计数更新一次;以及校验码,该校验码用于确认该条日志是否完整;
所述写日志的步骤包括:把关键数据中需要修改的数据的地址以及数据的长度记录到日志中;同步计数更新一次;以及计算校验码;
把日志保存到日志区一,对应为日志一;
在关键数据区一修改数据;
把日志保存到日志区二,对应为日志二;
在关键数据区二修改数据;
以及,在断电重启后数据的恢复步骤包括:
读取日志一和日志二,校验日志一和日志二的完整性,根据日志一和日志二的完整性以及日志一和日志二的日志记录的信息来恢复关键数据。
通过本发明,保证了异常断电时,文件目录完整,减少文件的丢失,防止文件系统因为异常断电造成崩溃。
附图说明
图1是根据本发明一个实施方案的修改关键数据的流程图;
图2是根据本发明一个实施方案的断电恢复的流程图。
具体实施方式
下面结合附图和实例,对本发明的监控存储设备文件系统的断电保护方法做进一步阐述。
本发明所采用的技术方案包括硬盘分区格式化、关键数据的修改、断电重启后关键数据的恢复三个方面。
在进行介绍之前,先说明下本发明中的日志中需要记录的信息:1、关键数据中需要修改的地址以及数据的长度,用于记录关键数据中修改了哪些地方,这样在断电恢复的时候只需要把其中一份关键数据中的部分数据写入到另一份就行了,不需要整份关键数据都拷贝过去,可以节省断电恢复的时间;2、同步计数,关键数据每修改一次(这里的一次为一个修改过程,即为两块关键数据区都修改),同步计数更新一次,同步计数多更新一次的日志对应的关键数据更新(例如,同步计数加1,在此情况下,同步计数大的日志对应的那块关键数据更新),同时也用于恢复关键数据时判断哪份数据是完整的;3、校验码,用于确认该条日志是否完整,因为断电也可能发生在写日志的过程中,此时日志可能只写了部分数据,那么这份日志就不是一份完整的日志。
硬盘分区格式化包括:
1.1)、文件系统的关键数据都保存两份,分别记为关键数据区一,二。
1.2)、分配出两块区域用于记录日志,分别记为日志区一、二,每块区域记录一份日志。
关键数据的修改过程如下,对应流程图见图1:
2.1)在做修改之前,先在内存中写好日志。把关键数据中需要修改的地址以及数据的长度记录到日志中,同步计数加1,计算校验码。(此处使用CRC校验的方式计算校验码)。但可以理解,任何可以用于实现本发明中所提及的校验码的用意的校验码计算方法都可以使用。如上文所述,本发明中校验码用于确认一条日志是否完整。
2.2)把日志保存到日志区一。
2.3)在关键数据区一修改数据。
2.4)把日志保存到日志区二。
2.5)在关键数据区二修改数据。
断电重启后关键数据的恢复过程如下,对应流程图见图2:
3.1)分别从日志区一、二中读取两份日志,记为日志一、二。
3.2)首先校验这两份日志的完整性,日志的完整性有三种情况:1、在写日志区一的时候发生断电,日志只写入了部分没有完全写入,这种情况日志一是不完整的(对应于校验失败);2、在写日志区二的时候发生断电,日志只写入了部分没有完全写入,这种情况日志二是不完整的(对应于校验失败);3、断电没有发生在写日志区的过程中,这种情况下两份日志都是完整(对应于校验成功)的。
3.3)若日志一不完整,即发生了3.2)中的第一种情况。这种情况说明还没开始写关键数据区,关键数据是完整的,只是最后那份修改的数据丢了。只需要把日志二写到日志区一中就行了。
3.4)若日志二不完整,即发生了3.2)中的第二种情况。这种情况说明关键数据已经成功写入到关键数据区一,还没开始写关键数据区二,需要更新关键数据区二的数据。根据日志一中记录的地址以及数据长度,从关键数据区一中读取这些数据,写到关键数据区二。然后把日志一写入到日志区二。
3.5)若两块日志都是完整的(即,两块日志的信息都正确),即发生了3.2)中的第三种情况。那么断电可能发生在写关键数据区的时候,光从日志的完整性已经无法分析出关键数据的写入情况了,需要比较两份日志中的的同步计数。两份日志中的同步计数有三种情况:1、在写关键数据区一的时候发生断电,此时日志成功写入到日志区一,还没有写日志区二,这种情况日志一中的同步计数比日志二中的同步计数大1;2、断电发生在写关键数据区二,此时日志成功写入到日志区一、二,这种情况两份日志的同步计数相同;3、断电没有发生在写关键数据区和日志的时候,此时既没写日志也没写关键数据,这种情况两份日志的同步计数也都相同。
3.6)若日志一中的同步计数比日志二中的同步计数大1,即发生了3.5)中的第一种情况。这种情况无法断定关键数据是否已经成功写入到关键数据区一,需要恢复关键数据区一中的修改。根据日志一中记录的地址以及数据长度,从关键数据区二中读取这些数据,写到关键数据区一。然后把日志二写入到日志区一。
3.7)若同步计数相同,无法分辩是发生了3.5)中的第二种还是第三种情况,统一当第二种情况处理,因为如果是第三种情况无非就是多了一次无用的数据拷贝,不影响数据的正确性。这种情况无法断定关键数据是否已经成功写入到关键数据区二,需要更新关键数据区二的数据,此时两份日志的数据是完全相同的。
根据日志(日志一或日志二)中记录的地址以及数据长度,从关键数据区一中读取这些数据,写到关键数据区二。
Claims (1)
1.一种文件系统的断电保护方法,其特征在于,该方法包括以下步骤:
将文件系统在运行过程中可能会修改的关键数据都保存两份,对应为关键数据区一和关键数据区二;
写日志,所述日志记录的信息包括关键数据中需要修改的数据的地址以及数据的长度;同步计数,关键数据每修改一次,同步计数更新一次;以及校验码,该校验码用于确认该条日志是否完整;
所述写日志的步骤包括:把关键数据中需要修改的数据的地址以及数据的长度记录到日志中;同步计数更新一次;以及计算校验码;
把日志保存到日志区一,对应为日志一;
在关键数据区一修改数据;
把日志保存到日志区二,对应为日志二;
在关键数据区二修改数据;
以及,在断电重启后数据的恢复步骤包括:
读取日志一和日志二,校验日志一和日志二的完整性,根据日志一和日志二的完整性以及日志一和日志二的日志记录的信息来恢复关键数据;
其中,如果校验结果为日志一不完整,日志二完整,则将日志二拷贝给日志一;
如果校验结果为日志一完整,日志二不完整,则根据日志一中记录的地址以及数据长度,从关键数据区一中读取这些数据,写到关键数据区二,然后把日志一写入到日志区二;
如果校验结果为日志一和日志二都完整,以及日志一的同步计数相对于日志二同步计数多更新了一次,则根据日志一中记录的地址以及数据长度,从关键数据区二中读取这些数据,写到关键数据区一,然后把日志二写入到日志区一;如果比较结果为两块日志都完整,以及日志一同步计数与日志二同步计数相同,则根据日志一或二中记录的地址以及数据长度,从关键数据区一中读取这些数据,写到关键数据区二。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110336102.7A CN103092719B (zh) | 2011-10-28 | 2011-10-28 | 一种文件系统的断电保护方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110336102.7A CN103092719B (zh) | 2011-10-28 | 2011-10-28 | 一种文件系统的断电保护方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103092719A CN103092719A (zh) | 2013-05-08 |
CN103092719B true CN103092719B (zh) | 2016-09-07 |
Family
ID=48205324
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110336102.7A Active CN103092719B (zh) | 2011-10-28 | 2011-10-28 | 一种文件系统的断电保护方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103092719B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105426268B (zh) * | 2015-11-16 | 2018-06-26 | 北京四方继保自动化股份有限公司 | 一种防止继电保护装置断电时文件系统损坏的方法 |
CN109857708B (zh) * | 2019-02-26 | 2022-12-23 | 上海仰歌电子科技有限公司 | 一种嵌入式系统的数据存取方法及计算机可读存储介质 |
CN111209132B (zh) * | 2019-12-31 | 2023-07-28 | 航天信息股份有限公司 | 嵌入式系统、掉电保护方法、电子设备及存储介质 |
CN111428260A (zh) * | 2020-06-15 | 2020-07-17 | 广东电网有限责任公司佛山供电局 | 基于芯片化保护装置的文件安全访问控制方法和系统 |
CN113672572B (zh) * | 2021-08-28 | 2024-02-09 | 芯河半导体科技(无锡)有限公司 | 一种嵌入式linux系统syslog的日志存储方法 |
CN118069404A (zh) * | 2023-09-20 | 2024-05-24 | 南宁清智电子科技有限公司 | 一种掉电不丢失存储方法及相关装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1598777A (zh) * | 2003-09-17 | 2005-03-23 | 三星电子株式会社 | 更新软件的方法和系统 |
CN1684041A (zh) * | 2004-04-14 | 2005-10-19 | 华为技术有限公司 | 随机存储器的数据保存方法 |
CN1855059A (zh) * | 2005-04-21 | 2006-11-01 | 中兴通讯股份有限公司 | 一种在通信设备中保存数据文件的方法 |
CN101183322A (zh) * | 2006-11-16 | 2008-05-21 | 三星电子株式会社 | 延迟日志生成的方法及其设备 |
CN101681312A (zh) * | 2008-02-29 | 2010-03-24 | 株式会社东芝 | 存储器系统 |
CN101706783A (zh) * | 2009-11-16 | 2010-05-12 | 中兴通讯股份有限公司 | 一种嵌入式设备文件检测修复方法和装置 |
CN102024022A (zh) * | 2010-11-04 | 2011-04-20 | 曙光信息产业(北京)有限公司 | 一种分布式文件系统复制元数据的方法 |
CN102043686A (zh) * | 2009-10-20 | 2011-05-04 | 华为技术有限公司 | 一种内存数据库的容灾方法、备用服务器及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7624129B2 (en) * | 2006-06-30 | 2009-11-24 | Microsoft Corporation | Dual logging of changes to a user preference in a computer device |
-
2011
- 2011-10-28 CN CN201110336102.7A patent/CN103092719B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1598777A (zh) * | 2003-09-17 | 2005-03-23 | 三星电子株式会社 | 更新软件的方法和系统 |
CN1684041A (zh) * | 2004-04-14 | 2005-10-19 | 华为技术有限公司 | 随机存储器的数据保存方法 |
CN1855059A (zh) * | 2005-04-21 | 2006-11-01 | 中兴通讯股份有限公司 | 一种在通信设备中保存数据文件的方法 |
CN101183322A (zh) * | 2006-11-16 | 2008-05-21 | 三星电子株式会社 | 延迟日志生成的方法及其设备 |
CN101681312A (zh) * | 2008-02-29 | 2010-03-24 | 株式会社东芝 | 存储器系统 |
CN102043686A (zh) * | 2009-10-20 | 2011-05-04 | 华为技术有限公司 | 一种内存数据库的容灾方法、备用服务器及系统 |
CN101706783A (zh) * | 2009-11-16 | 2010-05-12 | 中兴通讯股份有限公司 | 一种嵌入式设备文件检测修复方法和装置 |
CN102024022A (zh) * | 2010-11-04 | 2011-04-20 | 曙光信息产业(北京)有限公司 | 一种分布式文件系统复制元数据的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103092719A (zh) | 2013-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103092719B (zh) | 一种文件系统的断电保护方法 | |
CN102955720B (zh) | 一种提高ext文件系统稳定性的方法 | |
CN102033786B (zh) | 一种对象存储系统中修复副本一致性的方法 | |
CN102207897B (zh) | 一种增量备份方法 | |
CN102323930B (zh) | 对数据库系统中的数据变更进行镜像 | |
CN112925676B (zh) | 一种基于wal实现分布式数据库集群任意时间点恢复的方法 | |
CN101815983A (zh) | 用于防止硬盘驱动文件系统的损坏的方法和系统 | |
CN104811645A (zh) | 一种嵌入式录像数据存储方法 | |
US20130332416A1 (en) | Reducing data transfers while eliminating data loss for asynchronous replication of databases | |
CN104133740A (zh) | 异常掉电数据恢复的方法 | |
CN104166605A (zh) | 基于增量数据文件的数据备份方法及系统 | |
WO2017097233A1 (zh) | 一种数据存储负载的容错方法及iptv系统 | |
CN107315659A (zh) | 一种元数据的冗余备份方法及装置 | |
CN111460035A (zh) | 一种数据库系统及其容灾方法 | |
CN104572762A (zh) | 删除及恢复录像文件的方法和装置 | |
CN203260027U (zh) | 一种备份装置及数据备份系统 | |
JP2005050073A (ja) | データ復旧方法およびデータ記録装置 | |
US7600151B2 (en) | RAID capacity expansion interruption recovery handling method and system | |
CN101916234A (zh) | 一种存储设备的信息维护方法及系统 | |
CN105653385B (zh) | 一种车载录像方法 | |
CN103902227A (zh) | 一种支持追加写和共享读的文件存储方式 | |
CN104239182B (zh) | 一种集群文件系统脑裂处理方法和装置 | |
CN112784101B (zh) | 视频数据存储方法及装置、数据存储设备 | |
CN105993002A (zh) | 就地的盘去格式化 | |
CN105489236A (zh) | 一种基于分区存储保证软件可靠性的u盘及使用方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |