CN102567143B - 前摄错误扫描及隔离的错误校正 - Google Patents

前摄错误扫描及隔离的错误校正 Download PDF

Info

Publication number
CN102567143B
CN102567143B CN201110426176.XA CN201110426176A CN102567143B CN 102567143 B CN102567143 B CN 102567143B CN 201110426176 A CN201110426176 A CN 201110426176A CN 102567143 B CN102567143 B CN 102567143B
Authority
CN
China
Prior art keywords
volume
damage
data structure
file system
processing
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
CN201110426176.XA
Other languages
English (en)
Other versions
CN102567143A (zh
Inventor
S.C.哈夫瓦拉
N.R.克里斯蒂安森
J.D.斯林万
陈永康
C.A.巴克豪斯
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 CN102567143A publication Critical patent/CN102567143A/zh
Application granted granted Critical
Publication of CN102567143B publication Critical patent/CN102567143B/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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • 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/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及前摄错误扫描及隔离的错误校正。用于文件***卷错误检测的处理和用于结果的错误校正的处理被分开,以支持***可用性和用户满意度。在卷保持在线时,前摄地扫描用于存储数据结构的文件***卷以搜索卷上的错误或损坏。根据标识的错误的严重性,错误校正调度和/或按照文件***管理员和/或用户的确定,调度以修正找到的错误,即,点校正,以帮助维持最小的用户和文件***的影响。当初始化点校正时,每次使得一个文件***卷离线以校正。点校正验证离线卷先前记录的损坏,且如果独立地被验证,则尝试校正先前标注的损坏。仅在验证及尝试校正先前标注的卷损坏所必需的时间,将卷保持离线。

Description

前摄错误扫描及隔离的错误校正
背景技术
文件***利用数据结构(也被称为文件***盘上格式)来维护和组织非易失性(即,永久性)的存储器(例如,卷、盘、硬驱动器等)上的数据。文件***访问和解释这些数据结构以为用户和应用、或过程或计算机程序(例如,当执行软件指令或计算机代码时)存储和检索数据。
当前,当在正常的应用或用户发起的处理期间有访问和/或解释有故障的数据结构的尝试时,在文件***数据结构中发现错误(即损坏)。在正常处理期间,在这样的错误检测的情况下,一般在不方便的和中断的时间(即,当用户和/或应用正尝试访问和/或使用有故障的数据结构时)发现标识的错误。即使有在线隔离和校正报告的错误的努力(即,自愈式支持***),除非使得卷离线,否则并不能解决所遇到的一些数量的损坏。而且在卷离线时,其上以其数据结构存储的数据和信息对于任何用户或其他应用而言是不可用的。这些离线时段可能是漫长的,进一步降低***性能和用户满意度。因此,损坏检测的时机和后续的校正尝试本身对于正常的***处理而言是相对中断的。
当整个文件***对于用户和其他应用保持不可用(即,离线),而进行***存储卷的检查时,在***启动期间,也可能发现数据结构损坏。当用户和其他应用被排除访问***卷时,在开启时产生(entail)错误检查的这些启动事件可能是耗时的,导致进一步的性能降级和用户不满意。
因此,期望的是,利用最小化对于***性能和用户满意度的影响的处理,对于潜在的***卷损坏进行前摄扫描。也将期望的是,缩短校正所标识的需要离线处理的卷损坏所需的时间。此外,也将期望的是, 将扫描卷损坏的处理和校正标识的损坏的处理分开, 以减少当***卷对于用户和其他处理而言不可用的停机时间(downtime)量。
发明内容
提出本发明内容,以简化的形式介绍以下在具体实施方式中进一步描述的所选概念。本发明内容既不意图标识要求保护的主题的关键特征或重要特征,也不意图被用于辅助确定要求保护的主题的范围。
此处讨论的实施例包括用于针对文件***的卷的前摄错误或损坏检测和点损坏处理的***和方法。
在实施例中,针对文件***的卷执行错误扫描,以便在其上前摄标识损坏。在实施例中,前摄错误扫描处理包括生成针对文件***的卷的快照,并在卷的快照中的数据结构上执行动作,以标识现存的损坏。在实施例中,前摄错误扫描处理执行,同时文件***卷保持在线并对于其他用户和任务而言可访问。
在实施例中,进行尝试以解决在前摄错误扫描处理期间检测的损坏,同时文件***卷保持在线并对于其他用户和任务而言可访问。
在实施例中,记录在前摄错误扫描处理期间检测的并保持未解决的损坏,以用于后续的补救这些错误的高效尝试。
在实施例中,除了在前摄错误扫描处理期间外,在适合的时间执行点损坏校正。在实施例中,在其上有先前确定的损坏的卷上执行点损坏校正。在实施例中,每次在一个卷上执行点损坏校正,同时该一个卷被保持离线且文件***的所有其他卷保持在线和可访问。在实施例中,执行点损坏校正以尝试仅校正卷上在以前检测到的损坏。
附图说明
现在将参照其意图例示而非限制的特定实施例和例子的附图,描述这些和其他特征,附图中:
图1描绘了实施例文件***,其包括前摄错误扫描和点损坏校正。
图2A-2B例示了用于文件***数据结构的在线前摄错误扫描的实施例逻辑流。
图3描绘了示例损坏日志条目。
图4A-4B例示了用于文件***卷损坏的点校正的实施例逻辑流。
图5是具有处理软件(即,程序代码,或指令)能力的示例基本计算装置的框图。
具体实施方式
在以下描述中,为了解释的目的,阐述了许多的具体细节,以便提供此处描述的实施例的全面理解。然而,本领域技术人员清楚的是,可实践实施例而无需这些具体的细节。在其他情况中,或简单引用或以框图形式示出公知结构和装置,以便避免不必要的费解。全文使用的任何和所有标题仅便于解释起见而非用于任何限制用途。
图1描绘了具有文件***管理器110的实施例文件***100。在一个实施例中,文件***管理器110是软件应用任务,其具有管理文件***100以帮助确保正确的处理和操作的能力。
在一个实施例中,文件***100具有一个或多个卷140,其以数据结构存储供处理应用、任务、程序、例程等(此处统称为处理应用170)和用户180使用的数据。在一个实施例中,一个卷140是***卷140。
在实施例中,访问文件***100的一个或多个卷140的处理应用或任务170可以是文件***100的一部分和/或与文件***100分开。
实施例文件***100具有前摄错误扫描器组件120。在一个实施例中,前摄错误扫描器120是由文件***100启动以执行的软件应用任务,并具有前摄扫描(即,检查)与存储在文件*** 的卷140上的数据结构相关联的错误或损坏的能力。在一个实施例中,前摄错误扫描器120执行被设计为标识(即,检测)在文件***100的卷140上的损坏的动作。在该实施例的一个方面中,这些动作包括读取卷140的数据结构,并检查卷的数据结构是否内部一致,或以其他方式验证卷的数据结构是内部一致的。
在一个实施例中,前摄错误扫描器120操作,同时文件***的卷140保持在线,并且因此,在前摄错误扫描器120正在执行时,,文件***的卷140 的每一个可用于由其他应用或用户180使用。因此,在一个实施例中,虽然前摄错误扫描器120执行文件***100的具体卷140的在线扫描花费的时间量与扫描时卷140上驻留的文件数目成比例,正在被扫描的卷140保持在线并可用于其他用途。在该实施例中,前摄错误扫描器120处理不影响正常的文件***100的可用性。
在一个实施例中,在检测到文件***100的卷140中的损坏时,启动或以其他方式调用前摄错误扫描器120以运行(即,执行)。在该实施例的一个方面中,当在卷140中遇到损坏时,文件***管理器110调用前摄错误扫描器120以执行。
在第二实施例中,如果先前在文件***100的至少一个卷140中已检测到损坏,则在标识的时间间隔启动前摄错误扫描器120以运行。在该第二实施例的一个方面中,当在文件***100的至少一个卷140中已检测到损坏时,文件***管理器110在预定周期时间间隔调用前摄错误扫描器120以执行。
在第三实施例中,如由***管理员180或用户180(此处也统称为用户180)编程的,文件***管理器110将前摄错误扫描器120调度为按某一时间间隔(例如,一天一次在午夜、一周一次在周日晚上十一点三十分、一月一次在当月第一个周日晚上一点等)被调用。在该第三实施例的一个方面中,在文件***100内建立有意义的默认值,以确保在其他时间间隔未建立或未正确建立(例如,尚未由用户180编程),不适合的或错误的(例如,仅一年一次、每分钟一次等),已被非故意地删除或损坏等情况下前摄错误扫描器120按某一时间间隔(例如,至少一月一次等)执行。
在第四实施例中,当用户180命令时,起动(即,调用以执行)前摄错误扫描器120。在该第四实施例的一个方面中,用户180可发出命令,或提供某输入(例如,请求)(此处统称为命令),以供前摄错误扫描器120执行。在该第四实施例的一个方面中,文件***管理器110接收用户命令。在该第四实施例的一个方面中,在接收到用户命令后,文件***管理器110调用前摄错误扫描器120以执行。
在一个实施例中,前摄错误扫描器120扫描所有文件***的卷140上的损坏。在替代实施例中,前摄错误扫描器120仅扫描文件***100的以前已在其上标识出损坏并仍存在损坏的卷140上的损坏。
在一个实施例中,文件***100的每一卷140具有相关联的卷损坏日志150(例如$corrupt文件)(此处也被称为错误校正日志、卷损坏日志和/或损坏日志150),其中记录或以其他方式表示相应卷140的确认的(即,验证的)数据结构错误。在其他实施例中,通过使用其他机制来报告确认的数据结构错误(此处也被称为卷错误或卷损坏)(例如,利用单个卷损坏日志150报告文件***100的所有卷140的所有卷错误,维护和写入表格以保持跟踪卷错误等)。
在一个实施例中,每一卷140具有相关联的脏比特或标志145,其在被设置时,表示卷140具有尚未被校正或以其他方式解决的至少一个验证的(即,真的)、现存的损坏。
实施例文件***100具有点损坏校正器组件130。在一个实施例中,点损坏校正器130是由文件***100启动以执行的软件应用任务,并具有尝试校正卷损坏的能力。在一个实施例中,点损坏校正器130操作,同时要被修复或以其他方式校正的相关联的卷140离线。
在一个实施例中, 点损坏校正器130仅保持卷140离线长达有必要让点损坏校正器130尝试修复以前标识的与其上存储的数据结构相关联的卷损坏的时间。因此,在一个实施例中,虽然点损坏校正器130处理卷140以尝试补救其损坏而花费的时间量与其上先前标识的损坏数目成比例,正在被处理的卷140仅在点损坏校正器130尝试校正卷的已知损坏的必要时间中才离线。在该实施例中,点损坏校正器130通过仅处理已知的错误条件,而非执行离线卷140的完整错误扫描和/或尝试发现和/或校正在离线卷140上的新损坏,来最小化卷140离线的时间。
在一个实施例中,文件***管理器110调度点损坏校正器130的执行,以最小化对于***处理、可用性和用户满意度的影响。在一个实施例中,文件***管理器110利用来自用户180的输入调度点损坏校正器130的执行。在一个实施例中,基于标识的卷损坏的性质和严重性,文件***管理器110调度点损坏校正器130的执行。
在一个实施例中,文件***100具有事件日志190,经由例如事件日志条目195报告事件(例如,验证的损坏、损坏校正、未解决的损坏等)。在一个实施例中,利用事件日志条目195,用于前摄错误扫描器120和文件***管理器110之间的通信,以及点损坏校正器130和文件***管理器110之间的通信。在一个实施例中,事件日志条目195被文件***110用来向(多个)***管理员180和/或用户180通知事件(例如,验证的损坏、损坏校正、未解决的损坏等)。在一个实施例中,文件***100利用事件日志条目195,用于文件***100的分析、维护、错误检测和校正等。在实施例中,使用事件日志条目195,用于附加的、其他的、附加的和/或其他的任务组合。
实施例文件***100具有损坏自愈器组件160。在一个实施例中,损坏自愈器160是软件应用任务,其被启动执行以尝试校正卷损坏并对其他应用(例如,处理任务170,和用户180)具有最小的影响。在该实施例的一个方面中,前摄错误扫描器120激活损坏自愈器160以进行处理。在该实施例的一个替代方面中,文件***管理器110激活损坏自愈器160以进行处理。在该实施例的其他替代方面中,其他文件***100组件和或文件***100组件的其他组合激活损坏自愈器160以进行处理。
在一个实施例中,损坏自愈器160操作,同时要被修复或以其他方式校正的相关联的卷140在线并对其他应用和用户180保持可用。
图2A-2B例示了文件***100的实施例前摄错误扫描器120的实施例逻辑流。尽管针对此处描写的***进行了以下讨论,但可在其他***中实现描述的操作。此处描述的操作不限于示出的顺序。另外,在其他替代实施例中,可执行更多或更少的操作。进一步地,可通过实施例前摄错误扫描器120 通过或实施例前摄错误扫描器120与一个或多个其他***实体、组件和/或应用或任务相结合执行描绘的操作。
参照图2A,在一个实施例中,前摄错误扫描器120在文件***205中标识卷或第一卷,以前摄检查错误或损坏。在该实施例的一个方面中,前摄错误扫描器120将仅扫描(即,检查损坏)文件***100的先前已在其上标识出且仍然存在损坏的那些卷140。在该实施例的另一方面中,前摄错误扫描器120将扫描文件***100的所有卷140。
在一个实施例中,前摄错误扫描器删除所标识的(多个)卷错误日志210(例如,卷损坏日志150)中的当前条目。在一个实施例中,因为当前摄错误扫描器120将扫描(即,检查)当前卷140的损坏,卷错误日志中的当前损坏条目是不需要的,且事实上最终将是重复的。这是因为在一个实施例中,作为前摄错误扫描器处理的结果,将在卷损坏日志150中报告前摄错误扫描器120在卷140中暴露、或以其他方式发现或遇到的损坏。
在一个替代实施例中,前摄错误扫描器120不删除所标识的(多个)卷错误日志中的当前条目。在该替代实施例的各个方面中,前摄错误扫描器120将所标识的(多个)卷损坏日志中的当前条目表示(denote)或以其他方式标注(label)或标识为不相关的、无效的、旧的或非当前的。
在第二替代实施例中,前摄错误扫描器120删除或以其他方式使标识的(多个)卷错误日志中的条目无效,该卷错误日志在前摄错误扫描器120开始处理所标识的卷140时但仅在前摄错误扫描器120完成扫描当前标识的卷140的错误之后存在。在该第二替代实施例中,即使前摄错误扫描器120未能完成其对当前标识的卷140的扫描,现存的错误日志条目仍将用于后续的文件***处理(例如,对应损坏的尝试校正)。
在一个实施例中,前摄错误扫描器生成当前标识卷215的快照。在一个实施例中,此后,前摄错误扫描器扫描卷的快照的损坏,同时文件***和实际标识的卷保持在线并对于其他应用和用户220而言可访问。
在判决框225,确定是否已在当前正被处理的卷快照中找到损坏。如果没有,则在一个实施例中,在判决框230,确定前摄错误扫描器是否处于卷快照的结尾(即,已完成扫描当前卷快照)。如果没有,则在一个实施例中,前摄错误扫描器继续扫描当前卷快照的数据结构损坏255。
然而,如果在判决框230,已完全地扫描了当前卷快照,则在一个实施例中,前摄错误扫描器因为现在不再需要而删除卷快照235。
在一个实施例中,在判决框240,确定是否存在要被扫描损坏的、文件***的任何其他卷。在该实施例的一个方面中,在判决框240,确定是否存在当前具有在其上标识的尚未解决的损坏的、文件***100的任何其他卷140。在该实施例的一个替代方面中,在判决框240,确定是否存在前摄错误扫描器120在其当前执行期间尚未处理的、文件***100的任何其他卷140。
如果在判决框240,确定此时不再有将要被扫描损坏的文件***的卷,则在一个实施例中,前摄错误扫描器已完成其当前处理并结束250。
然而,如果在判决框240,仍有文件***的其他卷要被扫描损坏,则在一个实施例中,前摄错误扫描器在文件***中标识下一个卷以扫描损坏245。
再次参照判决框225,如果在当前正被处理的卷的快照中找到损坏,则在一个实施例中,并参照图2B,如以下参考图3进一步讨论的,损坏被归类260。
在一个实施例中,调用或者以其他方式激活损坏自愈器处理、或应用或任务以处理,以尝试补救,或者以其他方式校正当前标识的卷损坏160。在一个实施例中,前摄错误扫描器120激活损坏自愈器160以处理当前标识的卷损坏。在一个替代实施例中,前摄错误扫描器120通知文件***管理器110标识的卷损坏,且文件***管理器110激活损坏自愈器160。
在一个实施例中,在判决框265,确定是否已补救或者以其他方式改正(rectify)卷损坏。如果是,则在一个实施例中,生成损坏事件280的事件通知。在一个实施例中,事件通知是在标识损坏被校正的文件***事件日志190中生成的条目195。
在一个实施例中,该事件通知可被***管理员180、用户180、文件***管理器110和/或其他文件***管理任务、其他处理任务170等用于例如复查(review)和监控文件***100处理和/或损坏历史、文件***维护和/或校正等。
如果在判决框265,损坏自愈器160未补救卷损坏,则在一个实施例中,前摄错误扫描器在错误日志(例如,卷损坏日志)中针对快照正在被扫描的卷生成条目(270)。在一个实施例中,生成的错误日志条目标识前摄错误扫描器120针对其快照正在被处理的当前卷140 发现的损坏。
在一个替代实施例中,前摄错误扫描器120通知文件***管理器110现存的损坏,且文件***管理器110在相应卷损坏日志150中生成条目。
在处理发现的卷损坏之后,无论其是否由损坏自愈器改正,在一个实施例中,在图2A描绘的判决框230,作出关于前摄错误扫描器是否在卷快照结束时(即,已完成扫描当前卷快照)的确定。
在一个实施例中,一旦前摄错误扫描器120已完成处理,而且,如果在针对前摄错误扫描器120刚处理的任何卷140的任何卷损坏日志150中有标识的任何损坏,则文件***管理器110生成损坏事件的事件通知。在一个实施例中,事件通知是在标识文件***100的至少一个卷140中存在损坏的文件***事件日志190中生成的条目195。
在一个实施例中,文件***管理器110生成该事件通知,以告知(多个)***管理员180和/或用户180在文件***的至少一个卷140中存在损坏。在一个实施例中,文件***管理器110使用事件通知向(多个)***管理员180和/或用户180输出用于通知所发现的、现存的(多个)损坏的消息(例如,经由在计算装置显示屏上的弹出文本框)。
在一个实施例中,事件通知可以被***管理员180、用户180、文件***管理器110和/或其他文件***管理任务、其他处理任务170等用于例如复查和监控文件***100处理和/或损坏历史、文件***维护和/或校正等。
如前所述,在一个实施例中,前摄错误扫描器120对所发现的未能经由例如损坏自愈器160在线补救的卷损坏进行归类。参照图3,实施例卷损坏记录300包括损坏类型字段320。在一个实施例中,文件***100组件生成损坏类型字段320的条目,该文件***100组件发现卷损坏并生成被写入卷损坏日志150的卷损坏记录300,例如前摄错误扫描器120。在一个实施例中,当前摄错误扫描器120扫描卷快照并发现未能由损坏自愈器160成功补救的损坏时,前摄错误扫描器120生成损坏类型字段320的条目。
在替代实施例中,在前摄错误扫描器120标识卷损坏之后,其他文件***100组件生成损坏类型字段320的条目,例如,文件***管理器110等生成损坏记录300的损坏类型字段320。
在一个实施例中,标识用来对卷损坏进行归类或者以其他方式标注的类别集合360。在一个实施例中,类别集合360中存在有限数目的类别,以帮助提升卷损坏的高效的和有意义的处理。
在一个实施例中,类别360的集合包括一般(general)损坏类别302。在一个实施例中,一般损坏类别302表明某一类型的损坏被注意并表示保证针对错误的整个卷140的审查。
在一个实施例中,类别集合360中包括孤儿(orphan child)类别304。在一个实施例文件***100中,在每个卷140上存储一个或多个文件的总集。在一个实施例中,卷140上存储的每个文件具有一个或多个记录,且每个记录由一个或多个片段构成。在一个实施例中,每个片段由每个包含数据的一个或多个字段构成。在一个实施例中,文件记录片段是可从卷140检索的最小元素。在一个实施例中,每个文件记录由根(root)、基础(base)、父(parent)等片段构成。在一个实施例中,每个文件记录也可包含一个或多个从属片段(即,子片段)。在一个实施例中,孤儿类别304 表明正在使用并包含可行(viable)数据的子文件记录片段被定位(即,有现存的正在使用的从属文件记录片段),但其基础、或根、文件记录片段并未在使用,也未将子文件记录列为子(child)。
在一个实施例中,类别集合360中包括坏簇(bad cluster)类别306。在实施例文件***100中,簇是卷文件的盘空间分配的单位。为了减少文件***卷140的管理开销,实施例文件***100不分配单独的盘扇区而是连续的扇区组,被称为簇。在一个实施例中,簇是可向卷140上的文件分配的盘空间的最小逻辑量。在一个实施例中,坏簇类别306表明在访问一簇非驻留的流数据时标识出故障扇区。
在一个实施例中,流数据是用户数据。在一个实施例中,在文件记录中直接存储流数据。在一个实施例中,非驻留流数据是存储在其自己的簇中而非直接存储在文件记录中的用户数据。在一个实施例中,坏簇类别306表明其是存储非驻留流数据的有损坏的用户数据簇。
在一个实施例中,类别集合360中包括坏空闲簇类别308。在一个实施例中,坏空闲簇类别308表明在访问卷140上的空闲的(即,至今未被使用)簇期间注意到故障簇。
在一个实施例中,类别集合360中包括交叉链接损坏类别312。在一个实施例中,交叉链接损坏类别312表明找到两个不同的盘区(extent)(例如,两个不同的卷文件)正在使用逻辑重叠的簇(即,正在使用同一或同一部分的卷的盘空间)。
在一个实施例中,类别集合360中包括安全描述符损坏类别314。在一个实施例中,安全描述符损坏类别314表明在安全描述符流中注意到某一类型的损坏。在一个实施例中,针对卷140上文件的安全描述符流是与文件相关联的一个或多个安全属性(例如,授权访问规则)的集合。
在一个实施例中,类别集合360中包括无效安全标识(或id)类别316。在一个实施例中,无效安全标识类别316表明找到一个或多个文件记录具有在安全ID索引中不正确注册的非零安全ID。
在一个实施例中,类别集合360中包括索引属性损坏类别318。在一个实施例文件***100中,索引是用于提升文件***卷140的数据(即,对象)检索速度的一个或多个数据结构。在一个实施例中,索引属性定义或者以其他方式描述索引支持的文件的一个方面。在一个实施例中,索引属性损坏类别318表明在索引属性中找到使得必须删除与相应索引有关的所有属性的损坏。
在一个实施例中,类别集合360中包括索引条目损坏类别322。在一个实施例中,索引包含文件的名字,并指向文件***卷140上命名的文件。在一个实施例中,索引条目损坏类别322表明在指示的索引条目自身中有某一类型的损坏。
在一个实施例中,类别集合360中包括索引子树(subtree)损坏类别324。在一个实施例中,索引子树损坏类别324表明子树索引条目引用不存在的对象。
在一个实施例中,类别集合360中包括索引偏量损坏类别326。在一个实施例中,索引偏量损坏类别326表明索引条目是损坏的。在该实施例的一个方面中,索引偏量损坏类别326可进一步表明在同一索引框中每一个后续的索引条目是潜在损坏的。
在一个实施例中,类别集合360中包括索引次序损坏类别328。在一个实施例中,索引次序损坏类别328表明索引包含乱序的条目。
在一个实施例中,类别集合360中包括索引连接损坏类别332。在一个实施例中,索引连接损坏类别332表明索引条目引用不存在的对象(即,似乎有效的索引条目,然而未能引用任何对象)。在一个实施例中,索引连接损坏类别332表明一个或多个对象应有可能作为例如损坏的索引的恢复的结果而被***在索引中。
在一个实施例中,类别集合360中包括目录循环损坏类别334。在一个实施例文件***100中,目录用于将文件与其相应的文件名相关联。在一个实施例中,目录循环损坏类别334表明文件***名空间中找到目录循环,即,在标识目录的先辈(ancestor)(即,父)的卷140的目录中存在条目)。
在一个实施例中,类别集合360中包括簇分配损坏类别336。在一个实施例中,簇分配损坏类别336表明找到卷140上正在使用的但针对相应的卷被标记为空闲(即,未在使用)的簇。
在一个实施例中,卷损坏记录300的格式是相对紧凑的,以便节省空间,但是其也被设计为易于解析,以便利用其内容工作的应用(例如,实施例点损坏校正器130)可解译记录的内容而无需过于复杂的解串行操作。在一个实施例中,卷损坏记录300的格式还能通过最小的数据和/或应用的重新设计,灵活适应例如未来的扩展。
实施例卷损坏记录300具有可变长度的二进制格式。在一个实施例中,对卷损坏记录300的字段进行编码。在该实施例的一个方面中,利用小尾数字节(little endian byte)排序对卷损坏记录300的字段进行编码。
实施例卷损坏记录300具有头字段310,其包括唯一地标识具体的卷损坏记录300的实例标签。在一个实施例中,卷损坏记录300的头字段310还包括卷损坏记录300的长度(例如,以字节计)。
实施例卷损坏记录300包括调用堆栈标识字段330。在一个实施例中,调用堆栈标识字段330包含数据结构条目,其描述在检测到相应卷损坏时的内核调用堆栈。在一个实施例中,调用堆栈标识字段330包含文件标识id,其唯一地标识在检测到相应卷损坏时正在执行的源文件。在一个实施例中,调用堆栈标识字段330包含在检测到相应卷损坏时正在执行的源行号的标识。在一个实施例中,调用堆栈标识字段330包含用于标识在当检测到相应卷损坏时正在执行的代码库中的位置的唯一整数。
实施例卷损坏记录300包含二进制样本损坏字段340。在一个实施例中,二进制样本损坏字段340包含具有二进制数据的任意样本(其例示相应卷损坏)的数据结构条目。
图4A-4B例示了文件***100的实施例点损坏校正器130的实施例逻辑流。尽管对于此处描写的***进行了以下讨论,但可在其他***中实现所描述的操作。此处描述的操作不限于示出的顺序。另外,在其他替代实施例中,可执行更多或更少的操作。进一步地,可通过实施例点损坏校正器130或通过与一个或多个其他***实体、组件和/或应用结合的实施例点损坏校正器130执行所描绘的操作。
在一个实施例中,文件***管理器110激活或者以其他方式调用点损坏校正器130以进行处理。在一个实施例中,当用户180请求其调用时,激活点损坏校正器130。 在该实施例的一个方面,如此前参照图2B讨论的,用户180可请求或者以其他方式命令,在接收消息之后的特定时间激活点损坏校正器130,前摄错误扫描器120处理发起向用户180展示该消息。
在一个实施例中,在***启动时,当存在针对文件***100的至少一个卷140的损坏日志条目155时,点损坏校正器130也(或替代地)被激活。在文件***100是服务器文件***且快速开启(即,激活用于处理)服务器文件***是重要的一个实施例中,仅当存在***卷140的损坏日志条目155时才在服务器文件***启动时激活点损坏校正器130。在文件***100是服务器文件***的该实施例的各个方面中,在除了服务器文件***启动的其他时间(例如,在当存在针对至少一个卷140的至少一个损坏日志条目155时的所调度的维护时间表期间,在当存在针对至少一个卷140的至少一个损坏日志条目155时的所调度的错误校正时间表期间等),激活点损坏校正器130。
在文件***100是客户端文件***且易于管理和自动修复是重要的一个实施例中,在客户端文件***启动时,当存在针对客户端文件***100中的任何卷140的损坏日志条目155时,激活点损坏校正器130。
在一个实施例中,点损坏校正器130使得具有错误日志条目的卷离线(405);例如,在一个实施例中,点损坏校正器130使得在其对应的损坏日志(例如,$corrupt)150中具有至少一个条目的卷140离线405。
在一个实施例中,并使用当前正被处理的损坏日志条目中的信息,点损坏校正器尝试验证标识的记录的损坏410。
在判决框415,确定点损坏校正器是否已独立验证离线卷中的所记录的损坏。如果没有,则在一个实施例中,假定所标识的卷错误事实上不存在。在一个实施例中,点损坏校正器删除当前已经在处理的卷损坏日志条目(440)。
在一个实施例中,因为一些原因中的一个或多个,可能不能通过点损坏校正器130验证410先前标识的卷错误。这些原因可包括但不限于,在以前标识损坏(例如,通过前摄错误扫描器120)时和现在点损坏校正器130正在处理以验证损坏时之间,以这样的方式改变了卷140,而使得损坏不再存在;在点损坏校正器130执行之前,删除了具有先前标识的损坏的卷140的部分等。
在一个实施例中,在判决框450,确定是否还存在针对当前正被处理的卷损坏日志的卷损坏日志条目。如果有,则在一个实施例中,点损坏校正器在卷损坏日志中标识另一条目进行处理455,并且点损坏校正器利用新标识的损坏日志条目中的信息尝试验证所标识的日志损坏410。
如果在判决框415,点损坏校正器已独立验证了离线卷中的所记录的损坏,则在一个实施例中,点损坏校正器工作以解决所记录的损坏420。
在一个实施例中,在判决框425,确定点损坏校正器是否成功校正了相关联的卷的所记录的损坏。如果是,则在一个实施例中,点损坏校正器删除当前已经在处理的卷损坏日志条目(430)。
在一个实施例中,点损坏校正器生成校正的卷损坏的事件通知(435)。在一个实施例中,事件通知是在文件***事件日志190中生成的标识相应文件***卷140中损坏被校正的条目195。
在一个实施例中,报告通知可被***管理员180、用户180、文件***管理器110和/或其他文件***管理任务、其他处理任务170等用于例如复查和监控文件***100处理、校正动作和/或损坏历史等。
在一个实施例中,文件***管理器110还(或替代地)使用事件通知向(一个或多个)***管理员180和/或用户180输出通知所校正的损坏的消息(例如,经由在计算装置显示屏上的弹出文本框)。在一个替代实施例中,在执行点损坏校正器130之后,文件***管理器110使用在执行点损坏校正器130期间生成的所有事件通知向(一个或多个)***管理员180和/或用户180输出通知所校正的损坏的消息或一系列消息(例如,经由在计算装置显示屏上的弹出文本框)。
在一个实施例中,在判决框450,确定是否还存在当前正被处理的卷损坏日志的卷损坏日志条目。
如果在判决框425,点损坏校正器未能解决当前正在处理的记录的损坏,则在一个实施例中,点损坏校正器130通知文件***管理器应当执行完整的离线卷一致性检查,以解决仍存在的卷损坏445。在一个实施例中,完整 离线卷一致性检查(此处也被称为完整检查盘动作)包含排他性地锁闭(即,使得离线)其上具有未解决的数据结构损坏的文件***100的卷140,并在其上执行完整的诊断和任何必要的补救处理。在一个实施例中,完整的 检查盘动作的时间长度依赖于具有未解决损坏的卷140的数目和损坏的数目及严重性。在实施例中,完整的检查盘动作可能是耗时的。在一个实施例中,完整的 检查盘动作是解决任何仍然现存的卷损坏的最后的努力手段。
在一个实施例中,在被通知应当执行完整的离线卷一致性检查时,文件***管理器110设置文件***状态(例如,设置适当的卷的脏比特145),其将触发或者以其他方式使得文件***100在下一次***启动时在卷140上执行完整的检查盘动作。
在一个实施例中,在被通知应当在文件***100的卷140上执行完整的离线卷一致性检查时,文件***管理器110向***管理员180或用户180通知存在其上具有至少一个未解决的损坏的文件***100的卷140。在该实施例的一个方面中,管理员180或用户180可请求或者以其他方式命令文件***100立即或在某一其他管理员180或用户180指定的时间,在具有未解决的损坏的卷140上执行完整的检查盘动作。
在一个实施例中,在判决框450,确定是否还存在当前正被处理的卷损坏日志的卷损坏日志条目。
一旦点损坏校正器通知文件***管理器需要对卷445进行完整的离线卷一致性检查,或如果在判决框450不再存在当前正被处理的损坏日志的卷损坏日志条目,则在一个实施例中,并参照图4B,点损坏校正器将当前正被处理的卷恢复为在线(475)。在该实施例的一个方面中,当前恢复在线的卷140此后可供其他应用(例如,处理任务170和用户180)使用。
在一个实施例中,在判决框480,确定是否还存在任何其他***卷的当前在其中具有有效条目的损坏日志。如果是,则在一个实施例中,点损坏校正器标识具有损坏日志条目的另一卷(485),并再次参照图4A,排他性地锁闭新标识的卷,即,使得卷离线(405)。
如果在图4B的判决框480,当前不再存在具有条目的损坏日志,则在一个实施例中,点损坏校正器处理结束(490)。
计算装置***配置
图5是框图,其例示了可在其上实现实施例的示例计算装置***500。计算装置***或计算装置的例子500包括但不限于服务器、服务器***、计算机,例如,台式计算机、膝上计算机(此处也被称为膝上型计算机、笔记本计算机等)等。
实施例计算装置***500包括用于传送信息的总线505或其他机制,和用于处理信息的与总线505耦合的处理单元510(此处也被称为处理器510)。计算装置***500还包括***存储器515,其可以是易失性的或动态的,例如随机存取存储器(RAM),非易失性的或静态的,诸如只读存储器(ROM)或闪存,或两者的某一组合。***存储器515被耦合至总线505,用于存储处理单元510执行的信息和指令,且也可被用于在处理器510执行指令期间存储临时变量或其他中间信息。***存储器515经常包含操作***和一个或多个程序、或应用、和/或软件代码,且还可包括程序数据。
在一个实施例中,诸如磁或光盘、固态驱动器、闪速驱动器等的存储装置520也被耦合至总线405,用于存储包括程序指令代码和/或数据(例如,卷140)的信息。在实施例计算装置***500中,存储装置520是计算机可读储存器或机器可读储存器520。
实施例计算装置***500一般包括一个或多个显示装置535,诸如但不限于显示屏(例如,阴极射线管(CRT)或液晶显示器(LCD))、打印机、和一个或多个扬声器,用于向计算装置的***管理员180和用户180提供信息。实施例计算装置***500一般还包括一个或多个输入装置530,诸如但不限于键盘、鼠标、跟踪球、笔、声音输入装置,和触摸输入装置,***管理员180和用户180可利用其向处理器510传送信息和命令选择。所有这些装置在本领域中是已知的且无需在此详细讨论。
处理器510执行一个或多个程序的一个或多个序列、或应用、和/或***存储器515中包含的软件代码指令。可从包括但不限于存储装置520的另一计算装置可读介质读取这些指令至***存储器515中。在替代实施例中,硬连线电路可被用于代替软件指令或与软件指令结合。实施例计算装置***500环境不限于硬件电路和/或软件的任何特定的组合。
此处使用的术语“计算装置可读介质”指的是可参与向处理器510提供程序、或应用、和/或软件指令用于执行的任何介质。这样的介质可采用许多形式,包括但不限于存储介质和传输介质。存储介质的例子包括但不限于RAM、ROM、EEPROM、闪存、固态驱动器、CD-ROM、USB棒驱动器、数字多功能盘(DVD)、磁带盒、磁带、磁盘存储器或任何其他磁介质、软盘、柔性盘、打孔卡、纸带、或有洞的模式的任何其他物理介质、存储芯片或卡带。实施例计算装置***500的***存储器515和存储装置520是存储介质的进一步例子。传输介质的例子包括但不限于诸如同轴电缆、铜线和光纤的有线介质,以及诸如光学信号、声学信号、RF信号和红外信号的无线介质。
实施例计算装置***500还包括耦合至总线505的一个或多个通信连接550。(一个或多个)实施例通信连接550提供从计算装置***500耦合至其他计算装置的双向的数据通信,该其他计算装置在局域网(LAN)565和/或包括万维网、或因特网570和各种其他通信网络575(例如,基于SMS的网络、电话***网络等)的广域网(WAN)上。(一个或多个)通信连接550的例子包括但不限于综合业务数字网(ISDN)卡、调制解调器、LAN卡和能够发送和接收电的、电磁的、光学的、声学的、RF或红外信号的任何装置。
实施例计算装置***500接收的通信可包括程序、或应用、和/或软件指令和数据。实施例计算装置***500接收的指令可由处理器在接收其时执行,和/或存储在存储装置520或其他非易失性存储装置中用于以后的执行。
结论
尽管此处描述了各种实施例,这些实施例已经仅以例子的方式呈现,且不意图限制要求保护的主题的范围。处于以下权利要求的范围内的许多变化是可能的。在查看此处的说明书、附图和权利要求之后,这样的变化是清楚的。因此,除在以下权利要求及其等价物中定义之外,要求保护的主题的宽度和范围是不受限制的。

