Santa Liberdade

O Recuncho de Roi Xordo

Migrar un servidor físico a unha máquina virtual con Xen Marzo 22, 2010

Arquivado en: Software Libre — roixordo @ 12:51 pm

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

 

Deixar unha resposta

introduce os teu datos ou preme nunha das iconas:

Logotipo de WordPress.com

Estás a comentar desde a túa conta de WordPress.com. Sair / Cambiar )

Twitter picture

Estás a comentar desde a túa conta de Twitter. Sair / Cambiar )

Facebook photo

Estás a comentar desde a túa conta de Facebook. Sair / Cambiar )

Conectando a %s

 
Seguir este blogue

Recibe aviso de cada artigo novo no teu correo electrónico.