Você está na página 1de 13

Autor: Carlos Eduardo Virgen Londoño

Mail: carlos.eduardo.virgen@gmail.com
Site: http://www.calinuxeros.org

Virtualización con OpenVz


• Conceptos generales.
• Que es OpenVz.
• Para que sirve.
• Como se instala.
• Como se administra.
• Que ventajas trae.
• Que desventajas tiene.
• ¿Cuál sistema de virtualización escoger? .
• WebVz.
• Conclusiones.

Conceptos generales

En la actualidad y los grandes avances en la ciencia de la computación han ido con el paso
del tiempo de hacer real el significado de la palabra virtual. En varias definiciones la palabra
virtual, da a entender que es algo que no existe físicamente pero que de cierta forma se
puede percibir.

Por diversos motivos la tendencia actual, es poder reutilizar lo que se tiene, desde el motivo
económico o como por ejemplo ecológico el poder reutilizar un insumo hace que sea un
bienestar.

¿Pero a que vamos con esto de reutilizar?, pues bien el mantener un equipo de computo
es un desgaste económico si lo vemos desde ese punto de vista, puesto que el consumo
energético del mismo hacen que se incremente el cobro en la factura, pero una maquina
encendida las veinticuatro horas no implica nada de sobre costos, podría concluir el usuario
común, pero para otro los cuales viven de mantener no solo una si no varias maquinas
funcionando, verán como el mantenerlas encendidas, incluso refrigeradas, hace de que las
cifras aumenten al momento de pagar las facturas.

Por esta y otras razones entonces la tendencia ha ido tomando forma en un concepto nuevo
llamado virtualizacón y que aplicado en el ámbito de los servidores coge aun mas poder ya
que permite grandes ahorros, obteniendo novedosas ventajas.

1
Autor: Carlos Eduardo Virgen Londoño
Mail: carlos.eduardo.virgen@gmail.com
Site: http://www.calinuxeros.org

¿Pero que es virtualzar?, básicamente es poder abstraer las propiedades de la capa física
de un equipo de computo, de tal manera que estos recursos puedan ser usados por un
sistema operativo paralelo al sistema que administra el hardware real.

Si deseas encontrar mas información sobre lo que es la virtualización puedes buscar en la


edición No. 9 de Linux+, en el articulo “La Maquinaria de la Virtualidad”, ya que aquí
vamos a mostrar las características de OpenVz que es una manera de virtualizar por sistema
operativo.

¿Que es OpenVz?

Antes de dar una definición de lo que es OpenVz, vamos aclarar un concepto que
encontraremos de aquí en adelante. El Entorno Virtual o VE(Virtual Enviroment), también
conocido como VPS(Servidor Privado Virtual) es un programa aislado entorno de ejecución,
que se ve y se siente como un servidor físico separado.

Cada VE tiene su propio conjuntos de procesos, sistema de archivos, interfaces de red,


tablas de enrutamiento, y un sinnúmero de características que le permiten ejecutarse como si
fuera una maquina física.

OpenVz es un núcleo de Linux el cual ha sido modificado añadiéndole unas características


adicionales, virtualización y aislamiento, administración de los recursos, puntos de
comprobación. Estas características permiten al servidor físico o anfitrión poder instalar VE
dentro de el.

La virtualización y el aislamiento, le permiten a cada VE tener sus propios procesos, ser


dueño de sus propios recursos, entre otros.

La administración de los recursos, permite que los VE se ejecuten evitando que uno
consuma mas recursos de maquina física de lo indicado, con esto se evita un colapso del
sistema en si. Aunque la limitante es la maquina física esta propiedad que incluso es
configurable para cada VE, permite indica por ejemplo en numero de procesos por cada VE o
el consumo de disco duro.

Para hacer la instalación de un sistema operativo dentro del anfitrión, OpenVz hace uso de
unas plantillas, estas no son mas que una distribución de Linux preparada de tal forma que la
dejan en su mas básica expresión para su mas rápida portabilidad, de una plantilla se pude
generar varios VE, incluso de un VE ya configurado se puede sacare una plantilla para luego
reusarla en posteriores instalaciones.

2
Autor: Carlos Eduardo Virgen Londoño
Mail: carlos.eduardo.virgen@gmail.com
Site: http://www.calinuxeros.org

Para que Sirve Openvz

Openvz es una gran alternativa para la virtualización de servidores en las compañías,


