qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [Bug 1817268] Re: Input/output error during migration


From: Dr. David Alan Gilbert
Subject: [Qemu-devel] [Bug 1817268] Re: Input/output error during migration
Date: Fri, 22 Feb 2019 09:26:28 -0000

Hi Mathieu,
  How big is your testuefi-VM_VARS.fd file ?   Does the problem go away if you 
pad it to 1MB?

I've seen a problem migrating pflash where the files aren't 1MB (?)
multiples but only using the 'old style' block migration; normally you
get an NBD based block migration but when you select tunneling libvirt
can't tunnel the nbd stream so falls back to the old style migration and
hits this bug.

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1817268

Title:
  Input/output error during migration

Status in QEMU:
  New

Bug description:
  Operating system: Ubuntu 18.04.2 LTS
  qemu version: 2.11.1, but also reproduced with 3.1.0 (compiled manually).
  virsh --version: 4.0.0

  Hello,

  I am having an issue with migration of UEFI virtual machines. If the
  --copy-storage-inc and the --tunnelled libvirt flags are used
  together, the migration fails. The same command for non-uefi virtual
  machines (e.g the same libvirt xml without the <nvram> and <loader>
  tags) works.

  The command/output error is:

  virsh migrate --verbose --live --p2p --tunnelled --copy-storage-inc 
--change-protection --abort-on-error testuefi qemu+tcp://<ip>/system
  error: internal error: qemu unexpectedly closed the monitor: Receiving block 
device images
  2019-02-21T16:20:15.263261Z qemu-system-x86_64: error while loading state 
section id 2(block)
  2019-02-21T16:20:15.263996Z qemu-system-x86_64: load of migration failed: 
Input/output error

  If I remove one of the --tunnelled or the --copy-storage-inc flag, it
  works, for example:

  virsh migrate --verbose --live --p2p --copy-storage-inc --change-protection 
--abort-on-error testuefi qemu+tcp://<ip>/system
  Migration: [100 %]

  virsh migrate --verbose --live --p2p --tunnelled --change-protection 
--abort-on-error testuefi qemu+tcp://<ip>/system
  Migration: [100 %]

  I have no idea why those two flags combined together produce an error,
  and only for UEFI virtual machines.

  here is the libvirt xml definition:

  <domain type='kvm' id='4'>
    <name>testuefi</name>
    <uuid>ce12de05-ec09-4b4b-a27a-47003a511bda</uuid>
    <description>CentOS 4.5 (32-bit)</description>
    <memory unit='KiB'>2097152</memory>
    <currentMemory unit='KiB'>1048576</currentMemory>
    <vcpu placement='static'>2</vcpu>
    <cputune>
      <shares>878</shares>
    </cputune>
    <resource>
      <partition>/machine</partition>
    </resource>
    <sysinfo type='smbios'>
      <system>
        <entry name='manufacturer'>Apache Software Foundation</entry>
        <entry name='product'>CloudStack KVM Hypervisor</entry>
        <entry name='uuid'>ce12de05-ec09-4b4b-a27a-47003a511bda</entry>
      </system>
    </sysinfo>
    <os>
      <type arch='x86_64' machine='pc-i440fx-2.11'>hvm</type>
      <loader readonly='yes' type='pflash'>/usr/share/OVMF/OVMF_CODE.fd</loader>
      <nvram>/var/lib/libvirt/qemu/nvram/testuefi_VARS.fd</nvram>
      <boot dev='cdrom'/>
      <boot dev='hd'/>
      <smbios mode='sysinfo'/>
    </os>
    <features>
      <acpi/>
      <apic/>
      <pae/>
    </features>
    <cpu mode='custom' match='exact' check='full'>
      <model fallback='forbid'>Westmere</model>
      <feature policy='require' name='vmx'/>
      <feature policy='require' name='vme'/>
      <feature policy='require' name='pclmuldq'/>
      <feature policy='require' name='x2apic'/>
      <feature policy='require' name='hypervisor'/>
      <feature policy='require' name='arat'/>
    </cpu>
    <clock offset='utc'/>
    <on_poweroff>destroy</on_poweroff>
    <on_reboot>restart</on_reboot>
    <on_crash>destroy</on_crash>
    <devices>
      <emulator>/usr/bin/kvm-spice</emulator>
      <disk type='file' device='disk'>
        <driver name='qemu' type='qcow2' cache='none'/>
        <source file='/var/lib/libvirt/images/testmigration.qcow2'/>
        <backingStore type='file' index='1'>
          <format type='raw'/>
          <source 
file='/var/lib/libvirt/images/b3e4b880-0611-43bc-9d71-9cdac138f6e2'/>
          <backingStore/>
        </backingStore>
        <target dev='vda' bus='virtio'/>
        <alias name='virtio-disk0'/>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x04' 
