Просмотр информации о виртуальных машинах#

Для настройки и устранения неполадок в процессе развертывания виртуализации необходимо иметь доступ к информации о текущем состоянии и конфигурации ВМ. Информацию о конкретной ВМ можно получить с помощью интерфейса командной строки, а также в ее файле XML-конфигурации.

Просмотр информации о виртуальных машинах с помощью интерфейса командной строки#

Чтобы получить информацию о ВМ на хосте и их конфигурациях, используйте приведенные ниже команды.

Сценарии#

  • Чтобы просмотреть список ВМ на хосте, используйте команду:

    virsh list --all
    

    Пример вывода команды:

    Id   Name              State
    ----------------------------------
    1    <example-vm1>     running
    -    <example-vm2>     shut off
    -    <example-vm3>     shut off
    -    <example-vm4>     shut off
    

    Где <example-vm1> - <example-vm4> - имена ВМ.

  • Чтобы просмотреть основную информацию о конкретной ВМ, используйте команду:

    virsh dominfo <example-vm>
    

    Пример вывода команды:

    Id:             1
    Name:           <example-vm>
    UUID:           a973666f-2f6e-415a-8949-75a7a98569e1
    OS Type:        hvm
    State:          running
    CPU(s):         2
    CPU time:       188.3s
    Max memory:     4194304 KiB
    Used memory:    4194304 KiB
    Persistent:     yes
    Autostart:      disable
    Managed save:   no
    Security model: selinux
    Security DOI:   0
    Security label: system_u:system_r:svirt_t:s0:c486,c538 (enforcing)
    
  • Чтобы получить полную XML-конфигурацию конкретной ВМ, используйте команду:

    virsh dumpxml <example-vm>
    

    Пример вывода команды:

    <domain type='kvm' id='1'>
       <name>example-vm</name>
       <uuid>a973434f-2f6e-4ěša-8949-76a7a98569e1</uuid>
       <metadata>
    [...]
    
  • Чтобы просмотреть информацию о дисках и других блочных устройствах ВМ, используйте команду:

    virsh domblklist <example-vm>
    

    Пример вывода команды:

      Target   Source
    ---------------------------------------------------------------
      vda      /var/lib/libvirt/images/<example-vm>.qcow2
      sda      -
      sdb      /home/username/Downloads/virt-p2v-1.36.10-1.el7.iso
    
  • Чтобы просмотреть информацию о файловых системах ВМ и их точках монтирования, используйте команду:

    virsh domfsinfo <example-vm>
    

    Пример вывода команды:

    Mountpoint   Name   Type   Target
    ------------------------------------
       /            dm-0   xfs
       /boot        vda1   xfs
    
  • Чтобы просмотреть детальную информацию о процессорах определенной ВМ, используйте команду:

    virsh vcpuinfo <example-vm>
    

    Пример вывода команды:

    VCPU:           0
    CPU:            3
    State:          running
    CPU time:       103.1s
    CPU Affinity:   yyyy
    
    VCPU:           1
    CPU:            0
    State:          running
    CPU time:       88.6s
    CPU Affinity:   yyyy
    

    Информацию о конфигурировании и оптимизации работы виртуальных процессоров можно найти в разделе «Оптимизация производительности процессора виртуальной машины».

  • Чтобы просмотреть список всех виртуальных сетевых интерфейсов на хосте, используйте команду:

    virsh net-list --all
    

    Пример вывода команды:

       Name       State    Autostart   Persistent
    ---------------------------------------------
       default    active   yes         yes
       labnet     active   yes         yes
    
  • Чтобы просмотреть информацию о конкретном интерфейсе, используйте команду:

    virsh net-info <network-interface>
    

    Где <network-interface> – имя сетевого интерфейса, например, default из предыдущего сценария.

    Пример вывода команды:

    Name:           <network-interface>
    UUID:           c699f9f6-9202-4ca8-91d0-6b8cb9024116
    Active:         yes
    Persistent:     yes
    Autostart:      yes
    Bridge:         virbr0
    

Подробную информацию о сетевых интерфейсах, сетях виртуальных машин и инструкции по их конфигурированию можно найти в разделе «Настройка сетевых подключений виртуальных машин».

Пример XML-конфигурации виртуальной машины#

XML-конфигурация ВМ, также называемая domain XML, определяет параметры и компоненты ВМ.

Чтобы получить XML-конфигурацию ВМ, используйте команду virsh dumpxml с указанием имени соответствующей ВМ:

virsh dumpxml <example-vm>

В таблице ниже показаны примеры секций XML-конфигурации виртуальной машины и даны пояснения по их содержимому:

Секция XML домена

Описание

<domain type='kvm'>
name>Testguest1</name>
<uuid>ec6fbaa1-3eb4-49da-bf61-bb02fbec4967</uuid>
<memory unit='KiB'>1048576</memory>
<currentMemory unit='KiB'>1048576</currentMemory>

ВМ KVM с именем Testguest1 с выделенной оперативной памятью объемом 1024 МБ

<vcpu placement='static'>1</vcpu>

Выделение ВМ одного виртуального процессора (vCPU). Сведения о настройке vCPU смотрите в разделе «Оптимизация производительности процессора виртуальной машины»

<os>
<type arch='x86_64' machine='pc-q35-rhel9.0.0'>hvm</type>
<boot dev='hd'/>
</os>

