Para migrar un servidor físico a unha máquina virtual, o primeiro paso será facer unha copia de seguridade do disco do servidor físico.
Neste caso o disco está da seguinte forma:
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 11G 4.3G 5.7G 44% /
/dev/sda2 136G 4.6G 124G 4% /datos
/dev/sdb1 147G 81G 60G 58% /mnt/disco2
/dev/shm 754M 0 754M 0% /dev/shm
E só me interesa / e /datos polo que só vou copiar estas dúas particións, e fareino de forma que copie os datos na maquina onde vai estar aloxada a maquina virtual:
tar -clp / | ssh root@x.x.x.x ‘gzip > /home/usuario/server.gz’
tar -clp /datos | ssh root@x.x.x.x ‘gzip > /home/usuario/server_datos.gz’
Unha vez copiadas as copias de seguridade creamos as imaxes baleiras nas que as vamos descomprimir, que neste caso serán de 8 Gb.
dd if=/dev/zero of=server.img bs=1M count=$((8*1025))
dd if=/dev/zero of=server_datos.img bs=1M count=$((8*1025))
E creamos unha imaxe máis para utilizala como partición swap, neste caso con 512 mb será dabondo.
dd if=/dev/zero of=test.swap bs=1024 count=$((512*1024))
Para poder montar estás imaxes hai que darlles formato antes polo cal executaremos:
mkfs.ext3 /home/usuario/server.img
mkfs.ext3 /home/usuario/server_datos.img
mkswap /home/usuario/test.swap
O seguinte paso será montar as imaxes e descomprimir as copias seguridade nelas.
mount -t auto -o loop server.img /mnt
mount -t auto -o loop server_datos.img /mnt/datos
Situámonos no directorio /mnt e executamos
tar xvfz /home/usuario/server.gz
Despois situámonos no directorio /mnt/datos
tar xvfz /home/usuario/server_datos.gz
Agora que xa temos os datos en cada imaxe, facemos os últimos axustes.
Editamos /mnt/etc/fstab para axustalo aos nosos cambios
/dev/sda1 / ext3 defaults 1 1
/dev/sda2 /datos ext3 defaults 1 1
/dev/sda3 swap swap defaults 0 0
Editamos /mnt/etc/inittab, e onde pon “# Run gettys in standard runlevels” engadimos a liña
co:2345:respawn:/sbin/mingetty xvc0 , para especificarlle que a terminal que ten que usar é de xen, e comentamos o resto de liñas desta sección.
# Run gettys in standard runlevels
co:2345:respawn:/sbin/mingetty xvc0
#1:2345:respawn:/sbin/mingetty tty1
#2:2345:respawn:/sbin/mingetty tty2
#3:2345:respawn:/sbin/mingetty tty3
#4:2345:respawn:/sbin/mingetty tty4
#5:2345:respawn:/sbin/mingetty tty5
#6:2345:respawn:/sbin/mingetty tty6
Agora editamos o ficheiro mnt/etc/securetty, no cal engadiremos a liña:
xvc0
O seguinte é copiar os módulos:
cp -R /lib/modules/2.6.18-1.2798.fc6xen /mnt/lib/modules
Neste caso é 2.6.18-1.2798.fc6xen, pero dependerá do que teña instalado a máquina onde se aloxe a máquina virtual.
Finalmente só queda desmontar as imaxes e crear o ficheiro de configuración para xen, para o cal vamos facer o seguinte:
vim /home/usuario/servidor_virtual.cfg
e quedaría máis ou menos así:
# Configuration file for the Xen instance ichnos, created
# by xen-tools 3.8 on Mon Sep 29 17:11:29 2008.
#
#
# Kernel + memory size
#
kernel = ‘/boot/vmlinuz-2.6.20-1.3002.fc6xen’
ramdisk = ‘/boot/initrd-2.6.20-1.3002.fc6xen.img’
memory = ’512′
#
# Disk device(s).
#
root = ‘/dev/sda1 ro’
disk = [
'file:/home/usuario/test.swap,sda3,w',
'file:/home/usuario/server.img,sda1,w',
'file:/home/usuario/server_datos.img,sda2,w'
]
#
# Hostname
#
name = ‘ichnos’
#
# Networking
#
dhcp = ‘dhcp’
vif = [ 'mac=00:16:3E:6E:AA:05' ]
#
# Behaviour
#
on_poweroff = ‘destroy’
on_reboot = ‘restart’
on_crash = ‘restart’
#extra = ’2 console=xvc0′
Finalizado o ficheiro de configuración xa temos todo listo para crear a máquina virtual, para isto executamos:
xm create -c /home/usuario/servidor_virtual.cfg








