Guido Vrola - Fotolia

Wie lassen sich in VMware- oder Microsoft-Umgebungen VM-Hosts aufspüren?

Manchmal ist es auch heute noch wichtig zu wissen, wo sich VM-Hosts befinden. Wie lässt sich dies in VMware- oder Microsoft-Umgebungen herausfinden?

Der Hauptvorteil der Virtualisierung ist die Abstrahierung. Sie macht Schluss mit der Abhängigkeit eines Workloads von der zugrundeliegenden Hardware. Diese Abstraktion ermöglicht wichtige Funktionen wie die Migration virtueller Maschinen im laufenden Betrieb oder störungsfreie Snapshots.

Doch auch wenn die Virtualisierung dafür sorgt, dass der physische Ort eines Workloads immer weniger wichtig wird, so müssen IT-Mitarbeiter doch manchmal das Host-System einer virtuellen Maschine finden, um ganz grundlegende Aufgaben ausführen zu können.

Hierzu zählen zum Beispiel das Load Balancing, die Verwaltung von VM-Images oder Snapshot-Ablagen oder auch die Vorbereitung für eine Systemwartung (die VM-Migrationen auf andere Server anstößt).

Diese Aufgaben erfordern Werkzeuge und Technologien, mit denen der VM-Host in der physischen Umgebung gefunden werden kann, um anschließend strategische Entscheidungen über Platzierung, Konfiguration oder Security von Workloads zu fällen.

Es gibt einige Wege, den VM-Host für eine bestimmte virtuelle Maschine zu finden. Der schnellste und direkteste Weg ist die Nutzung von Systemverwaltungswerkzeugen wie Microsoft System Center. In einer vSphere-Umgebung würden Administratoren dann zu VMware vCenter Server oder zu einem Drittanbieter-Tool greifen.

Mit System Center Virtual Machine Manager (SCVMM) können Anwender beispielsweise diese Abfrage starten:

Get-VMMServer <myVMcluster.domain.com> | Get-VM <Serverofinterest> | Select-Object vmhost

In dieser Abfrage würde man <myVMcluster.domain.com> durch den voll qualifizierten Domänennamen des VM-Clusters ersetzen. Für <Serverofinterest> würde der Name des gesuchten Servers eingesetzt.

In vergleichbarer Weise könnten vSphere-Administratoren den Befehl Get-VMHost einsetzen, um den Host-Server einer vSphere-VM zu finden. In der nachfolgenden Beispielabfrage beinhaltet dies den Parameter -Location zur Eingrenzung der Rechenzentren, Ordner oder andere Kriterien. Der Parameter -VM übergibt den VM-Namen des gewünschten Host-Systems:

D:\PS>Get-VMHost -Location (Get-Datacenter -Name Central) -VM (Get-VM -Name "MyExperimentalVM")

In diesem Fall sollte die Abfrage den VM-Host im zentralen Rechenzentrum finden, das die VM-Instanz MyExperimentalVM ausführt. In den Ergebnissen findet man den Domänennamen oder die IP-Adresse des ESXi Host-Systems.

Auch Datenbanken können abgefragt werden, um Details wie VM ID, VM Name, Host ID oder auch Hostname zu erhalten. Nutzer von System Center Configuration Manager können zum Beispiel TSQL-Abfragen ausführen. Nutzern von VMware steht dafür eine Abfrage der vCenter-Datenbank in Microsoft SQL offen.

Datenbankabfragen erfordern in der Regel eine Anmeldung an der Datenbank, das Öffnen des Database Management Panels, das Öffnen der Datenbank, die von dem Verwaltungswerkzeug für die Virtualisierungs-Lösung genutzt wird, das Öffnen eines Abfragefensters und schließlich das Starten der Datenbankabfrage mithilfe einiger Befehle. Die konkrete Abfrage-Syntax und deren Komplexität unterscheiden sich mitunter erheblich. Deshalb ist es immer eine gute Idee, die Dokumentation des Verwaltungswerkzeugs für die Virtualisierungs-Lösung zurate zu ziehen, in der oft zusätzliche Hilfen und spezifische Beispiele aufgeführt sind.

Eine weitere Strategie könnte das Auslesen der aktuellen Log-Dateien für die spezifische virtuelle Maschine sein. In VMware-Umgebungen kann man sich zum Beispiel mit einem Host verbinden, der Zugriff auf die VM Data-Stores hat, dort das Arbeitsverzeichnis der gewünschten virtuellen Maschine ermitteln und dann in der Datei vmware.log den Hostname-Eintrag suchen, etwa folgendermaßen:

<entry date and time stamp> | Hostname=<name_of_host>

Und schließlich können auf Microsoft setzende Unternehmen jederzeit ein Kommandozeilenwerkzeug wie die PowerShell einsetzen, um eine Vielzahl von PowerShell-Skripten anzulegen, die auf die gewünschte Information zugreifen. Als ein einfaches Beispiel sei ein Befehl auf Basis der Cmdlets  Get-item und GetValue genannt, der aus der Registry den Hyper-V-Host ausliest:

Function Get-VMHost

{

 (Get-item "HKLM:\Software\MS\VMachine\Guest\Details").GetValue("HostName")

}

Bei dem oben Genannten handelt es sich um sehr einfache Beispiele. Wenn es um die Implementierung in die eigene Produktivumgebung geht, sollten immer die entsprechenden Dokumentationen sowie erfahrene Skript-Autoren zurate gezogen werden. Zudem sollte man die Praxis berücksichtigen, Skripte in einem gesonderten Netzwerk zu testen. Damit lassen sich Fehler abseits der Produktivumgebung entdecken und mögliche Schäden für produktive Workloads minimieren.

Folgen Sie SearchDataCenter.de auch auf Twitter, Google+, Xing und Facebook!

Erfahren Sie mehr über Containervirtualisierung