Claims (15)

1.一种用于文件***卷损坏维护处理的方法,其中所述文件***(100)包括至少一个卷(140),所述卷包括至少一个数据结构,所述方法包括:
处理所述文件***的卷,其中所述处理包括标识存在于所述卷内的至少一个数据结构损坏,且其中当维持所述卷在线时执行所述处理(120);
尝试补救在所述卷的处理期间标识的数据结构损坏,其中当维持所述卷在线时执行补救所述数据结构损坏的尝试(160);
生成针对在所述卷的处理期间标识的数据结构损坏的指示(270);
使得所述卷在生成针对数据结构损坏的所述指示之后的一个时间离线(405);
在所述卷保持离线时,处理以尝试利用所生成的针对所述数据结构损坏的指示校正所述结构数据损坏(420);
在校正所述数据结构损坏之后,使所述卷恢复在线(475);以及
在未能校正所述数据结构损坏之后,使所述卷恢复在线(475)。
2.如权利要求1所述的用于文件***卷损坏维护处理的方法,还包括:
在第一时间间隔期间,处理所述文件***的每一卷,其中所述处理包括执行被设计为标识当前在卷上存在的数据结构损坏的动作,且其中当维持所述文件***的所有卷在线时执行所述文件***的每一卷的所述处理(120);
尝试补救在所述第一时间间隔期间在所述文件***的卷的所述处理期间标识的至少一个数据结构损坏,其中当维持具有所述数据结构损坏的所述卷在线时执行补救所述数据结构损坏的尝试(160);以及
生成针对在卷上的每个数据结构损坏的指示,所述数据结构损坏在所述第一时间间隔期间在每一卷的所述处理期间被标识且未在所述第一时间间隔期间被补救(270)。
3.如权利要求2所述的用于文件***卷损坏维护处理的方法,还包括:
对于第一卷,在所述第一时间间隔期间已生成针对所述第一卷的数据结构损坏的至少一个指示,当维持所有其他文件***卷在线时,使得所述第一卷在所述第一时间间隔之后的第二时间间隔离线(405);
在所述第二时间间隔期间,处理所述第一卷以尝试校正至少一个数据结构损坏,所述数据结构损坏存在于该卷上且先前生成了针对其的数据结构损坏的指示(420);以及
在所述第二时间间隔的结束之前,使所述第一卷恢复在线,其中所述第二时间间隔的结束包括当已进行补救所述至少一个数据结构损坏的尝试时的时间,所述数据结构损坏存在于所述第一卷上且先前生成了针对其的数据结构损坏的指示(475)。
4.如权利要求3所述的用于文件***卷损坏维护处理的方法,其中所述文件***(100)还包括针对所述文件***(100)的每一卷(140)的卷损坏日志(150),且其中针对在卷(140)上标识的数据结构损坏生成的指示包括所述卷损坏日志(150)中针对具有所标识的数据结构损坏的卷(140)的条目(155)。
5.如权利要求3所述的用于文件***卷损坏维护处理的方法,其中所述第二时间间隔是预定的错误校正时间间隔,用于处理(130)至少所述第一卷(140)以尝试校正(420)所有数据结构损坏,所述数据结构损坏存在于所述第一卷(140)上且先前生成了(270)针对其的数据结构损坏(155)的指示。
6.如权利要求3所述的用于文件***卷损坏维护处理的方法,其中所述第二时间间隔是预定的错误校正时间间隔,用于处理已标识数据结构损坏(155)的所有卷(140)以尝试校正数据结构损坏,所述数据结构损坏存在于所述文件***(100)的每一卷(140)上且先前生成了(270)针对其的数据结构损坏(155)的指示,还包括:
对于先前已生成针对其的至少一个数据结构损坏的每一卷,当维持所有其他文件***卷在线时,使得所述卷在所述第二时间间隔期间离线(405);
在所述第二时间间隔期间,处理每一卷以尝试校正至少一个数据结构损坏,所述数据结构损坏存在于该卷上且先前生成了针对其的数据结构损坏的指示(420);以及
在所述第二时间间隔的结束之前,在处理所述卷以尝试校正存在于所述卷上且先前生成了针对其的数据结构损坏的指示的至少一个数据结构损坏之后且在使得任何其他卷在所述第二时间间隔期间离线之前,使每一卷恢复在线(475)。
7.如权利要求6所述的用于文件***卷损坏维护处理的方法,还包括在所述第二时间间隔期间处理(130)每一卷(140)以尝试校正(420)每一个现存的数据结构损坏,所述数据结构损坏存在于该卷(140)上且先前生成了针对其的数据结构损坏(155)的指示(270)。
8.如权利要求7所述的用于文件***卷损坏维护处理的方法,其中所述第二时间间隔的结束包括当已处理每一卷以尝试校正存在于所述卷上且先前生成了针对其的数据结构损坏的指示的所有数据结构损坏的时间,所述每一卷具有先前生成了针对其的数据结构损坏的指示的任何现存的数据结构损坏(480)。
9.如权利要求3所述的用于文件***卷损坏维护处理的方法,其中按照所述文件***(100)的用户(180)的尝试校正(420)至少一个数据结构损坏的请求启动所述第二时间间隔,所述数据结构损坏存在于所述第一卷(140)上且先前生成了针对其的数据结构损坏(155)的指示(270)。
10.如权利要求1所述的用于文件***卷损坏维护处理的方法,还包括对存在于所述卷(260)内的数据结构损坏进行归类,其中被分配给现存的数据结构损坏的类别(320)包括一组预定数目的损坏类别(360)中的一个,且其中被分配给所述现存的数据结构损坏的所述类别(320)用于辅助尝试校正所述数据结构损坏的处理(130)。
11.一种支持前摄损坏检测(120)和点损坏校正(130)的文件***(100),所述文件***(100)包括:
至少一个卷(140),其中所述至少一个卷(140)包括至少一个数据结构;
前摄错误扫描器(120),具有处理所述文件***(100)的所述卷(140)以检测具有所检测的数据结构损坏的现存的数据结构损坏的能力,其中所述前摄错误扫描器(120)当同时维持所述文件***(100)的所有卷(140)在线时进行处理,且其中所述前摄错误扫描器(120)在前摄错误扫描器时间间隔期间进行处理;
损坏自愈器(160),具有处理所检测的数据结构损坏以当维持所述文件***(100)的卷(140)在线时尝试补救所述文件***(100)的所述卷(140)上的所检测的数据结构损坏的能力,且其中未由所述损坏自愈器(160)的所述处理补救的所检测的数据结构损坏包括所标识的数据结构损坏;以及
点损坏校正器(130),具有处理所述文件***(100)的所述卷(140)以尝试校正所标识的数据结构损坏的能力,其中所述点损坏校正器(130)处理离线的卷(140),其中所述点损坏校正器(130)在时间间隔期间的一个时间处理一个卷(140),同时在同一时间间隔期间维持所述文件***(100)的所有其他卷(140)在线,且其中所述点损坏校正器(130)在不同于前摄错误扫描器时间间隔的时间间隔期间进行处理。
12.如权利要求11所述的支持前摄损坏检测(120)和点损坏校正(130)的文件***(100),还包括文件***管理器(110),所述文件***管理器(110)具有调用所述前摄错误扫描器(120)处理所述文件***(100)的所述卷(140)以检测现存的数据结构损坏的能力,且还具有调用所述点损坏校正器(130)处理所检测的数据结构损坏以尝试补救(420)所述文件***(100)的卷(140)上的所检测的数据结构损坏的能力。
13.如权利要求12所述的支持前摄损坏检测(1200)和点损坏校正(130)的文件***(100),其中当在所述文件***(100)的至少一个卷(140)上存在标识的数据结构损坏(155)时,在***启动时间调用所述点损坏校正器(130)进行处理。
14.如权利要求12所述的支持前摄损坏检测(120)和点损坏校正(130)的文件***(100),其中所述文件***(100)具有至少一个用户(180),且其中在用户(180)针对具有先前所标识的数据结构损坏(155)的所述文件***(100)的至少一个卷(140)请求尝试校正(420)至少一个现存的数据结构损坏时,调用所述点损坏校正器(130)进行处理。
15.如权利要求11所述的支持前摄损坏检测(120)和点损坏校正(130)的文件***(100),还包括针对所述文件***(100)的每一卷(140)的卷损坏日志(150),其中在所述前摄错误扫描器(120)检测到(225)在维持所述卷(140)在线时未能被成功补救(265)的所述卷(140)上的现存的数据结构损坏时,生成(270)卷损坏日志(150)的条目(155)。
CN201110426176.XA 2010-12-17 2011-12-19 前摄错误扫描及隔离的错误校正 Active CN102567143B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/970,954 US8667323B2 (en) 2010-12-17 2010-12-17 Proactive error scan and isolated error correction
US12/970954 2010-12-17

