networking故障后,重新挂载ESXI主机中的iSCSI数据存储

我运行ESXI 5.1,所有虚拟机都在iSCI数据存储映射的NAS中。

我的路由器坏了,很明显,所有的虚拟磁盘从他们的磁盘切割。

我的理解是,当发生这样的事件时,esxi停止从vm和trie的所有I / O重新连接到数据存储。 如果它不能在某个时间之后,卸载数据存储,因为它可能已经永远消失了…

我插上一个新的开关,然后重新启动我的ESXI。 我可以看到数据存储从vCenter的数据中心视图上联机显示(但是当我浏览它时什么也没有出现,我什至不能创build一个新的文件夹…),并在我的主机的存储视图数据存储不会出现.. 。如果我添加一个新的数据存储到主机,我selectiSCSI / LUN也不会出现。

除此之外,在NAS(Synology)上,我可以看到我的LUN上没有活动连接…

所以最大的问题是:如何让我的数据存储和我所有的虚拟机回来?

尽pipenetworkingconfiguration导致了这种情况,但这仍然是一个合法的问题:让ESXi主机无需重新启动即可再次查看其iSCSI存储的最佳方式是什么?

注意:我无法真正实现这个目标,因为我的整个networking堆栈是FUBAR,而且我需要重启ESXi才能恢复。 我发布这个答案,因为我发现可能对未来发现这个问题的人有用。

最有用的链接是这个VMware知识库文章标题为在计划外的永久性设备丢失(PDL)后无法重新挂载数据存储(2014155)

“不会回来”似乎是一个旨在保护数据的function。 任何使用已经消失的存储的虚拟机都已经完成,但是暂时的“永久性”设备丢失可能已经完成。 任何使用消失存储的虚拟机必须closures(如果可能)或closures(更可能)

在尝试让ESXi服务器再次查看存储之前,请确保实际上是通过VMware知识库文章“ ESX / ESXi主机上的iSCSI LUN连接问题故障排除”(1003681)中的stream程确定的。您可能会发现整个networking堆栈是在这个过程中有FUBAR。 我知道我做了…

从第一个VMware知识库文章:

(注意:对于iSCSI,设备可能不是“naa”ID,而是看起来像“t10.IET_”。我强烈build议剪切和粘贴,而不是尝试手动input这些怪物。)

查找ID的命令在原始文章的中间没有帮助 – 这里是为了您的方便,因为您无疑需要在esxcli storage core device world list -d <ID>find-d选项的正确参数esxcli storage core device world list -d <ID>

esxcfg-scsidevs --uids

这显示了这样的“t10”ID:

主UID其他UID
 mpx.vmhba45:C0:T0:L0 vml.0005000000766d68626135353a313a31
 naa.60022190becbe0003b3e818108cdf2d5 vml.0200000000600221c0becce0001b3b918108cdf2c550455e4320c6
 t10.IET _____ 0001000000000000000000000000000000000000000000 vml.010c000000202020202020202020202020202020202020202020202020202020202020626561663e30436e6e7f726f
 t10.IET _____ 0001000100000000000000000000000000000000000000 vml.0100010000202020202020202020202020202020202020202020202020202020202020626561693131464952545541

运行以下命令查看设备为LUN打开的世界:

esxcli storage core device world list -d <t10_id>

例如:

esxcli storage core device world list -d t10.IET_____000100010000000000000000000000000000000000000000

你看到输出类似于:

 设备世界ID打开计数世界名称 
  -------------------------------------------------- ---------- -------- ---------- ---------- 
  t10.IET _____ 000100010000000000000000000000000000000000000000 2060 1 idle0 

如果VMFS卷间接使用设备,则世界名称包含stringidle0。 如果虚拟机使用该设备作为RDM,则显示虚拟机世界ID。 如果有其他进程正在使用原始设备,则会显示相应的信息。

笔记:

如果主机没有响应,请运行命令esxcfg-scsidevs –-list获取相应的数据存储名称。 确保在PDL状态下的卷上注册的所有虚拟机不需要任何进一步的步骤。 如果您的虚拟机处于该状态,则尝试重试或取消操作将不会返回虚拟机世界ID。 单击取消作为重试操作无法成功,除非卷重新安装。

运行此命令列出在ESXi 5.x主机上运行的所有虚拟机,并确定在该LUN上注册的虚拟机:

esxcli vm process list

要杀死虚拟机世界ID,运行这个命令:

esxcli vm process kill --type=force --world-id=World ID

例如:

esxcli vm process kill --type=force --world-id=12131

使用以下命令重新扫描存储:

esxcfg-rescan -u vmhba#

运行以下命令查看设备状态:

esxcli storage core device list -d <t10-id>

如果问题仍然存在,请重新引导已注册虚拟机的ESXi 5.x主机。

使用SSH /本地控制台连接到ESX,然后尝试以下操作:

 esxcfg-volume -l esxcfg-volume -m <datastorename> 

第一个列出您的数据存储和他们的状态,第二个挂载它