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

    <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

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

Nach der Installation muss die OmniVista neugestartet 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