![VM 位于哪个 esxi 服务器上?](https://linux22.com/image/516174/VM%20%E4%BD%8D%E4%BA%8E%E5%93%AA%E4%B8%AA%20esxi%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%EF%BC%9F.png)
有没有办法找到特定 VM 所在的 ESXi 服务器?例如,我在 rhel5.4 vm 上,其中运行着 vmware-guestd 守护进程。但我想找到此 VM 所在的 ESXi 服务器的主机名?
答案1
我同意 Charles 的观点,没有简单的方法可以做到这一点。如果您愿意更改主机上相关虚拟机的配置文件,您可以将主机名写入其中,然后通过 vmware-tools 的调用来访问它(示例取自http://communities.vmware.com/message/1479849#1479849)。 例如:
在主机上:
vmware-cmd /vmfs/volumes/4aa95d52-c297af51-90e2-003048d9586a/William-XP/William-XP.vmx setguestinfo machine.id $(hostname)
如果你不确定虚拟机的位置,可以使用以下命令找到它
vmware-cmd -l
*注意:如果您使用的是 ESXi,则需要在某个 Linux 主机上安装 VCLI,而不是直接在主机上运行 vmware-cmd。
在客户机上(此 cmd 适用于 Linux 客户机):
vmware-guestd --cmd "info-get guestinfo.machine.id"
我知道。不能直接执行“vmware-guestd --cmd "info-get host"”之类的操作真是太糟糕了,但也许有一天可以。
答案2
回答你的问题,据我所知,使用 ESX/ESXi 没有办法做到这一点。我见过其他人通过脚本做到这一点,但所有这些脚本实际上所做的就是调用 VCenter 并查询所述服务器名称正在运行的主机。我的问题是你是如何设置的,因为如果你没有运行 DRS/HA,那么你可以运行 BGInfo 并在 BGInfo 配置文件中添加主机名作为一行。然而,假设你正在运行 DRS/HA,这当然是没用的。