Openvz en Debian Lenny

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

8 Comments

  1. no pots comentar openvz sense comentar proxmox!!!

    :)

    és un frontend molt bo per gestionar els contenidors, les quotes, etc.

    Respon
  2. Prou be!

    Un article per a la gent previament convençuda d’utilitzar OpenVZ. Per als que no, comentar breument que es tracta d’una sol-lució de virtualització basada en contenidors únicament per a guests GNU/Linux amb una performance algo més alta (sobretot a mida que augmenta el consum de recursos i també a mida que s’escala) que Xen.

    Respon
  3. [BGN] Copying home/replica/www/marsupi.org/jobberbase-1_8 from //malaguita//var/lib/vz/private/104 to /var/lib/vz/private/104
    0% 133:54 ETAFailed [var/www/socis/larimaia/calendari/calendars.tar.gz]: The file /var/lib/vz/private/104/var/www/socis/larimaia/calendari/calendars.tar.gz
    has

    Esto es lo que pasa si se modifica un fichero al momento de hacer la sincronización

    Respon
  4. Blackhold, això és fent servir vzdump? amb particions LVM?

    que sincronitzes? marsupi?

    Respon
  5. crec que si que era amb el vzdump… estic intentant fer memòria pero… hehe….

    a marsupi sincronitzem les màquines amb rsync, ja que per exemple un servidor de llistes de correu només es canviaran certs fitxers.

    amb els backups 3/4 del mateix.

    personalment m’agrada més el rsync que les còpies incrementals i diferencials…

    Respon
  6. En la parte que hay que editar /etc/vz/vz.confm cuando restarteo me tira error.
    Estuve leyendo http://es.blogxpopuli.org/wiki/OpenVZ, que es básicamente lo que tenés acá un poco más completo, pero dice que esas configuraciones se tienen que editar en /etc/sysctl.conf (que dado el contenido, tiene más sentido).

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

    el archivo a editar deberia ser /etc/sysctl.conf

    Respon

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *

Aquest lloc utilitza Akismet per reduir els comentaris brossa. Apreneu com es processen les dades dels comentaris.