如果 ESXi 主机永久无法使用某个存储设备,则会将其视为处于永久设备丢失 (PDL) 状态。

通常,如果无意移除了某个设备、其唯一 ID 发生更改或该设备发生不可恢复的硬件错误,就会出现 PDL 情况。

如果存储阵列确定设备永久无法使用,会向 ESXi 主机发送 SCSI 感知代码。通过感知代码,主机可识别设备已发生故障,并将其状态注册为 PDL。必须在设备的所有路径上都收到感知代码,才能将设备视为永久丢失。

注册设备的 PDL 状态后,主机将停止尝试与设备重新建立连接或向其发出命令,以避免受阻或无响应。

vSphere Web Client 会显示关于设备的以下信息:

  • 设备的操作状态会更改为通信中断

  • 全部路径显示为不活动

  • 设备上的数据存储会灰显。

如果设备不存在打开的连接或者在最后连接关闭之后,主机将自动移除 PDL 设备和通向该设备的所有路径。通过将高级主机参数 Disk.AutoremoveOnPDL 设置为 0 可禁用路径的自动删除功能。请参见设置高级主机属性

如果设备通过 PDL 条件返回,则主机可以发现该设备,但会将其视为新设备。不保证已恢复设备上虚拟机的数据一致性。

注:

如果存储设备发生永久性故障,无法返回相应的 SCSI 感知代码或 iSCSI 登录拒绝,则主机无法检测 PDL 情况,而是继续将设备连接问题视为 APD。

永久设备丢失和 SCSI 感知代码

以下是 VMkernel 日志中 SCSI 感知代码的示例,表明设备处于 PDL 状态。

H:0x0 D:0x2 P:0x0 Valid sense data:0x5 0x25 0x0 or Logical Unit Not Supported

有关 SCSI 感知代码的信息,请参见《vSphere Troubleshooting》《vSphere 故障排除》中的“存储故障排除”

永久设备丢失和 iSCSI

如果 iSCSI 阵列中每个目标对应一个 LUN,则通过 iSCSI 登录失败检测 PDL。iSCSI 存储器阵列会拒绝主机尝试启动 iSCSI 会话,原因为 Target Unavailable。与感知代码一样,也必须在所有路径上都收到该响应,才能将设备视为永久丢失。

永久设备丢失和虚拟机

注册设备的 PDL 状态之后,主机将终止虚拟机中所有 I/O。vSphere HA 可以检测到 PDL 并重新启动失败的虚拟机。有关详细信息,请参见设备连接问题和 High Availability