aprovecha al máximo el tiempo real de las necesidades y proyectos a futuro, economizando
recursos y gestión en las tecnologías de la información.

Compartir los recursos de un servidor como el mismo disco duro, memoria, tarjeta de red,
procesador, entre diferentes distribuciones de GNU/Linux donde todos trabajan
independientemente, si un entorno virtual falla los demás entornos virtuales seguirán
trabajando, aprovechando los recursos de memoria que deja disponible el entorno virtual que
fallo.

Una de las características mas importantes de la virtualización de servidores es la


optimización de recursos, para poder realizar tareas totalmente independientemente.

¿Como se instala?

Bueno existen muchas distribuciones de Linux y pues para cada una de ellas su muy
particular forma de instalarla, en este caso vamos a trabajar con Linux Debian y vamos hacer
la instalación de la forma mas practica y sencilla posible.

3
Autor: Carlos Eduardo Virgen Londoño
Mail: carlos.eduardo.virgen@gmail.com
Site: http://www.calinuxeros.org

Bueno Debian tiene una forma para instalar Software adicional, se hace por medio de
paquetes, estos son administrados por diversos gestores de paquetes, entre los que existen
hay uno por consola de comandos llamado el “apt-get”, pero antes de adentrarnos en el uso
del “apt-get”, debemos de preparar nuestro listado de paquete disponibles para instalar, para
ello vamos abrimos una consola de comandos y nos vamos a la ruta “/etc/apt”

Figura 1.0 Directorio para configurar el listado de paquetes disponibles

Como vemos entonces en dicha ruta encontramos un archivo de nombre “sources.list”,


este archivo contiene la información del listado de paquetes disponibles para la instalación,
ahora debemos de añadirle un par de direcciones o confirmar si lo que vamos añadir ya esta
en dicho archivo. Para hacer esto vamos hacer uso de nuestro editor favorito, por ejemplo
desde la consola podemos hacer esta sentencia “nano sources.list” o “vi sources.list”, bueno
en cualquiera de los casos debemos de estar como el usuario root o con un usuario con
privilegios sobre estos archivos o también hacer uso del comando “sudo”, esto ultimo seria
algo así “sudo vi sources.list” así pediría la contraseña del root y después de confirmada
ejecuta la edición del archivo.

Bueno en el archivo debemos de ingresar las lineas:

deb http://ftp.de.debian.org/debian lenny main


deb http://security.debian.org/debian-security lenny/updates main

4
Autor: Carlos Eduardo Virgen Londoño
Mail: carlos.eduardo.virgen@gmail.com
Site: http://www.calinuxeros.org

Después de salvarlo, debemos de ejecutar el comando “apt-get update”, esto con el fin de
que el listado de paquetes disponibles se actualice.

Hecho ya lo del “apt-get update” procedemos entonces instalar el núcleo que incorpora el
OpenVz, esto lo hacemos con el siguiente comando:

apt-get install linux-image-openvz-686

Después de ejecutado esta linea de comando inicia el proceso de instalación, este consiste
en la descarga de un núcleo ampliado con las herramientas y recursos para ejecutar
OpenVz, durante el proceso de instalación, se modifica el gestor de arranque GRUB, de tal
forma que añade la entrada adicional en el menú de selección de núcleos instalados en la
maquina.

Cuando a finiquitado la instalación, reiniciamos la maquina y vemos que en le menú de


selección del GRUB sale un núcleo adicional el cual indica que trae la funcionalidad del
OpenVz, seleccionamos este y proseguimos con el inicio de la maquina.

-Bueno pero yo no veo nada-, podrías decir cuando veas que la maquina sigue tal cual como
estaba antes, pero no es así, resulta que si ingresas a una consola de comando, te subes
como el súper usuario y lanzas por ejemplo el comando “uname -r” veras una salida como
esta “2.6.26-1-openvz-686” o si haces un “ifconfig” entre las interfaces de red te saldrá una
mas o menos así “venet0 Link encap:UNSPEC”. -¿Y que gano con eso?- buena pregunta,
esto nos da indicio que la instalación del OpenVz esta bien ahora sigue el paso de montar un
entorno virtual o VE como se le suele llamar.

Hasta aquí ya instalamos la maquinara que nos permite virtualizar, para instalar una
distribución de Linux, debemos ahora comprender otro termino dentro del uso de OpenVz,
este es el Template o plantilla en español, una plantilla para OpenVz es una imagen reducida
de una distribución de Linux la cual viene en su forma básica para ser incluida dentro de un
contenedor, estas se pueden descargar de la pagina
http://wiki.openvz.org/Download/template/precreated.

