CN103473157A - 硬盘故障处理方法及处理装置 - Google Patents
硬盘故障处理方法及处理装置 Download PDFInfo
- Publication number
- CN103473157A CN103473157A CN2012101857446A CN201210185744A CN103473157A CN 103473157 A CN103473157 A CN 103473157A CN 2012101857446 A CN2012101857446 A CN 2012101857446A CN 201210185744 A CN201210185744 A CN 201210185744A CN 103473157 A CN103473157 A CN 103473157A
- Authority
- CN
- China
- Prior art keywords
- fault
- file system
- sector number
- file
- data block
- 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.)
- Granted
Links
Images
Abstract
本发明公开了一种硬盘故障处理方法,包括如下步骤:获得硬盘出现故障的故障数据块的故障扇区号;根据故障扇区号和各个文件系统的分区信息获得故障扇区号所属的文件系统,以及根据故障扇区号和故障扇区号所属的文件系统确定故障数据块所对应的故障文件;在文件系统中删除故障文件,并在文件系统中利用空闲数据块创建新文件;修改新文件的指针以使新文件的指针指向故障数据块,并释放新文件所利用的空闲数据块,以及修改文件系统的位图以占用故障数据块。本发明可以解决文件系统分配使用故障数据块时出现故障的问题,确保了文件系统的连续和一致性,同时保证故障的文件不会被再次访问。
Description
技术领域
本发明涉及网络设备维护技术领域,特别涉及一种硬盘故障处理方法及故障处理装置。
背景技术
随着科学技术的不断发展,单个硬盘的容量变得越来越大。特别在服务器领域,单个3.5寸的硬盘已经达到了3TB的容量,该硬盘总共包括3*1024*1024*1024*1024字节,而每个扇区包括512个字节,所以该硬盘总共包括3*1024*1024*1024*2个扇区,约为6*109个扇区。
由于硬盘包括大量的扇区,使得硬盘在使用过程中,扇区发生故障的总体概率增加。对于硬盘而言,如果单个扇区故障认定硬盘发生了一次故障。传统的对扇区故障的处理方式是替换整个硬盘。但是采用这种方式,需要同步硬盘中的全部数据,同时需要人工更换和运输硬盘,从而带来了大量的人力物力浪费。
传统的解决方法是扫描硬盘,将硬盘中遇到的故障硬件全部添加到某一目录,即将文件全部屏蔽处理。如果文件大小为1GB,则需要耗费硬盘1GB的空间。如图1所示,当数据块Block 551发生故障时,传统的方法只能一次性将文件A屏蔽,从而占用大量的空间。
传统的获取故障文件的方式是扫描被文件系统标记为使用的块,根据故障数据块号获取对应的故障文件,并删除该故障文件,如图2所示。
步骤S201,获取故障数据块号。
步骤S202,根据故障数据块号反查故障文件。
步骤S203,判断是否找到故障文件,如果是,则执行步骤S204,否则执行步骤S205。
步骤S204,失败。
步骤S205,删除故障文件。
但是,传统的方法只能扫描被文件系统标记为使用的块,对未使用的块则无能为力。如果某个故障扇区的文件被删除了,则无法屏蔽这个故障数据块,导致下次分配时还会出错。
如图3所示,文件B占用数据块Block 7010,文件C占用数据块Block 7011,文件D占用数据块Block 7013,数据块Block7012未被占用。如果数据块Block7012发生故障,则由于其未被任何文件使用,无法处理该数据块。
发明内容
本发明旨在至少解决现有技术中存在的技术问题之一。
为此,本发明的第一个目的在于提出一种硬盘故障处理方法,该方法可以对故障文件进行处理,确保文件系统的连续和一致性,同时保证故障的文件不会被再次访问。本发明的第二个目的在于提出一种硬盘故障处理装置。
为实现上述目的,本发明第一方面的实施例提供了一种硬盘故障处理方法,包括如下步骤:获得硬盘出现故障的故障数据块的故障扇区号,其中,所述硬盘的分区表区中存储有分区表,所述分区表中存储有所述文件系统存储区中各个文件系统的分区信息,所述故障数据块包括至少一个故障扇区;根据所述故障扇区号和所述各个文件系统的分区信息获得所述故障扇区号所属的文件系统,以及根据所述故障扇区号和所述故障扇区号所属的文件系统确定所述故障数据块所对应的故障文件;在所述文件系统中删除所述故障文件,并在所述文件系统中利用空闲数据块创建新文件;修改所述新文件的指针以使所述新文件的指针指向所述故障数据块,并释放所述新文件所利用的所述空闲数据块,以及修改所述文件系统的位图以占用所述故障数据块。
根据本发明实施例的硬盘故障处理方法,可以通过故障数据块的故障扇区号查找对应的故障文件,并对故障文件进行处理,达到占用故障数据块的目的,从而实现对故障数据块的屏蔽,解决了文件系统分配使用故障数据块时出现故障的问题,确保了文件系统的连续和一致性,同时保证故障的文件不会被再次访问。
本发明第二方面的实施例提供了一种硬盘故障处理装置,包括:扇区故障检测模块,用于检测硬盘出现故障的故障数据块的故障扇区号,其中,所述硬盘的分区表区中存储有分区表,所述分区表中存储有所述文件系统存储区中各个文件系统的分区信息,所述故障数据块包括至少一个故障扇区;故障文件定位模块,用于根据所述故障扇区号和所述各个文件系统的分区信息获得所述故障扇区号所属的文件系统,以及根据所述故障扇区号和所述故障扇区号所属的文件系统确定所述故障数据块所对应的故障文件;文件处理模块,在所述文件系统中删除所述故障文件,并在所述文件系统中利用空闲数据块创建新文件;故障处理模块,用于修改所述新文件的指针以使所述新文件的指针指向所述故障数据块,并释放所述新文件所利用的所述空闲数据块,以及修改所述文件系统的位图以占用所述故障数据块。
根据本发明实施例的硬盘故障处理装置,可以通过故障数据块的故障扇区号查找对应的故障文件,并对故障文件进行处理,达到占用故障数据块的目的,从而实现对故障数据块的屏蔽,解决了文件系统分配使用故障数据块时出现故障的问题,确保了文件系统的连续和一致性,同时保证故障的文件不会被再次访问。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1为传统的被文件占用的故障数据块的示意图;
图2为传统的故障文件处理方法的流程;
图3传统的未被文件占用的故障数据块的示意图;
图4为根据本发明实施例的硬盘故障处理方法的流程图;
图5为根据本发明实施例的硬盘故障处理方法的示意图;
图6为根据本发明实施例的硬盘故障处理装置的示意图;
图7为根据本发明实施例的扇区地址计算模块的示意图;以及
图8为根据本发明实施例的文件定位子单元的示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
参照下面的描述和附图,将清楚本发明的实施例的这些和其他方面。在这些描述和附图中,具体公开了本发明的实施例中的一些特定实施方式,来表示实施本发明的实施例的原理的一些方式,但是应当理解,本发明的实施例的范围不受此限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
下面参考图4和图5描述根据本发明实施例的硬盘故障处理方法。
如图4所示,本发明实施例的硬盘故障处理方法,包括如下步骤:
步骤S401,获得硬盘出现故障的故障数据块的故障扇区号。
硬盘逻辑可以划分为引导区、分区表区和文件系统存储区。其中,文件系统存储区可以包括多个文件系统,例如:文件系统1、文件系统2、文件系统3.......文件系统N。其中,每个文件系统的大小不是固定的,可以为1T~8T。
引导区的长度是固定的,在引导区中存储有引导信息。在硬盘的分区表区中存储有分区表,其中,分区表中存储有文件系统存储区中各个文件系统的分区信息,在本发明的一个实施例中,分区表中记录有硬盘中引导区和为文件系统存储区的分区的数目、每个分区的起始位置和结束位置。
在对硬盘进行分区时,首先跳过引导区,在分区表区中查找硬盘的分区表。然后,将该分区表读入到内存中,根据分区表对硬盘的引导区和文件系统存储区进行分区。根据读取到的分区表,对硬盘增加扇区信息。
需要说明的是,上述对硬盘的引导区、分区表区和文件系统存储区的划分方式仅是出于示例的目的,而不是为了限制本发明。可以理解的是,根据硬盘以及文件系统的大小的不同,引导区、分区表区和文件系统存储区还可以为其他数量的扇区。
在本发明的实施例中,故障数据块包括至少一个故障扇区。当检测硬盘的出现故障的故障数据块时,即检测到该故障数据块包括至少一个故障扇区,则获取该故障数据块发生故障的故障扇区的故障扇区号。
步骤S402,根据故障扇区号和各个文件系统的分区信息获得故障扇区号所属的文件系统,以及根据故障扇区号和故障扇区号所属的文件系统确定故障数据块所对应的故障文件。
根据各个文件系统的分区信息获得各个文件系统的分区信息。然后根据获得的故障扇区号以及各个文件系统的分区信息,查找故障扇区号所属的文件系统。然后,获取该故障扇区号所属的文件系统的文件系统信息表。根据该文件系统信息表获得所属文件系统对应的数据块及数据块信息。其中,块信息包括块的容量(blocksize)。例如,blocksize可以为1K或4K。
表1为EXT系列文件系统的数据分区示意。
表1
其中,每个文件系统都是由一个到多个块组组成的,每个块组相对独立,均具备各自的块组描述符。表2中的第一行Super Block为超级块,其中,超级块信息对整个文件系统是唯一的,并且在文件系统中具有多个备份。第二行和第三行Group Descriptor(GDT)为块组描述符。第四行为块位图,对于每个块组均由块位图,块位图用于描述块(block)是否被使用。第五行为inode位图。第六行为索引节点inode,其中,索引节点inode存储有文件信息和目录信息以及文件系统的扇区的扇区地址。第七行为正常数据块(Data Block),第八行为故障数据块(Data Block:Bad)。
具体地,根据故障扇区号确定在所属的文件系统中对应的数据块,并根据故障扇区号和对应的数据块的容量计算扇区地址。
扇区地址=int(扇区号*100*扇区大小/块的容量),
其中,int为取整函数。
以扇区号为44,扇区大小为512字节、blocksize为1K为例,
扇区地址=int(12300*512/1*1024)
根据故障扇区号对应的扇区地址遍历各个文件系统的文件系统信息表中的索引节点inode。其中,索引节点inode具有独立的结构和位图。在索引节点inode中,存储有文件信息、目录信息以及所属文件系统下的所有扇区的扇区地址。因此,通过已经计算得到的扇区地址遍历所有索引节点inode,可以查找到故障扇区号的扇区地址对应的索引节点inode。
由于在索引节点中存储有文件信息和目录信息,在查找到故障扇区号所属的索引节点inode后,进而可以递归查找到索引节点inode对应的文件。具体地,获取索引节点inode的完整路径,根据该完整路径查找inode所属的文件,进而查找到该文件所属的目录。
例如:索引节点inode完整路径为/tmp/s0/t.txt,其中,t.txt为索引节点inode,s0为文件名,tmp为目录。根据索引节点inode的完整路径,通过递归查找方式,可以查找到索引节点inode所属的文件和目录,从而可以获得故障扇区号所属的故障文件。
步骤S403,在文件系统中删除故障文件,并在文件系统中利用空闲数据块创建新文件。
删除步骤S402中查找到的故障文件,并从文件系统中删除该故障文件,保证故障数据块处于空闲状态。表2示出了文件系统中故障数据块,故障数据块对应的位图为0,表示该故障数据块未被占用,处于空闲(Free)状态。
表2
在文件系统中,利用空闲数据块(Data Block:Free)创建新文件。表3示出了创建新文件后的文件系统。
表3
如表3所示,空闲数据块对应的位图由0修改为1,表示空闲数据块已被占用。
步骤S404,修改新文件的指针以使新文件的指针指向故障数据块,并释放新文件所利用的空闲数据块,以及修改文件系统的位图以占用故障数据块。
如表4所示,修改新文件的inode指针之后,inode指向了故障扇区。此时故障数据块的块位图是空闲的状态(标记为0),数据块的块位图是占用的状态(标记为1),文件系统是不连续的。
表4
在本发明的一个实施例中,释放新文件所利用的空闲数据块进一步包括:将文件系统中空闲数据块所对应的位图修改为0,并且修改文件系统的位图信息,占用故障数据块块,释放原来的数据块,保证文件系统的连续和一致性。如表5所示,将空闲数据块对应的位图由1修改为0,将故障数据块对应的位图由0修改为1。
表5
在本发明的又一个实施例中,还包括如下步骤:修改文件系统中超级块(Super Block)及块组描述符(Group Descriptor)中的统计信息及校验信息,以确保所有的检测工具可以正确的识别这一改动。
具体地,在释放新文件正常数据块之时,数据块所在的块组的空闲数据块计数加一,占用数据块计数减一。在占用故障数据块之时,故障数据块所在块组的空闲数据块计数减一,占用数据库块计数加一。完成上述计算之后,将以上信息写入文件系统,在文件系统的超级块中更新写入时间,根据最新的写入时间和其他信息,计算文件系统的校验和,写入文件系统,完成操作。
下面参考图5对本发明实施例提供的硬盘故障处理方法的流程进行详细描述。
步骤S501,获取故障数据块号。
故障数据块包括至少一个故障扇区。当检测硬盘的出现故障的故障数据块时,即检测到该故障数据块包括至少一个故障扇区,则获取该故障数据块发生故障的故障扇区的故障扇区号。
步骤S502,反查故障文件。
根据故障扇区号和各个文件系统的分区信息获得故障扇区号所属的文件系统,并根据故障扇区号和故障扇区号所属的文件系统确定故障数据块所对应的故障文件。
步骤S503,判断是否找到故障文件,如果是,则执行步骤S504,否则执行步骤S505。
步骤S504,删除故障文件。
在文件系统中删除该故障文件,保证故障数据块处于空闲状态。
步骤S505,创建新文件。
在文件系统中,利用空闲数据块(Data Block:Free)创建新文件,并修改空闲数据块对应的位图。
步骤S506,修改文件指针。
修改新文件的指针以使新文件的指针指向故障数据块。
步骤S507,释放新文件数据块。
释放新文件所利用的空闲数据块,并修改空闲数据块对应的位图。
步骤S508,占用故障数据块。
修改文件系统的故障数据块对应的位图以严重故障数据块。
步骤S509,修改文件系统信息。
修改文件系统中超级块(Super Block)及块组描述符(Group Descriptor)中的统计信息及校验信息。
根据本发明实施例的硬盘故障处理方法,可以通过故障数据块的故障扇区号查找对应的故障文件,并对故障文件进行处理,达到占用故障数据块的目的,从而实现对故障数据块的屏蔽,解决了文件系统分配使用故障数据块时出现故障的问题,确保了文件系统的连续和一致性,同时保证故障的文件不会被再次访问。此外,采用本发明实施例的硬盘故障处理方法可以极大的节约了硬盘空间。对于平均大小为256MB的分布式文件系统而言,仅需使用1KB的空间,对比现有的需要使用256MB的方案,1KB/256MB,使用的空间不足原来的两万分之一。
下面参考图6描述根据本发明实施例的硬盘故障处理装置600。
如图6所示,本发明实施例提供的硬盘故障处理装置600包括扇区故障检测模块610、故障文件定位模块620、文件处理模块630和故障处理模块640。
硬盘逻辑可以划分为引导区、分区表区和文件系统存储区。其中,文件系统存储区可以包括多个文件系统,例如:文件系统1、文件系统2、文件系统3.......文件系统N。其中,每个文件系统的大小不是固定的,可以为1T~8T。
引导区的长度是固定的,在引导区中存储有引导信息。在硬盘的分区表区中存储有分区表,其中,分区表中存储有文件系统存储区中各个文件系统的分区信息,在本发明的一个实施例中,分区表中记录有硬盘中引导区和为文件系统存储区的分区的数目、每个分区的起始位置和结束位置。
在对硬盘进行分区时,首先跳过引导区,在分区表区中查找硬盘的分区表。然后,将该分区表读入到内存中,根据分区表对硬盘的引导区和文件系统存储区进行分区。根据读取到的分区表,对硬盘增加扇区信息。在本发明一个示例中,每个扇区可以包括512字节。每个扇区均属于一个文件系统,扇区的扇区号与文件系统具有对应关系。
需要说明的是,上述对硬盘的引导区、分区表区和文件系统存储区的划分方式仅是出于示例的目的,而不是为了限制本发明。可以理解的是,根据硬盘以及文件系统的大小的不同,引导区、分区表区和文件系统存储区还可以为其他数量的扇区。
在本发明的实施例中,故障数据块包括至少一个故障扇区。当扇区故障检测模块610检测硬盘出现故障的故障数据块的故障扇区号,即检测到该故障数据块包括至少一个故障扇区,则获取该故障数据块发生故障的故障扇区的故障扇区号。
当扇区故障检测模块510检测到一个扇区发生故障时,即检测到硬盘中出现坏扇区时,获取出现故障的扇区的故障扇区号。
故障文件定位模块620根据故障扇区号和各个文件系统的分区信息获得故障扇区号所属的文件系统,以及根据故障扇区号和故障扇区号所属的文件系统确定故障数据块所对应的故障文件。
如图7所示,故障文件定位模块620进一步包括信息获取单元621、扇区地址计算单元622和文件定位单元623。其中,信息获取单元621用于根据故障扇区号和各个文件系统的分区信息查找故障扇区号所属的文件系统,并获得故障扇区号所属的文件系统的文件系统信息表。信息获取单元621根据各个文件系统的分区信息获得各个文件系统的分区信息,然后根据故障扇区号以及各个文件系统的分区信息,查找故障扇区号所属的文件系统。然后,信息获取单元521获取该故障扇区号所属的文件系统的文件系统信息表,根据该文件系统信息表获得所属文件系统对应的数据块及数据块信息。其中,块信息包括块的容量(blocksize)。例如,blocksize可以为1K或4K。
扇区地址计算单元622用于根据故障扇区号和文件系统对应的数据块及数据块信息获得故障扇区号对应的扇区地址。其中,扇区地址计算单元622根据故障扇区号确定故障扇区号所对应的数据块以及所对应的数据块的数据容量,并根据故障扇区号和对应的数据块的容量计算故障扇区号对应的扇区地址。
扇区地址=int(扇区号*100*扇区大小/块的容量),
其中,int为取整函数。
以扇区号为44,扇区大小为512字节、blocksize为1K为例,
扇区地址=int(12300*512/1*1024)
文件定位单元623根据扇区地址确定故障扇区号对应的故障文件。如图8所示,文件定位单元623包括遍历子单元6231、查找子单元6232和定位子单元6233。其中,遍历子单元6231用于根据故障扇区号对应的扇区地址遍历各个文件系统的文件系统信息表中的索引节点inode。索引节点inode具有独立的结构和位图。在索引节点inode中,存储有文件信息、目录信息以及所属文件系统下的所有扇区的扇区地址。
由于在索引节点中存储有文件信息和目录信息,查找子单元6232通过已经计算得到的扇区地址遍历所有索引节点inode,可以查找到故障扇区号的扇区地址对应的索引节点inode。
在查找到故障扇区号所属的索引节点inode后,定位子单元6233进而可以根据故障扇区号所属的索引节点inode递归查找到索引节点inode对应的文件。具体地,获取索引节点inode的完整路径,根据该完整路径查找inode所属的文件,进而查找到该文件所属的目录。
例如:索引节点inode完整路径为/tmp/s0/t.txt,其中,t.txt为索引节点inode,s0为文件名,tmp为目录。根据索引节点inode的完整路径,通过递归查找方式,可以查找到索引节点inode所属的文件和目录,从而可以获得故障扇区号所属的故障文件。
文件处理模块630在文件系统中删除故障文件定位模块620定位到的故障文件,并在文件系统中利用空闲数据块创建新文件。
文件处理模块630删除查找到的故障文件,并从文件系统中删除该故障文件,保证故障数据块处于空闲状态。此时,故障数据块对应的位图为0,表示该故障数据块未被占用,处于空闲(Free)状态。
在文件系统中,文件处理模块630利用空闲数据块(Data Block:Free)创建新文件。此时,空闲数据块对应的位图由0修改为1,表示空闲数据块已被占用。
故障处理模块640修改新文件的指针以使新文件的指针指向故障数据块,并释放新文件所利用的空闲数据块,以及修改文件系统的位图以占用故障数据块。
故障处理模块640修改新文件的inode指针之后,inode指向了故障扇区。故障处理模块640将文件系统中空闲数据块对应的位图修改为0,并且修改文件系统的位图信息,占用故障数据块块,释放原来的数据块,保证文件系统的连续和一致性。此时故障数据块的块位图是空闲的状态(标记为0),数据块的块位图是占用的状态(标记为1),文件系统是不连续的。
在本发明的另一个实施例中,故障处理模块640还用于修改文件系统中(Super Block)及块组描述符(Group Descriptor)中的统计信息及校验信息,以确保所有的检测工具可以正确的识别这一改动。
具体地,在释放新文件正常数据块之时,故障处理模块640将数据块所在的块组的空闲数据块计数加一,占用数据块计数减一。在占用故障数据块之时,故障处理模块640将故障数据块所在块组的空闲数据块计数减一,占用数据库块计数加一。完成上述计算之后,故障处理模块640将以上信息写入文件系统,在文件系统的超级块中更新写入时间,根据最新的写入时间和其他信息,计算文件系统的校验和,写入文件系统,完成操作。
根据本发明实施例的硬盘故障处理装置,可以通过故障数据块的故障扇区号查找对应的故障文件,并对故障文件进行处理,达到占用故障数据块的目的,从而实现对故障数据块的屏蔽,解决了文件系统分配使用故障数据块时出现故障的问题,确保了文件系统的连续和一致性,同时保证故障的文件不会被再次访问。此外,采用本发明实施例的硬盘故障处理装置可以极大的节约了硬盘空间。对于平均大小为256MB的分布式文件系统而言,仅需使用1KB的空间,对比现有的需要使用256MB的方案,1KB/256MB,使用的空间不足原来的两万分之一。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同限定。
Claims (12)
1.一种硬盘故障处理方法,其特征在于,包括以下步骤:
获得硬盘出现故障的故障数据块的故障扇区号,其中,所述硬盘的分区表区中存储有分区表,所述分区表中存储有所述文件系统存储区中各个文件系统的分区信息,所述故障数据块包括至少一个故障扇区;
根据所述故障扇区号和所述各个文件系统的分区信息获得所述故障扇区号所属的文件系统,以及根据所述故障扇区号和所述故障扇区号所属的文件系统确定所述故障数据块所对应的故障文件;
在所述文件系统中删除所述故障文件,并在所述文件系统中利用空闲数据块创建新文件;以及
修改所述新文件的指针以使所述新文件的指针指向所述故障数据块,并释放所述新文件所利用的所述空闲数据块,以及修改所述文件系统的位图以占用所述故障数据块。
2.如权利要求1所述的硬盘故障处理方法,其特征在于,所述释放所述新文件所利用的所述空闲数据块进一步包括:
将所述文件系统中所述空闲数据块对应的位图修改为0。
3.如权利要求1所述的硬盘故障处理方法,其特征在于,还包括:
修改所述文件系统中超级块及块组描述符中的统计信息及校验信息。
4.如权利要求1所述的硬盘故障处理方法,其特征在于,所述根据故障扇区号和各个文件系统的分区信息获得故障扇区号所属的文件系统进一步包括:
根据所述故障扇区号和所述各个文件系统的分区信息查找所述故障扇区号所属的文件系统,并获得所述故障扇区号所属的文件系统的文件系统信息表;
根据所述故障扇区号和所述故障扇区号所属的文件系统确定所述故障数据块所对应的故障文件进一步包括:
根据所述文件系统信息表获得所述文件系统对应的数据块及数据块信息;
根据所述故障扇区号和所述文件系统对应的数据块及数据块信息获得所述故障扇区号对应的扇区地址;以及
根据所述扇区地址以确定所述故障扇区号对应的故障文件。
5.如权利要求4所述的硬盘故障处理方法,其特征在于,所述根据故障扇区号和各个文件系统对应的数据块及数据块信息获得故障扇区号对应的扇区地址进一步包括:
根据故障扇区号确定所述故障扇区号所对应的数据块;以及
根据所述故障扇区号和所述故障扇区号所对应的数据块的容量计算所述故障扇区号对应的扇区地址。
6.如权利要求2所述的硬盘故障处理方法,其特征在于,所述根据所述扇区地址以确定所述故障扇区号对应的故障文件,进一步包括:
根据所述故障扇区号对应的扇区地址遍历所述各个文件系统的文件系统信息表中的索引节点inode,其中,所述索引节点inode中存储有所属文件系统的所有扇区的扇区地址;
查找所述扇区地址所属的索引节点inode;以及
根据所述扇区地址所属的索引节点inode,查找所述索引节点inode对应的故障文件。
7.一种硬盘故障处理装置,其特征在于,包括:
扇区故障检测模块,用于检测硬盘出现故障的故障数据块的故障扇区号,其中,所述硬盘的分区表区中存储有分区表,所述分区表中存储有所述文件系统存储区中各个文件系统的分区信息,所述故障数据块包括至少一个故障扇区;
故障文件定位模块,用于根据所述故障扇区号和所述各个文件系统的分区信息获得所述故障扇区号所属的文件系统,以及根据所述故障扇区号和所述故障扇区号所属的文件系统确定所述故障数据块所对应的故障文件;
文件处理模块,在所述文件系统中删除所述故障文件,并在所述文件系统中利用空闲数据块创建新文件;以及
故障处理模块,用于修改所述新文件的指针以使所述新文件的指针指向所述故障数据块,并释放所述新文件所利用的所述空闲数据块,以及修改所述文件系统的位图以占用所述故障数据块。
8.如权利要求7所述的硬盘故障处理装置,其特征在于,所述故障处理模块将所述文件系统中所述空闲数据块对应的位图修改为0。
9.如权利要求7所述的硬盘故障处理装置,其特征在于,所述故障处理模块还用于修改所述文件系统中超级块及块组描述符中的统计信息及校验信息。
10.如权利要求7所述的硬盘故障处理装置,其特征在于,故障文件定位模块进一步包括:
信息获取单元,用于根据所述故障扇区号和所述各个文件系统的分区信息查找所述故障扇区号所属的文件系统,并获得所述故障扇区号所属的文件系统的文件系统信息表;
扇区地址计算单元,用于根据所述故障扇区号和所述文件系统对应的数据块及数据块信息获得所述故障扇区号对应的扇区地址;以及
文件系统定位单元,用于根据所述扇区地址确定所述故障扇区号对应的故障文件。
11.如权利要求10所述的硬盘故障处理装置,其特征在于,所述扇区地址计算单元根据所述故障扇区号确定所述故障扇区号所对应的数据块以及所述所对应的数据块的数据容量,并根据所述故障扇区号和所述对应的数据块的容量计算所述故障扇区号对应的扇区地址。
12.如权利要求10所述的硬盘故障处理装置,其特征在于,所述文件系统定位单元进一步包括:
遍历子单元,用于根据所述故障扇区号对应的扇区地址遍历所述各个文件系统的文件系统信息表中的索引节点inode,其中,所述索引节点inode中存储有所属文件系统的所有扇区的扇区地址;
查找子单元,用于查找所述扇区地址所属的索引节点inode;以及
定位子单元,用于根据所述扇区地址所属的索引节点inode,查找所述索引节点inode对应的故障文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210185744.6A CN103473157B (zh) | 2012-06-06 | 2012-06-06 | 硬盘故障处理方法及处理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210185744.6A CN103473157B (zh) | 2012-06-06 | 2012-06-06 | 硬盘故障处理方法及处理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103473157A true CN103473157A (zh) | 2013-12-25 |
CN103473157B CN103473157B (zh) | 2016-06-15 |
Family
ID=49798022
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210185744.6A Active CN103473157B (zh) | 2012-06-06 | 2012-06-06 | 硬盘故障处理方法及处理装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103473157B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106156639A (zh) * | 2016-06-28 | 2016-11-23 | 北京小米移动软件有限公司 | 数据分区加密方法及装置 |
CN110109773A (zh) * | 2019-04-11 | 2019-08-09 | 苏州浪潮智能科技有限公司 | 一种虚拟机磁盘一致性的检测方法及系统 |
CN112800005A (zh) * | 2021-01-22 | 2021-05-14 | 中孚安全技术有限公司 | 一种文件系统深度检查方法、系统、终端及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5383192A (en) * | 1992-12-23 | 1995-01-17 | Intel Corporation | Minimizing the likelihood of slip between the instant a candidate for a break event is generated and the instant a microprocessor is instructed to perform a break, without missing breakpoints |
CN1149735A (zh) * | 1994-05-25 | 1997-05-14 | 西门子公司 | 模块式结构的服务个人计算机 |
-
2012
- 2012-06-06 CN CN201210185744.6A patent/CN103473157B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5383192A (en) * | 1992-12-23 | 1995-01-17 | Intel Corporation | Minimizing the likelihood of slip between the instant a candidate for a break event is generated and the instant a microprocessor is instructed to perform a break, without missing breakpoints |
CN1149735A (zh) * | 1994-05-25 | 1997-05-14 | 西门子公司 | 模块式结构的服务个人计算机 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106156639A (zh) * | 2016-06-28 | 2016-11-23 | 北京小米移动软件有限公司 | 数据分区加密方法及装置 |
CN110109773A (zh) * | 2019-04-11 | 2019-08-09 | 苏州浪潮智能科技有限公司 | 一种虚拟机磁盘一致性的检测方法及系统 |
CN112800005A (zh) * | 2021-01-22 | 2021-05-14 | 中孚安全技术有限公司 | 一种文件系统深度检查方法、系统、终端及存储介质 |
CN112800005B (zh) * | 2021-01-22 | 2023-01-03 | 中孚安全技术有限公司 | 一种文件系统深度检查方法、系统、终端及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103473157B (zh) | 2016-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102495777B (zh) | 硬盘故障处理方法及处理装置 | |
CN101243417B (zh) | 非易失性存储装置、存储控制器以及不良区域检测方法 | |
US6675180B2 (en) | Data updating apparatus that performs quick restoration processing | |
CN110531940B (zh) | 视频文件处理方法及装置 | |
CN111506251B (zh) | 数据处理方法、装置、smr存储系统及存储介质 | |
KR101870521B1 (ko) | 스토리지 저널링을 개선하는 방법 및 시스템 | |
CN101354715A (zh) | 用于操作数据处理系统的系统、方法和计算机程序产品 | |
CN104461390A (zh) | 将数据写入叠瓦状磁记录smr硬盘的方法及装置 | |
US20090089628A1 (en) | File system error detection and recovery framework | |
CN107291710B (zh) | 一种用于分布式数据库系统的更新数据的方法及装置 | |
CN104750565A (zh) | Nand坏块处理方法及nand闪存设备 | |
CN109496292B (zh) | 一种磁盘管理方法、磁盘管理装置及电子设备 | |
CN103559139B (zh) | 一种数据存储方法及装置 | |
CN103886059A (zh) | 文件的清理方法及装置 | |
JP2004302505A (ja) | データ移行支援システム、プログラム、装置および取外し可能な記憶装置またはデータ移行が完了した記憶媒体の識別方法 | |
CN103475716A (zh) | 通过共享存储实现数据共享的方法和系统 | |
CN110147203B (zh) | 一种文件管理方法、装置、电子设备及存储介质 | |
CN107193871A (zh) | 数据库修复方法及装置 | |
CN103473157A (zh) | 硬盘故障处理方法及处理装置 | |
CN104516792A (zh) | 一种数据备份方法及装置 | |
CN108984102B (zh) | 管理存储系统的方法、系统和计算机程序产品 | |
CN114625696A (zh) | 文件恢复方法、装置、电子设备及存储介质 | |
CN115756317A (zh) | 叠瓦式磁盘的存储方法、存储装置、电子设备及存储介质 | |
CN109614273B (zh) | 增量数据的读取方法和系统 | |
CN109947730A (zh) | 元数据恢复方法、装置、分布式文件系统及可读存储介质 |
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 |