Publications (2)

Publication Number Publication Date
CN102567143A CN102567143A (zh) 2012-07-11
CN102567143B true CN102567143B (zh) 2014-12-03

Family

ID=46236072

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110426176.XA Active CN102567143B (zh) 2010-12-17 2011-12-19 前摄错误扫描及隔离的错误校正

Country Status (2)

Country Link
US (1) US8667323B2 (zh)
CN (1) CN102567143B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8621276B2 (en) 2010-12-17 2013-12-31 Microsoft Corporation File system resiliency management
US9021305B2 (en) 2012-10-17 2015-04-28 International Business Machines Corporation Processing main cause errors and sympathetic errors in devices in a system
CN102929733B (zh) * 2012-10-18 2015-02-11 北京奇虎科技有限公司 一种错误文件处理方法、装置和客户端设备
CN102929732B (zh) * 2012-10-18 2015-04-08 北京奇虎科技有限公司 应用程序调用文件的方法和装置及客户端设备
US9547549B2 (en) * 2013-01-16 2017-01-17 Microsoft Technology Licensing, Llc Handling file system corruption
CN115629906B (zh) * 2022-12-21 2023-03-21 北京铜牛信息科技股份有限公司 一种恢复云分布式存储数据故障的方法及***

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7032123B2 (en) * 2001-10-19 2006-04-18 Sun Microsystems, Inc. Error recovery
US7231634B2 (en) * 2002-09-17 2007-06-12 Sun Microsystems, Inc. Method for determining scope and cause of memory corruption
CN101271417A (zh) * 2007-03-22 2008-09-24 国际商业机器公司 修复数据处理***的方法、数据处理***及信息处置***

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7793227B2 (en) 2003-08-12 2010-09-07 Yahoo! Inc. Method and system of providing customizable buttons
US20050257131A1 (en) 2004-02-11 2005-11-17 Lim Jing Y Frame environment that supports the navigation buttons of a web browser
US7930491B1 (en) * 2004-04-19 2011-04-19 Cisco Technology, Inc. Memory corruption detection system and method using contingency analysis regulation
US7523343B2 (en) * 2004-04-30 2009-04-21 Microsoft Corporation Real-time file system repairs
US7143120B2 (en) * 2004-05-03 2006-11-28 Microsoft Corporation Systems and methods for automated maintenance and repair of database and file systems
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
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
US20080263474A1 (en) 2007-04-19 2008-10-23 Chris Wormald Multiple display window handling
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
US20090164922A1 (en) 2007-12-20 2009-06-25 Ouneheuane Phakousonh Auto toolbar

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7032123B2 (en) * 2001-10-19 2006-04-18 Sun Microsystems, Inc. Error recovery
US7231634B2 (en) * 2002-09-17 2007-06-12 Sun Microsystems, Inc. Method for determining scope and cause of memory corruption
CN101271417A (zh) * 2007-03-22 2008-09-24 国际商业机器公司 修复数据处理***的方法、数据处理***及信息处置***