Una vez hemos determinado cual de todas las plantillas es la que vamos a descargar,
procedemos a bajarla en un directorio que se creo al momento de instalar el OpenVz, este
queda en la ruta “/vz/template/cache”, toda plantilla que se descargue debe de ir en esta ruta
con el propósito de que cuando se usen los comando de instalación de VE estas queden
disponibles.

5
Autor: Carlos Eduardo Virgen Londoño
Mail: carlos.eduardo.virgen@gmail.com
Site: http://www.calinuxeros.org

Como se administra

Hasta ahora con esto de la instalada y las descargas de las plantillas, ya tenemos el sistema
preparado para instalar un entorno virtual dentro de nuestra maquina física, empezaremos
entonces identificando el comando “vzctl”, este comando permite varias cosas como la
creación, configurar la red, el nombre de la maquina virtual entre otros.

Supongamos que descargamos el archivo de plantilla de un Debian 5.0, este deberia de


tener mas o menos dependiendo de como lo nombraron una forma similar a esta “debian-5.0-
x86.tar.gz”, recordemos que debe de colocarse en “/vz/template/cache”, tal cual como lo
descargaron.

Para crear entonces el contenedor virtual hacemos lo siguiente(Debemos de estar en una


consola de comando con un usuario con privilegios de root o en su defecto con el root):

vzctl create 101 --ostemplate debian-5.0-x86

Al presionar la tecla Enter se da inicio al proceso de creación, al finalizar indicara con un


mensaje que el VE ha sido creado con éxito. Comprendamos algo de la linea de comando
indicada anteriormente, la parte que dice “vzctl create, indica la operación de creación de
un entorno virtual, “101” este es el identificador del contenedor virtual, en el ejemplo pudo
colocarse 1 o 2 o 100, en fin un valor entero el cual nos identifique el entorno virtual, este
valor no puede ser repetido, en caso tal de querer crear una maquina virtual con un
identificador existen el comando retornara su respectivo error.

La parte que dice “--ostemplate debian-5.0-x86”, indica al comando que debe tomar la
plantilla de nombre “debian-5.0-x86”.

Ahora después de creado vamos a definirle una dirección IP al entorno virtual que se creo y
que tiene como ID 101, para esto ejecutamos la siguiente linea de comando:

vzctl set 101 --ipadd 192.168.1.2 -–save

Ahora vemos que el comando “vzctl” esta acompañado del opción “set”, esto indica que es
para definir algo dentro de el contenedor de identificador 101, en el ejemplo es la Ip dela
maquina por ende se usa el parámetro “--ipadd” seguido de el valor de la Ip que le
queremos dar y al final seguido del parámetro “--save” este ultimo para que nos guarde la
información que queremos definir.

6
Autor: Carlos Eduardo Virgen Londoño
Mail: carlos.eduardo.virgen@gmail.com
Site: http://www.calinuxeros.org

Ahora definiremos un servidores DNS para la configuración de red de nuestro VE

vzctl set 101 --nameserver 200.10.11.1 --save

Como vemos el parámetro cambio ya no fue “--ipadd” si no “--nameserver”.

Podemos iniciar los entornos virtuales o detenerlos con los siguientes comandos:

vzctl start 101, para iniciar.

vzctl stop 101, para detenerlo.

Digamos ahora que ya no necesitamos mas el entorno virtual de identificador 101 y


necesitamos eliminar, para eso entonces lanzamos el comando:

vzctl destroy 101


Existen gran diversidad de comandos, por ejemplo después de creado una VE y se necesita
ingresar a ella por algún motivo podemos lanzar el comando

vzctl enter 101

Esto nos ingresa a la consola de la maquina virtual como usuario root.

Puntos de control y migración en caliente

Como en toda tarea de administración siempre están presente los archivos de respaldo,
migración de plataformas, entre otras tareas afines, pues no se podía dejar de tocar este
tema con respecto a OpenVz, fuera de poder sacar los respaldos de los entornos virtuales
también es posible hacer un paso de un entorno virtual desde un servidor a otro sin que los
servicios contenidos en el entorno virtual se vean afectados, a esto comúnmente se le
conoce como migración en caliente o migración en vivo.

Para hacer una punto de control se hace uso del comando “vzctl” mas la opción “chkpnt” de
la siguiente forma:

