存储空间如何响应物理磁盘上的错误
物理磁盘经常遇到不同程度的错误,从硬盘可以透明恢复并且不会中断或丢失数据的错误;到可能导致数据丢失的灾难性错误。存储空间可以响应一系列发生在物理磁盘上的错误,根据错误的严重程度最大可能地保护数据安全。
目录
概述
如果在写操作期间有磁盘错误,存储空间将采取两个操作之一:
- 如果磁盘返回错误代码,指示物理磁盘发生故障,则存储空间将 GUI 中的磁盘(请参见图 2)标记为不健康并点亮故障指示灯 (如果存在)。存储空间(虚拟磁盘)将被标记为已降级,直到更换故障磁盘,然后启动修复操作开始。如果热备盘存在,并且位于同一个存储池的同一个箱体中时,那么热备盘将会立即联机;并且将热备盘的类型从热备盘转换到自动,从而使其可以用于分配。存储空间重定向失败写入到池中其余磁盘,并且在故障磁盘上的数据同样的也会重新分配。 故障指示灯继续亮着,直到更换磁盘。
- 如果错误代码不太严重,不是整个磁盘出现故障,存储空间可能会记录错误信息到事件日志中。尽管此错误不是很严重,但写入仍然失败并且存储空间(虚拟磁盘)标记为已降级。发生 I/O 错误的物理磁盘在GUI中被标记为不健康的,但故障指示灯不会点亮(即使存在)。存储空间重定向失败写入到池中其余磁盘,并且写入失败的数据同样也会重新分配;在磁盘上与写入失败无关的数据不会被重新分配。
- 如果稍后对磁盘的写入成功,磁盘将被标记为健康 ;磁盘经常遇到暂时性错误,并且能够从这些错误中恢复。然而,存储空间(虚拟磁盘)还是处于已降级的状态,来表明与存储空间(虚拟磁盘)关联的物理磁盘中的数据不再同步。存储空间(虚拟磁盘)还是已降级状态直到启动修复操作或者自动重新同步发生(每5分钟一次)。存储空间(虚拟磁盘)被列为已降级的,即使物理磁盘显示健康也是;直到用户启动修复或重新同步发生后的存储空间(虚拟磁盘)和物理磁盘才会显示一致状态。
如果存储空间读取时遇到错误,它不会将磁盘标记为故障。在镜像或奇偶校验配置中,存储空间尝试检索数据的备用副本。
要使修复成功,在池中或热备盘(在同一个机箱)之一,必须有足够的可用容量,用来重新分配整个磁盘故障数据或发生 I/O 错误硬盘上的部分数据。如果没有足够的可用空间用于成功修复,那么存储空间(虚拟磁盘)仍然处于已降级状态,直到硬盘被替换或将新的磁盘添加到池中。
当磁盘不能写入或读取,但没有返回错误时,存储空间将根据条件来决定是否将硬盘视为临时故障。存储空间采取的操作是可配置的,通过 Set-StoragePool -RetireMissingPhysicalDisks命令设置。(“Auto”(自动)是默认值)
选项 |
作用 |
Enabled(启用) |
如果磁盘丢失,但其机箱还存在,则将丢失磁盘视为故障并停用它。 |
Disabled(禁用) |
如果磁盘丢失,则等待磁盘重新连接或管理员操作。GUI中显示“丢失通讯”状态。 |
Auto(自动) |
如果池中有热备盘,则按照Enabled(启用)逻辑执行。否则,按照Disabled(禁用)逻辑执行。 |
停用意味驱动器不再用于新的分配 ——数据只写入到池中剩余的硬盘里。一旦驱动器被标记为已停用后,作为修复操作的一部分,存在于它上面的数据会重新分配到池中其他驱动器上。然而,直到重新分配开始,驱动器上现有分配将会继续更新,以保持数据的冗余,停用的磁盘将显示已停用状态,在 GUI 中和 Windows PowerShell 中。
存储空间不会保留物理磁盘的非关键性的错误信息。 如果在写入期间出现短暂的 I/O 错误并重新启动系统,所有物理磁盘在重新启动后将被识别为健康。但是,如果发生错误,指示整个驱动器发生故障,该信息将保留到重新启动后,这样物理磁盘将会继续被识别为不健康。如果存储空间在重新启动之前已被标记为已降级,那么它将继续在 GUI 中被识别为已降级,直到采取纠正操作,如启动修复或自动重新同步。
在什么条件下热备用驱动器会联机
如果一个或多个驱动器被配置为热备盘,则下列条件描述何时热备驱动器将联机:
- 如果驱动器是因为介质故障而出错,则热备盘将会联机(当热备盘和故障驱动都在同一个机箱中时)
- 如果驱动器被标记为已停机,则热备盘不会联机
- 当驱动器被移除并且 RetireMissingPhysicalDisks 策略是:
- Auto:在同一机箱内的热备盘将会联机
- Enabled: 在同一机箱内的热备件将联机
- Disabled:热备盘不会联机
如何在发生错误时确定是哪个物理磁盘
- 对于返回错误指出驱动器出现故障的磁盘,会被标记为不健康并且故障指示灯会被点亮(如果存在)。欲了解更多信息,请参阅“Windows如何让我知道一个磁盘发生故障?”
- 此外,Windows会记录错误条目到事件查看器中 根据错误类型,磁盘可能被标识为一个 GUID 或其物理磁盘编号。
- 事件 ID 154 包含可以用于诊断用的其他 SCSI 有用信息:
Provider: |
disk |
事件ID: |
154 |
级别: |
错误 |
正文 |
"磁盘 < 磁盘编号 >(PDO 名称: < PDO 名称 >) 在逻辑块地址 <LBA>的 IO 操作由于硬件错误失败。" |
何时记录: |
当设备报告致命硬件错误时。 |
判断关键之: |
在二进制数据中包含值 0x2D |
Add’l Sense Code: |
在二进制数据中包含值 0x2E |
Add’l Sense Code Qualifier: |
在二进制数据中包含值 0x2F |
使用Windows PowerShell
如果GUID被记录下来,你可以使用下面的PowerShell命令来找到与I/O错误关联的物理磁盘:
Get-PhysicalDisk |? { $_.ObjectId.Contains( $PhysicalDiskGUID ); }
要点亮物理硬盘关联的故障指示灯:
Enable-PhysicalDiskIndication –FriendlyName (Get-PhysicalDisk |? { $_.ObjectId.Contains( $PhysicalDiskGUID ); }).Friendlyname
如果物理硬盘编号被记录下来,如图1,你可以使用下面的PowerShell命令来找到与I/O错误关联的物理磁盘:
Get-PhysicalDisk -friendlyName <PhysicalDiskNumber>
**图1:**事件查看器显示物理磁盘3的错误
要点亮物理硬盘关联的故障指示灯:
Enable-PhysicalDiskIndication –FriendlyName <PhysicalDiskNumber>
使用服务��管理器
在服务器管理器中文件和存储服务角色里的存储池磁贴中,需要管理员确认健康状态的会使用黄色三角和惊叹号标识出来,如下图:
图 **2:**在服务器管理器存储池磁贴
图 **3:**在服务器管理器中相关虚拟磁盘的磁贴
你可以使用“切换驱动器指示灯”选项来找到驱动器:
图 **4:**物理磁盘关联磁贴显示切换驱动器指示灯命令