The following series of patches add support for QEMU to libvirt. The
patches are:
- libvirt-drivers-qemu.patch - hook up methods for inactive domains
- libvirt-virsh-qemu.patch - hook up inactive domain methods to virsh
- libvirt-backend-qemu.patch - the main QEMU backend
The patches will be explained further in each email which follows.
NB, the first two patches are ready for inclusion, but the last one needs
more error handling, and another audit of the networking code to check
in particular buffer sizes.
For testing I used Damn Small Linux, and QEMU 0.8.1 from Fedora Core 5
(the one with VNC support)
wget
http://distro.ibiblio.org/pub/linux/distributions/damnsmall/current/dsl-3...
Here is a suitable config file:
<domain type='qemu'>
<name>dsl</name>
<uuid>fff64701-45b9-11cb-88e3-afbfe5370493</uuid>
<memory>131072</memory>
<vcpu>20</vcpu>
<devices>
<disk type='file' device='cdrom'>
<source file='/home/berrange/dsl-3.0.1.iso'/>
<target dev='hdc'/>
</disk>
<graphics type='vnc' port='5906'/>
</devices>
</domain>
An example session with virsh:
[berrange@aubergine ~]$ export VIRSH_DEFAULT_CONNECT_URI=qemu:///session
[berrange@aubergine ~]$ virsh list
Id Name State
----------------------------------
[berrange@aubergine ~]$ virsh define $HOME/dsl.xml
Domain dsl defined from /home/berrange/dsl.xml
[berrange@aubergine ~]$ virsh list --all
Id Name State
----------------------------------
-1 dsl shut off
[berrange@aubergine ~]$ virsh dominfo dsl
Id: -1
Name: dsl
UUID: fff64701-45b9-11cb-88e3-afbfe5370493
OS Type: linux
State: shut off
CPU(s): 20
Max memory: 131072 kB
Used memory: 131072 kB
[berrange@aubergine ~]$ virsh start dsl
Domain dsl started
[berrange@aubergine ~]$ virsh list --all
Id Name State
----------------------------------
1 dsl running
[berrange@aubergine ~]$ virsh dumpxml dsl
<domain type='qemu' id='1'>
<name>dsl</name>
<uuid>fff64701-45b9-11cb-88e3-afbfe5370493</uuid>
<memory>131072</memory>
<vcpu>20</vcpu>
<devices>
<disk type='file' device='cdrom'>
<source file='/home/berrange/dsl-3.0.1.iso'/>
<target dev='hdc'/>
<readonly/>
</disk>
<graphics type='vnc' port='5906'/>
</devices>
</domain>
[berrange@aubergine ~]$ virsh destroy dsl
Domain dsl destroyed
[berrange@aubergine ~]$ virsh list --all
Id Name State
----------------------------------
-1 dsl shut off
I'm also happy to report that it is also possible to use virt-manager
with the QEMU support - just enter qemu:///session as the URI. That
said you can't use the VM creation wizard, but it should be easy to
hook that up. The fact that virt-manager works without modification
is a really great proof of the value of libvirt abstract driver backend
API concept - validating the decision not to make a Xen specific API.
Regards,
Dan.
--
|=- Red Hat, Engineering, Emerging Technologies, Boston. +1 978 392 2496 -=|
|=- Perl modules:
http://search.cpan.org/~danberr/ -=|
|=- Projects:
http://freshmeat.net/~danielpb/ -=|
|=- GnuPG: 7D3B9505 F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 -=|