[ovirt-users] can't import vm from KVM host
Shahar Havivi
shavivi at redhat.com
Mon Nov 21 11:09:58 UTC 2016
Nelson,
There is a new patch -
Please test it and if it fail can you send the vdsm error trace please.
Shahar.
On 20.11.16 10:36, Shahar Havivi wrote:
> On 18.11.16 09:34, Nelson Lameiras wrote:
> > Hello Shahar,
> >
> > I've rebuild my test system and installed recently released ovirt 4.0.5 + gerrit patch => still no luck. vdsm always gives me same error :
> Hi,
>
> yes once you have the alias you are half way there.
> but your alias path looks wrong, it starts with white-space:
> '/ var/lib/libvirt/images/rhel7.1.img'
>
> check it via 'virsh -r dumpxml <vmnam>'
> and look if the white space are there two
>
> regarding the pool you can check it too via virsh
> virsh pool-list
> and all pool-* commands (to create one), if you have problems building pool
> let me know.
>
> Shahar.
> >
> > "
> > jsonrpc.Executor/6::ERROR::2016-11-17 16:38:56,320::v2v::934::root::(_add_disk_info) Error getting disk size
> > Traceback (most recent call last):
> > File "/usr/lib/python2.7/site-packages/vdsm/v2v.py", line 931, in _add_disk_info
> > vol = conn.storageVolLookupByPath(disk['alias'])
> > File "/usr/lib64/python2.7/site-packages/libvirt.py", line 4596, in storageVolLookupByPath
> > if ret is None:raise libvirtError('virStorageVolLookupByPath() failed', conn=self)
> > libvirtError: Volume de stockage introuvable : no storage vol with matching path '/dev/sdc'
> > jsonrpc.Executor/6::DEBUG::2016-11-17 16:38:56,325::__init__::555::jsonrpc.JsonRpcServer::(_handle_request) Return 'Host.getExternalVMs' in bridge with [{'status': 'Down', 'graphics': 'spice', 'arch': 'x86_64', 'disks': [ {'capacity': '8589934592', 'format': 'RAW', 'dev': 'hdd', 'allocation': '8589942784', 'alias': '/ var/lib/libvirt/images/rhel7.1.img', 'type': 'disk'}, {'alias': '/dev/sdc', 'type': 'disk', 'dev': 'hdb', 'format': 'RAW'}], 'vmId': 'd0ddc4f6-a208-4286-a665-fb9e54d14bef', 'smp': 1, 'has_snapshots': False, 'video': 'qxl', 'memSize': 1 024, 'vmName': 'rhel7.1', 'networks': [{'model': 'virtio', 'macAddr': '52:54:00:00:d7:76', 'type': 'network'}]}]
> > "
> >
> > FYI I added a normal disk (file based) to the VM ir order to try to understand what's happening. As expected, this disk is seen by the oVirt (without patch)
> >
> > I do reckon something in the above log :
> >
> > 'disks': [
> > {'capacity': '8589934592', 'format': 'RAW', 'dev': 'hdd', 'allocation': '8589942784', 'alias': '/ var/lib/libvirt/images/rhel7.1.img', 'type': 'disk'},
> > {'alias': '/dev/sdc', 'type': 'disk', 'dev': 'hdb', 'format': 'RAW'}
> > ],
> >
> > the "alias" line is clearly new since it did not appear before de patch! something is working ;)
> >
> > I confirm that when I created the test VM (via virt-manager), I gave directly the path to the device (/dev/sdc), so there is no "pool" to be addressed defined on libvirt!
> > I read https://gerrit.ovirt.org/#/c/64272/4/ and I agree with Tomas findings : Currently the conversion process is expecting a volume on a pool and it's not able to use a block device directly.
> >
> > So I'm hopping a solution can be found to this problem. We have a few hundreds VM waiting to be migrated in production and we don't have a NFS server, so this is our only option so far.
> >
> > I'm able to test any patch quickly if needed, do not hesitate.
> >
> > cordialement, regards,
> > Nelson LAMEIRAS
> >
> > Lyra Network
> > Service Projets et Processus
> > Tel : +33 (0) 5 32 09 09 70
> > 109 rue de l’innovation
> > 31670 Labège - France
> > www.lyra-network.com
> >
> > ----- Original Message -----
> > From: "Shahar Havivi" <shavivi at redhat.com>
> > To: "Nelson Lameiras" <nelson.lameiras at lyra-network.com>
> > Cc: "Tomas Golembiovsky" <tgolembi at redhat.com>, "Michal Skrivanek" <michal.skrivanek at redhat.com>, users at ovirt.org
> > Sent: Tuesday, November 8, 2016 12:16:55 PM
> > Subject: Re: [ovirt-users] can't import vm from KVM host
> >
> > On 08.11.16 10:58, Nelson Lameiras wrote:
> > > Hi Shahar,
> > >
> > > We try to prioritise vm behaviour predictability over ressources consumption, so "thin provisionning" is not a option for us. "Preallocated" is always selected over default behaviour.
> > >
> > > Nevertheless, while trying to import a KVM vm (from another host), I get a 0 disk count on the VM, which means I do not event get to the point where I can chose allocation policy (usually next screen).
> > > This is true with or without patch proposed below (assuming it has not changed since sept 29).
> >
> > I assume that this line is failing:
> > vol = conn.storageVolLookupByPath(disk['alias'])
> > it may be the reason that the storage is not part of a pool.
> > (look at pool-xxx commands via virsh)
> >
> > If it doesn't work it may be related to a different API that we will need to
> > implement as Tomas suggested in the gerrit patch.
> >
> > >
> > > Can I give you any more information?
> > >
> > > cordialement, regards,
> > > Nelson LAMEIRAS
> > >
> > > Lyra Network
> > > Service Projets et Processus
> > > Tel : +33 (0) 5 32 09 09 70
> > > 109 rue de l’innovation
> > > 31670 Labège - France
> > > www.lyra-network.com
> > >
> > > ----- Original Message -----
> > > From: "Shahar Havivi" <shavivi at redhat.com>
> > > To: "Nelson Lameiras" <nelson.lameiras at lyra-network.com>, "Tomas Golembiovsky" <tgolembi at redhat.com>
> > > Cc: "Michal Skrivanek" <michal.skrivanek at redhat.com>, users at ovirt.org
> > > Sent: Monday, November 7, 2016 1:58:34 PM
> > > Subject: Re: [ovirt-users] can't import vm from KVM host
> > >
> > > Hi Nelson,
> > >
> > > Sorry for the long wait (I was on PTO).
> > > I just test the patch with the following disk xml:
> > >
> > > <disk type='block' device='disk'>
> > > <driver name='qemu' type='raw' cache='none' io='native'/>
> > > <source dev='/dev/disk/by-path/...lun0'/>
> > > <target dev='vda' bus='virtio'/>
> > > <address type='pci' domain='0x0000' bus='0x00'
> > > slot='0x07' function='0x0'/>
> > > </disk>
> > >
> > > I did manage to see the disk with its actual size,
> > > I was able to import the VM as well when I choose:
> > > "Allocation Policy": "Preallocated"
> > > (not the "Thin Provision" as is the default.
> > > Currently we need to pre allocated kvm block disk and cannot use the thin
> > > provision (we may need to disable it in the UI).
> > >
> > > Did you try that?
> > > It may related to the reason that the dev path you have is a /dev/mapper/ and
> > > this is the reason that libvirt not returning the disk size? (Tomas?)
> > >
> > > Shahar.
> > >
> > >
> > > On 20.10.16 14:10, Nelson Lameiras wrote:
> > > > Hello,
> > > >
> > > > Any update on this issue?
> > > > Can I do anything to help?
> > > >
> > > > cordialement, regards,
> > > > Nelson LAMEIRAS
> > > >
> > > > Lyra Network
> > > > Service Projets et Processus
> > > > Tel : +33 (0) 5 32 09 09 70
> > > > 109 rue de l’innovation
> > > > 31670 Labège - France
> > > > www.lyra-network.com
> > > >
> > > > ----- Original Message -----
> > > > From: "Michal Skrivanek" <michal.skrivanek at redhat.com>
> > > > To: "Tomas Golembiovsky" <tgolembi at redhat.com>
> > > > Cc: "Nelson Lameiras" <nelson.lameiras at lyra-network.com>, users at ovirt.org
> > > > Sent: Tuesday, October 11, 2016 4:11:36 PM
> > > > Subject: Re: [ovirt-users] can't import vm from KVM host
> > > >
> > > > > On 11 Oct 2016, at 16:01, Tomáš Golembiovský <tgolembi at redhat.com> wrote:
> > > > >
> > > > > Hi,
> > > > >
> > > > > On Mon, 10 Oct 2016 12:21:47 +0200 (CEST)
> > > > > Nelson Lameiras <nelson.lameiras at lyra-network.com> wrote:
> > > > >
> > > > >> hello michal,
> > > > >>
> > > > >> Yes, both paths are correct and working on the source host since the VM starts and works correctly on source host. Nevertheless I have checked with fdisk and mount to assure that these devices are indeed reachable.
> > > > >>
> > > > >> Please understand that my setup is the following:
> > > > >> source host : KVM (hosting the VM to migrate)
> > > > >> target host : oVirt 4.0.4 (patched)
> > > > >>
> > > > >> The error "no storage vol with matching path '/dev/sdc'" is returned by the target host script /usr/lib/python2.7/site-packages/vdsm/v2v.py.
> > > > >> This almost seems normal since the device /dev/sdc is not mounted on target host (where script is running) but only on source host.
> > > > >>
> > > > >> Can this be the source of the error ?
> > > > >
> > > > > To me this looks more like a bug in the engine, not in VDSM.
> > > > >
> > > > > The exception in the VDSM log is OK and it is not fatal. It is actually
> > > > > to be expected for block devices. VDSM is trying to find out the size of
> > > > > the disk, but the way it does that is tailored for volumes in storage
> > > > > pool. But the block device is not a volume in a storage pool and that is
> > > > > why libvirt complains. We can potentially skip the check for block
> > > > > devices to avoid error in the log, or provide some other logic of
> > > > > getting the size.
> > > > >
> > > > >
> > > > > But the real problem is this error in engine.log:
> > > > >
> > > > >> 2016-09-29 14:13:48,637 ERROR [org.ovirt.engine.core.bll.GetVmsFromExternalProviderQuery] (default task-30) [] Exception: org.ovirt.engine.core.common.errors.EngineException: EngineException: java.lang.NumberFormatException: null (Failed with error ENGINE and code 5001)
> > > > >
> > > > > We don't send the size (or rather send null value) for the disk and
> > > > > engine does not like that. I assume engine does not really consider all
> > > > > the optional VM properties as optional.
> > > >
> > > > is it really optional in schema?
> > > > even if it is, indeed it’s wrong:)
> > > >
> > > > the best would be to handle it on v2v.py side first to avoid libvirt err, but i don’t know if we can get that info via libvirt in any other way:/
> > > >
> > > > >
> > > > >
> > > > >
> > > > > Tomas
> > > > >
> > > > > --
> > > > > Tomáš Golembiovský <tgolembi at redhat.com>
> > > > _______________________________________________
> > > > Users mailing list
> > > > Users at ovirt.org
> > > > http://lists.ovirt.org/mailman/listinfo/users
More information about the Users
mailing list