VMmanager использует libvirt для управления виртуализацией. В свою очередь, управление libvirt осуществляется при помощи утилиты virsh. Она позволяет задействовать все возможности libvirt. При помощи virsh можно также вручную управлять libvirt, однако это не рекомендуется. При крайней необходимости ручного управления libvirt следует учитывать существующие особенности VMmanager.

libvirt


libvirt — набор программного обеспечения, основными функциями которого являются:

  • создание и управление виртуальными машинами;
  • управление хранилищем;
  • управление сетевым интерфейсом.

libvirt состоит из следующих компонентов:

  • библиотека API;
  • демон (libvirtd);
  • утилита командной строки (virsh).

Виртуальные машины хранятся в виде XML-описаний в директории /etc/libvirt/<virtualization>, где <virtualization> — тип виртуализации, например, qemu.

Подробнее об описании виртуальных машин, элементах, атрибутах и их значениях см. в официальной документации libvirt.

Обратите внимание!

Ручное редактирование виртуальных машин следует выполнять с помощью утилиты virsh. При последующем изменении виртуальной машины в панели управления, её XML-описание будет перезаписано и правки, внесённые вручную, утеряны.


Пример XML-описания виртуальной машины:

Описание виртуальной машины «ceph-client»

cat /etc/libvirt/qemu/ceph-client.xml

<domain type='kvm'>
  <name>ceph-client</name>
  <uuid>ba4ff807-bce2-40a3-8fb7-5a970de112ff</uuid>
  <memory unit='KiB'>262144</memory>
  <currentMemory unit='KiB'>262144</currentMemory>
  <blkiotune>
    <weight>500</weight>
  </blkiotune>
  <vcpu placement='static'>2</vcpu>
  <cputune>
    <shares>1000</shares>
  </cputune>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64' machine='pc-i440fx-rhel7.4.0'>hvm</type>
    <bootmenu enable='yes'/>
  </os>
  <features>
    <acpi/>
    <apic/>
    <pae/>
  </features>
  <clock offset='utc'/>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>destroy</on_crash>
  <devices>
    <emulator>/usr/libexec/qemu-kvm</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'/>
      <source file='/ceph/ceph-client'/>
      <target dev='vda' bus='virtio'/>
      <boot order='1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </disk>
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'/>
      <source file='/ceph/volume4'/>
      <target dev='vdc' bus='virtio'/>
      <boot order='2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
    </disk>
    <controller type='ide' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
    </controller>
    <controller type='usb' index='0' model='piix3-uhci'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
    </controller>
    <controller type='pci' index='0' model='pci-root'/>
    <interface type='network'>
      <mac address='52:54:00:ad:9b:4b'/>
      <source network='NAT_192.168.0.1'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>
    <serial type='pty'>
      <target type='isa-serial' port='0'/>
    </serial>
    <console type='pty'>
      <target type='serial' port='0'/>
    </console>
    <input type='mouse' bus='ps2'/>
    <input type='keyboard' bus='ps2'/>
    <input type='tablet' bus='usb'>
      <address type='usb' bus='0' port='1'/>
    </input>
    <graphics type='vnc' port='-1' autoport='yes' passwd='U1g3A8y9'>
      <listen type='network' network='DefaultBridge'/>
    </graphics>
    <video>
      <model type='cirrus' vram='16384' heads='1' primary='yes'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </video>
    <memballoon model='virtio'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </memballoon>
  </devices>
</domain>
XML

Документацию libvirt см. на официальном сайте.

virsh


Основные возможности утилиты virsh:

  • virsh create <vm> — создание виртуальной машины;
  • virsh edit <vm> — редактирование виртуальной машины;
  • virsh list — вывод списка запущенных виртуальных машин и их идентификаторов;
  • virsh start <vm>, virsh shutdown <vm> — запуск и выключение виртуальной машины;
  • virsh destroy <vm> — уничтожение виртуальной машины.

<vm> — наименование или идентификатор виртуальной машины.

Документацию virsh см. на официальном сайте или из консоли:

man virsh
BASH