本文提供对带有 PERC 控制器的 PowerEdge 服务器中硬盘上的(穿孔)坏块进行故障排除的步骤。尤其是没有进行备份时,以下信息可能有助于将受影响的虚拟磁盘恢复到最优状态。
OpenManage Server Administrator (OMSA) 在虚拟磁盘前面显示红色叉号(图 1)。
图 1:状态中显示红色叉号的虚拟磁盘(示例 H800)
Windows 系统日志中显示坏块错误(图 2)。
图 2:Windows 系统日志中显示的坏块错误
RAID 控制器日志 (TTYLOG) 显示如下错误:
02/26/15 13:43:39: EVT#131878-02/26/15 13:43:39: 97=Puncturing bad block on PD XX(e0x20/s2) at 180ca4a1f
在我们关于收集日志的文章中,查找有关接收这些特定日志的详细信息。
RAID阵列并非不受数据错误的影响。 RAID控制器和硬盘固件包含检测并纠正多种类型的数据错误的功能,避免这些错误被写入阵列/驱动器。 使用过时的固件可能会导致不正确的数据写入阵列/驱动器,因为它缺少最新固件版本中提供的错误处理/纠错功能。
数据错误也可能由于物理坏块导致。 例如,当读/写磁头影响旋转盘片(称为“磁头崩溃”)时,可能会发生这种情况。 由于盘片在特定位置以磁性方式存储位的功能退化,块也可能随着时间的推移变坏。 由盘片退化导致的坏块通常可成功读取。 这种坏块只可能被间歇性地检测到,或使用驱动器上的扩展诊断程序检测到。
坏块也称为坏逻辑块地址(LBA),它也可能由逻辑数据错误导致。 当数据被错误写入驱动器时,即使报告为成功写入,也会发生这种情况。 此外,存储在驱动器上的正常数据可能在无意中被更改。 例如“位翻转”,当读/写磁头通过或写入附近位置,导致以0和1形式显示的数据更改为其它值时,可能会发生位翻转。 这种情况可导致数据的“一致性”受损。 特定块上的数据的值与原始数据不同,可能不再与数据的校验和匹配。 物理 LBA 良好,可以成功写入,但当前包含不正确的数据,可能会被解释为坏块。
有关更多信息,请阅读我们关于 RAID 阵列中的双重故障和穿孔的文章。
在文件级别上创建经过验证的数据备份
确保更换所有显示预测性故障的故障驱动器
删除并重新创建虚拟磁盘
执行虚拟磁盘的全面初始化
在新创建的虚拟磁盘上执行检查一致性
现在可以将数据还原到运行良好的虚拟磁盘
建议:将所有硬盘固件升级到最新版本
OMSA 提供清除坏块警告的功能。要清除坏块,建议执行以下步骤:
当选择了验证选项执行虚拟磁盘备份时,可能会出现两种情况:
运行巡检读取(在 OMSA 中的虚拟磁盘任务下),然后检查系统事件日志,确保未找到新的坏块。如果仍然存在坏块,请继续下一步。如果没有坏块,则会清除该状况。
要清除这些坏块,请执行清除虚拟磁盘坏块任务。可以在 OMSA GUI 中或使用 cli 命令完成此操作:
omconfig storage vdisk action=clearvdbadblocks controller=id vdisk=id
omreport storage controller
以显示控制器 ID,然后键入 omreport storage vdisk controller=ID
以显示虚拟磁盘的 ID