Einrichten des Virtual Host Metrics Daemon auf SUSE Linux Micro
- 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:
Installieren Sie den Daemon mit dem Kommando:
>
sudo
transactional-update pkg install vhostmd
Booten Sie Ihr System neu, um zum neuen Snapshot zu wechseln.
Starten Sie den Daemon mit dem Kommando:
>
sudo
vhostmd
OPTIONSSie können die folgenden Optionen verwenden, um das Kommandoverhalten zu ändern:
-v
: für eine ausführliche Ausgabe--connect URI
: zur Weitergabe der URI deslibvirt
-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 vonvhostmd
“.-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
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:
Führen Sie folgendes Kommando aus:
>
sudo
virsh edit GUEST_NAME
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
unddbus
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 Attributsunit
die maximale Größe der Kennzahlen an. Verwenden Siek
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, dievirtion
zwischen dem Host- und dem Gastsystem verwenden kann.<expiration_time>
: definiert das Zeitintervall, nach dem einvirtio
-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
undxml
.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 wurdenvm
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
undUUID
. 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.
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>
6 Rechtliche Hinweise #
Copyright © 2006–2025 SUSE LLC und Mitwirkende. Alle Rechte vorbehalten.
Es wird die Genehmigung erteilt, dieses Dokument unter den Bedingungen der GNU Free Documentation License, Version 1.2 oder (optional) Version 1.3 zu vervielfältigen, zu verbreiten und/oder zu verändern; die unveränderlichen Abschnitte hierbei sind der Urheberrechtshinweis und die Lizenzbedingungen. Eine Kopie dieser Lizenz (Version 1.2) finden Sie im Abschnitt „GNU Free Documentation License“.
Die SUSE Marken finden Sie im https://www.suse.com/company/legal/. Alle anderen Marken von Drittanbietern sind Besitz ihrer jeweiligen Eigentümer. Markensymbole (®, ™ usw.) kennzeichnen Marken von SUSE und ihren Tochtergesellschaften. Sternchen (*) kennzeichnen Marken von Drittanbietern.
Alle Informationen in diesem Buch wurden mit größter Sorgfalt zusammengestellt. Auch hierdurch kann jedoch keine hundertprozentige Richtigkeit gewährleistet werden. Weder SUSE LLC noch ihre Tochtergesellschaften noch die Autoren noch die Übersetzer können für mögliche Fehler und deren Folgen haftbar gemacht werden.