Настройка соответствия архитектуры машины AMD64 и Intel 64, использование Intel Q35 для определения совместимости функций. Настройка операционной системы на загрузку с жесткого диска

<features>
<acpi/>
<apic/>
</features>

Отключение функций гипервизора acpi и apic

<cpu mode='host-model' check='partial'/>

Автоматическое копирование определений центрального процессора (CPU) хоста из характеристик XML (доступны с помощью команды virsh domcapabilities) в XML-конфигурацию ВМ. Когда ВМ загружается, libvirt выбирает модель процессора, схожую с процессором хоста, а затем добавляет необходимые функции, чтобы максимально соответствовать модели процессора хоста

<clock offset='utc'>
<timer name='rtc' tickpolicy='catchup'/>
<timer name='pit' tickpolicy='delay'/>
<timer name='hpet' present='no'/>
</clock>

Настройка использования аппаратными часами ВМ часового пояса UTC. Дополнительно для синхронизации с гипервизором QEMU настроены три разных таймера

<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>

Настройка libvirt для завершения работы ВМ и освобождения всех выделенных ей ресурсов, когда ВМ выключается или ее операционная система неожиданно завершает работу. При перезагрузке ВМ libvirt перезапускает ее с той же конфигурацией

<pm>
<suspend-to-mem enabled='no'/>
<suspend-to-disk enabled='no'/>
</pm>

Отключение режимов сна ACPI S3 и S4 для данной ВМ

<devices>
<emulator>/usr/libexec/qemu-kvm</emulator>
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/var/lib/libvirt/images/Testguest.qcow2'/>
<target dev='vda' bus='virtio'/>
</disk>
<disk type='file' device='cdrom'>
<driver name='qemu' type='raw'/>
<target dev='sdb' bus='sata'/>
<readonly/>
</disk>

Настройка использования ВМ бинарного файла /usr/libexec/qemu-kvm для эмуляции и подключения к ней двух дисковых устройств.
Первый диск представляет собой виртуализированный жесткий диск, основанный на файле /var/lib/libvirt/images/Test guest.qcow2, хранящемся на хосте. Его логическому имени устройства присвоено значение vda. В гостевой системе Windows рекомендуется использовать шину sata вместо virtio.
Второй диск представляет собой виртуализированный CD-ROM, и его логическому имени устройства присвоено значение sdb

<controller type='usb' index='0' model='qemu-xhci' ports='15'/>
<controller type='sata' index='0'/>
<controller type='pci' index='0' model='pcie-root'/>
<controller type='pci' index='1' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='1' port='0x10'/>
</controller>
<controller type='pci' index='2' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='2' port='0x11'/>
</controller>
<controller type='pci' index='3' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='3' port='0x12'/>
</controller>
<controller type='pci' index='4' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='4' port='0x13'/>
</controller>
<controller type='pci' index='5' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='5' port='0x14'/>
</controller>
<controller type='pci' index='6' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='6' port='0x15'/>
</controller>
<controller type='pci' index='7' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='7' port='0x16'/>
</controller>
<controller type='virtio-serial' index='0'/>

Настройка использования ВМ одного контроллера для подключения USB-устройств и корневого контроллера для устройств PCI-Express (PCIe). Дополнительно доступен контроллер virtio-serial, который позволяет ВМ взаимодействовать с хостом различными способами, например, через последовательную консоль. Дополнительная информация о виртуальных устройствах доступна в разделе «Типы виртуальных устройств»

<interface type='network'>
<mac address='52:54:00:65:29:21'/>
<source network='default'/>
<model type='virtio'/>
</interface>

Настройка сетевого интерфейса на ВМ, который использует виртуальную сеть default и модель сетевого устройства virtio. В гостевой Windows рекомендуется использовать модель e1000e вместо virtio.
Информацию о настройке сетевого интерфейса см. в разделе «Оптимизация производительности сети виртуальных машин»

<serial type='pty'>
<target type='isa-serial' port='0'>
<model name='isa-serial'/>
</target>
</serial>
<console type='pty'>
<target type='serial' port='0'/>
</console>
<channel type='unix'>
<target type='virtio' name='org.qemu.guest_agent.0'/>
<address type='virtio-serial' controller='0' bus='0' port='1'/>
</channel>

Настройка на ВМ последовательной консоли pty, которая обеспечивает элементарную связь ВМ с хостом. Консоль использует канал UNIX на порту 1. Это настраивается автоматически, изменение этих настроек не рекомендуется

<input type='tablet' bus='usb'>
<address type='usb' bus='0' port='1'/>
</input>
<input type='mouse' bus='ps2'/>
<input type='keyboard' bus='ps2'/>

Настройка использования на ВМ виртуального порта USB, который настроен для приема ввода данных с планшета, и виртуального порта PS/2, настроенного для приема ввода с помощью мыши и клавиатуры. Настраивается автоматически. Изменение данных настроек не рекомендуется

<graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1'>
<listen type='address' address='127.0.0.1'/>
</graphics>

Настройка использования протокола vnc на ВМ для отображения графического вывода

<redirdev bus='usb' type='tcp'>
<source mode='connect' host='localhost' service='4000'/>
<protocol type='raw'/>
</redirdev>
<memballoon model='virtio'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
</memballoon>
</devices>
</domain>

Настройка использования на ВМ tcp re-director для удаленного подключения USB-устройств, и включения увеличения объема памяти. Настраивается автоматически. Изменение данных настроек не рекомендуется