Xen convertion P2V
Contents
1 Introduction
Comment remédier au tombage en ruine physique d'un serveur (vieuxpc) en migrant l'OS dans un domU HVM Xen flambant neuf.
2 On prépare la place pour vieuxpc sur le serveur xen
Créer une image de disque ( taille 20 GB) :
dd if=/dev/zero of=/vieuxpc/vieuxpc.hda.img bs=1024k count=20000
Creer un loop device correspondant a l'image du disque entier
losetup /dev/loop0 /vieuxpc/vieuxpc.hda.img
Partitionner l'image:
fdisk /dev/loop0
Lister les partitions creees :
fdisk -ul /dev/loop0 Disk /dev/loop0: 20.9 GB, 20971520000 bytes 255 heads, 63 sectors/track, 2549 cylinders, total 40960000 sectors Units = sectors of 1 * 512 = 512 bytes Device Boot Start End Blocks Id System /dev/loop0p1 63 17591174 8795556 83 Linux /dev/loop0p2 17591175 19567169 987997+ 82 Linux swap / Solaris
Attacher les partitions comme loop devices:
losetup -o $((63*512)) /dev/loop1 /vieuxpc/vieuxpc.hda.img losetup -o $((17591175*512)) /dev/loop2 /vieuxpc/vieuxpc.hda.img
Formater: ( note 8795556 est le nombre de blocks tel qu'affiche par fdisk )
mkfs.ext3 /dev/loop1 8795556 mkswap /dev/loop2 987997
3 On copie les données de vieuxpc
Monter la partition racine de vieuxpc et copier les donnees:
mount /dev/loop0 /target mount /dev/sdc2 /source cd /source tar cf - . | ( cd /target/ && tar xf -)
Editer /source/boot/grub/menu.lst pour qu'il coincide avec votre schema de partitionnement
root (hd0,0) kernel /boot/vmlinuz-2.6.18-5-486 root=/dev/hda1 ro initrd /boot/initrd.img-2.6.18-5-486
On démonte tout le bazar :
umount /target umount /source losetup -d /dev/loop{0,1,2}
4 On installe le bootloader
Installer GRUB sur le disque a L'aide d'une disquette de secours grub:
cat /usr/lib/grub/stage[12] > floppy.img
Note: les utilisateurs de debian peuvent installer grub-disk, une image bootable de GRUB preconfiguree pour booter pas mal d'OS.
qemu -fda floppy.img -hda /vieuxpc/vieuxpc.hda.img -boot a GNU GRUB version 0.95 (639K lower / 31744K upper memory) [ Minimal BASH-like line editing is supported. For the first word, TAB lists possible command completions. Anywhere else TAB lists the possible completions of a device/filename. ] grub> root (hd0,0) Filesystem type is ext2fs, partition type 0x83 grub> setup (hd0) Checking if "/boot/grub/stage1" exists... yes Checking if "/boot/grub/stage2" exists... yes Checking if "/boot/grub/e2fs_stage1_5" exists... no Running "install /boot/grub/stage1 (hd0) /boot/grub/stage2 p /boot/grub/menu.lst "... succeeded Done. grub>
5 On teste et on met en prod
Tester le tout avec qemu:
qemu -hda /vieuxpc/vieuxpc.hda.img
Creer le fichier de conf xen-hvm cf http://wiki.gcu.info/doku.php?id=unix:xen_hvm par exemple:
name="vieuxpc" kernel = "/usr/lib/xen/boot/hvmloader" builder = "hvm" vif=['type=ioemu, mac=00:16:3E:00:03:05, bridge=xenbr0'] disk = [ 'file:/vieuxpc/vieuxpc.hda.img,ioemu:hda,w' ] device_model = "/usr/lib/xen/bin/qemu-dm" dhcp="dhcp" memory="256" on_poweroff = 'destroy' on_reboot = 'restart' on_crash = 'restart' vnc=1
Au premier boot, reconfigurer l'interface reseau, l'interface physique n'existant évidemment plus, on dispose a la place d'une carte réseau ne2000 emulee.