万一断电,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保证用户数据将保持一致,并且在直写操作或现金透支后立即可用,即使系统随后发生故障也是如此。