What does the images contain: ---------------------------- It's a two node OpenStack RDO set-up configured manually on two Fedora 20 VMs: - Controller node: Nova, Keystone, Cinder, Glance, Neutron (using Open vSwitch plugin and GRE tunneling). - Compute node: Nova (nova-compute), Neutron (openvswitch-agent) - Here are the Neutron configs & iptables rules -- http://kashyapc.fedorapeople.org/virt/openstack/neutron-configs-GRE-OVS-two-node.txt Assumptions: - A non-default libvirt network called 'openstackvms' in the 192.169.142.2/24 subnet exists. If you don't have one, you could trivially create it from here: http://kashyapc.fedorapeople.org/virt/create-a-new-libvirt-bridge.txt - The libvirt XML assumes the iamges are located in /export/ostack-images (you can, of course, edit the location -- $ virsh edit foo.qcow2 to suit your needs - You have nested virtualization enabled on the host & the VM is started with it enabled: $ modinfo kvm_intel | grep -i nested $ echo "options kvm-intel nested=y" | sudo tee \ /etc/modprobe.d/kvm-intel.conf $ init 6 # Edit your Compute node's XML: $ virsh edit ostack-compute [. . .] # Start it & ensure /dev/kvm file is now present $ virsh start ostack-compute --console $ file /dev/kvm Once inside the controller node: # Restart qpidd $ systemctl restart qpidd # Run nova-manage (you should see all smiles) $ nova-manage list # Start a guest $ nova start cirros-12net-guest1 $ watch nova list $ nova console-log cirros-12net-guest1 To use the images: # 1. Fetch $ wget -c \ http://kashyapc.fedorapeople.org/virt/openstack/rdo/ostack-controller-sparse.qcow2.xz \ http://kashyapc.fedorapeople.org/virt/openstack/rdo/ostack-compute-sparse.qcow2.xz # 2. Decompress: $ xz -v --decompress ostack-controller-sparse.qcow2.xz $ xz -v --decompress ostack-compute-sparse.qcow2.xz # FIXME 3. Define the XMLs and start the guests Sizes of xz compressed images: $ ls -lash ostack-controller-sparse.qcow2.xz ostack-compute-sparse.qcow2.xz 611M -rw-r--r--. 1 root root 611M Dec 15 14:35 ostack-compute-sparse.qcow2.xz 657M -rw-r--r--. 1 kashyap kashyap 657M Dec 15 00:47 ostack-controller-sparse.qcow2.xz De-compressed ($ xz -v --decompress foo) $ ls -lash ostack-controller-sparse.qcow2 ostack-compute-sparse.qcow2 4.5G -rw-r--r--. 1 root root 4.5G Dec 15 00:47 ostack-controller-sparse.qcow2 4.3G -rw-r--r--. 1 root root 4.3G Dec 15 14:35 ostack-compute-sparse.qcow2 What I did: ----------- Original size of the images: $ ls -lash ostack-controller.qcow2 ostack-compute.qcow2 11G -rw-r--r--. 1 qemu qemu 15G Dec 13 11:12 ostack-compute.qcow2 25G -rw-r--r--. 1 kashyap kashyap 25G Dec 13 11:12 ostack-controller.qcow2 So I ran virt-sparsify: $ virt-sparsify ostack-controller.qcow2 ostack-controller-sparse.qcow2 $ virt-sparsify ostack-compute.qcow2 ostack-compute-sparse.qcow2 Followed by xz compression: $ xz -v --best ostack-controller-sparse.qcow2 $ xz -v --best ostack-compute-sparse.qcow2 As you could see the resultant xz images combined are: 1.2 GB (1268 MB) If someone wants to resize/expand VM images, they could trivially -- http://kashyapc.wordpress.com/2013/04/13/resize-a-fedora-19-guest-with-libguestfs-tools/