Linux: virt-what erkennt Virtualisierungstechnologie

Soll ein Skript geschrieben werden, welches bei unterschiedlichen Virtualisierungstechnologien verschiedene Aktionen ausführt, muss die Technologie zunächst erkannt werden. Dafür könnte ein eigenes kleines Programm geschrieben werden, welches zum Beispiel /proc/cpuinfo ausließt. Diese Methode funktioniert jedoch leider nur teilweise. Im folgenden wird gezeigt wie das Tool virt-what die Erkennung der Virtualisierungstechnologie am Beispiel von KVM verbessern kann.

Wird ein Gastsystem in einer KVM-Umgebung betrieben enthält der Modellname der CPU standardmäßig das Wort "Qemu" und die Informationen zur Erkennung der Virtualisierungstechnologie könnten wie folgt aussehen.

$ cat /proc/cpuinfo
 processor : 0
 vendor_id : AuthenticAMD
 [...]
 model name : QEMU Virtual CPU version 1.0

Das System kann jedoch auch so konfiguriert werden, dass sich die CPU mit einem Namen einer realen CPU meldet. In diesem Fall schlägt die Identifikation der KVM-Umgebung fehl.

$ cat /proc/cpuinfo
 processor : 0
 vendor_id : AuthenticAMD
 [...]
 model name : AMD Phenom(tm) 9550 Quad-Core Processor

An dieser Stelle kommt das Tool virt-what ins Spiel. Unter Debian und Ubuntu lässt es sich wie folgt installieren.

$ sudo apt-get install virt-what

Wird das Programm anschließend als Root aufgerufen, werden zusätzliche Register der CPU für die Erkennung der Virtualisierungstechnologie verwendet.

$ sudo virt-what
kvm

Neben KVM erkennt virt-what selbstverständlich auch noch andere Technologien.

Das Paket steht nicht nur für Debian und Ubuntu, sondern auch für andere Distributionen zur Verfügung:

  • Ubuntu mindestens seit Lucid(10.04 LTS)
  • Debian mindestens seit Squeeze(6.0)
  • CentOS/Scientific Linux/RedHat seit 5.7 bzw. 6.1

Verwandte Artikel