Zum Inhalt springenZur Seitennavigation springen: vorherige Seite [Zugriffstaste p]/nächste Seite [Zugriffstaste n]
documentation.suse.com / Einrichten des Virtual Host Metrics Daemon auf SUSE Linux Micro

Einrichten des Virtual Host Metrics Daemon auf SUSE Linux Micro

Veröffentlicht: 20.03.2025
WAS?

vhostmd ist ein Tool, das Kennzahlen von einem Host einer virtuellen Maschine erfasst und diese Kennzahlen den virtuellen Maschinen zur Verfügung stellen kann, die auf diesem Host ausgeführt werden.

WARUM?

In diesem Artikel wird beschrieben, wie Sie vhostmd installieren und konfigurieren, um das Erfassen von Kennzahlen zu ermöglichen.

AUFWAND

Es dauert ungefähr 15 Minuten, um den Artikel zu lesen.

ZIEL

Das Tool vhostmd wird ausgeführt und erfasst Kennzahlen.

ANFORDERUNGEN
  • Eine ausgeführte Instanz von SUSE Linux Micro

  • Virtuelle Maschinen, die auf dieser Instanz ausgeführt werden

1 Was ist ein Virtual Host Metrics Daemon, auch bekannt als vhostmd?

vhostmd ist ein Daemon, der in einer Host-Umgebung ausgeführt wird und einen Kennzahlen-Kommunikationskanal zwischen dem Host- und dem Gastrechner bereitstellt. Der Daemon stellt dem Administrator des Gastrechners eine begrenzte Anzahl von Daten zur Nutzung der Host-Ressourcen zur Verfügung (in der Regel im schreibgeschützten Modus), um Probleme mit dem Gastrechner zu analysieren.

vhostdmd schreibt regelmäßig Kennzahlen auf einen Datenträger. Die zu erfassenden Kennzahlen sowie die Häufigkeit und der Speicherort der Daten sind konfigurierbare Parameter.

2 Mit der vhostmd

Standardmäßig ist vhostmd nicht in den gelieferten Bildern enthalten. Daher müssen Sie es installieren, bevor Sie es verwenden:

  1. Installieren Sie den Daemon mit dem Kommando:

              > 
              sudo
              transactional-update pkg install vhostmd
  2. Booten Sie Ihr System neu, um zum neuen Snapshot zu wechseln.

  3. Starten Sie den Daemon mit dem Kommando:

              > 
              sudo
              vhostmd
              OPTIONS

    Sie können die folgenden Optionen verwenden, um das Kommandoverhalten zu ändern:

    • -v: für eine ausführliche Ausgabe

    • --connect URI: zur Weitergabe der URI des libvirt-Daemons, um Verbindungen zum Daemon herzustellen

    • -f FILE_PATH: zur Weitergabe einer alternative Konfigurationsdatei Ausführliche Informationen zur Konfiguration finden Sie in Abschnitt 4, „Konfiguration von vhostmd.

    • -p PID_FILE: zum Erstellen einer alternativen PID-Datei Der Standardwert ist /var/run/vhostmd.pid.

    • -u USERNAME: zum Verwenden eines nicht privilegierten Benutzers

Sie können auch vhostmd als systemd-Dienst ausführen:

      > 
      sudo
      systemctl enable --now vhostmd
Anmerkung
Anmerkung: Neustart des Dienstes nach Konfigurationsänderungen erforderlich

Wenn Sie Änderungen an der Konfiguration vornehmen, wie in Abschnitt 4, „Konfiguration von vhostmd beschrieben, müssen Sie den vhostmd-Dienst wie folgt neu starten:

        > 
        sudo
        systemctl restart vhostmd

3 Bereitstellen erfasster Kennzahlen für eine virtuelle Maschine

Sie können die erfassten Kennzahlen für bestimmte virtuelle Maschinen zur weiteren Verwendung oder nur zum Lesen sichtbar machen. Es gibt dazu zwei Möglichkeiten. Sie können entweder den Datenträger mit den Kennzahlen mit dem Kommando virsh anfügen oder die Domänenkonfiguration anpassen.

Wenn Sie den Datenträger mit den Kennzahlen in einem schreibgeschützten Modus anfügen möchten, führen Sie virsh aus:

      > 
      sudo
      virsh attach-disk VIRTUAL_MACHINE \ 
  PATH_TO_METRICS_DISC --driver tap \
  --subdriver aio --type disk --mode readonly

Gehen Sie zum Ändern der Domänenkonfiguration wie folgt vor:

  1. Führen Sie folgendes Kommando aus:

              > 
              sudo
              virsh edit
       GUEST_NAME
  2. Aktualisieren Sie den <devices>-Abschnitt, indem Sie den folgenden Codeausschnitt hinzufügen:

    <disk type='block' device='disk'>
      <source dev='/dev/shm/vhostmd0'/>
      <target dev='hdb' bus='ide'/>
      <readonly/>
    </disk>

    Passen Sie die Werte dev und dbus des Ziels an.

4 Konfiguration von vhostmd

Die Standardkonfigurationsdatei von vhostmd befindet sich in /etc/vhostmd/vhostmd.conf. Sie können diese Datei an Ihre Bedürfnisse anpassen. Bei der Konfigurationsdatei handelt es sich um eine XML-Datei, die das <vhostmd>-Element enthalten muss. <vhostmd> schließt dann <globals> und <metrics> ein, die in den folgenden Abschnitten beschrieben werden. Verwenden Sie die Standardkonfigurationsdatei als Referenz für benutzerdefinierte Änderungen.

4.1 Das <globals>-Element

