Windows 8构建更健康的存储

07-27

在上大学那会儿,我接触的更多是家用级的产品,说真的,到也没见过什么损坏硬盘以及数据恢复的case。而工作之后,我是亲眼所见服务器上面会偶尔 有坏盘,而不得不找厂家更换的情况。而且,我还真的见过花了大价钱请专业数据恢复厂商恢复硬盘数据的情形。当然,这些正常的损坏多是由于服务器的硬盘吞吐 量太大,读写次数太多造成的,工作中我还从一个机房硫超标导致硬盘数月内陆续大量损毁的案例,学到了机房施工要科学合理、符合质量标准、特别是空气循环及 冷却系统都要设计达标的道理。

上面说的是我所经历过的在存储物理损坏方面的一些事情,相对于物理损坏,磁盘上的文件系统一样可以有逻辑损 坏,即由于意外掉电、程序问题或者其他意外导致的文件损坏、磁盘逻辑故障等问题。对于这些逻辑损坏,或者意外产生的磁盘上的非一致现象,大家一定并不陌 生,不知大家是否还记得当年 XP 时代,只要电脑意外掉电了,重启时一定会见到等待十秒之后自动扫描磁盘的提示,而且,文件数量越多,扫描所花费的时间也是越长的。很多人不能忍耐很久的磁 盘检测时间,干脆又一次故意重启,然后按键盘上任意键跳过接下来启动时的磁盘检查。

从 Windows Vista 开始,Windows 引入了一项叫"联机自愈"的文件系统功能。NTFS 文件系统本身具备自愈的设计,在系统运行期间的某些类型的损坏,系统是可以将其修复而不用等待下次重新启动时修复。而在 Windows 8 中,这一功能得以加强和改进,可联机自愈的问题种类有所增加,因此,要运行 chkdsk 的机会大大减少。现在,相信您几乎就没看见过意外断电后,重启计算机时会要求检测磁盘了。(从这里也可以看出,为什么不论 Vista 卖得多不好,我也多次在不同文章强调 Vista 具有很重要的意义。)

除了联机自愈及其该进以外,其实 Windows 8 里面针对磁盘和文件系统的稳定性还做出了更多的努力:

1. 联机验证

有 时候,磁盘并不是真的损坏,而是由于内存问题导致的间歇性的、偶发性的"损坏",在这种情况下,新的 Spot Verifier 服务可以甄别此问题。在检测到潜在的不健康磁盘状态时并且联机自愈不成功后,文件系统驱动可以触发该服务,让其运行并确认是否是真的磁盘损坏。

Windows 8构建更健康的存储

2. 联机标识和记录

当联机验证确认这是个磁盘问题时,Windows 8 会在适当的时机(例如计算机空闲时)和必要的时候(例如发现文件系统损坏),通过维护任务来进行联机文件系统扫描后台任务,扫描到的所有问题都会被系统确认和记录下来,以便随后更正。

3. 快速精准的更正

对 于非要脱机才能修复的这些错误,Chkdsk 实用程序会在卸下卷的时候进行修复,那么这个"快速精准更正"特点,能够极大地减少脱机修复所耗费的时间。对于非系统卷,关闭所有当前打开的文件句柄即 可;而对于系统卷,这脱机修复类似于 XP 时代那样的重启过程中磁盘检修的过程了,但是,由于联机标识和记录功能已经将错误和损坏位置记录下来,这时的脱机修复是非常精准的定点修复过程,坏多少修 多少,哪里坏了修哪里,往往只要几秒的时间,极大地帮助用户减少了等待磁盘检修的时间。对于一个100 GB的硬盘分区,数秒vs数十分钟甚至几小时,还是非常可观的。

4. 更好的可管理性

资源管理器里面的驱动器属性中,以及操作中心的维护一栏下面都可以显示磁盘卷的健康状态。

Windows 8构建更健康的存储

而且,我们通过 fsutil 命令,可以看见它对新的这些磁盘特性的支持。(我的C盘是系统盘)

Windows 8构建更健康的存储

通过查看 chkdsk 的帮助,我们可以发现,该工具也配合新的磁盘卷的稳定性改善,提供了新的参数开关。

其实总结起来比较简单,现在 Windows 8 上面的磁盘健康状态的控制可以用以下这图表概括:

Windows 8构建更健康的存储