CN102542016B - 文件系统弹性管理 - Google Patents

文件系统弹性管理 Download PDF

Info

Publication number
CN102542016B
CN102542016B CN201110426186.3A CN201110426186A CN102542016B CN 102542016 B CN102542016 B CN 102542016B CN 201110426186 A CN201110426186 A CN 201110426186A CN 102542016 B CN102542016 B CN 102542016B
Authority
CN
China
Prior art keywords
file system
volume
damage
described file
confirmation
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
Application number
CN201110426186.3A
Other languages
English (en)
Other versions
CN102542016A (zh
Inventor
S.C.哈夫瓦拉
N.R.克里斯蒂安森
J.D.斯林万
陈永康
C.A.巴克豪斯
L.豪里
K.K.G.班加洛尔
T.西格里斯特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN102542016A publication Critical patent/CN102542016A/zh
Application granted granted Critical
Publication of CN102542016B publication Critical patent/CN102542016B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0775Content or structure details of the error report, e.g. specific table structure, specific error fields

Abstract

处理在文件系统卷上遇到的并且初始不可以在线补救的感知的损坏以验证它们是否是真是的、存在的卷数据结构损坏或,替选地,是误报。在验证一个或多个卷的损坏后,执行错误扫描以检查、并尝试在线补救在卷上的全部存在的损坏。在错误扫描处理之后,如果在文件系统卷上继续存在一个或多个验证的损坏,在文件系统启动时间执行现场损坏校正以尝试补救在卷上存在的、验证的损坏。执行现场损坏校正以尝试校正在文件系统的卷上的验证的数据结构损坏,同时在对于尝试校正其之前识别的损坏所必需的时间内,保持该卷离线。

Description

文件系统弹性管理
背景技术
文件系统使用数据结构,也被称为文件系统盘上格式,以保持并组织在非易失性,即持久的例如卷、盘、硬盘驱动器等的存储装置上的数据。例如,当执行软件指令或计算机代码时,系统访问并且解释这些数据结构以为用户和应用、或过程或计算机程序储存和检索数据。
当前,当在正常应用或用户发起的处理期间做出尝试以访问故障数据结构时,在文件系统数据结构中发现错误,即损坏。错误的发现使得在其上发生错误的卷被标记为损坏的。一旦卷已被标记为损坏的,通常需要卷修复工具以尝试将文件系统的盘上格式带入到一致的状态。典型地,在系统启动期间执行卷修复工具。
卷修复工具要求对文件系统的卷的独占的访问,因此在其执行期间,不可以通过其他的应用或用户访问储存在被修复的文件系统的卷上的数据和信息。此外,卷修复工具可以在相当长的一段时间中执行,这进一步削弱文件系统的表现并且负面地影响用户满意度。
此外,存在下述事件,即当认为在盘上格式的访问期间遇到了错误时,然而错误根本不是真的损坏,而是可以归因于其他的事件,例如在易失性系统存储器中的瞬时错误、在系统的永久储存器中的瞬时错误、在文件系统中的故障等。然而,当前没有分辨真实的在盘上的损坏与这些其他错误事件,即误报的机制。结果,当文件系统尝试校正误报时,不必要地使文件系统卷离线,并且使这些文件系统卷对用户和其他任务不可用,进而引起不必需的系统中断。
因此,期望的是,以用户和应用数据结构访问的最小的中断为数据结构损坏的搜索、验证、和校正提高文件系统弹性管理。
发明内容
本发明内容被提供用于以简化的形式介绍选择的概念,其在下面的具体实施方式中被进一步描述。这个概要不打算识别要保护的主题的主要的或关键的特征,也不打算用于辅助确定要保护的主题的范围。
在此讨论的实施例包括文件系统弹性管理的系统和方法,其包括检测和校正文件系统卷错误或损坏。
在实施例中,对感知的损坏执行损坏验证,其中在文件系统之内遇到该感知的损坏并且对该感知的损坏的在线尝试补救已经失败。在实施例中,初始地在文件系统的卷中遇到的损坏是感知的损坏,因为它们可以是关于在一个或多个文件系统卷上的一个或多个数据结构的、真的、存在的损坏,或,代替地,它们可以是误报。在实施例中,误报是在文件系统中遇到的情况,该误报是初始地识别为卷损坏但是接下来确定不是真的、存在的卷数据结构损坏。在实施例中,损坏验证过程验证之前遇到的感知的损坏是否是真的、存在的损坏或确定之前遇到的感知的损坏是误报。
在实施例中,执行损坏验证同时保持文件系统的全部卷在线并且对其他处理的任务和用户是可访问的。
在实施例中,为文件系统的卷执行错误扫描以主动地识别在其上存在的损坏。在实施例中,在导致验证一个或多个真的、存在的损坏的损坏验证处理之后,执行错误扫描。在实施例中,还按用户的请求和命令或可代替地按用户的请求和命令执行错误扫描。
在实施例中,进行错误扫描处理,同时保持文件系统的全部卷在线并且对其他处理的任务和用户是可访问的。
在实施例中,启动现场(spot)损坏校正以在文件系统启动时间进行处理,即当文件系统启动以处理时,当存在一个或多个之前没有成功地在线补救的真的、存在的卷损坏时。在实施例中,执行现场损坏校正,同时保持进行处理尝试校正其损坏的卷离线并且同时文件系统的其他卷仍然在线。在这些实施例的方面中,仅对于尝试补救其损坏的必需的时间保持卷离线。
附图说明
现在结合某些实施例和示例的附图说明这些和其他的特征,其中所述附图意图示出而不是限制,其中:
图1示出支持数据结构错误检测和校正弹性管理的实施例文件系统。
图2A-2F示出支持数据结构错误检测和校正弹性管理的文件系统的实施例逻辑流。
图3是具有处理软件、即程序代码或指令的能力的示例基本计算设备的方框图。
具体实施方式
在下面的说明中,为了解释的目的,为了透彻理解在此说明的实施例,阐述了许多具体的细节。然而,本领域的技术人员显而易见的是,可以实践所述实施例而不需要这些具体的细节。在其他的情况中,或者简单地提及或以方框图的形式示出公知的结构和设备以便避免不必要的模糊。从始至终使用的任何和全部的标题仅为了简化理解而不用于任何限制的使用。
图1示出能够支持弹性管理的实施例文件系统100。在实施例中弹性管理包括文件系统卷错误的检测和校正,所述错误在此还称作损坏。
在实施例中,文件系统100具有一个或多个卷170,这些卷将数据储存在数据结构中以由处理应用、任务、程序、例程等(其在此共同称作处理任务115)和用户105来使用。在实施例中,文件系统100的一个卷170是系统卷170,并且文件系统100的全部其他的卷170是非系统的,即通用的卷170。
在实施例中,处理任务115可以是文件系统100的一部分和/或与文件系统100分开。
在实施例中,文件系统100具有文件系统管理器部件110。在实施例中,文件系统管理器110是具有管理文件系统100的能力的软件应用任务以辅助确保恰当的处理和操作。
在实施例中,如果初始地遇到在此还称为感知的错误的情况,同时用户105、处理任务115或文件系统管理器110尝试访问在文件系统卷170(该文件系统卷在此也称作卷)上的数据,文件系统管理器110调度或以其他方式启动损坏自愈器部件155的处理。在实施例中,损坏自愈器115进行处理以校正,或以其他方式补救感知的错误,同时相应的卷170保持在线并且因此仍然可用于访问的。
在实施例中,文件系统100的每个卷170具有关联的第一卷日志180,例如$Verify文件,还称作错误验证日志180或卷验证日志180,相应的卷170的感知的遇到的数据结构错误被记录、或以其他方式被指示在该第一卷日志180上。在其他的实施例中,感知的遇到的数据结构错误,在此还称作卷错误或卷损坏,通过其他机制的使用来报告,例如,利用单个卷验证日志180来报告文件系统100的全部卷170的全部卷错误,编写错误表格以保持跟踪识别的卷错误等。
在实施例中,如果损坏自愈器155不能补救卷损坏,损坏自愈器155通知文件系统管理器110。相应地,在实施例中,文件系统管理器110为相应的卷170产生识别卷验证日志180中的卷损坏的条目185。
在替选的实施例中,如果损坏自愈器155不能补救卷损坏,损坏自愈器155为相应的卷170产生识别卷验证日志180中的卷损坏的条目185。
实施例文件系统100具有现场损坏验证器部件135。在实施例中,现场损坏验证器135是软件应用任务,当标记出一个或多个卷错误或卷损坏时,即用(一个或多个)条目185将其记录在其相应的(一个或多个)卷验证日志180中时,通过文件系统100启动以执行软件应用任务。在实施例中,现场损坏验证器135可以执行或以其他方式进行处理,同时保持全部文件系统卷170在线。
在实施例中,现场损坏验证器135处理在各个卷的卷验证日志180中的条目185。在实施例中,现场损坏验证器135还有验证标记的卷损坏为真的、存在的错误的能力。在实施例中,现场损坏验证器135还具有确定标记的卷损坏是误报的能力,即它们不是真的卷数据结构损坏。
在实施例中,现场损坏验证器135处理之前标记的卷损坏,即之前已识别并且具有卷验证日志条目185的这些卷损坏。在这个实施例的一个方面中,现场损坏验证器135不寻找或以其他方式处理除了已经为其产生前面的卷验证日志条目185的那些卷损坏之外的任何其他可能的卷损坏。
在实施例中,当其认为标记的卷损坏是误报时,即当现场损坏验证器135得出标记的数据结构错误实际不存在的结论时,现场损坏验证器135通知文件系统管理器110。在实施例中,从相应的错误验证日志180中,删除、或使错误验证日志180中针对误报的条目185无关,共同地在此称作删除。在这个实施例的方面中,当通过现场损坏验证器135通知误报时,文件系统管理器110删除在错误验证日志180中针对误报的条目185。在这个实施例的替选的方面中,现场损坏验证器135删除在错误验证日志180中针对误报的条目185。
在实施例中,当其认为标记的卷损坏是真的、存在的,即确认的错误时,现场损坏验证器135通知文件系统管理器110。
在实施例中,从相应的卷验证日志180中,删除、或使错误验证日志180中针对确认的错误的条目185无关,共同地在此称作删除。在这个实施例的方面中,当通过现场损坏验证器135通知确认的错误时,文件系统管理器110删除错误验证日志180中针对确认的错误的条目185。在这个实施例的替选的方面中,现场损坏验证器135删除错误验证日志180中针对确认的错误的条目185。
在实施例中,每个卷170具有关联的脏比特、或标记120,如果设定该比特或标记120则指示卷170在其上具有至少一个存在的确认的损坏。在实施例中,当现场损坏验证器135通知文件系统管理器110确认的损坏时,文件系统管理器110设置卷的脏比特120。在替选的实施例中,现场损坏验证器135在其验证卷损坏后设定卷的脏比特120。
在实施例中,文件系统100的每个卷170具有关联的第二卷日志190,例如$Corrupt文件,还称作错误校正日志190、卷损坏日志190、损坏日志190或卷损坏日志190,其中记录、或以其他方式指示相应卷170的确认的数据结构错误。在其他的实施例中,确认的数据结构错误,在此还称作确认的错误或确认的损坏,通过其他机制的使用来报告,例如利用单个卷损坏日志190来报告全部文件系统的卷170的全部确认的错误,编写错误表格以保持跟踪确认的错误等。
在实施例中,当由现场损坏验证器135通知确认的错误时,文件系统管理器110还,或可代替地产生识别卷损坏日志190中针对相应的卷170的确认的错误的条目195。在这些实施例的方面中,文件系统管理器110通过建立条目195产生卷损坏日志190中的条目195。在这些实施例的替选的方面中,文件系统管理器110通过将卷验证日志180中针对确认的错误的条目185移动、或以其他方式复制到相应的卷损坏日志190、改变到其的索引等来产生卷损坏日志190中的条目195。
在替选的实施例中,现场损坏验证器135还、或替选地产生识别在卷170的卷损坏日志190中的确认的损坏的条目195。在这些替选的实施例的方面中,现场损坏验证器135通过建立条目195产生卷损坏日志190中的条目195。在这些替选的实施例的替选方面中,现场损坏验证器135通过将卷验证日志180中针对确认的错误的条目185移动、或以其他方式复制到相应的卷损坏日志190、改变到其的索引等到相应的卷损坏日志190来产生卷损坏日志190中的条目195。
在实施例中,文件系统100具有主动错误扫描器部件145。在实施例中,主动错误扫描器145是通过文件系统管理器110启动以执行的软件应用任务并且具有对文件系统的卷170进行主动地扫描、即检查以寻找与储存在其上的数据结构相关联的错误的能力。在实施例中,主动错误扫描器145执行设计来识别,即探测在文件系统100的卷170上的损坏的动作。在这个实施例的方面中,这些动作包括读取卷170 的数据结构并且检查,或以其他方式验证卷的数据结构是否内部一致。
在实施例中,在文件系统的卷170保持在线期间,主动错误扫描器145操作,并且因此,在主动错误扫描器145执行期间,每个文件系统的卷170是可用的。
在实施例中,启动,或以其他方式调用主动错误扫描器145以在文件系统100的卷170中识别确认的损坏后运行,即执行。在这个实施例的方面中,文件系统管理器110调用主动错误扫描器145以在现场损坏验证器135验证前面识别的卷损坏之后来执行。
在第二实施例中,如果现场损坏验证器135已经验证了至少一个前面识别的卷损坏,则启动主动错误扫描器145从而以识别的时间间隔运行。在这个第二实施例的方面中,当在卷损坏日志190中存在至少一个条目195时,文件系统管理器110以预定的周期时间间隔调用主动错误扫描器145来执行。
在第三实施例中,文件系统管理器110调度主动错误扫描器145从而以某个时间间隔(例如一天一次在午夜、一周一次在星期日的晚上十一点半、一月一次在第一个星期日的晚上的凌晨一点等)进行调用,如系统管理员105或用户105(还共同地在此称作用户105)所编程的那样。在这个第三实施例的方面中,在文件系统100之内建立有意义的默认值,以确保在其他时间间隔没有或没有恰当地建立,例如用户105没有编程、是不恰当的或有错误的(例如仅一年一次。每分钟一次等)、已被不经意地删除或损坏等的情况下,主动错误扫描器145以例如至少一月一次等的某个时间间隔来执行。
在第四实施例中,当通过用户105命令时,启动主动错误扫描器145,即调用以执行。在这个第四实施例的方面中,用户105能够发布命令或提供一些输入,例如请求(共同地在被称作命令)以让主动错误扫描器145执行。在这个第四实施例的这个方面中,通过文件系统管理器110接收用户命令。在这个第四实施例的这个方面中,在接收主动错误扫描的用户命令时,文件系统管理器110调用主动错误扫描器145以进行执行。
在实施例中,主动错误扫描器145仅在文件系统100的卷170上扫描损坏,其中在主动错误扫描器145处理时设定该文件系统100的卷170的相应脏比特120;即当主动错误扫描器145处理时,主动错误扫描器145仅处理具有确认的损坏的文件系统100的卷170。
在替选的实施例中,当激活以执行时,主动错误扫描器145扫描在全部的文件系统的卷170上的损坏。
在实施例中,当主动错误扫描器145遇到、或者以其他方式发现卷损坏时,主动错误扫描器145启动执行损坏自愈器155以尝试补救卷损坏同时保持卷170在线。在这个实施例中,如果损坏自愈器155未成功地补救发现的卷损坏,主动错误扫描器145通知文件系统管理器110并且文件系统管理器110然后产生在相应卷170的卷损坏日志190中的条目195,从而识别发现的卷损坏,即现在确认的损坏。在这个实施例的方面中,文件系统管理器110通过建立条目195产生在卷损坏日志190中的条目195。在这个实施例的替选方面中,文件系统管理器110通过将卷验证日志180中针对确认的错误的条目185移动,或以其他方式复制到相应的卷损坏日志190,改变索引到相应的卷损坏日志190来产生卷损坏日志190中的条目195,其中对于该条目195而言存在卷验证日志条目185。
在替选的实施例中,如果损坏自愈器155未成功地补救发现的卷损坏,主动错误扫描器145然后产生相应卷170的卷损坏日志190中的条目195,从而识别现在确认的损坏。在替选的实施例的方面中,主动错误扫描器145通过建立条目195产生卷损坏日志190中的条目195。在这个替选的实施例的替选方面中,主动错误扫描器145通过将卷验证日志180中针对确认的错误的条目185移动,或以其他方式复制到相应的卷损坏日志190,改变索引到相应的卷损坏日志190来产生卷损坏日志190中的条目195,其中对于该条目195而言存在卷验证日志条目185。
在替选的实施例中,当主动错误扫描器145遇到、或以其他方式发现卷损坏时,主动错误扫描器145通知文件系统管理器110。在这个替选的实施例中,文件系统管理器110然后启动执行损坏自愈器155以尝试补救卷损坏同时保持卷170在线。在这个替选实施例中,如果损坏自愈器155未成功地补救发现的卷损坏,文件系统管理器110产生相应卷170的卷损坏日志190中的条目,从而识别现在确认的损坏。
实施例文件系统100具有现场损坏校正器部件125。在实施例中,现场损坏校正器125是通过文件系统管理器110所启动以执行的软件应用任务并且具有尝试校正确认的损坏(即通过在卷损坏日志190中的条目195所识别的文件系统卷170中的错误)的能力。在实施例中,现场损坏校正器125进行操作,同时要修复或以其他方式要校正的关联的卷170是离线的。在实施例中,现场损坏校正器125仅在现场损坏校正器125修复与在其上储存的数据结构相关联的确认的损坏所必须的时段内保持卷170离线。
在实施例中,文件系统管理器110调度现场损坏校正器125的执行以最小化对系统处理、可用性和用户满意度的影响。在实施例中,文件系统管理器110借助来自用户105的输入调度现场损坏校正器125的执行。在实施例中,文件系统管理器110基于识别的确认的损坏的性质和严重性调度现场损坏校正器125的执行。
在实施例中,如果文件系统100在服务器系统上,当文件系统启动,即初始化以运行时,如果在系统卷170的卷损坏日志190中存在任何条目195,通过文件系统管理器110启动现场损坏校正器125进行处理。在其中启动系统,即使其在线并且正常地处理是重要的这个实施例中,该功能帮助最小化启动处理时间。
在实施例中,如果文件系统100在客户端系统上,当文件系统启动时,如果存在针对任何卷170、系统或其他的,即通用的任何卷损坏日志190中的任何条目195,通过文件系统管理器110启动现场损坏校正器125进行处理。在其中管理的简易性和修复的自动性是重要的这个实施例中,这个功能帮助确保适当的文件系统数据结构的完整性和一致性。
在实施例中,当用户105请求时,文件系统管理器110还,或替选地启动现场损坏校正器125进行处理。在这些实施例中,通知用户105确认的损坏或用户105以其他方式能够获得识别确认的损坏的信息,并且用户105可以为文件系统管理器110发布命令或其他类型的输入,例如请求(共同地在此称作命令),以尝试校正一个或多个存在的确认的损坏。在接收用户命令以校正一个或多个存在的确认的损坏后,文件系统管理器110调用现场损坏校正器125进行执行。
在实施例中,当文件系统100确定现场损坏校正器125应该进行处理时,文件系统管理器110还或替选地启动现场损坏校正器125进行处理。在实施例中,文件系统管理器110可以确定现场损坏校正器125可以在多种情况中的一个或多个下处理,例如,当文件系统管理器110确定一个或多个确认的损坏的特性和/或严重性需要立即的补救措施时,当文件系统管理器110确定是合适的时间以尝试补救确认的损坏时,例如但是不限于当文件系统管理器110确定对具有确认的错误的文件系统卷170的访问是足够低的,等。
在实施例中,当其成功地校正在相应的卷170上的全部确认的损坏时,现场损坏校正器125清除卷的脏比特120。在替选的实施例中,当文件系统管理器110被通知现场损坏校正器125成功地校正在相应卷170上的全部确认的损坏时,文件系统管理器110清除卷的脏比特120。
在实施例中,每个卷170具有关联的F比特,或完整检验标记,130,当设定该F比特或完整检验标记130时,其指示卷170在其上具有不可以由现场损坏校正器125成功地补救的至少一个存在的确认的损坏。在实施例中,当尝试校正在相应卷170上的确认的损坏未成功时,现场损坏校正器125设定卷的F比特130。在替选的实施例中,当文件系统管理器110被通知现场损坏校正器125不可以校正存在的确认的损坏时,文件系统管理器110设定卷的F比特130。
实施例文件系统100具有完整检查盘(在此还称作完整chkdsk)部件165。在实施例中,完整chkdsk 165是通过文件系统管理器110启动以执行的软件应用任务并且具有识别、验证和尝试校正卷损坏的能力。在实施例中,完整chkdsk 165是卷修复工具、或任务,承担寻找并且校正在文件系统100的那些卷170上的卷损坏,其中该文件系统100的那些卷170具有前面识别的确认的但还没有成功地补救的损坏,即其F比特130被设定的卷。
在替选的实施例中,完整chkdsk 165是承担寻找并且校正在全部文件系统卷170上的卷损坏的系统范围内的卷修复任务。
在实施例中,完整chkdsk 165操作同时当前正处理的文件系统卷170是离线的,并且因此是不可用。在实施例中,在系统启动期间,完整chkdsk 165进行处理同时文件系统的全部卷170同时地是离线的。
在实施例中,当用户105请求或以其他方式命令(共同地在此称作命令)并且卷170的F比特130已被设定,即存在现场损坏校正器125不可以成功地补救的至少一个存在的确认的损坏时,启动完整chkdsk 165进行处理。在替选的实施例中,当用户105命令是否为任何卷170设定F比特130,即是否存在任何卷170的存在的确认的损坏时,启动完整chkdsk 165进行处理。
在实施例中,当文件系统管理器110确定尝试立即补救现场损坏校正器125未成功地校正的一个或多个存在的确认的损坏时,还可以,或替选地可以启动完整chkdsk 165进行处理。
在实施例中,文件系统管理器110启动完整chkdsk 165进行处理。
图2A-2F示出支持弹性管理的实施例文件系统100的实施例逻辑流程图。虽然关于在此描述的系统进行下述讨论,但是可以在其他的系统中执行描述的操作。在此描述的操作不限于示出的顺序。此外,在其他的替选的实施例中可以执行更多或更少的操作。此外,描绘的操作可以通过如描述的实施例文件系统部件和/或通过其他的文件系统部件或文件系统部件的组合来执行。
参考图2A,在实施例中,文件系统管理器110执行以处理文件系统弹性管理并且在实施例文件系统100中管理错误识别、验证和校正。
在判定块202,确定是否是系统启动时间,即文件系统是否启动并且初始化以进行处理。如果是的话,在判定块204确定文件系统是否在服务器系统上。如果是的话,在判定块208上,确定在系统卷的卷损坏日志中是否存在任何条目;即确定文件系统卷170当前是否具有任何确认的损坏。
在这个实施例的方面中,基于系统卷的损坏日志190的查看或审阅做出这个决定以确定其中是否存在当前的条目195。在这个实施例的替选方面中,为每个卷170设定脏比特120,其中该卷170具有在其关联的卷损坏日志190中的任何当前的条目195,并且审阅或以其他方式检查系统卷170的脏比特130以确定系统卷的卷损坏日志190是否具有任何当前的条目195。在这个实施例的其他替选方面中,使用其他的机制,例如其他的标记、标记的组合、中断等以辅助做出系统卷的卷损坏日志190当前是否具有任何条目195的确定。
如果在判定块208上确定系统卷的卷损坏日志具有当前的条目,则在实施例中,启动现场损坏校正器125进行处理。在这个实施例的方面中,激活现场损坏校正器125以处理在系统卷的卷损坏日志190中的条目,并且因此尝试校正在系统卷中的损坏。
转回判定块204,如果文件系统没有在服务器系统上,则在实施例中,文件系统在客户端系统上并且在判定块206确定是否存在任何卷的卷损坏日志中的任何条目,即确定任何卷170当前是否具有任何确认的损坏。
在这个实施例的方面中,基于一个或多个卷损坏日志190的查看或审阅做出这个确定以确定是否存在任何卷损坏日志190中的任何当前的条目195。在这个实施例的替选方面中,审阅或以其他方式检查一个或多个卷170的脏比特120以确定是否至少一个卷损坏日志190具有当前的条目195。在这个实施例的其他替选方面中,利用其他的机制,例如其他的标记、标记的组合、中断等以辅助做出任何卷损坏日志190当前是否具有任何条目195的确定。
如果在判定块206,至少一个卷损坏日志具有当前的条目,则在实施例中,启动现场损坏校正器125进行处理。在这个实施例的方面中,激活现场损坏校正器125以处理在每个卷损坏日志190中的全部当前条目,并且因此,尝试校正在文件系统100的卷170中的全部存在的确认的损坏。
在实施例中,通过现场损坏校正器校正其存在的确认的损坏的每一卷的脏比特被清除210。
在实施例中,设置具有现场损坏校正器不能补救的确认的损坏的每个卷的F比特212。
在实施例中,具有现场损坏校正器不能补救的确认的损坏的任何卷的存在的损坏日志条目被删除或以其他方式使其无关或非当前,212。
如果在判定块202,文件系统当前没有启动,在决定块206不存在客户端文件系统的任何卷的当前确认的损坏,或在判定块208,不存在服务器文件系统的系统卷的当前确认的损坏,则在实施例中,并且参考图2B,在判定块220确定是否在文件系统卷上遇到卷损坏。在这个实施例的方面中,当处理任务115、用户105或文件系统管理器110尝试访问在文件系统100的卷170上的至少一个数据结构时,可能遇到卷损坏。
如果遇到了卷损坏,则在实施例中,在判定块222确定是否已经在相应卷的卷验证日志或卷损坏日志中存在针对遇到的卷损坏的条目。在这个实施例的方面中,如果借助在相应的卷错误日志,即卷验证日志180或卷损坏日志190中的条目标出了或以其他方式记录了当前遇到的卷损坏,则先前在文件系统100之内遇到了并且识别了当前的卷损坏。
如果在判定块222,不存在卷验证日志或卷损坏日志中针对当前遇到的卷损坏的当前条目,则在实施例中,启动损坏自愈器155进行处理。在这个实施例的方面中,文件系统管理器110启动损坏自愈器155进行处理。
在实施例中,损坏自愈器155进行处理,同时具有当前遇到的卷损坏的卷170保持在线,并且因此是可访问的。
在实施例中,在判定块224,确定损坏自愈器是否曾补救当前遇到的卷损坏。如果不是,在实施例中,在判定块230,确定当前遇到的损坏是否需要为相应的卷运行完整chkdsk。在这个实施例的方面中,文件系统管理器110做出这个确定。
如果在判定块230,确定需要为当前的卷损坏进行完整chkdsk处理,则在实施例中,为具有损坏的卷设定F比特234。
然而,如果在判定块230,不认为需要完整chkdsk,则在实施例中,在相应的卷的卷验证日志中产生条目,其中该卷验证日志识别卷损坏232。
在这个实施例的方面中,在损坏自愈器155通知损坏自愈器155不能校正卷损坏时,文件系统管理器110为当前遇到的卷损坏产生卷验证日志条目185。在这个实施例的替选方面中,当损坏自愈器155未成功地校正当前遇到的卷损坏时,损坏自愈器155产生相应的卷验证日志条目185。
如果在判定块224,确定已校正当前遇到的卷损坏,则在实施例中,重试遇到卷损坏的数据访问操作226。
在实施例中,在判定块228,确定是否又发生相同的卷损坏;即卷损坏实际上是否未成功地被损坏自愈器补救。如果是的话,在实施例中,在判定块230,确定当前遇到的损坏是否需要为相应的卷运行完整chkdsk。
在为卷验证日志产生条目之后232,在实施例中,调用现场损坏验证器135进行处理。在这个实施例的方面中,文件系统管理器135启动现场损坏验证器135进行处理。
在实施例中,一旦调用以执行,现场损坏验证器135尝试验证具有当前存在的卷验证日志条目185的每个卷损坏。在实施例中,现场损坏验证器135尝试验证具有相应存在的卷验证日志条目185的当前存在的卷损坏,同时文件系统的卷170保持在线并且可用。
在实施例中并且参考图2C,在判定块240,确定现场损坏验证器135是否已经验证了卷损坏。如果不是,存在针对存在的卷验证日志条目的误报;即现场损坏验证器135确定了卷损坏实际不存在。在实施例中,将在相应的卷验证日志中的误报损坏的条目删除,或以其他方式使其无关或非当前,246。
在这个实施例的方面中,现场损坏验证器135通知文件系统管理器110存在的卷损坏是误报,并且文件系统管理器110将在卷验证日志180中的卷损坏的相应的条目185删除,或以其他方式使其无关或非当前。在这个实施例的替选方面中,现场损坏验证器135在识别误报损坏时,将在卷验证日志180中的卷损坏的相应条目185删除或以其他方式使其无关或非当前。
在实施例中,在判定块247,确定现场损坏验证器处理是否已结束;即是否存在更多的当前的卷验证日志条目要处理。
如果在判定块240,现场损坏验证器验证了卷损坏,则在实施例中,将现在确认的卷验证日志条目删除,或以其他方式使其无关或非当前,242。在这个实施例的方面中,现场损坏验证器135将确认的损坏通知给文件系统管理器110,并且文件系统管理器110将在卷验证日志180中的确认的损坏的相应条目185删除或以其他方式使其无关或非当前。在这个实施例的替选的方面中,在验证卷损坏后,现场损坏验证器135将在卷验证日志180中的损坏的相应条目185删除或以其他方式使其无关或非当前。
在实施例中,设定具有确认的损坏的卷的脏比特243。
在这个实施例的方面中,现场损坏验证器135将现在确认的损坏通知给文件系统管理器110,并且文件系统管理器110设定适当的卷脏比特120。在这个实施例的替选的方面中,在验证卷损坏后,现场损坏验证器135设定适当的卷脏比特120。
在实施例中,产生可以用于通知用户105确认的损坏的事件日志条目244。在实施例中,事件日志条目是用户105可以访问以得知所确认的损坏的在事件日志中的条目,事件日志即日志、表格、文件等,共同地在此称作日志。在实施例中,给用户105输出事件日志,或以其他方式使用户105可访问事件日志。在替选的实施例中,文件系统管理器110使用事件日志条目产生输出给用户105的消息。
在实施例中,在判定块247,确定现场损坏验证器处理是否已经结束。
如果在判定块247,现场损坏验证器当前仍在进行处理,则在实施例中,在判定块240,确定现场损坏验证器是否验证了具有存在的卷验证日志条目的卷损坏。
如果在判定块247,现场损坏验证器结束了处理,则在实施例中,在判定块248,确定是否存在要启动主动错误扫描器以进行处理的情况。在实施例中,当在现场损坏验证器135处理之后设定任何卷的脏比特时,指示在文件系统的至少一个卷上存在至少一个存在的确认的损坏,启动主动错误扫描器145以进行处理。
如之前指出的,在实施例中,文件系统管理器110启动主动错误扫描器145以在额外的和/或替选的情况下进行处理,即以识别的时间间隔进行处理(如果现场损坏验证器135已经验证了至少一个之前识别的卷损坏);以用户105所编程的某一时间间隔进行处理、或当用户105命令时进行处理。因此,即使在图2B的判定块222,不存在当前遇到的损坏,或在判定块222已经存在当前遇到的损坏的错误日志条目,或在判定块228通过损坏自愈器155解决了卷损坏,在图2C的判定块248,确定是否存在要启动主动错误扫描器145以进行处理的情况。
如果在判定块248,存在要启动主动错误扫描器145以进行处理的情况,则在实施例中并且参考图2D,启动主动错误扫描器145进行处理。在这个实施例的方面中,文件系统管理器110启动主动错误扫描器145的处理。
在实施例中,主动错误扫描器145仅在设定了相应的脏比特120的文件系统100的那些卷170上扫描损坏。在替选的实施例中,主动错误扫描器145在全部文件系统的卷170上扫描损坏。在实施例中,主动错误扫描器145扫描损坏,同时全部文件系统的卷170保持在线并且可以访问。
在实施例中,在判定块249,确定主动错误扫描器是否在其当前处理的卷上遇到了或以其他方式发现了损坏。如果是的话,在实施例中,主动错误扫描器启动损坏自愈器155执行以尝试补救卷损坏,同时保持卷在线。
如果在判定块249,不存在遇到的卷损坏,则在实施例中,在判定块250,确定主动错误扫描器是否结束处理。如果不是,在实施例中,再次确定主动错误扫描器是否在其当前处理的卷上遇到损坏。
在实施例中,在判定块252,确定损坏自愈器是否成功地补救了当前发现的损坏。如果不是,在实施例中,在判定块254,确定当前遇到的损坏是否需要为相应的卷运行完整chkdsk。
如果在判定块254,确定需要为当前卷损坏进行完整chkdsk处理,则在实施例中,将具有当前卷损坏的卷的存在的损坏日志删除或者以其他方式使其无关或非当前,256。在实施例中,为具有当前卷损坏的卷设定F比特256。
然而如果在判定块254,不认为需要完整chkdsk,则在实施例中,在相应的卷的卷损坏日志中为损坏产生条目258。因此,在此时并且在实施例中,为每个损坏产生损坏日志条目,其中主动错误扫描器识别该损坏不可以通过损坏自愈器258成功地补救。
在实施例中,为具有损坏的卷设定脏比特259。
在实施例中,如果损坏自愈器155未成功补救所发现的卷损坏,主动错误扫描器145通知文件系统管理器110并且文件系统管理器110然后在相应的卷170的卷损坏日志190中产生条目195,识别所发现的卷损坏,即现在确认的损坏。在这个实施例的方面中,文件系统管理器110还为卷170设定脏比特120,其中主动错误扫描器145在该卷170上识别在主动错误扫描器145处理期间未成功校正的损坏。在这个实施例的替选的方面中,文件系统管理器110为卷170设定脏比特,其中当主动错误扫描器145将在主动错误扫描器145处理期间还未成功校正的所识别的卷损坏通知给文件系统管理器110时,没有设定该卷170的脏比特120。
在替选的实施例中,如果损坏自愈器155未成功地补救所发现的卷损坏,然后,主动错误扫描器145产生在相应卷170的卷损坏日志190中的条目195,识别现在确认的损坏。在这个替选的实施例的方面中,主动错误扫描器145还设定卷170的脏比特120,其中主动错误扫描器145在该卷170上识别在主动错误扫描器145处理期间没有校正的损坏。在这个替选的实施例的替选方面中,主动错误扫描器145设定卷170的脏比特120,其中当主动错误扫描器145在卷170上识别不可以在主动错误扫描器145处理期间成功地校正的损坏时,没有设定该卷的脏比特120。
在实施例中,不管是否认为需要对当前的卷损坏进行完整chkdsk,在判定块250,确定主动错误扫描器是否完成了处理。在这个实施例的方面中,如果在判定块254,确定对于当前的卷损坏需要完整chkdsk处理,则主动错误扫描器结束相应卷的处理。
如果在判定块252,损坏自愈器成功地补救当前发现的损坏,则在实施例中,在判定块250,确定主动错误扫描器是否完成了处理。
在实施例中并且参考图2E,在主动错误扫描器145处理之后,清除设定了其脏比特并且现在没有卷损坏日志条目的,即当前不具有确认的损坏的文件系统的每个卷的脏比特260。在这个实施例的方面中,文件系统管理器110清除设定了其脏比特120并且在主动错误扫描器145处理之后没有卷损坏日志条目195的文件系统100的每个卷170的脏比特120。在这个实施例的替选方面中,主动错误扫描器145清除主动错误扫描器145处理的文件系统100的脏比特120已被设定的并且在主动错误扫描器145的处理之后不具有卷损坏日志条目195的每个卷170的脏比特120。
在实施例中,在判定块262,确定是否存在文件系统的任何卷的任何卷损坏日志条目。在实施例中,为主动错误扫描器145识别的每个损坏产生卷损坏日志条目195,其中该损坏没有在主动错误扫描器的处理期间被在线校正,并且该损坏未以其他方式被确定为足够严重和/或复杂使得对于相应卷需要完整chkdsk处理。
如果在判定块262存在至少一个卷损坏日志条目,则在实施例中,产生可以用于通知用户存在的确认的损坏的通知264。在实施例中,产生的通知是用户105可以访问以得知所确认的损坏的事件日志条目,即在事件日志中的条目。在实施例中给用户105输出事件日志,或以其他方式使得用户105可以访问事件日志。在替选的实施例中,文件系统管理器110使用事件日志条目产生输出给用户105的消息。
在其他的实施例中,产生的通知是一个或多个额外的和/或其他的通知和/或可以用于通知用户105存在的确认的损坏的机制,例如输出给用户105的弹出消息,其他的和/或额外的日志条目、标记等。
在实施例中,在判定块266,确定用户是否已经请求或命令(共同地在此称为命令)此时应处理通过在一个或多个卷损坏日志中的条目识别的当前存在的损坏以进行校正。如果是的话,在实施例中,启动现场损坏校正器125进行处理以尝试改正由卷损坏日志条目所识别的存在的损坏。在这个实施例的方面中,文件系统管理器110启动现场损坏校正器进行处理。
在这个实施例的方面中,现场损坏校正器125使卷170离线以处理从而尝试校正在前面在其上识别的损坏。在这个实施例的方面中,现场损坏校正器125使卷170一次一个地离线以处理从而尝试校正前面在其上识别的损坏,使得在任何一个时间仅文件系统的一个卷是离线的,并且因对其他处理任务115和/或用户105是不可用的。在这个实施例的方面中,现场损坏校正器125仅对于现场损坏校正器125处理在相应卷的卷损坏日志190中的条目所必需的期间内保持卷170离线;即仅对于现场损坏校正器125尝试校正前面在其上识别的损坏是必须的期间。
在实施例中,一旦调用,现场损坏校正器125继续处理直到其已尝试校正由相应的卷损坏日志条目195识别的全部当前存在的损坏。
在实施例中,在现场损坏校正器的处理之后,为其卷损坏日志不包括当前条目的每个卷清除卷脏比特270。在这个实施例的方面中,文件系统管理器110为在现场损坏校正器125的处理期间校正全部其确认的损坏的每个卷170清除卷脏比特120。在这个实施例的替选方面中,现场损坏校正器125为在其中现场损坏校正器125补救全部当前确认的损坏的每个卷170清除卷脏比特120。
在实施例中,为具有现场损坏校正器未成功地补救的确认的损坏的文件系统的每个卷设定F比特 272。
在实施例中,将具有现场损坏校正器不可以补救的确认的损坏的任何卷的存在的损坏日志条目删除,或以其他方式使其无关或非当前,272。
如果在判定块266,用户没有请求处理以校正任何当前存在的损坏,在实施例中,在判定块268,确定文件系统是否认为通过在一个或多个卷损坏日志中的条目所识别的任何当前存在的损坏可以和/或应该在此时处理以进行校正。
在实施例中,通过或不通过用户输入,文件系统管理器110可以确定一个或多个当前存在的确认的损坏的性质和/或严重性要求立即的补救措施。在这些实施例的方面中,文件系统管理器110利用在卷损坏日志190的条目195中的信息确定是否存在应该在此时尝试校正的至少一个适当严重的存在的损坏。
在实施例中,文件系统管理器110还可以、或替选地可以确定是恰当的时间尝试补救一个或多个存在确认的损坏;例如在当前时间到具有确认的错误的文件系统卷的访问是足够低的,使得尝试校正确认的损坏将引起对文件系统卷可用性的最小的负面影响,等。
如果在判定块268,文件系统管理器认为可以和/或在此时应该处理以校正由卷损坏日志中的条目所识别的至少一个当前存在的损坏,在实施例中启动现场损坏校正器125以处理来尝试改正一个或多个存在的损坏。在该实施例的一个方面,启动现场损坏校正器125来由文件系统管理器110处理。
在实施例中,在此时,启动现场损坏校正器125以处理全部文件系统卷170的全部存在的卷损坏日志条目,即全部存在的确认的损坏。在替选实施例中,在此时,启动现场损坏校正器125以仅处理当前存在的确认的损坏的子集,其中文件系统管理器110已经确定可以和/或应该在此时对该当前存在的确认的损坏的子集进行校正处理。
如果在判定块268,文件系统未确定可以和/或应该在此时对任何存在的确认的损坏尝试进行校正,则在实施例中,处理返回到确定文件系统当前是否正在启动的图2A的判定块202。
参考图2F,在实施例中,在判定块280,确定是否设定任何卷的F比特。如果不是,当前不存在文件系统100要尝试进行校正的存在的确认的损坏,并且在实施例中,处理返回到确定文件系统当前正在启动的图2A的判定块202。
如果在判定块280,存在设定的一个或多个卷F比特,则在实施例中,产生可以用于通知用户存在的确认的损坏的一个或多个通知282。在实施例中,产生的通知是用户105可以访问以得知存在的确认的损坏的事件日志条目。在实施例中,给用户105输出事件日志,或以其他方式使得其对用户105可用。在替选实施例中,文件系统管理器110使用事件日志条目以产生输出给用户105的消息。
在其他的实施例中,产生的通知是通知和/或可以用于通知用户105存在的确认的损坏的一个或多个额外的和/或其他的机制,例如输出给用户105的弹出信息,其他的和/或额外的日志条目、标志等。
在实施例中,在判定块284,确定用户是否已经请求或命令(共同地在此称作命令)文件系统应在此时处理以校正存在的确认的损坏。如果是的话,在实施例中,启动完整chkdsk 165以处理此时设定F比特的这些卷。在这个实施例的方面中,文件系统管理器110启动完整chkdsk 165进行处理。
如果在判定块284,用户在此时没有请求文件系统处理以校正具有存在的损坏的卷,则在实施例中,在判定块286,确定文件系统是否认为具有当前存在的确认的损坏的任何卷可以和/或应该在此时被处理以校正。
在实施例中,文件系统管理器110可以确定是合适的时间尝试补救一个或多个损坏的卷;例如在此时到具有确认的错误的文件系统卷的访问是足够低的,使得尝试校正卷将引起对文件系统卷的可用性的最小负面影响,等。
如果在判定块286,文件系统认为可以和/或应该在此时进行处理以校正至少一个卷,在实施例中,启动完整chkdsk 165以进行处理。在这个实施例的方面中,文件系统管理器110启动完整chkdsk 165以进行处理。
在实施例中,在此时,启动完整chkdsk 165以处理当前已设定其F位的全部卷170,即在其上具有存在的确认的损坏的全部卷170。在替选的实施例中,在此时,启动完整chkdsk 165以仅处理文件系统管理器110已经确定可以和/或应该在此时进行校正处理的损坏的卷170的子集。
在实施例中,在完整chkdsk处理165之后,为完整chkdsk处理的每个卷清除F比特288。在实施例中,在完整chkdsk处理165之后,为完整chkdsk处理的每个卷清除脏比特290。在这些实施例的方面中,文件系统管理器110清除完整chkdsk处理288的每个卷170的F比特130和脏比特120。在这些实施例的替选方面中,完整chkdsk 165清除完整chkdsk 165处理的每个卷170的F比特130和脏比特120。
如果在判定块286,文件系统没有确定在此时或在文件系统的一个或多个卷的完整chkdsk 165处理之后可以和/或应该尝试校正任何损坏的卷,在实施例中,处理返回到确定文件系统当前是否正在启动的图2A的判定块202。
计算设备系统配置
图3是示出其上可以执行实施例的示例计算设备系统300的方框图。计算设备系统、或计算设备300的示例包括,但是不限于服务器;服务器系统;计算机,例如台式计算机,膝上型计算机,在此还称作膝上型电脑、笔记本等;等。
实施例计算装置系统300包括用于传送信息的总线305或其他机制,和用于处理信息的与总线305耦合的处理单元310(此处也被称为处理器310)。计算装置系统500还包括系统存储器315,其可以是易失性的或动态的,例如随机存取存储器(RAM),非易失性的或静态的,诸如只读存储器(ROM)或闪存,或两者的某一组合。系统存储器315被耦合至总线305,用于存储处理单元310执行的信息和指令,且也可被用于在处理器310执行指令期间存储临时变量或其他中间信息。系统存储器315经常包含操作系统和一个或多个程序、或应用、和/或软件代码,且还可包括程序数据。
在一个实施例中,诸如磁或光盘、固态驱动器、闪速驱动器等的存储装置320也被耦合至总线305,用于存储包括程序指令代码和/或数据(例如,卷170)的信息。在实施例计算装置系统300中,存储装置320是计算机可读储存器或机器可读储存器320。
实施例计算装置系统300一般包括一个或多个显示装置335,诸如但不限于显示屏(例如,阴极射线管(CRT)或液晶显示器(LCD))、打印机、和一个或多个扬声器,用于向计算装置的系统管理员105和用户105提供信息。实施例计算装置系统300一般还包括一个或多个输入装置330,诸如但不限于键盘、鼠标、跟踪球、笔、声音输入装置,和触摸输入装置,系统管理员105和用户105可利用其向处理器310传送信息和命令选择。所有这些装置在本领域中是已知的且无需在此详细讨论。
处理器310执行一个或多个程序的一个或多个序列、或应用、和/或系统存储器315中包含的软件代码指令。可从包括但不限于存储装置320的另一计算装置可读介质读取这些指令至系统存储器315中。在替代实施例中,硬连线电路可被用于代替软件指令或与软件指令结合。实施例计算装置系统300环境不限于硬件电路和/或软件的任何特定的组合。
此处使用的术语“计算装置可读介质”指的是可参与向处理器310提供程序、或应用、和/或软件指令用于执行的任何介质。这样的介质可采用许多形式,包括但不限于存储介质和传输介质。存储介质的例子包括但不限于RAM、ROM、EEPROM、闪存、固态驱动器、CD-ROM、USB棒驱动器、数字多功能盘(DVD)、磁带盒、磁带、磁盘存储器或任何其他磁介质、软盘、柔性盘、打孔卡、纸带、或有洞的模式的任何其他物理介质、存储芯片或卡带。实施例计算装置系统300的系统存储器315和存储装置320是存储介质的进一步例子。传输介质的例子包括但不限于诸如同轴电缆、铜线和光纤的有线介质,以及诸如光学信号、声学信号、RF信号和红外信号的无线介质。
实施例计算装置系统300还包括耦合至总线305的一个或多个通信连接350。(一个或多个)实施例通信连接350提供从计算装置系统300耦合至其他计算装置的双向的数据通信,该其他计算装置在局域网(LAN)365和/或包括万维网、或因特网370和各种其他通信网络375(例如,基于SMS的网络、电话系统网络等)的广域网(WAN)上。(一个或多个)通信连接350的例子包括但不限于综合业务数字网(ISDN)卡、调制解调器、LAN卡和能够发送和接收电的、电磁的、光学的、声学的、RF或红外信号的任何装置。
实施例计算装置系统300接收的通信可包括程序、或应用、和/或软件指令和数据。实施例计算装置系统300接收的指令可由处理器310在接收其时执行,和/或存储在存储装置320或其他非易失性存储装置中用于以后的执行。
结论
尽管此处描述了各种实施例,这些实施例已经仅以例子的方式呈现,且不意图限制要求保护的主题的范围。处于以下权利要求的范围内的许多变化是可能的。在查看此处的说明书、附图和权利要求之后,这样的变化是清楚的。因此,除在以下权利要求及其等价物中定义之外,要求保护的主题的宽度和范围是不受限制的。

Claims (15)

1.用于文件系统弹性管理的方法,其中所述文件系统(100)包括至少一个卷(170),并且其中所述文件系统(100)的卷(170)上在任何给定时间能够具有至少一个的损坏,所述方法包括:
遇到包括感知的损坏的所述文件系统的卷上的情况(220);
尝试补救感知的损坏同时保持具有所述感知的损坏的所述文件系统的卷在线(155);
当没有成功地补救所述感知的损坏时,为所述感知的损坏产生验证指示同时保持具有所述感知的损坏的所述文件系统的所述卷在线(232);
对具有感知的损坏的所述文件系统的所述卷执行现场损坏验证处理同时保持所述文件系统的卷在线,其中所述现场损坏验证处理包括,当感知的损坏是真的损坏时,将所述感知的损坏验证为确认的损坏,并且其中所述现场损坏验证处理进一步包括,当感知的损坏不是真的损坏时,将所述感知的损坏确定为误报(135);
为具有确认的损坏的所述文件系统的卷执行主动错误扫描处理同时保持所述文件系统的所述卷在线(145),其中所述主动错误扫描处理包括检查所述文件系统的所述卷以识别在其上的所述损坏(249),尝试补救在所述文件系统的所述卷上的识别的损坏(155),并且当没有补救所述识别的损坏时,为在所述文件系统上的识别的损坏产生损坏指示(258);并且
为在其上具有确认的损坏的所述文件系统的卷执行现场损坏校正处理,其中所述现场校正处理包括尝试校正在所述文件系统的卷上的至少一个确认的损坏同时保持所述文件系统的所述卷离线(125)。
2.根据权利要求1所述的用于文件系统弹性管理的方法,其中所述文件系统(100)包括服务器文件系统,所述服务器文件系统(100)的卷(170)包括系统卷(170),并且仅在所述系统卷具有至少一个确认的损坏时并且仅为所述服务器文件系统(100)的所述系统卷(204)在服务器文件系统启动时间执行现场损坏校正处理(125),其中在所述服务器文件系统启动时间之前为所述至少一个确认的损坏产生损坏指示(208)。
3.根据权利要求1所述的用于文件系统弹性管理的方法,其中所述文件系统(100)包括客户端文件系统,所述方法进一步包括在客户端文件系统启动时间为所述文件系统的每个卷执行现场损坏校正处理(125),其中所述文件系统(100)的每个卷(170)具有至少一个确认的损坏,在所述客户端文件系统启动时间之前为所述至少一个确认的损坏产生损坏指示(206)。
4.根据权利要求1所述的用于文件系统弹性管理的方法,其中所述文件系统(100)的每个卷(170)包括卷验证日志(180),所述文件系统(100)的每个卷(170)包括第一错误标志(120),并且验证指示包括在卷验证日志(180)中的条目(185),所述方法进一步包括:
当所述文件系统的卷的现场损坏验证处理将在所述文件系统的所述卷上的感知的损坏验证成确认的损坏时,为所述文件系统的所述卷设定第一错误标志(243);并且
当为所述文件系统的卷设定了所述第一错误标志时,为所述文件系统的所述卷执行主动错误扫描处理(248)。
5.根据权利要求4所述的用于文件系统弹性管理的方法,其中所述文件系统(100)的每个卷(170)包括卷损坏日志(190),所述文件系统(100)的每个卷(170)包括第二错误标志(130),并且损坏指示包括在卷损坏日志(190)中的条目(195),所述方法进一步包括:
为具有确认的损坏的所述文件系统的卷执行现场损坏校正处理,其中在所述卷的所述卷损坏日志中存在针对所述确认的损坏的条目(262);并且
当所述文件系统的卷的现场损坏校正处理没有校正在所述卷上的确认的损坏时,为所述文件系统的所述卷设定所述第二错误标志(272)。
6.根据权利要求1所述的用于文件系统弹性管理的方法,进一步包括,根据来自所述文件系统(100)的用户(105)的主动错误扫描处理(145)的命令,为所述文件系统(100)的卷(170)执行主动错误扫描处理(145)。
7.根据权利要求1所述的用于文件系统弹性管理的方法,进一步包括:
当现场损坏验证处理将感知的损坏验证为确认的损坏时,使所述感知的损坏的验证指示不相关(242);并且
当现场损坏验证处理确定感知的损坏是误报时,使所述感知的损坏的验证指示不相关(246)。
8.根据权利要求1所述的用于文件系统弹性管理的方法,进一步包括,当所述文件系统的卷具有在主动错误扫描处理期间识别的损坏并且在主动错误扫描处理期间在所述文件系统的所述卷上没有补救所述识别的损坏时,提供所述文件系统的用户可访问的、包括在所述文件系统的所述卷上的损坏的指示的信息(264)。
9.根据权利要求1所述的用于文件系统弹性管理的方法,进一步包括损坏自愈器处理(155),其包括尝试补救在所述文件系统(100)的卷(170)上的感知的损坏(185)同时保持所述文件系统(100)的所述卷(170)在线,并且进一步包括在所述文件系统(100)的卷(170)上的主动错误扫描处理(145)期间尝试补救确认的损坏(195),同时保持所述文件系统(100)的所述卷(170)在线。
10.根据权利要求1所述的用于文件系统弹性管理的方法,其中所述文件系统(100)的每个卷(170)包括脏比特(120)并且所述文件系统(100)的每个卷(170)包括完整检验标记(130),所述方法进一步包括:
当所述文件系统的卷的现场损坏验证处理将在所述文件系统的所述卷上的感知的损坏验证成确认的损坏时,为所述文件系统的所述卷设定脏比特(243);
清除其中脏比特被设定并且在主动错误扫描处理之后不具有带有损坏指示的损坏的所述文件系统的每个卷的所述脏比特(260);
当现场损坏校正器处理没有补救在所述文件系统的卷上的确认的损坏时,为所述文件系统的卷设定完整检验标记(272);并且
在已设定完整检验标记(280)的所述文件系统(100)的每个卷(170)上执行完整chkdsk处理(165),其中在所述文件系统(100)的卷(170)上执行完整chkdsk处理(165)同时保持所述文件系统(100)的所述卷(170)离线,其中完整chkdsk处理(165)包括检查所述文件系统(100)的卷(170)的损坏,其中在完整chkdsk处理期间在所述文件系统(100)的所述卷(170)上识别的损坏包括确认的损坏,并且其中完整chkdsk处理(165)进一步包括尝试校正在完整chkdsk处理(165)期间所识别的在所述文件系统(100)的卷(170)上的所述确认的损坏。
11.一种参与弹性管理的文件系统(100),所述文件系统(100)包括:
至少一个卷(170),其中所述至少一个卷(170)包括至少一个数据结构;
包括管理所述文件系统(100)的能力的文件系统管理器(110);
包括下述能力的现场损坏验证器(135):确定之前在所述文件系统(100)的卷(170)上遇到的感知的损坏(185)是否是包括确认的损坏(195)的真的数据结构损坏,并且进一步包括下述能力:确定之前在所述文件系统(100)的卷(170)上遇到的感知的损坏(185)是否是包括在所述文件系统(100)的卷(170)上的遇到的误报,其中所述误报不是在所述文件系统(100)的所述卷(170)上的数据结构损坏;
主动错误扫描器(145),包括检查所述文件系统(100)的所述卷(170)的在其上的数据结构损坏的能力,其中在主动错误扫描器处理(145)期间没有补救的通过所述主动错误扫描器(145)识别的数据结构损坏包括确认的损坏(195);以及
现场损坏校正器(125),包括尝试校正确认的损坏(195)的能力。
12.根据权利要求11所述的参与弹性管理的文件系统(100),进一步包括所述文件系统(100)的每个卷(170)的卷验证日志(180),其中卷(170)的卷验证日志(180)包括识别之前在所述文件系统(100)的卷(170)上遇到的感知的损坏(185)的至少一个条目(185)。
13.根据权利要求12所述的参与弹性管理的文件系统(100),进一步包括所述文件系统(100)的每个卷(170)的卷损坏日志(190),其中卷(100)的卷损坏日志(190)包括识别确认的损坏(195)的至少一个条目(195)。
14.根据权利要求11所述的参与弹性管理的文件系统(100),进一步包括损坏自愈器(155),其包括尝试为所述文件系统(100)的卷(170)校正确认的损坏(195)同时保持所述文件系统(100)的所述卷(170)在线的能力。
15.根据权利要求11所述的参与弹性管理的文件系统(100),其中所述现场损坏验证器(135)确定之前在所述文件系统(100)的卷(170)上遇到的感知的损坏(185)是否是误报(240)同时保持所述文件系统(100)的全部卷(170)在线,所述现场损坏验证器(135)确定之前在所述文件系统(100)的卷(170)上遇到的感知的损坏(185)是确认的损坏(195)同时保持所述文件系统(100)的全部卷(170)在线,所述主动错误扫描器(145)检查所述文件系统(100)的至少一个卷(170)的在其上的数据结构损坏同时保持所述文件系统(100)的全部卷(170)在线,所述现场损坏校正器(125)尝试一次校正在所述文件系统(100)的一个卷(170)上的确认的损坏(195),并且所述现场损坏校正器(125)尝试校正在所述文件系统(100)的卷(170)上的确认的损坏(195)同时保持所述文件系统(100)的所述卷(170)离线。
CN201110426186.3A 2010-12-17 2011-12-19 文件系统弹性管理 Active CN102542016B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/970985 2010-12-17
US12/970,985 2010-12-17
US12/970,985 US8621276B2 (en) 2010-12-17 2010-12-17 File system resiliency management

Publications (2)

Publication Number Publication Date
CN102542016A CN102542016A (zh) 2012-07-04
CN102542016B true CN102542016B (zh) 2014-11-12

Family

ID=46236083

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110426186.3A Active CN102542016B (zh) 2010-12-17 2011-12-19 文件系统弹性管理

Country Status (2)

Country Link
US (1) US8621276B2 (zh)
CN (1) CN102542016B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8826080B2 (en) * 2011-07-29 2014-09-02 The Boeing Company Methods and systems for preboot data verification
CN103309768B (zh) * 2012-03-16 2015-03-11 腾讯科技(深圳)有限公司 系统文件修复方法和装置
US20130275444A1 (en) * 2012-04-16 2013-10-17 International Business Machines Corporation Management of Log Data in a Networked System
WO2016064433A1 (en) * 2014-10-24 2016-04-28 Mcafee, Inc. Agent presence for self-healing
CN104598328A (zh) * 2015-02-04 2015-05-06 南车株洲电力机车研究所有限公司 一种文件系统修复方法、装置及系统
JP7246869B2 (ja) * 2018-06-28 2023-03-28 キヤノン株式会社 画像形成装置、画像形成装置の制御方法及びプログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6477544B1 (en) * 1999-07-16 2002-11-05 Microsoft Corporation Single instance store for file systems
CN1694095A (zh) * 2004-04-30 2005-11-09 微软公司 实时文件系统修复
CN1744051A (zh) * 2005-05-30 2006-03-08 杨来 基于包结构的数据恢复技术
US7334006B1 (en) * 2000-09-27 2008-02-19 Microsoft Corporation Off-line support for cumulative backups

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5765151A (en) 1995-08-17 1998-06-09 Sun Microsystems, Inc. System and method for file system fix-on-panic for a computer operating system
US5870762A (en) * 1996-09-26 1999-02-09 Lee; Paul Error detection and recovery of database files
US6718446B1 (en) * 2000-02-11 2004-04-06 Iomega Corporation Storage media with benchmark representative of data originally stored thereon
US7137034B2 (en) * 2000-05-19 2006-11-14 Vir2Us, Inc. Self repairing computer having user accessible switch for modifying bootable storage device configuration to initiate repair
US7032123B2 (en) 2001-10-19 2006-04-18 Sun Microsystems, Inc. Error recovery
US6895413B2 (en) 2002-03-22 2005-05-17 Network Appliance, Inc. System and method for performing an on-line check of a file system
US7231634B2 (en) * 2002-09-17 2007-06-12 Sun Microsystems, Inc. Method for determining scope and cause of memory corruption
US7305393B2 (en) * 2003-04-29 2007-12-04 International Business Machines Corporation Mounted filesystem integrity checking and salvage
US7793227B2 (en) 2003-08-12 2010-09-07 Yahoo! Inc. Method and system of providing customizable buttons
US20050097141A1 (en) 2003-10-30 2005-05-05 International Business Machines Corporation Autonomic filesystem recovery
US7328217B2 (en) * 2003-11-26 2008-02-05 Symantec Operating Corporation System and method for detecting and storing file identity change information within a file system
US20050257131A1 (en) 2004-02-11 2005-11-17 Lim Jing Y Frame environment that supports the navigation buttons of a web browser
US7293044B2 (en) * 2004-04-09 2007-11-06 Microsoft Corporation Method and system for verifying integrity of storage
US7930491B1 (en) * 2004-04-19 2011-04-19 Cisco Technology, Inc. Memory corruption detection system and method using contingency analysis regulation
US7143120B2 (en) 2004-05-03 2006-11-28 Microsoft Corporation Systems and methods for automated maintenance and repair of database and file systems
US7526686B2 (en) * 2004-08-04 2009-04-28 International Business Machines Corporation Apparatus, system, and method for active data verification in a storage system
US7921372B2 (en) 2005-03-25 2011-04-05 Microsoft Corporation System and method for pinning tabs in a tabbed browser
US7739447B1 (en) 2005-04-22 2010-06-15 Network Appliance, Inc. Online label maintenance
US7389379B1 (en) 2005-04-25 2008-06-17 Network Appliance, Inc. Selective disk offlining
US7756834B2 (en) * 2005-11-03 2010-07-13 I365 Inc. Malware and spyware attack recovery system and method
US8375325B2 (en) 2005-12-30 2013-02-12 Google Inc. Customizable, multi-function button
US7506213B1 (en) * 2006-01-19 2009-03-17 Network Appliance, Inc. Method and apparatus for handling data corruption or inconsistency in a storage system
GB2446169A (en) 2006-12-01 2008-08-06 David Irvine Granular accessibility to data in a distributed and/or corporate network
US7730090B2 (en) 2007-03-09 2010-06-01 Emc Corporation Architecture for performing file system checking on an active file system
US20080263474A1 (en) 2007-04-19 2008-10-23 Chris Wormald Multiple display window handling
US7752492B1 (en) 2007-05-25 2010-07-06 Emc Corporation Responding to a failure of a storage system
US20090089628A1 (en) 2007-10-01 2009-04-02 Day Mark S File system error detection and recovery framework
US10248483B2 (en) * 2007-10-19 2019-04-02 Oracle International Corporation Data recovery advisor
US7827440B1 (en) * 2007-11-01 2010-11-02 Apple Inc. Re-synchronizing corrupted data
US8176017B2 (en) 2007-12-14 2012-05-08 Microsoft Corporation Live volume access
US20090164922A1 (en) 2007-12-20 2009-06-25 Ouneheuane Phakousonh Auto toolbar
US20100185587A1 (en) * 2009-01-09 2010-07-22 Microsoft Corporation Data movement with reduced service outage
US8607099B2 (en) 2010-12-17 2013-12-10 Microsoft Corporation Online fault verification in a file system
US8667323B2 (en) 2010-12-17 2014-03-04 Microsoft Corporation Proactive error scan and isolated error correction

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6477544B1 (en) * 1999-07-16 2002-11-05 Microsoft Corporation Single instance store for file systems
US7334006B1 (en) * 2000-09-27 2008-02-19 Microsoft Corporation Off-line support for cumulative backups
CN1694095A (zh) * 2004-04-30 2005-11-09 微软公司 实时文件系统修复
CN1744051A (zh) * 2005-05-30 2006-03-08 杨来 基于包结构的数据恢复技术

Also Published As

Publication number Publication date
US20120159256A1 (en) 2012-06-21
CN102542016A (zh) 2012-07-04
US8621276B2 (en) 2013-12-31

Similar Documents

Publication Publication Date Title
CN102542016B (zh) 文件系统弹性管理
US9189348B2 (en) High availability database management system and database management method using same
CN110807064B (zh) Rac分布式数据库集群系统中的数据恢复装置
CN102567478B (zh) 文件系统中的在线故障验证
CN102567143B (zh) 前摄错误扫描及隔离的错误校正
CN110908613B (zh) 一种数据写命令处理方法、装置、电子设备及存储介质
US20080082630A1 (en) System and method of fault tolerant reconciliation for control card redundancy
CN111581021B (zh) 应用程序启动异常的修复方法、装置、设备及存储介质
CN114675791B (zh) 一种磁盘处理方法、系统及电子设备
CN113220540A (zh) 业务管理方法、装置、计算机设备和存储介质
CN111273932B (zh) 一种部件刷新方法、系统及计算机可读存储介质
CN114003439B (zh) 数据备份方法、装置、设备及存储介质
CN105573872A (zh) 数据存储系统的硬盘维护方法和装置
CN111813604B (zh) 一种故障存储设备的数据恢复方法、系统及相关装置
CN106502825B (zh) 数据处理方法及装置
CN115599607A (zh) 一种raid阵列的数据恢复方法及相关装置
US20100169572A1 (en) Data storage method, apparatus and system for interrupted write recovery
CN112463444A (zh) 一种数据不一致修复方法及相关装置
CN111338574B (zh) 基于区块链的数据自修复方法、装置、介质及电子设备
CN115292092A (zh) 一种数据回滚方法、装置、设备及其存储介质
CN110110865B (zh) 一种设备维保方法、装置、服务器、设备及存储介质
CN110389863A (zh) 一种数据恢复方法、装置、设备及计算机可读存储介质
CN110399098A (zh) 一种数据处理方法及电子设备
CN116991710B (zh) 自动测试方法及其系统、电子设备、存储介质
CN115904819B (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
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150422

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150422

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.