CN117707852A - 一种提升文件系统可靠性的通用方法 - Google Patents
一种提升文件系统可靠性的通用方法 Download PDFInfo
- Publication number
- CN117707852A CN117707852A CN202311751889.2A CN202311751889A CN117707852A CN 117707852 A CN117707852 A CN 117707852A CN 202311751889 A CN202311751889 A CN 202311751889A CN 117707852 A CN117707852 A CN 117707852A
- Authority
- CN
- China
- Prior art keywords
- file system
- data
- storage medium
- backup
- user
- 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
- 238000000034 method Methods 0.000 title claims abstract description 10
- 238000007429 general method Methods 0.000 claims abstract description 4
- 238000013507 mapping Methods 0.000 claims description 3
- 230000015556 catabolic process Effects 0.000 abstract description 4
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种提升文件系统可靠性的通用方法,其特征在于,通过驱动将文件系统的地址空间映射到存储介质的三段不同的地址区域上,从而实现不修改文件系统的情况下在单个存储介质上完成文件系统及其管理数据的冗余备份。由于对文件系统的所有内容进行了备份,因此如果系统在运行过程中出现意外掉电或位反转,本发明可通过三取二的方式获得正确的值并将错误的数据纠正,既能保护文件系统也能保护用户的关键数据。本发明仅修改了驱动部分,对文件系统是透明的,因此适用于所有文件系统,即使文件系统本身不具备相关功能,也可通过本发明实现掉电保护并极大的降低因位反转而崩溃的概率。
Description
技术领域
本发明涉及一种提升文件系统可靠性的通用方案。
背景技术
文件系统的可靠性一直是相关领域研究人员的重点。如果文件系统在写入过程中发生意外掉电或存储介质在特殊环境中出现位反转,则有可能发生文件系统崩溃,导致用户数据丢失。
为防止出现上述情况,通常采用两种方案。一种是采用具有日志功能的文件系统。这类文件系统在进行写操作之前,会先把即将进行的各个步骤事先记录下来,保存在文件系统单独开辟的一块空间上,也就是所谓的日志。日志保存成功之后才进行真正的写操作即把文件系统的元数据和用户数据写进存储介质。这样即使写操作的过程中掉电,也可以在下次挂载文件系统之前把保存好的日志重新执行一遍,避免了意外掉电导致的文件系统崩溃。这种方式可以提高文件系统的可靠性,并且可以较快恢复。
但是日志功能无法防止某些存储介质在特殊环境下的位反转,且通常情况下日志功能仅记录针对文件系统元数据的相关操作,因此仅能保护文件系统自身不会崩溃,无法保护用户已经写入的数据。除此之外,并非所有文件系统都支持日志功能,若使用的文件系统没有类似功能,则无法保证出现上述情况后文件系统不崩溃。
另一种方式是硬件层面增加存储介质的数量以提高用户数据的可靠性。例如将相同的数据分别写入多个存储介质中,这样即使一个存储介质中的文件系统崩溃或数据丢失,也可以通过其它存储介质中的数据恢复。
但是这种方法会增加硬件成本,即使一个存储介质已能充分满足用户存储要求,硬件设计人员也依然需要在板卡上设计多个存储介质才能保证用户数据不丢失。
发明内容
本发明的目的是:在不修改文件系统且使用单个存储介质的情况下,极大降低因文件系统写入过程中发生意外掉电或存储介质出现位反转导致文件系统崩溃、用户关键数据丢失的概率。
为了达到上述目的,本发明的技术方案是提供了一种提升文件系统可靠性的通用方法,其特征在于,包括以下步骤:
通过驱动将文件系统的地址空间映射到存储介质的三段不同的地址区域上,文件系统及其管理数据存储在其中一段地址区域中,另外两段地址区域中用于存储两个备份,分别定义为备份一以及备份二,备份一以及备份二均由存储介质驱动自动生成,对用户及文件系统而言是透明的;
用户通过文件系统读取数据时,存储介质驱动从三段不同的地址区域所存储的三份文件系统的对应部分分别读取数据,并将读取到的三份数据进行比对:在三份数据中仅有一份数据与其他两份数据不同的情况下,取相同的两份数据作为正确的最终结果返回给用户,并纠正错误的那份数据。
优选地,所述三段不同的地址区域分别为存储介质的N1号到N2号扇区、N3号到N4号扇区以及N5号到N6号扇区,则
实现由存储介质驱动自动生成所述备份一以及所述备份二包括以下步骤:
用户调用通用接口通过文件系统将数据写入文件系统的x号扇区时,存储介质驱动分别在(x+N1)号扇区、(x+N3)号扇区以及(x+N4)号扇区写入数据;当用户完成文件系统的格式化后,备份一以及备份二便可由存储介质驱动自动生成。
优选地,用户通过文件系统读取数据时,分别在(x+N1)号扇区、(x+N3)号扇区以及(x+N4)号扇区读取数据。
与现有技术方案相比,本发明具有如下有益效果:
1)由于对文件系统的所有内容进行了备份,因此如果系统在运行过程中出现意外掉电或位反转,本发明可通过三取二的方式获得正确的值并将错误的数据纠正,既能保护文件系统也能保护用户的关键数据。
2)本发明仅修改了驱动部分,对文件系统是透明的,因此适用于所有文件系统,即使文件系统本身不具备相关功能,也可通过本发明实现掉电保护并极大的降低因位反转而崩溃的概率。
3)由于本发明采用地址映射的方式,因此在空间足够的情况下,即使单个存储介质也可以实现文件系统的冗余。
附图说明
图1示意了文件系统及其备份在存储介质扇区中的存储;
图2示意了用户写入数据流程;
图3示意了用户读取数据流程。
具体实施方式
下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。
本发明实施例公开了一种文件系统冗余方案,该方案通过驱动将文件系统的地址空间映射到存储介质的三段不同的地址区域上,从而实现不修改文件系统的情况下在单个存储介质上完成文件系统及其管理数据的冗余备份。
假设存在存储介质共有9000000个扇区,每个扇区大小为512字节。文件系统及其管理的数据存储在存储介质的0号到2999999号扇区中,则备份1将存储在3000000号扇区到5999999号扇区中,备份2将存储在6000000号扇区到8999999号扇区中。具体存储介质中的分布如图1所示。
备份1和备份2均由存储介质驱动自动生成,对用户及文件系统来说是透明的。具体实现方式是修改存储介质驱动,若用户通过文件系统将数据写入文件系统的x号扇区,则驱动会自动将用户数据分别写入文件系统、备份1及备份2内部的x号扇区。从存储介质的角度看,驱动会将数据分别写入存储介质的x号扇区、x+3000000号扇区及x+6000000号扇区中。具体流程见图2。因此当用户完成文件系统的格式化后,备份1及备份2便可由驱动自动生成,后续用户写入文件时驱动也会自动完成数据备份,全程不需要文件系统或用户修改代码。
用户通过文件系统读取数据时,驱动会从三份文件系统的对应部分分别读取数据,并将三份数据进行比对,取三份中相同的两份作为正确的最终结果返回给用户,并纠正错误的那份数据。具体流程见图3。
Claims (3)
1.一种提升文件系统可靠性的通用方法,其特征在于,包括以下步骤:
通过驱动将文件系统的地址空间映射到存储介质的三段不同的地址区域上,文件系统及其管理数据存储在其中一段地址区域中,另外两段地址区域中用于存储两个备份,分别定义为备份一以及备份二,备份一以及备份二均由存储介质驱动自动生成,对用户及文件系统而言是透明的;
用户通过文件系统读取数据时,存储介质驱动从三段不同的地址区域所存储的三份文件系统的对应部分分别读取数据,并将读取到的三份数据进行比对:在三份数据中仅有一份数据与其他两份数据不同的情况下,取相同的两份数据作为正确的最终结果返回给用户,并纠正错误的那份数据。
2.如权利要求1所述的一种提升文件系统可靠性的通用方法,其特征在于,所述三段不同的地址区域分别为存储介质的N1号到N2号扇区、N3号到N4号扇区以及N5号到N6号扇区,则
实现由存储介质驱动自动生成所述备份一以及所述备份二包括以下步骤:
用户调用通用接口通过文件系统将数据写入文件系统的x号扇区时,存储介质驱动分别在(x+N1)号扇区、(x+N3)号扇区以及(x+N4)号扇区写入数据;当用户完成文件系统的格式化后,备份一以及备份二便可由存储介质驱动自动生成。
3.如权利要求2所述的一种提升文件系统可靠性的通用方法,其特征在于,用户通过文件系统读取数据时,分别在(x+N1)号扇区、(x+N3)号扇区以及(x+N4)号扇区读取数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311751889.2A CN117707852A (zh) | 2023-12-18 | 2023-12-18 | 一种提升文件系统可靠性的通用方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311751889.2A CN117707852A (zh) | 2023-12-18 | 2023-12-18 | 一种提升文件系统可靠性的通用方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117707852A true CN117707852A (zh) | 2024-03-15 |
Family
ID=90151288
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311751889.2A Pending CN117707852A (zh) | 2023-12-18 | 2023-12-18 | 一种提升文件系统可靠性的通用方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117707852A (zh) |
-
2023
- 2023-12-18 CN CN202311751889.2A patent/CN117707852A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7640412B2 (en) | Techniques for improving the reliability of file systems | |
US7464322B2 (en) | System and method for detecting write errors in a storage device | |
US9009526B2 (en) | Rebuilding drive data | |
US5379417A (en) | System and method for ensuring write data integrity in a redundant array data storage system | |
US7308546B1 (en) | Volume restoration using an accumulator map | |
US9836369B2 (en) | Storage system to recover and rewrite overwritten data | |
US20070186047A1 (en) | Method, system, and program for demoting tracks from cache | |
US20020169996A1 (en) | Method and apparatus for providing write recovery of faulty data in a non-redundant raid system | |
US9767117B2 (en) | Method and system for efficient write journal entry management for a distributed file system | |
US7234024B1 (en) | Application-assisted recovery from data corruption in parity RAID storage using successive re-reads | |
US6799284B1 (en) | Reparity bitmap RAID failure recovery | |
JPH08263227A (ja) | ディスクアレイにおけるパリティデータの無矛盾性保持方法 | |
US10503620B1 (en) | Parity log with delta bitmap | |
CN113220221B (zh) | 存储器控制器与数据处理方法 | |
US10664346B2 (en) | Parity log with by-pass | |
US20100138603A1 (en) | System and method for preventing data corruption after power failure | |
EP3244316B1 (en) | Method and apparatus for performing data recovery in redundant storage system | |
US20040128582A1 (en) | Method and apparatus for dynamic bad disk sector recovery | |
CN117707852A (zh) | 一种提升文件系统可靠性的通用方法 | |
US20050102470A1 (en) | Disk array device | |
JP3288724B2 (ja) | ディスクアレイ内の不完全な書込を追跡する方法、およびこのような方法を行なうディスク記憶システム | |
CN111897676A (zh) | 一种基于数据库索引的文件备份方法及装置 | |
US10642816B2 (en) | Protection sector and database used to validate version information of user data | |
CN111506259A (zh) | 数据存储、读取方法、装置、设备及可读存储介质 | |
CN115565598B (zh) | Raid阵列磁盘暂时失效的数据存储与修复方法及系统 |
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 |