“磁盘 <编号> 已被意外删除”(事件 ID 157)

适用于:✔️ Windows VM

本文讨论如何排查事件 ID 157(其中数据磁盘消失、丢失或从 Microsoft Azure 虚拟机(VM)的 Windows 来宾操作系统(OS)中删除的情况。

现象

如果遇到以下任何症状,可能会发现磁盘删除:

  • 即使来宾 OS 将磁盘报告为从 VM 中删除的磁盘,也似乎已附加到Azure 门户中。

  • SQL 群集环境和 Azure VM 中的磁盘意外删除,导致工作负荷中断。

  • Microsoft基于 SQL Server 的服务器和数据由于这些意外的磁盘删除而遭到入侵。

  • 过多的工作负荷、配置错误的注册表设置和内存不足被标识为事件 ID 157 的潜在触发器。

如果遇到这些症状,请在 Windows VM 上打开事件查看器应用进行调查。 在控制台树窗格中选择事件查看器(本地)>Windows 日志>系统节点。 在事件列表中,选择要 按事件 ID 排序的事件 ID 列标签,然后搜索并双击事件 ID 值为 157 的日志条目。 “事件属性”对话框的“常规”选项卡显示类似于下表的信息。

事件字段
日志名称 系统
Source disk
记录 (日期) <timestamp>
事件 ID 157
任务类别
Level 警告
关键字 经典
用户 空值
计算机 SERVER-hash-value.domain1.priv<>
描述 磁盘 <编号> 已被意外删除。

原因

当系统与磁盘之间的通信中断(例如存储区域网络(SAN)构造错误或小型计算机系统接口(SCSI)总线问题时,磁盘消失最常发生。 或者,如果磁盘出现故障或操作系统运行时拔出磁盘,则可能会遇到磁盘消失。

事件 ID 157 发生在来宾 OS 中(或在运行 Windows 故障转移群集角色时)。 这通常是由于以下基础因素而发生的:

  • 过多的 I/O 工作负荷会导致限制和 I/O 延迟。 反过来,这些问题会导致磁盘达到 I/O 超时阈值。

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\disk 注册表子项配置错误。 具体而言, 该子项中的 IoTimeoutValue 注册表项设置为太小的值,例如 60 秒。

    注意

    如果超时值太小,请增大此值,但不要使用超过 179 秒的值。 延迟 180 秒后,系统会在主机节点中调用事件 ID 17,并触发 VM 重启。

  • 在来宾 OS 中运行群集验证,以检查群集节点上的本地存储。 (也就是说,有意的操作导致事件 ID 157。

  • VM 中存在内存不足的情况。

解决方案

修复磁盘消失问题的指南因磁盘位于群集环境还是非群集环境中而异。

  • 运行 PerfInsights 自助诊断工具。

  • 如果要在 Windows 故障转移群集角色中操作,请收集受影响时间段的 Windows 群集日志。 如果 PerfInsights 未收集这些日志,请在 PowerShell 中运行 Get-ClusterLog cmdlet。

  • 通过检查 PerfInsights 报告获取磁盘超时的注册表设置。

  • 检查来宾 OS 上是否存在配置错误的注册表设置。 如果还存在过多的 I/O 限制,则此方案可能会解释为何达到超时阈值。

  • 从标准 HDD(硬盘驱动器)升级到其他 Azure 托管磁盘类型。 建议不要运行使用标准存储 HDD 的群集角色,因为它们可能会导致磁盘消失等问题。

联系我们寻求帮助

如果你有任何疑问或需要帮助,请创建支持请求联系 Azure 社区支持。 你还可以将产品反馈提交到 Azure 反馈社区