13
Autor: Carlos Eduardo Virgen Londoño Mail: [email protected] 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

Virtualización con OpenVZ

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Virtualización con OpenVZ

Autor: Carlos Eduardo Virgen LondoñoMail: [email protected]: 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

Page 2: Virtualización con OpenVZ

Autor: Carlos Eduardo Virgen LondoñoMail: [email protected]: 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

Page 3: Virtualización con OpenVZ

Autor: Carlos Eduardo Virgen LondoñoMail: [email protected]: 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

Page 4: Virtualización con OpenVZ

Autor: Carlos Eduardo Virgen LondoñoMail: [email protected]: 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 maindeb http://security.debian.org/debian-security lenny/updates main

4

Page 5: Virtualización con OpenVZ

Autor: Carlos Eduardo Virgen LondoñoMail: [email protected]: 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

Page 6: Virtualización con OpenVZ

Autor: Carlos Eduardo Virgen LondoñoMail: [email protected]: 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

Page 7: Virtualización con OpenVZ

Autor: Carlos Eduardo Virgen LondoñoMail: [email protected]: 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 101Existen 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

Page 8: Virtualización con OpenVZ

Autor: Carlos Eduardo Virgen LondoñoMail: [email protected]: 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

Page 9: Virtualización con OpenVZ

Autor: Carlos Eduardo Virgen LondoñoMail: [email protected]: 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 OpenVzTipo virtualización Paravirtualización NativaLimite de memoria Por Software Por Hardware(No maneja

Swap)Consumo de memoria Uso moderado Poco uso de recursosArquitectura soportadas i686, x86-64, IA64,

PPCi686, x86-64, IA64, PPC, SPARC

Licencia GPL GPLS.O. Soportados Windows, Linux,

Solaris, y varias versiones de BSD

Linux

Manejo de entornos gráficos Si No

9

Page 10: Virtualización con OpenVZ

Autor: Carlos Eduardo Virgen LondoñoMail: [email protected]: 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 WebVzwget http://dfn.dl.sourceforge.net/sourceforge/webvz/webvz.2.0.tar.gz Descomprimimos el archivo descargadotar 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 generadacd webvz

Creamos unos links simbolicos para acceder a los archivos de configuración del OpenVzln -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

Page 11: Virtualización con OpenVZ

Autor: Carlos Eduardo Virgen LondoñoMail: [email protected]: 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: adminPasswort: 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

Page 12: Virtualización con OpenVZ

Autor: Carlos Eduardo Virgen LondoñoMail: [email protected]: 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

Page 13: Virtualización con OpenVZ

Autor: Carlos Eduardo Virgen LondoñoMail: [email protected]: 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