$Id$ virt-p2v : P2V ("physical to virtual") migration tool ---------------------------------------------------------------------- Written by: Richard W.M. Jones Copyright (C) 2007 Red Hat Inc. http://et.redhat.com/~rjones/virt-p2v/ Binaries ---------------------------------------------------------------------- Binaries are available from the website (live CD images which can be burned directly to a CD and booted on the p2v candidate machine). http://et.redhat.com/~rjones/virt-p2v/ Building ---------------------------------------------------------------------- Requirements: * livecd-creator (on Fedora the package is 'livecd-tools') * qemu (only for testing) (1) Edit Makefile - there is some general configuration at the top which you may want to change. (2) 'make build' will build an ISO image called virt-p2v-$VERSION.iso (3) Burn the image on to a CD using standard tools. Booting from USB device ---------------------------------------------------------------------- If you wish to boot from a USB keydrive, use the livecd-iso-to-disk tool: livecd-iso-to-disk virt-p2v-$VERSION.iso /dev/sdX1 (Replace /dev/sdX1 with the actual USB device). In my experience I also had to set up a suitable MBR: cat /usr/lib/syslinux/mbr.bin > /dev/sdX Running ---------------------------------------------------------------------- Boot the candidate machine from the live CD or USB keydrive. You will need to have network access to another machine where it will save the virtual disk images. Ideally that machine will have ssh access (sshd service running), but there is also a simple network daemon that you can run on the target machine. Note that the target machine is usually the Xen host, but it doesn't need to be: you could copy the images to a staging machine, and later copy them over to the Xen host. Note that the live CD doesn't modify any data on the candidate machine. Answer the questions. There is a tutorial and explanation of some of the questions on the website which you may wish to follow: http://et.redhat.com/~rjones/virt-p2v/ While the live CD is booted a shell is available on other virtual consoles. Go to a virtual console using [ALT] [F2] and log in as root with no password. If it works, the result will be disk images for each filesystem from the candidate machine, which should boot directly or with the minimum of changes. Booting P2V candidate under Xen ---------------------------------------------------------------------- Testing ---------------------------------------------------------------------- If you want to test the live CD without actually P2V-ing a real server, then you can run the ISO directly in qemu. (To do any sort of realistic testing you will also need an operating system image, eg. from /var/lib/xen/images, to experiment with). For example: $ cp /var/lib/xen/images/rhel5gax32fv.img . $ make boot HDA=rhel5gax32fv.img qemu -m 512 -cdrom virt-p2v-0.1.iso -boot d -hda rhel5gax32fv.img TCP transport and network daemon ---------------------------------------------------------------------- The preferred transport is ssh, but if you cannot use this then there is an alternate TCP transport. (This transport is not encrypted). On the Xen host or staging server, install NetCat (the 'nc' command, in Fedora and RHEL the package is also called 'nc'). Choose a free port number and make sure that it is not firewalled. Then run: nc -kl PORT > disks where PORT is replaced by the port number chosen above. After p2v has completed the 'disks' file will contain compressed images of one or more disks. There is a Perl script called virt-p2v-unpack which can unpack the file: virt-p2v-unpack disks