KVM: различия между версиями

Материал из Записи-напоминании
Перейти к навигации Перейти к поиску
Нет описания правки
 
(нет различий)

Текущая версия от 09:27, 2 августа 2026

Основное

Команды

dnf install qemu-kvm libvirt

virsh attach-disk $vm_name /mnt/local_data/ISO/virtio-win-0.1.141.iso hda --type cdrom --mode readonly

virsh qemu-agent-command $vm_name '{"execute":"guest-exec", "arguments":{"path":"C:\\Windows\\System32\\shutdown.exe", "arg":["-s", "-t", "0"], "capture-output":true}}'

Драйвера

https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/

//Для установщика Guest Agent будет нужна служба SENS (Служба уведомления о системных событиях)

Готовые определения XML

i440fx, Linux: txt xml

i440fx, Windows: txt xml

i440fx, Windows, recover: txt xml

Параметры

Очередь загрузочных устройств

<domain>
  <os>
    <bootmenu enable='yes'/>
    <boot dev='cdrom'/>
    <boot dev='hd'/>
    <boot dev='network'/>
  </os>
</domain>
<domain>
  <devices>
    <disk type='block' device='disk'>
    <disk type='file' device='cdrom'>
      ...
      <boot order='1'/>
      ...
    </disk>
  </devices>
</domain>

В случае, когда виртуальный HDD является не блочным устройством, а raw файлом, параметр type должен равняться file и следует удалить параметры cache и io

Память

HugePages

<domain>
  <memoryBacking>
    <hugepages/>
  </memoryBacking>
</domain>

Сеть

virsh domif-setlink $vmname $ifname {up,down}

<domain>
  <devices>
    <interface ... >
      ...
      <link state='down'/> //Состояние сетевого интерфейса
      <target dev='vm0'/> //Имя сетевого интерфейса в системе
      ...
    </interface>
  </devices>
</domain>

Видеовывод и удаленное управление

Отключение видеовывода

<domain>
  <devices>
    <video>
      <model type='none'/>
    </video>
  </devices>
</domain>

Удаленное управление со всех IP

<domain>
  <devices>
    <graphics type='vnc'>
      <listen type='address' address='0.0.0.0'/>
    </graphics>
  </devices>
</domain>

Отключение удаленного управления

<domain>
  <devices>
    <graphics type='vnc'>
      <listen type='none'/>
    </graphics>
  </devices>
</domain>

Пароль удаленного управления

<domain>
  <devices>
    <graphics ... passwd='PaSSWoRD'>
      ...
    </graphics>
  </devices>
</domain>

Параметры ЦП

virsh capabilities | grep "cpu id"

ЦП хоста на 4 ядра (8 потоков)

<cpu ...>
  <topology sockets='1' cores='3' threads='2'/>
  ...
</cpu>
<vcpu placement='static'>6</vcpu>
<cputune>
  <vcpupin vcpu='0' cpuset='1,5'/>
  <vcpupin vcpu='1' cpuset='2,6'/>
  <vcpupin vcpu='2' cpuset='3,7'/>
  <vcpupin vcpu='3' cpuset='1,5'/>
  <vcpupin vcpu='4' cpuset='2,6'/>
  <vcpupin vcpu='5' cpuset='3,7'/>
  <emulatorpin cpuset='0,4'/>
</cputune>
<cpu ...>
  <topology sockets='1' cores='2' threads='2'/>
  ...
</cpu>
<vcpu placement='static'>4</vcpu>
<cputune>
  <vcpupin vcpu='0' cpuset='2,6'/>
  <vcpupin vcpu='1' cpuset='3,7'/>
  <vcpupin vcpu='2' cpuset='2,6'/>
  <vcpupin vcpu='3' cpuset='3,7'/>
  <emulatorpin cpuset='0-1,4-5'/>
</cputune>
<cpu ...>
  <topology sockets='1' cores='1' threads='2'/>
  ...
</cpu>
<vcpu placement='static'>2</vcpu>
<cputune>
  <vcpupin vcpu='0' cpuset='3,7'/>
  <vcpupin vcpu='1' cpuset='3,7'/>
  <emulatorpin cpuset='0-2,4-6'/>
</cputune>

Проброс устройства

PCI

<domain>
  <devices>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <source>
        <address domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
    </hostdev>
  </devices>
</domain>

USB

virsh {attach,detach}-device $vmname device.xml

<domain>
  <devices>
    <hostdev mode='subsystem' type='usb' managed='yes'>
      <source>
        <vendor id='0x0a89'/>
        <product id='0x0008'/>
      </source>
      <address type='usb' bus='0' port='2'/>
    </hostdev>
  </devices>
</domain>

Устаревшие уст-ва

IDE

<controller type='ide' index='0'>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
</controller>

Другие параметры

SMBIOS

<domain>
  <os>
    <smbios mode='sysinfo'/>
  </os>
  <sysinfo type='smbios'>
    <bios>
      <entry name='vendor'>SuperMicro</entry>
    </bios>
    <system>
      <entry name='manufacturer'>CentOS 8</entry>
      <entry name='product'>libvirt</entry>
    </system>
    <baseBoard>
      <entry name='manufacturer'>SuperMicro</entry>
      <entry name='product'>MBD-X11SCL-F</entry>
    </baseBoard>
  </sysinfo>
</domain>