KVM Virtual Machine XML Configuration Example: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 59: Line 59:
           <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
           <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
       </disk>
       </disk>
    <controller type='usb' index='0' model='ich9-ehci1'>
      <controller type='usb' index='0' model='ich9-ehci1'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x7'/>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x7'/>
    </controller>
      </controller>
    <controller type='usb' index='0' model='ich9-uhci1'>
      <controller type='usb' index='0' model='ich9-uhci1'>
      <master startport='0'/>
          <master startport='0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0' multifunction='on'/>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0' multifunction='on'/>
    </controller>
      </controller>
    <controller type='usb' index='0' model='ich9-uhci2'>
      <controller type='usb' index='0' model='ich9-uhci2'>
      <master startport='2'/>
          <master startport='2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x1'/>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x1'/>
    </controller>
      </controller>
    <controller type='usb' index='0' model='ich9-uhci3'>
      <controller type='usb' index='0' model='ich9-uhci3'>
      <master startport='4'/>
          <master startport='4'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x2'/>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x2'/>
    </controller>
      </controller>
    <controller type='pci' index='0' model='pci-root'/>
      <controller type='pci' index='0' model='pci-root'/>
    <controller type='ide' index='0'>
      <controller type='ide' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
            <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
    </controller>
      </controller>
    <controller type='virtio-serial' index='0'>
      <controller type='virtio-serial' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </controller>
      </controller>
    <interface type='network'>
      <interface type='network'>
      <mac address='52:54:00:79:03:0c'/>
          <mac address='52:54:00:79:03:0c'/>
      &lt;source network='default'/>
          &lt;source network='default'/>
      <model type='virtio'/>
          <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>
      </interface>
    <serial type='pty'>
      <serial type='pty'>
      <target port='0'/>
          <target port='0'/>
    </serial>
      </serial>
    <console type='pty'>
      <console type='pty'>
      <target type='serial' port='0'/>
          <target type='serial' port='0'/>
    </console>
      </console>
    <channel type='unix'>
      <channel type='unix'>
      <target type='virtio' name='org.qemu.guest_agent.0'/>
          <target type='virtio' name='org.qemu.guest_agent.0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
          <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
      </channel>
    <input type='tablet' bus='usb'>
      <input type='tablet' bus='usb'>
      <address type='usb' bus='0' port='1'/>
          <address type='usb' bus='0' port='1'/>
    </input>
      </input>
    <input type='mouse' bus='ps2'/>
      <input type='mouse' bus='ps2'/>
    <input type='keyboard' bus='ps2'/>
      <input type='keyboard' bus='ps2'/>
    <memballoon model='virtio'>
      <memballoon model='virtio'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
    </memballoon>
      </memballoon>
  </devices>
  </devices>
  </domain>
  </domain>



Revision as of 20:34, 30 June 2017

External

Internal

Example

<domain type='kvm'>
  <name>blue</name>
  <uuid>2a0523ba-9c44-47bd-8956-fc2b93ac1863</uuid>
  <memory unit='KiB'>1048576</memory>
  <currentMemory unit='KiB'>1048576</currentMemory>
  <vcpu placement='static'>1</vcpu>
  <os>
      <type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type>
      <boot dev='hd'/>
  </os>
  <features>
      <acpi/>
      <apic/>
  </features>
  <cpu mode='custom' match='exact'>
      <model fallback='allow'>Broadwell</model>
  </cpu>
  <clock offset='utc'>
      <timer name='rtc' tickpolicy='catchup'/>
      <timer name='pit' tickpolicy='delay'/>
      <timer name='hpet' present='no'/>
  </clock>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <pm>
      <suspend-to-mem enabled='no'/>
      <suspend-to-disk enabled='no'/>
  </pm>
  <devices>
      <emulator>/usr/libexec/qemu-kvm</emulator>
      <disk type='file' device='cdrom'>
          <driver name='qemu' type='raw'/>
          <source file='/iso-images/rhel-server-7.3-x86_64-dvd.iso'/>
          <target dev='hda' bus='ide'/>
          <readonly/>
          <address type='drive' controller='0' bus='0' target='0' unit='0'/>
      </disk>
      <disk type='file' device='disk'>
          <driver name='qemu' type='qcow2'/>
          <source file='/main-storage-pool/blue.qcow2'/>
          <target dev='vda' bus='virtio'/>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
      </disk>
      <disk type='file' device='disk'>
          <driver name='qemu' type='raw'/>
          <source file='/main-storage-pool/blue-docker.raw'/>
          <target dev='vdb' bus='virtio'/>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
      </disk>
      <controller type='usb' index='0' model='ich9-ehci1'>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x7'/>
      </controller>
      <controller type='usb' index='0' model='ich9-uhci1'>
          <master startport='0'/>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0' multifunction='on'/>
      </controller>
      <controller type='usb' index='0' model='ich9-uhci2'>
          <master startport='2'/>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x1'/>
      </controller>
      <controller type='usb' index='0' model='ich9-uhci3'>
          <master startport='4'/>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x2'/>
      </controller>
      <controller type='pci' index='0' model='pci-root'/>
      <controller type='ide' index='0'>
           <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
      </controller>
      <controller type='virtio-serial' index='0'>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
      </controller>
      <interface type='network'>
          <mac address='52:54:00:79:03:0c'/>
          <source network='default'/>
          <model type='virtio'/>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
      </interface>
      <serial type='pty'>
          <target port='0'/>
      </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>
      <input type='tablet' bus='usb'>
          <address type='usb' bus='0' port='1'/>
      </input>
      <input type='mouse' bus='ps2'/>
      <input type='keyboard' bus='ps2'/>
      <memballoon model='virtio'>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
      </memballoon>
  </devices>
</domain>

Elements

name

The short name of the virtual machine. Must consists of alphanumeric characters and it must be unique per virtualization host. Ideally, it should follow the virtual machine name convention when naming virtual machine. Also conventionally, it is also the name of the file storing the virtual machine image, with the ".img" prefix.

uuid

uuid is a globally unique identifier for the virtual machine. Must be in a RFC 4122-compliant format. Can be committed when defining a new machine. If omitted, a new UUID will be generated.

memory

memory represents the maximum amount of memory allocated to the guest at boot time. Valid units are "b" (bytes), "KB" (kilobytes - 1,000 bytes), "KiB" (kibibytes 1,024 bytes), "MB", "MiB", 'GB", "GiB", "TB", "TiB". However, the value will be rounded up to the nearest KiB by libvirt, and may be further rounded up to the granularity supported by the hypervisor. In case NUMA is configured for the guest, the memory element can be omitted.

currentMemory

currentMemory represents the actual allocation of memory for the guest. This value can be less than the maximum allocation, to allow for ballooning up the guests memory on the fly. If this is omitted, it defaults to the same value as the memory element. The unit attribute behaves the same as for memory.

maxMemory

See https://libvirt.org/formatdomain.html#elementsMemoryAllocation.

vcpu

vcpu defines the maximum number of virtual CPUs allocated. It must be 1 and the maximum number supported by the hypervisor.

More details: https://libvirt.org/formatdomain.html#elementsCPUAllocation.

devices

disk

disk defines.