function='0x0'/>
      </disk>
      <disk type='file' device='cdrom'>
        <driver cache='none'/>
        <target dev='hdc' bus='ide'/>
        <readonly/>
        <alias name='ide0-1-0'/>
        <address type='drive' controller='0' bus='1' target='0' unit='0'/>
      </disk>
      <controller type='usb' index='0' model='piix3-uhci'>
        <alias name='usb'/>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x01' 
function='0x2'/>
      </controller>
      <controller type='pci' index='0' model='pci-root'>
            <alias name='pci.0'/>
      </controller>
      <controller type='ide' index='0'>
        <alias name='ide'/>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x01' 
function='0x1'/>
      </controller>
      <interface type='bridge'>
        <mac address='06:6a:20:00:00:55'/>
        <source bridge='public'/>
        <target dev='vnet4'/>
        <model type='virtio'/>
        <driver queues='2'/>
        <alias name='net0'/>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x03' 
function='0x0'/>
      </interface>
      <serial type='pty'>
        <source path='/dev/pts/2'/>
        <target type='isa-serial' port='0'>
          <model name='isa-serial'/>
        </target>
        <alias name='serial0'/>
      </serial>
      <console type='pty' tty='/dev/pts/2'>
        <source path='/dev/pts/2'/>
        <target type='serial' port='0'/>
        <alias name='serial0'/>
      </console>
      <input type='tablet' bus='usb'>
        <alias name='input0'/>
        <address type='usb' bus='0' port='1'/>
      </input>
      <input type='mouse' bus='ps2'>
        <alias name='input1'/>
      </input>
      <input type='keyboard' bus='ps2'>
        <alias name='input2'/>
      </input>
      <video>
        <model type='cirrus' vram='16384' heads='1' primary='yes'/>
        <alias name='video0'/>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x02' 
function='0x0'/>
      </video>
      <memballoon model='virtio'>
        <alias name='balloon0'/>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x05' 
function='0x0'/>
      </memballoon>
    </devices>
  </domain>

  Here is the qemu command on the destination host:

  LC_ALL=C
  PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
  QEMU_AUDIO_DRV=none /usr/bin/kvm-spice -name guest=testuefi-VM,debug-
  threads=on -S -object
  secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain-14
  -testuefi-VM/master-key.aes -machine pc-i440fx-2.11,accel=kvm,usb=off
  ,dump-guest-core=off -cpu Skylake-
  Server,vmx=on,pcid=on,ssbd=on,hypervisor=on -drive
  file=/usr/share/OVMF/OVMF_CODE.fd,if=pflash,format=raw,unit=0,readonly=on
  -drive file=/var/lib/libvirt/qemu/nvram/testuefi-
  VM_VARS.fd,if=pflash,format=raw,unit=1 -m 1024 -realtime mlock=off
  -smp 1,sockets=1,cores=1,threads=1 -uuid b340b117-1704-4ccf-
  93a7-21303b12dd7f -smbios 'type=1,manufacturer=Apache Software
  Foundation,product=CloudStack KVM Hypervisor,uuid=b340b117-1704-4ccf-
  93a7-21303b12dd7f' -no-user-config -nodefaults -chardev
  socket,id=charmonitor,path=/var/lib/libvirt/qemu/domain-14-testuefi-
  VM/monitor.sock,server,nowait -mon
  chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown
  -boot strict=on -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2
  -drive
  file=/var/lib/libvirt/images/testmigration.qcow2,format=qcow2,if=none,id
  =drive-virtio-disk0,cache=none -device virtio-blk-
  pci,scsi=off,bus=pci.0,addr=0x5,drive=drive-virtio-disk0,id=virtio-
  disk0,bootindex=2 -drive if=none,id=drive-
  ide0-1-0,readonly=on,cache=none -device ide-cd,bus=ide.1,unit=0,drive
  =drive-ide0-1-0,id=ide0-1-0,bootindex=1 -netdev
  tap,fd=35,id=hostnet0,vhost=on,vhostfd=37 -device virtio-net-
  pci,netdev=hostnet0,id=net0,mac=06:a0:66:00:00:0c,bus=pci.0,addr=0x3
  -chardev pty,id=charserial0 -device isa-
  serial,chardev=charserial0,id=serial0 -device usb-
  tablet,id=input0,bus=usb.0,port=1 -vnc
  vnc=unix:/var/run/qemu/b340b117-1704-4ccf-93a7-21303b12dd7f.sock
  -device cirrus-vga,id=video0,bus=pci.0,addr=0x2 -incoming defer -msg
  timestamp=on

  Thanks,

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1817268/+subscriptions



reply via email to

[Prev in Thread] Current Thread [Next in Thread]