Also Published As

Publication number Publication date
US8667323B2 (en) 2014-03-04
US20120159243A1 (en) 2012-06-21
CN102567143A (zh) 2012-07-11

Similar Documents

Publication Publication Date Title
CN102567143B (zh) 前摄错误扫描及隔离的错误校正
US7340638B2 (en) Operating system update and boot failure recovery
CN1694098B (zh) 实时文件***修复
CN101359335B (zh) 用于可伸缩文件***恢复的资源管理
CN100485676C (zh) 文件***串行化重新初始化装置、方法和***
US8001075B2 (en) Log file amnesia detection
CN102567478B (zh) 文件***中的在线故障验证
CN105357038A (zh) 监控虚拟机集群的方法和***
CN103744745B (zh) 一种数据存储的检测方法、设备及分布式存储***
US20120198287A1 (en) File system error detection and recovery framework
CN101918922A (zh) 用于计算机网络中的自动数据异常修正的***和方法
CN107688531A (zh) 数据库集成测试方法、装置、计算机设备及存储介质
US7562024B2 (en) Method and system for addressing client service outages
CN102542016B (zh) 文件***弹性管理
CN103761489A (zh) 用于检测文件的完整性的***和方法
US20040019878A1 (en) Software tool to detect and restore damaged or lost software components
US5675727A (en) Difference recording apparatus having a processing unit, recording unit, log update section, and log comparator using a classification key in a log of input data
US7441153B1 (en) Method and system for secure and reliable event logging
CN106502825B (zh) 数据处理方法及装置
CN110928945B (zh) 一种针对数据库的数据处理方法及装置,数据处理***
CN108804239B (zh) 平台整合的方法、装置、计算机设备和存储介质
EP1349067A2 (en) Document management system and method with fault recovery
JP4459042B2 (ja) ワークフローシステムおよびワークフローの制御方法およびプログラムおよび記録媒体
CN104823406A (zh) 识别报告以解决网络问题
CN112463444A (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.