vzctl chkpnt VEID --dumpfile <path>

Donde VEID es el identificador del entorno virtual y la opción “--dumpfile <path>” indica la
ruta donde va a generarse el archivo de respaldo. En el caso donde no se indique la opción
“--dumpfile <path>”, el comando asumirá una ruta por defecto para la generación del archivo,
esta ruta es “/vz/dump/dump.VEID”.

7
Autor: Carlos Eduardo Virgen Londoño
Mail: carlos.eduardo.virgen@gmail.com
Site: http://www.calinuxeros.org

Una vez obtenido el archivo de respaldo se puede recuperar el entorno virtual, el cual
devolverá la maquina virtual al estado en que se ejecuto el punto de control. Para hacer una
restauración desde una archivo de respaldo ejecutamos el comando de la siguiente forma:

vzctl restore VEID --dumpfile <path>

Migración en línea o migración en caliente

En muchas labores de mantenimiento, se requiere detener los equipos, esta operación es


traumática, ya que produce la inconformidad de las personas que hacen uso del servidor.
La migración en caliente consiste en que el VE pasa de un servidor a otro sin necesidad de
ser detenido. Esta operación se hace con el comando “vzmigrate” de la siguiente manera:

vzmigrate --online <host> VEID

La opción ”--online” , indica que se va hacer el paso del entorno virtual en caliente, “<host>”
es donde debe de especificarse la dirección IP del servidor OpenVz destino y pues como ya
lo hemos visto “VEID” es el identificador de la maquina virtual que se va a migrar.
El comando “vzmigrate” hace uso de una conexión ssh para el traslado de la VE, por ende el
usuario debe de tener privilegios de conexión en el servidor OpenVz destino.

Ventajas de Openvz

Cada Entorno virtual trabaja independientemente, esto nos hace creer que estamos
trabajando con varios servidores físicamente.

La administración de los recursos del servidor físico en los entornos virtuales de openvz se
pueden modificar sin necesidad de reiniciar la maquina.

Poder migrar entornos virtuales en caliente sin necesidad de apagar el servidor.

La escalabilidad en Openvz es una habilidad para poder manejar el crecimiento continuo del
servidor físico sin perder calidad en los entornos virtuales.

Openvz pude trabajar con cientos de entornos virtuales en el servidor físico pero teniendo en
cuenta las especificaciones del hardware.

Administración masiva de todos los entornos virtuales.

El ahorro de tiempo a la hora de hacer los procesamientos de instalación de la virtualización.

Se puede trabajar en diferentes escenarios: seguridad, consolidación de servidores, hosting,

8
Autor: Carlos Eduardo Virgen Londoño
Mail: carlos.eduardo.virgen@gmail.com
Site: http://www.calinuxeros.org

educativo, desarrollo y prueba.

Se pueden crear plantillas con base a los entornos virtuales previamente creados.

Desventajas

Solamente puede trabajar con el sistema operativo Linux, pero se pueden instalar diferentes
distribuciones de GNU/Linux.
No se si esto sea una desventaja pero los entornos virtuales no tienen entorno gráfico, tal vez
para algunos que no están muy familiarizados con la consola esto puede ser una desventaja
muy notoria.
OpenVz no hace manejo de Swap, existen ya que todo esto es controlado por el servidor que
los contiene, esta particularidad a veces hace la vida un poco problemática. Existen
instaladores de programas que validan la existencia de este.

¿Cuál sistema de virtualización escoger?

Bueno en cada situación que se debe de afrontar, siempre nos hacemos esta pregunta,
¿Cuál de todos elegir?, pero siempre he manejado una premisa para esto, uso lo que
realmente necesito. Xen es otro entorno de virtualización realmente bueno, por ende vale la
pena compararlo con OpenVz.

Sistema de virtualización Xen OpenVz


Tipo virtualización Paravirtualización Nativa
Limite de memoria Por Software Por Hardware(No maneja
Swap)
Consumo de memoria Uso moderado Poco uso de recursos
Arquitectura soportadas i686, x86-64, IA64, i686, x86-64, IA64, PPC,
PPC SPARC
Licencia GPL GPL
S.O. Soportados Windows, Linux, Linux
Solaris, y varias
versiones de BSD
Manejo de entornos gráficos Si No

9
Autor: Carlos Eduardo Virgen Londoño
Mail: carlos.eduardo.virgen@gmail.com
Site: http://www.calinuxeros.org

WebVz

