Есть ли способ узнать, на каком сервере ESXi находится конкретная виртуальная машина? Например, я использую vm rhel5.4 с запущенным демоном vmware-guestd. Но я хочу найти имя хоста сервера ESXi, на котором существует эта виртуальная машина?
Я согласен с Чарльзом, что нет простого способа сделать это. Если вы хотите изменить файл конфигурации рассматриваемой виртуальной машины на хосте, вы можете записать в него имя хоста, а затем получить к нему доступ через вызов из 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, вам нужно будет установить VCLI где-нибудь на хосте Linux, а не запускать vmware-cmd непосредственно на хосте.
На гостевой системе (эта команда предназначена для гостевой системы Linux):
vmware-guestd --cmd "info-get guestinfo.machine.id"
Я знаю. Это отстой, что вы не можете просто сделать что-то вроде `vmware-guestd --cmd" info-get host "', но, может быть, когда-нибудь.
Чтобы ответить на ваш вопрос, с ESX / ESXi нет способа сделать это, о котором я знаю. Я видел, как другие люди делали это с помощью скриптов, но все эти скрипты на самом деле вызывают VCenter и запрашивают хост, на котором работает указанное имя сервера. Мой вопрос заключается в том, как вы настроены, потому что, если вы не используете DRS / HA, вы можете просто запустить BGInfo и добавить имя хоста в виде строки в свой файл конфигурации BGInfo. Предполагая, что вы используете DRS / HA, это, конечно, бесполезно.