存储空间:奇偶校验VD与大块零,但显示为健康

我有一个虚拟磁盘在一个慢性不健康,但function状态后,失败的驱动器被更换前一段时间。 修复命令在VD上立即返回,健康状态并不能完全表明它出了什么问题,所以我忽略了这个警告。

最近,我错误地将这个arrays中的一个工作驱动器断开连接,并在几个小时后重新安装(这两个操作涉及closures服务器的电源循环)。 当服务器恢复运行时,池中的所有VD都与这个奇偶校验VD分开工作。 它被标记为IsManualAttach=true ,一旦连接,文件系统显示为RAW。 我使用了一个反删除软件来检查内容,并注意到在大多数文件中的大块零。

我的理论是在元数据中出现了一些错误,或者在RAID 5中禁用了一列,并阻止了它被修复。 当第二个驱动器被拉动时,另一个列被禁用,但是实际上向操作系统显示VD的更高级代码没有正确处理这个列。 我的问题是有人见过这个? 有什么工具可以让我看到和操纵存储空间中的底层元数据吗?

更多信息:

我只是最近才发现这些事件已经被logging了几个月(在Microsoft-Windows-StorageSpaces-Driver / Operational中):

(事件ID 303)驱动虚拟磁盘{b731f6a8-b99f-11e4-811f-000c29404dab}的托pipe数据失败或丢失。 因此,没有可用的数据副本。 返回码:此设备不存在。

(事件Id 304)虚拟磁盘{b731f6a8-b99f-11e4-811f-000c29404dab}处于降级状态。 托pipe虚拟磁盘的物理磁盘发生故障,断开连接或遇到写入错误时,可能会发生这种情况。

Windows将尝试修复虚拟磁盘。 目前不需要采取行动。

(事件ID 306)尝试为虚拟磁盘{b731f6a8-b99f-11e4-811f-000c29404dab}映射或分配更多存储失败。 这是因为在更新虚拟磁盘元数据时出现写入失败。 返回代码:此磁盘的物理资源已耗尽。

 PS C:\Windows\System32> Get-VirtualDisk Redundant | fl ObjectId : {1}... PassThroughClass : PassThroughIds : PassThroughNamespace : PassThroughServer : UniqueId : A8F631B79FB9E411811F000C29404DAB Access : Read/Write AllocatedSize : 4626485084160 DetachedReason : None FootprintOnPool : 6168646778880 FriendlyName : Redundant HealthStatus : Healthy Interleave : 262144 IsDeduplicationEnabled : False IsEnclosureAware : False IsManualAttach : True IsSnapshot : False LogicalSectorSize : 4096 Name : NameFormat : NumberOfAvailableCopies : NumberOfColumns : 4 NumberOfDataCopies : 1 OperationalStatus : OK OtherOperationalStatusDescription : OtherUsageDescription : ParityLayout : Rotated Parity PhysicalDiskRedundancy : 1 PhysicalSectorSize : 4096 ProvisioningType : Thin RequestNoSinglePointOfFailure : False ResiliencySettingName : Parity Size : 5497826574336 UniqueIdFormat : Vendor Specific UniqueIdFormatDescription : Usage : Other WriteCacheSize : 33554432 PSComputerName : 

在Microsoft Storage Spaces / Storage Spaces Direct非function设置中处理此类事件的唯一方法是:a)从头重新创build池/虚拟磁盘,以及b)从备份中恢复数据。 这是一个众所周知的SS / S2D 🙁