[Ovirt-devel] Issue with ISO provisioning

Perry Myers pmyers at redhat.com
Wed Oct 15 02:11:01 UTC 2008


I tested out end to end ISO provisioning tonight.  First off, the good 
news...  I managed to get a VM created and booting Windows XP install ISO. 
I even got WinXP installed on an iSCSI LUN and booting consistently.  So 
that's a good start.

To test I set up an NFS share (/local/isos) on physical.priv.ovirt.org and 
put the WinXP iso in there.  I then used the cobbler image add command to 
add a Image called WinXP.  Then I created a VM using this image to 
provision.  Started the VM and it booted from the ISO and started the 
installation process.

Now here are the issues:

Linux installs follow this sort of process:
1. Boot install DVD
2. Install from DVD
3. DVD is no longer needed and can be ejected
3. Reboot from hard disk

Windows installs follow this process:
1. Boot install CD
2. Stage 1 install from CD
3. Reboot
4. Boot from hard disk for Stage 2 install using CD in drive
5. Reboot
6. CD is no longer needed and can be ejected
7. Boot from hard disk

So Windows installs right now work because the soft reboot in step 3 does 
not cause the vm to shutdown.  If it did that, the restart of the vm would 
come up without the ISO in the drive (since that is a temporary association)

We've talked in the past about changing domains so that on reboot the vm 
is destroyed and then restarted by taskomatic.  This way the boot device 
can be toggled between reboots.  This fixes linux PXE provisioning, which 
right now has a problem because after OS installation over PXE boot the 
domain soft reboots and tries to PXE again.

So it seems the requirements for Windows and Linux provisioning are 
somewhat at odds.  What we may have to do is make it so taskomatic is 
aware of the OS type and sets up the semantics of domain rebooting 
accordingly.

Second problem...

I tried to provision a second guest using the same ISO image off of the 
same NFS share.  This failed with the following error in taskomatic:
> libvir: Storage error : no storage vol with matching name
> start_vm
> Task action processing failed: Libvirt::RetrieveError: Call to function virStorageVolLookupByName failed
> /usr/share/ovirt-server/task-omatic/./utils.rb:124:in `lookup_volume_by_name'
> /usr/share/ovirt-server/task-omatic/./utils.rb:124:in `connect_storage_pools'
> /usr/share/ovirt-server/task-omatic/./utils.rb:81:in `each'
> /usr/share/ovirt-server/task-omatic/./utils.rb:81:in `connect_storage_pools'
> /usr/share/ovirt-server/task-omatic/./task_vm.rb:314:in `start_vm'
> /usr/share/ovirt-server/task-omatic/taskomatic.rb:99
> /usr/share/ovirt-server/task-omatic/taskomatic.rb:88:in `each'
> /usr/share/ovirt-server/task-omatic/taskomatic.rb:88
> /usr/share/ovirt-server/task-omatic/taskomatic.rb:68:in `loop'
> /usr/share/ovirt-server/task-omatic/taskomatic.rb:68

Seems that if the NFS share is previously mounted as a storage pool in 
libvirt, it causes taskomatic to fail.  If I manually destroy the storage 
pool for the NFS mount on the host and undefine it and then try again, the 
start_vm succeeds and recreates the storage pool.

This needs to be fixed...

Perry

-- 
|=-        Red Hat, Engineering, Emerging Technologies, Boston        -=|
|=-                     Email: pmyers at redhat.com                      -=|
|=-         Office: +1 412 474 3552   Mobile: +1 703 362 9622         -=|
|=- GnuPG: E65E4F3D 88F9 F1C9 C2F3 1303 01FE 817C C5D2 8B91 E65E 4F3D -=|




More information about the ovirt-devel mailing list