Inhaltsverzeichnis
OmniVista 2500 Betrieb mit KVM
Ab OmniVista 2500 Release 4.5R2 ist der Betrieb auf KVM offiziell unterstützt!
Um eine bestehende VM als XML zu exportieren (um sich die Änderung etwas zu erleichtern) verwendet man folgendes Kommando:
virsh dumpxml OmniVista > omnivista.xml
Änderungen in XML für "fstrim"-Unterstützung
- Der Pfad zu disk1.qcow2 und disk2.qcow2 muss entsprechend angepasst werden
- Die Verwendung von Typ sata führt dazu dass discard auch bei älteren Hosts funktioniert
- Der Zusatz discard='unmap' sorgt dafür dass „fstrim -av“ innerhalb der VA zu einem verminderten Speicherbedarf führt
<disk type='file' device='disk'> <driver name='qemu' type='qcow2' discard='unmap'/> <source file='/var/vmsng/OV45R2/disk1.qcow2'/> <backingStore/> <target dev='sda' bus='sata'/> <boot order='1'/> <alias name='sata0-0-0'/> <address type='drive' controller='0' bus='0' target='0' unit='0'/> </disk> <disk type='file' device='disk'> <driver name='qemu' type='qcow2' discard='unmap'/> <source file='/var/vmsng/OV45R2/disk2.qcow2'/> <backingStore/> <target dev='sdb' bus='sata'/> <alias name='sata0-0-1'/> <address type='drive' controller='0' bus='0' target='0' unit='1'/> </disk>
Informationen zu den qcow2-Disks
Diese Ausgabe gilt für eine Version in meiner Installation, später können diese Werte abweichen!
$ qemu-img info disk1.qcow2 image: disk1.qcow2 file format: qcow2 virtual size: 50G (53687091200 bytes) disk size: 706M cluster_size: 65536 Format specific information: compat: 1.1 lazy refcounts: false refcount bits: 16 corrupt: false $ qemu-img info disk2.qcow2 image: disk2.qcow2 file format: qcow2 virtual size: 256G (274877906944 bytes) disk size: 1.5G cluster_size: 65536 Format specific information: compat: 1.1 lazy refcounts: false refcount bits: 16 corrupt: false
Importieren der geänderten XML Datei
Um Fehlermeldungen zu vermeiden, sollten folgende Angaben gelöscht/angepasst werden
- „<name>“ (Name der VM)
- „<source>“ (für qcow2 Disks, wie bereits im vorherigen Schritt beschrieben)
- „<uuid>“ (aus XML-Datei löschen, wird neu generiert beim Import)
- „<mac address⇒“ (aus XML-Datei löschen, wird neu generiert beim Import)
virsh define omnivistapreview.xml Domain OmniVistaPreview defined from omnivistapreview.xml
Start der OmniVista VA
virsh start OmniVistaPreview Domain OmniVistaPreview started
Anzeige der laufenden VMs
virsh list --all Id Name State ---------------------------------- 6 tiger running 9 fhem running 11 zabbix-lts running 12 fwinet running 15 OmniVista running 23 OmniVistaPreview running - debian-microk8s shut off - n-kvm1 shut off - OV44B18 shut off
Ab hier funktioniert die Einrichtung von OmniVista 2500 wie gehabt!
Aktivieren des "Guest Agent" in OmniVista
Es empfiehlt sich die XML-Konfiguration auf dem KVM Host zu prüfen, bevor man den Guest Agent innerhalb der VA installiert, denn sonst müsste man die VM evtl. mehrfach neustarten (außer man fügt dies „live“ hinzu, wozu man aber die notwendigen KVM/QEMU-Kenntnisse benötigt).
Prüfen ob QEMU Guest Agent aktiviert ist (KVM Host)
Damit der QEMU Guest Agent in der VM verwendet werden kann, muss der KVM Host (in meinem Fall „Debian Buster“) folgende Konfiguration in der XML Konfiguration haben. (Dies ist soweit ich weiß der Standard, aber ich erwähne es hier der Vollständigkeit halber.)
<channel type='unix'> <target type='virtio' name='org.qemu.guest_agent.0'/> </channel>
Installation des QEMU Guest Agents innerhalb der OmniVista VA
OmniVista VA Menü (cliadmin) -> Option 11: "Set Up Optional Tools" auswählen
In diesem Menü muss dann nur noch Option 5: "KVM/QEMU Guest Tools" ausgewählt werden
Prüfen der Funktion des QEMU Guest Agents (vom KVM Host)
virsh: guestvcpus <domain>
virsh # guestvcpus OmniVistaPreview vcpus : 0-7 online : 0-7 offlinable : 0-7
virsh qemu-agent-command Kommandos
benny@shiva:~$ virsh qemu-agent-command OmniVistaPreview '{"execute":"guest-get-time"}' | jq { "return": 1592930405468673000 } benny@shiva:~$ virsh qemu-agent-command OmniVistaPreview '{"execute":"guest-ping"}' | jq { "return": {} } benny@shiva:~$ virsh qemu-agent-command OmniVistaPreview '{"execute":"guest-fstrim"}' | jq { "return": { "paths": [ { "minimum": 512, "path": "/home/jail/opt", "trimmed": 0 }, { "minimum": 512, "path": "/opt", "trimmed": 76591104 }, { "minimum": 512, "path": "/boot", "trimmed": 0 }, { "minimum": 512, "path": "/home/jail/usr/share/terminfo", "trimmed": 0 }, { "minimum": 512, "path": "/home/jail/etc", "trimmed": 0 }, { "minimum": 512, "path": "/home/jail/var", "trimmed": 0 }, { "minimum": 512, "path": "/home/jail/lib64", "trimmed": 0 }, { "minimum": 512, "path": "/home/jail/usr/lib64", "trimmed": 0 }, { "minimum": 512, "path": "/home/jail/usr/libexec", "trimmed": 0 }, { "minimum": 512, "path": "/home/jail/lib", "trimmed": 0 }, { "minimum": 512, "path": "/", "trimmed": 0 } ] } }
Exemplarisches Fehlerbild
In diesem Fall funktioniert die Kommunikation zwischen KVM Host und dem OmniVista VA QEMU Guest Agent nicht.
virsh # guestvcpus OmniVista error: Guest agent is not responding: QEMU guest agent is not connected