Das <globals>-Element definiert den Speicherort des Datenträgers, die Häufigkeit der Datenaktualisierungen und die Methode zum Transportieren von Daten an Gastrechner. Es enthält die folgenden Optionen:

<disk>

Das Element wird verwendet, um den Pfad des Datenträgers zu definieren, auf dem die Kennzahlendaten gespeichert werden, sowie die Größe des Datenträgers. Er kann folgende Elemente enthalten:

  • <name>: definiert den Namen der Datenträger

  • <path>: ein absoluter Pfad, in dem der Datenträger eingehängt wird

  • <size>: gibt mithilfe des Attributs unit die maximale Größe der Kennzahlen an. Verwenden Sie k für KB, m für MB.

<update_period>

Definiert, wie oft die Kennzahlen aktualisiert werden. Der Wert wird in Sekunden angegeben.

<transport>

Gibt an, wie die Kennzahlen zu Gastrechnern transportiert werden. Verwenden Sie im Fall von SUSE Linux Micro die Standardeinstellung von virtio.

<virtio>

Hier können Sie folgende Elemente verwenden:

  • <max_channels>: gibt die maximale Anzahl an, die virtion zwischen dem Host- und dem Gastsystem verwenden kann.

  • <expiration_time>: definiert das Zeitintervall, nach dem ein virtio-Kanal einer virtuellen Maschine geschlossen wird, wenn er sich im Leerlauf befindet. Der Standardwert ist das Dreifache von <update_period>.

4.2 Das <metrics>-Element

Das <metrics>-Element enthält eine Liste der Kennzahlen, die erfasst werden sollen. Jede Kennzahl verfügt über zwei Attribute:

type

Beschreibt den Datentyp des Kennzahlenwerts. Die folgenden Werte sind möglich: int32, uint32, int64, uint64, real32, real64, string, group und xml.

Verwenden Sie group, wenn eine Kennzahl mehrere Werte zurückgibt. xml ist eine vielseitige Form, wenn die Kennzahl einen gültigen XML-Code zurückgibt.

context

Definiert, wo die jeweilige Kennzahl erfasst wird. Mögliche Werte:

  • host für Kennzahlen, die auf dem Hostrechner erfasst wurden

  • vm für Kennzahlen, die auf dem Gastrechner erfasst wurden

Jede Kennzahl muss über einen eindeutigen Namen und ein Kommando zum Ausführen der Aufzeichnung der Kennzahlen verfügen. In der folgenden Liste werden mögliche Elemente zum Definieren einer Kennzahl beschrieben:

<name>

Definiert den eindeutigen Variablennamen. Wenn die Kennzahl auf einer virtuellen Maschine erfasst wird, können Sie hier die folgenden Werte verwenden: NAME, ID und UUID. Diese Werte werden dann durch die tatsächlichen Werte der virtuellen Maschine ersetzt, die gerade überprüft wird.

<action>

Gibt ein Kommando oder ein Skript an, das zum Erfassen einer Kennzahl ausgeführt werden soll. Wenn Sie beispielsweise die gesamte CPU-Zeit erfassen möchten, verwenden Sie Folgendes:

<action>virsh dominfo NAME | sed 's/: */:/' | \
    gawk -F: '/CPU time/ {print $2;}'<action>
<variable>

Wenn eine Aktion eine Gruppe von Werten wiederherstellt, definieren Sie Variablen, in denen bestimmte Daten gespeichert werden. Für das Element müssen die folgenden Attribute definiert sein:

  • name: Geben Sie den Namen einer Variablen an.

  • type: Geben Sie den Datentyp der Variablen an.

5 Wie werden die erfassten Kennzahlen gespeichert?

vhostmd speichert die erfassten Kennzahlendaten auf dem Datenträger mit den Kennzahlen in einem RAW-Format. Der Datenträger enthält einen 32-Byte-Header, gefolgt von den Kennzahlendaten im XML-Format.

5.1 XML-Format für Kennzahlen

Die Ergebnisse der erfassten Kennzahlen ähneln der konfigurierten Kennzahlendefinition. Das <metric>-Element kann die folgenden Attribute haben:

type

Gibt den Datentyp der jeweiligen Kennzahl an, z. B. string.

context

Gibt an, ob die Kennzahl auf dem Host (host) oder auf einer virtuellen Maschine (vm) erfasst wird.

id

Wird im vm-Kontext verwendet. Übermittelt die ID-Nummer der virtuellen Maschine.

uuid

Wird im vm-Kontext verwendet. Übermittelt den universell eindeutigen Bezeichner der virtuellen Maschine.

Das <metric>-Element enthält die folgenden Elemente:

<name>

Vermittelt den Namen der Kennzahl.

<value>

Vermittelt den tatsächlichen Wert der Kennzahl.

Anmerkung
Anmerkung: Keine Mehrfachwerte innerhalb einer Kennzahl

Wenn der Typ group einer Kennzahl konfiguriert wurde, wird jede konfigurierte <variable> als separate Kennzahl im Ergebnis gespeichert. Zum Beispiel der folgende Konfigurationsausschnitt:

<metric type="group" context="host">
  <name>PageRates</name>
  <action>pagerate.pl</action>
  <variable name="PageInRate" type="uint64"/>
  <variable name="PageFaultRate" type="uint64"/>
</metric>

Ergibt den folgenden Codeausschnitt:

<metric type='uint64' context='host'>
  <name>PageInRate</name>
  <value>0.000000</value>
</metric>
<metric type='uint64' context='host'>
  <name>PageFaultRate</name>
  <value>0.000000</value>
</metric>