断电时NTFS是否可以进行故障保护吗?


13

万一断电,NTFS文件系统会受到损害吗?例如损坏或导致文件损坏?在断电的情况下,是否可以保证动态磁盘上的NTFS内置镜像能够使文件保持一致状态?

我的观点是日记文件系统是专门设计用来容忍此类问题的。NTFS文件系统不能保证用户数据,但是数据库管理系统之类的应用程序具有保护数据的事务管理器。

摘自一本伟大的书籍《Microsoft Windows Internals》

NTFS

NTFS包括许多高级功能。其最重要的功能之一是可恢复性。如果系统意外停止,则FAT卷的元数据可能会保持不一致状态,从而导致大量文件和目录数据损坏。NTFS以事务方式记录对元数据的更改,以便可以将文件系统结构修复到一致状态而不会丢失文件或目录结构信息。(但是,文件数据可能会丢失。)

NTFS设计目标和功能

高端文件系统要求

从一开始,NTFS就被设计为包括企业级文件系统所需的功能。为了在遇到意外的系统中断或崩溃时最大程度地减少数据丢失,文件系统必须确保始终保证其元数据的完整性。最后,文件系统必须允许基于软件的数据冗余,作为保护用户数据的硬件冗余解决方案的低成本替代方案。

可恢复性

NTFS使用原子事务来实现其文件系统恢复功能。如果程序启动了更改NTFS卷结构的I / O操作(即更改目录结构,扩展文件,为新文件分配空间等等),则NTFS将该操作视为原子事务。它保证事务已完成,或者如果系统在执行事务时失败,则回滚。

此外,NTFS使用冗余存储来存储重要的文件系统信息,因此,如果磁盘上的某个扇区损坏,NTFS仍可以访问该卷的关键文件系统数据。

数据冗余和容错

除了文件系统数据的可恢复性之外,一些客户还要求其自身的数据不因停电或灾难性的磁盘故障而受到威胁。NTFS恢复功能确实可以确保卷上的文件系统保持可访问性,但是它们不能保证完全恢复用户文件。通过数据冗余为不会冒丢失数据风险的应用程序提供保护。

用户文件的数据冗余是通过Windows分层驱动程序模型实现的,该模型提供了容错磁盘支持。卷管理器可以将一个磁盘上的数据镜像或复制到另一磁盘上,以便始终可以检索冗余副本。

NTFS恢复支持

NTFS恢复支持可确保在发生电源故障或系统故障时,不使文件系统操作(事务)不完整,并且无需运行磁盘修复实用程序即可保留磁盘卷的结构。NTFS Chkdsk实用程序用于修复由I / O错误(例如,坏扇区,电气异常或磁盘故障)或软件错误引起的灾难性磁盘损坏。但是有了NTFS恢复功能,很少需要Chkdsk。

可恢复文件系统

尽管在系统崩溃的情况下NTFS不能保证对用户数据的保护-某些更改可能会从缓存中丢失-应用程序可以利用NTFS的直写和现金刷新功能来确保将文件修改记录在磁盘以适当的时间间隔。高速缓存直写-强制将写操作立即记录在磁盘上-和现金冲洗-强制将内容写到磁盘上-是高效的操作。此外,与FAT文件系统不同,NTFS保证用户数据将保持一致,并且在直写操作或现金透支后立即可用,即使系统随后发生故障也是如此。


看来您有答案了……
r0ca 2010年

Answers:


7

除了理论上的问题外,由于停电在NTFS上造成的问题太多,因此答案必须是:NO

我亲自处理了该站点上出现的问题,这些问题从突然出现的坏扇区到完全安装了Windows安装。

计算机是极其复杂的硬件,现代硬盘也已成为自己的小型计算机。每个模块都有自己的处理器和内存,因此每个模块都容易受到错误时刻发生的电源故障的影响。

即使NTFS是故障安全的(我并不十分相信),处理硬盘更改的组件当然也不是故障安全的。因此,整个问题是相当学术性的,与现实世界无关。

答案必须是NTFS 更安全,但不是故障安全。


7
+1不能替代一个好的UPS,该UPS会在电源故障和数据备份良好时自动关闭。
戴夫M 2010年

磁盘镜像难道不是“突然废止坏扇区”的解决方案吗?
乔纳斯(Jonas)2010年

我找到了一篇有趣的文章。Microsoft如何使您的数据面临风险
Jonas 2010年

非常有趣-我下载了论文。
哈里奇

4
坏扇区不是NTFS问题。我也反对这里提供的轶事证据。在硬件遵循有关写入的典型保证的假设下, NTFS是崩溃安全。您可能违反了这些规定。
usr

4

NTFS仅记录元数据,这可以防止文件系统损坏,但是上帝可以帮助您处理未记录的数据。如果在写入过程中发生断电,则会丢失数据。


的确如此,但是例如数据库管理系统使用事务管理器来存储用户数据,因此在提交时是持久的。未100%写入的数据不会报告给用户。
乔纳斯(Jonas)2010年

2
@Jonas,是的,当然可以,但这是应用程序的功能,而不是文件系统的功能。
Mircea Chirea

3

在编写了读取和写入NTFS的代码之后,我得出的结论是,NTFS恢复功能是以错误的方式设计/实现的。

NTFS日志包含导致写入的操作的日志条目,它通常仅包含足够的信息来撤消/重做该操作,但是,如果扇区在写入过程中损坏(由于电源故障),则该日志条目不会足以恢复该扇区中的所有元数据。

Windows NTFS驱动程序实现者假定任何写入操作将完全成功或根本不会发生(仅在某些企业环境中如此)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.