如果 ESXi 主机永久无法使用某个存储设备,则会将其视为处于永久设备丢失 (PDL) 状态。
通常,如果无意移除了某个设备、其唯一 ID 发生更改或该设备发生不可恢复的硬件错误,就会出现 PDL 情况。
如果存储阵列确定设备永久无法使用,会向 ESXi 主机发送 SCSI 感知代码。收到感知代码后,您的主机会将该设备识别为失败,并将设备的状态注册为 PDL。对于要视为永久丢失的设备,必须在其所有路径上都收到感知代码。
注册设备的 PDL 状态后,主机将停止尝试与设备重新建立连接或向其发送命令。
vSphere Client 会显示关于设备的以下信息:
- 该设备的操作状态更改为 Lost Communication。
- 全部路径显示为 Dead。
- 设备上的数据存储不可用。
如果设备不存在打开的连接或者在最后一个连接关闭之后,主机将移除 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
永久设备丢失和 iSCSI
在每个目标对应一个 LUN 的 iSCSI 阵列中,通过 iSCSI 登录失败检测 PDL。iSCSI 存储阵列会拒绝主机尝试启动 iSCSI 会话,原因为 Target Unavailable。与感知代码一样,也必须在所有路径上都收到该响应,才能将设备视为永久丢失。
永久设备丢失和虚拟机
注册设备的 PDL 状态后,主机会关闭虚拟机的所有 I/O。vSphere HA 可检测 PDL 并重新启动发生故障的虚拟机。