Noticia Administrando un servidor OpenVZ (III)

Hola a todos de nuevo. Hoy continuaremos con esta serie artículos sobre la administración de OpenVZ. En el anterior post cubrimos todo lo referente a la instalación de OpenVZ.

Por lo tanto, si todo ha salido bien, ya deberíamos tener nuestro servidor OpenVZ instalado y listo para empezar a trabajar con él.

Hoy hablaremos de todo lo relacionado con la administración de los contenedores, tanto de su creación como de su configuración y manejo.

Creación de los contenedores


Los contenedores o VEs son lon entornos virtuales (máquinas virtuales) que crearemos y administraremos con nuestro servidor OpenVZ. Para poder crearlos necesitamos disponer de un template.

Los templates son el modelo a partir del cual se construirá el contenedor. Contienen los distintos paquetes necesarios para el funcionamiento del sistema y algunas aplicaciones básicas, así como todos los metadatos (template cache) para construir y configurar la máquina.

Existen templates de distintas distribuciones de Linux. Algunos de ellos son mantenidos oficialmente y otros son aportes de la comunidad.

La forma más simple de obtenerlos es usar uno de los templates precreados. Estos se han obtenido creando un contenedor a partir de un template y luego empaquetándolo en un archivo gzip.

Esos archivos comprimidos serán los que descargaremos y partir de los cual crearemos nuestros propios contenedores. De esta forma la creación de los contenedores es mucho más rápida y fácil que antiguamente, cuando la cache había de ser generada a mano. Lo único que hay que hacer hoy en día es descargar el archivo de la distribución elegida desde esta página:

http://openvz.org/Download/template/precreated

Una vez descargado, lo guardamos tal cual está en este directorio de nuestro servidor:

/vz/template/cache

Ahora ya podemos crear nuestros contenedores a partir de los templates instalados. Lo primero que hay que tener en cuenta es que cada contenedor tiene asociado un id numérico que sirve para identificar los VEs y que no puede repetirse dentro de un mismo host físico.

Además, el ID ha de ser mayor que 100, ya que los IDs de 0 al 100 son usados por el sistema.

Para administrar los contenedores, el comando más importante es vzctl. Para crear un nuevo contenedor se usa la sintaxis siguiente:

#vzctl create --ostemplate template --config config_file

En ostemplate ponemos el nombre de la template que hemos descargado antes. El parámetro config es opcional. En él se pone el nombre de un archivo con configuraciones predefinidas para los contenedores.

Si no lo especificamos, tendremos que ponerlas a mano. Los archivos de configuración se encuentran en:

/etc/sysconfig/vz-scripts

Los nombres de los archivos tienen esta estructura:

ve-nombre_config.conf-sample

El más común es el basic (ve-basic.conf-sample). Podemos usar aquellos que están creados por defecto o hacer los nuestros propios. En cualquier caso, todos los valores que se especifiquen pueden ser modificados posteriormente.

Por ejemplo, para crear un contenedor con ID 101, a partir de un template de debian que descargamos antes y usando la configuración básica, ejecutamos:

#vzctl create 101 --ostemplate debian-6.0-x86 --config basic

Configuración de los contenedores


Ahora que ya hemos creado nuestro contenedor, podemos pasar a configurarlo. Para ello usamos la siguiente sintaxis:

#vzctl set --parametro valor --parámetro valor […]

Existen multitud de parámetros que podemos configurar. Para consultarlos, todos podemos acudir al manual de vzctl (#man vzctl) o a la wiki de openvz.

Para que los cambiamos que hagamos se mantengan después de apagar el sistema hemos de añadir –save al final del comando. Si no, solo durará hasta el próximo apagado.

A continuación explicaremos algunos de los comandos más básicos:

Configura que el contenedor se inicie al arrancarse el equipo o no.
onboot [yes/no]

Especifica el hostname del equipo
hostname

Añade un dirección ip al equipo. Se añaden de forma acumulativa.
ipadd

Si queremos borrar alguna de las configuradas anteriormente hemos de usar:
ipdel dir_ip|all

Configura la dirección de los servidores DNS. Se puede usar esta opción varias veces en un mismo comando para configurar varios servidores. Al hacerlo, se sobreescribirán todos los nameserver anteriormente configurados.
nameserver

Configura la contraseña para un usuario del sistema. Si no existe, lo crea. Es recomendable no usar este parámetro junto a otros. No necesita que se use save con este parámetro.

userpasswd user:password

Indica el orden en el que se iniciará la máquina al arrancar. Cuanto mayor sea el número, mayor prioridad tendrá. Si no está configurado, se considera que tiene la menor prioridad y cualquier otro contenedor que sí esté configurado se iniciará antes.

bootorder

Finalmente, os dejo como ejemplo la ejecución de una configuración básica para el contenedor 101

#vzctl set 101 --onboot yes --hostname virtualhost --ipadd 192.168.1.10
--nameserver 8.8.8.8 --nameserver 4.4.4.4 --save
#vzctl set 101 --userpasswd root:1234
Administración de los contenedores


Una vez tenemos nuestros contenedores creados y configurados, podemos administrarlos. Para ello, de nuevo haremos uso del comandos vzctl. A continuanción se listan algunos de los comandos básicos para administrar los contenedores:

Inicia el contenedor
#vzctl start ID

Detiene el contenedor
#vzctl stop ID

Detiene el contenedor sin esperar a que todos sus procesos se detengan
#vzctl stop ID --fast

Nos dice el estado del contenedor
#vzctl status ID

Destruye el contenedor. Antes es necesario haberlo detenido.
#vzctl destroy ID

Se entra en la máquina a través de la linea de comandos como si hubiéramos accedido por ssh.
#vzctl enter ID

Ejecuta un comando dentro del contenedor.
#vzctl exec ID comando

Lista los contenedores que están activos en el servidor. Con la opción -a lista también los detenidos.
#vzlist

Esto es todo por hoy. Con esto damos por finalizado la parte más básica de la administración de OpenVZ.

En los próximos artículos hablaremos de procedimientos más avanzados, como la administración de recursos, la realización de backups o el uso de ploop.

Hasta entonces, podéis ir probando todo lo que hemos explicado hasta ahora. Como siempre, dejad cualquier duda que tengáis en los comentarios y nos vemos pronto. Larga vida y prosperidad.


uSz7kcr_41E


Continúar leyendo...