ESXi 连接到存储设备时,可能会遇到连接问题。存储连接问题可能由各种原因导致。尽管 ESXi 无法始终检测设备或其路径不可用的原因,但主机可以确定问题是永久性问题还是暂时性问题。换句话说,主机可以区分设备的永久设备丢失 (PDL) 状态和存储的暂时性全部路径异常 (APD) 状态。
连接问题和 vSphere High Availability
当设备进入 PDL 或 APD 状态时,vSphere High Availability (HA) 会检测到连接问题,并为 ESXi 主机上受影响的虚拟机提供自动恢复。vSphere HA 使用虚拟机组件保护 (VMCP) 来防止在 vSphere HA 集群中主机上运行的虚拟机发生可访问性故障。有关 VMCP 以及如何配置在出现 APD 或 PDL 情况时数据存储和虚拟机的响应的详细信息,请参见《vSphere 可用性》文档。
检测 PDL 情况
如果 ESXi 主机永久无法使用某个存储设备,则会将其视为处于永久设备丢失 (PDL) 状态。
通常,如果无意移除了某个设备、其唯一 ID 发生更改或该设备发生不可恢复的硬件错误,就会出现 PDL 情况。
如果存储阵列确定设备永久无法使用,会向 ESXi 主机发送 SCSI 错误感知代码或 NVMe 错误代码。收到这些错误后,您的主机会将该设备识别为失败,并将设备的状态注册为 PDL。对于要视为永久丢失的设备,必须在其所有路径上都收到感知代码。
注册设备的 PDL 状态后,主机将停止尝试与设备重新建立连接或向其发送命令。
- 该设备的操作状态更改为 Lost Communication。
- 全部路径显示为 Dead。
- 设备上的数据存储不可用。
如果设备不存在打开的连接或者在最后一个连接关闭之后,主机将移除 PDL 设备和该设备的所有路径。通过将高级主机参数 Disk.AutoremoveOnPDL 设置为 0 可停用路径的自动移除功能。
如果设备通过 PDL 条件返回,则主机可以发现该设备,但会将其视为新设备。不保证已恢复设备上虚拟机的数据一致性。
永久设备丢失和 SCSI 感知代码
H:0x0 D:0x2 P:0x0 Valid sense data: 0x5 0x25 0x0 or Logical Unit Not Supported
永久设备丢失和 NVMe 错误代码
H:0x0 D:0xb P:0x0 or H:0x0 D:0x11a P:0x0
永久设备丢失和 iSCSI
在每个目标对应一个 LUN 的 iSCSI 阵列中,通过 iSCSI 登录失败检测 PDL。iSCSI 存储阵列会拒绝主机尝试启动 iSCSI 会话,原因为 Target Unavailable。与感知代码一样,也必须在所有路径上都收到该响应,才能将设备视为永久丢失。
永久设备丢失和虚拟机
注册设备的 PDL 状态后,主机会关闭虚拟机的所有 I/O。vSphere HA 可检测 PDL 并重新启动发生故障的虚拟机。
执行计划的存储设备移除
当存储设备出现故障时,您可以取消永久设备丢失 (PDL) 条件或全部路径异常 (APD) 条件。对存储设备执行有计划的移除和重新连接。
计划的设备移除是指有意断开存储设备的连接。您也可以出于多种原因计划移除设备,如升级硬件或重新配置存储设备。当按顺序执行移除和重新连接存储设备时,您需要完成一些任务。
任务 | 描述 |
---|---|
从计划分离的设备迁移虚拟机。 | 《vCenter Server 和主机管理》 |
卸载设备上部署的数据存储。 | 请参见卸载数据存储。 |
分离存储设备。 | 请参见分离存储设备。 |
对于每目标具有一个 LUN 的 iSCSI 设备,请从具有该存储设备路径的每个 iSCSI HBA 中删除该静态目标项。 | 请参见移除动态或静态 iSCSI 目标。 |
通过使用阵列控制台执行任何必要的存储设备重新配置。 | 请参见供应商文档。 |
重新附加存储设备。 | 请参见附加存储设备。 |
挂载数据存储并重新启动虚拟机。 | 请参见挂载数据存储。 |
分离存储设备
可以安全地从 ESXi 主机分离存储设备。
您可能需要分离设备以使主机无法对其进行访问,例如,在存储端执行硬件升级时。
前提条件
- 该设备不包含任何数据存储。
- 该设备未被任何虚拟机作为 RDM 磁盘使用。
- 该设备不包含诊断分区或暂存分区。
过程
- 在 vSphere Client 中,导航到 ESXi 主机。
- 单击配置选项卡。
- 在存储下,单击存储设备。
- 选择要分离的设备,然后单击分离图标。
结果
此时该设备无法进行访问。该设备的操作状态更改为“已卸载”。
下一步做什么
如果多个主机共用该设备,请从每个主机分别分离该设备。
附加存储设备
重新附加先前与 ESXi 主机分离的存储设备。
过程
- 在 vSphere Client 中,导航到 ESXi 主机。
- 单击配置选项卡。
- 在存储下,单击存储设备。
- 选择分离的存储设备,然后单击附加按钮。
结果
此时该设备可以进行访问。
从 PDL 情况中恢复
当存储设备变为永久不可用且未从 ESXi主机正常分离时,会出现非计划的永久设备丢失 (PDL) 情况。
- 设备上部署的数据存储不再可用。
- 设备的操作状态更改为“通信中断”。
- 全部路径显示为“不活动”。
- VMkernel 日志文件中将出现有关设备永久不可用的警告消息。
要从非计划的 PDL 情况中恢复,并从主机中移除不可用的设备,请执行以下任务。
任务 | 描述 |
---|---|
将受 PDL 情况影响的数据存储上运行的所有虚拟机关闭电源并取消注册。 | 请参见《vSphere 虚拟机管理》。 |
卸载数据存储。 | 请参见卸载数据存储。 |
重新扫描已访问该设备的所有 ESXi主机。
注: 如果重新扫描失败并且主机继续列出设备,则设备的某些挂起 I/O 或活动引用可能仍然存在。检查是否仍存在对设备或数据存储的引用处于活动状态的任何项目。这类项目包括虚拟机、模板、ISO 映像、裸设备映射等。
|
请参见执行存储重新扫描。 |
处理暂时性 APD 情况
如果存储设备在未指定的时间段内对 ESXi主机不可用,则被视为处于全部路径异常 (APD) 状况。
例如,APD 状况的原因可能会是交换机发生故障,或者存储电缆断开连接。
与永久设备丢失 (PDL) 状况相反,主机将 APD 状况视为瞬间现象,并预计设备会再次可用。
主机继续重新尝试发出的命令,以便重新建立与设备之间的连接。如果主机命令在较长一段时间内无法重试,则主机可能存在具有性能问题的风险。主机及其虚拟机也可能会无法响应。
为了避免出现这些问题,您的主机使用默认的 APD 处理功能。当设备进入 APD 状态时,主机会打开定时器。在定时器打开的情况下,主机会仅在有限的时间段内继续重试非虚拟机命令。
默认情况下,APD 超时时间设置为 140 秒。通常,此值大于大多数设备从连接丢失中恢复所需的时间。如果设备在此时间内可用,主机及其虚拟机则会继续运行,而不会遭遇任何问题。
- 该设备的操作状态更改为Dead or Error。
- 全部路径显示为Dead。
- 设备中的数据存储显示为灰色。
即便设备和数据存储不可用,虚拟机仍处于响应状态。您可以关闭虚拟机电源,或者将其迁移到不同的数据存储或主机。
如果稍后设备路径处于运行状态,则主机可以将 I/O 恢复到设备并结束特殊 APD 处理。
取消激活存储 APD 处理
默认情况下,ESXi 主机上的存储全部路径异常 (APD) 处理功能处于激活状态。激活此功能后,如果存储设备进入 APD 状态,则主机仅在有限的时间段内继续重试非虚拟机 I/O 命令。在时间段到期后,主机会停止重试尝试并终止任何非虚拟机 I/O。您可以在 主机上停用 APD 处理功能。
过程
- 在 vSphere Client 中,导航到 ESXi 主机。
- 单击配置选项卡。
- 在系统下,单击高级系统设置。
- 在“高级系统设置”表中,选择 Misc.APDHandlingEnable 参数,然后单击 Edit 图标。
- 将该值设置为 0。
结果
更改存储 APD 的超时限值
超时参数控制 ESXi 主机必须在多少秒内对出现全部路径异常 (APD) 状况的存储设备重试 I/O 命令。您可以更改默认超时值。
默认情况下,主机上的超时参数设置为 140 秒。在某些情况下,例如连接到您的 ESXi 主机的存储设备从断开连接状态恢复所需的时间超过 140 秒,您可以增加该超时值。
过程
验证 ESXi 主机上存储设备的连接状态
使用 esxcli 命令可验证特定存储设备的连接状态。
前提条件
安装 ESXCLI。请参见《ESXCLI 入门》。要进行故障排除,请在 ESXi Shell中运行 esxcli 命令。