Blackhold

Openvz en Debian Lenny

Posted on març 28th, 2010 by Blackhold

Openvz es un gestor de maquinas virtuales que aprovecha la propiedad de virtualización de los procesadores mas modernos.

Antes de todo comentar que es recomendable dejar una partición expresa para /var, separada de /, ya que en /var/lib/vz es donde se guardan los archivos de las maquinas virtuales. Al crear una maquina virtual no le especificas cuanto disco duro quieres destinar a tu maquina, simplemente usa tu disco duro (incluso se puede acceder a los ficheros de dentro de la maquina virtual en el directorio dónde se encuentran las vm). No sufras, openvz también trae sus herramientas de gestión de cuotas.

Vamos a ver como se instala…

Lo primero será añadir los sources de openvz al final de nuestro sources.list

# vi /etc/apt/sources.list
# openvz
deb http://download.openvz.org/debian-systs etch openvz

A continuación nos descargamos el certificado para verificar que los paquetes vienen de los repositorios de openvz y no de otro sitio desconocido:

# wget -q http://download.openvz.org/debian-systs/dso_archiv_signing_key.asc -O- | apt-key add – && apt-get update

Para que openvz funcione se necesitará instalar un kernel modificado para sacarle el mayor partido a openvz.

# apt-get install linux-image-openvz-amd64

Como podréis imaginar el sistema que estoy instalando es una arquitectura de 64bits. ¿Porqué esto? pues fácil con arquitecturas de 32bits sólo puedes usar hasta 3Gb de RAM, con arquitecturas de 64bits hasta 64Gb. Cuando quieres montar un servidor de máquinas virtuales, lo mas importante es tener un buen y gran disco duro y mucha RAM.

Con la instalación del kernel, se añaden las líneas necesarias en el /boot/grub/menu.lst para iniciar con este nuevo kernel, en caso contrario ejecutar como root “update-grub”.

Pero con el kernel solo no hacemos nada y tenemos que instalar las herramientas para empezar a jugar con esta nueva funcionalidad.

# apt-get install vzctl vzquota

El vzctl es la herramienta para controlar los contenedores (create, destroy, start, stop, set parameters etc.)
El vzquota es una herramienta para gestionar las cuotas de las maquinas virtuales (aka contenedores).

Nota: con la instalación del kernel, si no están instalados estos dos paquetes ya se instalan, además de rsync.

Y ahora a reiniciar y a cruzar los dedos… ¿Ya estás aquí? hola de nuevo :)

Vale seguimos, para comprobar si estamos usando el kernel de openvz, hacemos un uname -a, si vemos que vamos con nuestro anterior kernel es que el grub no se ha enterado de la instalación del nuevo kernel y deberás añadir las líneas correspondientes a manija.

# uname -r
2.6.26-2-openvz-amd64

# ps ax |grep vz
2715 ? S 0:00 [vzmod]

# ifconfig
venet0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

Ahora tenemos que modificar un poco el fichero de configuración /etc/vz/vz.conf y añadir esto:

# On Hardware Node we generally need
# packet forwarding enabled and proxy arp disabled

net.ipv4.conf.default.forwarding=1
net.ipv4.conf.default.proxy_arp = 0
net.ipv4.ip_forward=1

# Enables source route verification
net.ipv4.conf.all.rp_filter = 1

# Enables the magic-sysrq key
kernel.sysrq = 1

# TCP Explict Congestion Notification
#net.ipv4.tcp_ecn = 0

# we do not want all our interfaces to send redirects
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0

probamos la configuración:

# sysctl -p
net.ipv4.conf.default.forwarding = 1
net.ipv4.conf.default.proxy_arp = 0
net.ipv4.conf.all.rp_filter = 1
kernel.sysrq = 1
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0

Si te sale el warning:

vps-net_add WARNING: Function proxy_arp for eth1 is set to 0.

se soluciona definiendo 1 a net.ipv4.conf.eth1.proxy_arp

net.ipv4.conf.eth1.proxy_arp=1

Por defecto el directorio de las vm es en /var/lib/vz, pero puede ser un poco inaccesible, así que si lo deseamos podemos crear un link simbólico en /vz

# ln -s /var/lib/vz /vz

El siguiente paso es instalar templates de maquinas virtuales ya instaladas, podemos descargar templates ya creados o crear los nuestros. En /etc/vz/vz.conf podremos definir cual es el template por defecto.

Así que instalaremos una debian lenny de 64bits:

# apt-get install vzctl-ostmpl-debian-5.0-amd64-minimal

en total unos 61,2Mb de archivo comprimido.

En el manual comentan de instalar dos paquetes, el vzprocps, un grupo de utilidades para darnos información del sistema y vzdump utilidad para hacer backups y restaurar VE, pero con la versión 3.0.23-1dso1 ya vienen instaladas por defecto.

Ahora ya sólo nos quedará iniciar el openvz.

# /etc/init.d/vz restart

Con el sysv-rc-conf miramos si se enciende el servicio al arrancar la maquina.

Administrar maquinas con openvz es realmente sencillo, aunque todos aquellos que estáis acostumbrados a maquinas virtuales con entorno gráfico, tenéis que empezar a pensar que un entorno gráfico consume unos recursos que podrías destinar a las maquinas virtuales ;)

Al lío!

crear una máquina virtual:

# vzctl create 101 –ostemplate debian-5.0-amd64-minimal

configurar los parámetros de red:

# vzctl set 101 –ipadd x.x.x.11 –save
# vzctl set 101 –nameserver x.x.x.x –save

el nombre de la maquina:

# vzctl set 101 –hostname v-marsupi.marsupi.org –save

que arranque esta máquina al inicio:

# vzctl set 101 –onboot yes –save

otros comandos de interés:

arrancar una vz:

# vzctl start 101

parar una vz:

# vzctl stop 101

modificar la RAM:

vzctl set 101 –kmemsize 1024m –save
vzctl set 101 –privvmpages 1024m –save

Para mas información:
manual oficial de instalación de openvz en debian
backup de una vz en caliente
creación de un template
templates vz
– man vzctl

« »