我运行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>
第一个列出您的数据存储和他们的状态,第二个挂载它