A estas alturas del todo lo narrado sobre OpenVz, algunos estarán pensando sobre la
cantidad de comandos que deben de aprender para hacer la administración de los servidores
virtuales. Afortunadamente Shuaib Zahda se tomo la tarea de crear una consola de
administración, construida en Ruby, WebVz en una alternativa de código abierto que permite
una fácil administración de las VE. Esta se puede acceder desde la Web y es muy fácil de
instalar.

Primero debemos de instalar los prerrequisitos:

apt-get install ruby rubygems libsqlite3-ruby sqlite3 irb1.8


apt-get install libopenssl-ruby1.8 libreadline-ruby1.8 rdoc1.8

Instalamos el framework de Ruby


gem install -v=2.1.0 rails

Como usuario root hacemos los siguientes pasos:

Ingresamos a la ruta “/usr/local”


cd /usr/local/

Descargamos la fuentes del WebVz


wget http://dfn.dl.sourceforge.net/sourceforge/webvz/webvz.2.0.tar.gz
Descomprimimos el archivo descargado
tar xvfz webvz.2.0.tar.gz
Renombramos el directorio que genero la descompresión de archivo “gz”
mv webvz.2.0 webvz

Ingresamos a la carpeta generada


cd webvz

Creamos unos links simbolicos para acceder a los archivos de configuración del OpenVz
ln -s /var/lib/vz /vz
ln -s /usr/bin/irb1.8 /usr/bin/irb
mkdir /etc/sysconfig
ln -s /etc/vz/conf /etc/sysconfig/vz-scripts

Vamos hacer de que el servicio del WebVz arranque al inicio de la maquina, para esto
ingresamos por consola al directorio “/etc/init.d ” estando ahí creamos un archivo con el
comando “vi nombre_archivo.sh”, para el ejemplo “vi webvz.sh”, luego ingresamos las lineas
de código siguientes:

10
Autor: Carlos Eduardo Virgen Londoño
Mail: carlos.eduardo.virgen@gmail.com
Site: http://www.calinuxeros.org

#Ingresamos a la ruta donde se encuentra el WebVz


cd /usr/local/webvz/

#Se inicializa el servidor


/usr/bin/ruby script/server &> /dev/null &

Después de escrito lo anterior salvamos el archivo y procedemos a darle permisos de


ejecución al mismo de la siguiente forma:

chmod +x webvz.sh

Luego de esto lo involucramos en el arranque con el siguiente comando:

update-rc.d webvz.sh defaults

Iniciamos el servidor “,/webvz.sh”, hecho esto, abrimos nuestro navegador y accedernos a la


consola de administración con la siguiente URL “http://localhost:3000”, bueno ahí les va a
pedir el usuario y la clave, pero lo resolvemos con esta información:

Username: admin
Passwort: admin123

Bueno sobra decir que después de haber ingresado debemos de cambiar la clave para que
no hagan destrozos estos usuarios con iniciativa.

Esta consola de administración es bastante intuitiva por ende solo basta navegar por ella y
ver las opciones para aprender a manejarla, aquí algunas tomas de pantalla:

11
Autor: Carlos Eduardo Virgen Londoño
Mail: carlos.eduardo.virgen@gmail.com
Site: http://www.calinuxeros.org

Figura 2.0 Interfaz de administración WebVz, listado de contenedores virtuales (Imagen superior),
listado de los procesos de un contenedor virtual(Imagen inferior)

12
Autor: Carlos Eduardo Virgen Londoño
Mail: carlos.eduardo.virgen@gmail.com
Site: http://www.calinuxeros.org

Conclusiones

El hacer uso de plataformas de virtualización permite reducir costos, debido a que implica
que no se va a tener un numero de maquinas físicas encendidas consumiendo energía
eléctrica.

Las maquinas virtuales permiten crear ambientes de pruebas sin necesidad de recurrir a
compra de Hardware adicional.

Al momento de hacer una implementación de plataformas de virtualziación, debe de definirse


que es lo que se desea para así escoger la plataforma ideal.

OpenVz al igual que otros sistemas de virtualización permiten crear replicas de los ambiente
virtuales, dando facilidad a la implementación de nuevos servicios rápidamente.

Virtualizar ayuda al medio ambiente, el simple hecho de no encender físicamente un equipo


de computo hace de que se haga menos uso de energía eléctrica, por tal motivo se hace un
consumo menor del agua que se utiliza en las hidroeléctricas.

13