Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

So you have 30 physical windows machines that you want to run in an openstack virtual enveironment?

It will take some time to achieve this but it should work (ish).

Before you read this take notice i never tried this so i don't know if it will 100% work, although it has no reason not to.

First you must install virtio drivers to the physical windows so that when you boot up into openstack (i assume kvm is the hypervisor) windows will know what driver to load for the HDD and network adapter (kvm uses most common virtio). Virtio iso drivers can be found here Virtio Drivers.

After installing the .inf files for your windows distribution get Disk2VHD and create a vhd image from the running system.

Copy the resulting .vhd file to a running linux box and convert it to qcow2 (if using lvm,nfs,etc as a backend for nova/cinder storage) or .raw format (if using ceph as backend) using the built in qemu-img convert -f vhd -O qcow2 image.vhd image.qcow2.

After this upload the qcow image into glance and boot up a new instance from the image. After installing a few drivers windows guest should start.

Another way would be to use clonezilla livecd. Install virtio drivers to the running PC then restart it using the clonezilla livecd. Upload clonezilla livecd into glance. Create a bootable blannk cinder volume in opentack and boot up an instance with the clonezilla iso as a cdrom and the blank volume as /dev/vda. Or spawn an instance from the clonezilla livecd and attach the blank volume to the instance. After clonezilla loads format /dev/vda or /dev/vdb (depending which route you took) and set it up as a destination drive for the cloning. On the physical machine that has clonezilla live booted make a clone of the windows partition/hdd using clonezilla instance as a network backup drive.

After the cloning is complete either detaach the clonezilla cdrom from the instance in openstack and restart it, or, if using the second option, shutdown the instance, terminate it and boot another instance from the volume (or upload the volume into glance and spawn an instance from the new image).

Hope i was clear enough. As i said i never tested this so i'm not 100% sure it will work.