Administrando un servidor OpenVZ (I)

Hola a todos. Esta es mi primera post en DesdeLinux y estoy tremendamente entusiasmado por colaborar en una de mis publicaciones sobre GNU/Linux preferidas.

Para la ocasión, voy a hacer una serie de artículos sobre OpenVZ. Espero que los disfruten y les sean de utilidad. En esta primera parte haré una pequeña introducción sobre OpenVZ.

Logo de OpenVZ

Logo de OpenVZ

1. Introducción a OpenVZ

Para empezar, veamos la definición que nos da la Wikipedia:

OpenVZ es una tecnología de virtualización en el nivel de sistema operativo para Linux. OpenVZ permite que un servidor físico ejecute múltiples instancias de sistemas operativos aislados, conocidos como Servidores Privados Virtuales (SPV o VPS en inglés) o Entornos Virtuales (EV).

Como vemos, OpenVZ es un software que nos permite virtualizar sistemas operativos en entornos aislados, al igual que Xen o VirtualBox. Sin embargo, se diferencia en estos en el modo en que lo logra.

OpenVZ no crea un entorno virtual completo como hacen otros, tan solo crea un entorno aislado dentro de nuestro sistema operativo en el que carga todo lo necesario para que funcione un sistema operativo independiente. Algo así como un Chroot supervitaminado.

OpenVZ es la base de la solución de virtualización privativa Virtuozzo, que se publica como software libre licenciado bajo la GNU GPL v2.

Esto tiene una serie de ventajas e inconvenientes. Entre las ventajas, está que OpenVZ no consume casi nada de carga extra en nuestro host. Al no tener que virtualizar un sistema operativo completo (con su propio kernel, sistema de entrada/salida, etc) el consumo de la CPU es mucho menor.

Además, la memoria se asigna de forma dinámica. Es decir, si le asignamos un máximo de 1GB de consumo de memoria RAM, esto no significa que se va a reservar inmediatamente dicha cantidad. Tan solo se asignarán los recursos necesarios en ese momento. Cosa que sí ocurre en otros sistemas de virtualización.

Esto permite que OpenVZ pueda ser usado tanto en infraestructuras profesionales con alta capacidad como en equipos domésticos de limitados recursos. Por último, también cabe mencionar que OpenVZ es mucho más fácil de administrar en comparación a otros sistemas. Algo que podréis comprobar en las próximas entregas.

Por supuesto, no todo van a ser ventajas. Dado que OpenVZ depende completamente del sistema Linux que hace de host, tan solo puede virtualizar sistemas operativos basados en Linux.

Además, debido a que OpenVZ usa su propio Kernel Linux modificado, todas las VPS lo usan también y, por lo tanto, no pueden cargar módulos de forma dinámica. Esto provoca que, en la actualidad, no exista soporte para tecnologías como Samba, ya que no está soportado por el Kernel de OpenVZ.

En resumen, OpenVZ ofrece un mejor rendimiento, escalabilidad y facilidad de uso en comparación con soluciones similares. En contrapartida, es mucho menos flexible y altamente dependiente del sistema anfitrión.

Por último, cabe mencionar que OpenVZ está soportado oficialmente para las siguientes distribuciones de Linux:

-Red Hat/CentOS 6 (32 y 64 bytes)

-Debian 7 (solo 64 bytes)

Originalmente y hasta hace poco solo existía soporte para Red Hat/CentOS, por lo que la documentación para este es algo más abundante.

Para terminar, os dejo enlaces a sitios dónde podéis obtener documentación de interés si queréis profundizar más sobre el tema:

-Wiki del proyecto (inglés): https://openvz.org/Main_Page

-Manual oficial (inglés): http://download.openvz.org/doc/OpenVZ-Users-Guide.pdf

-Manual de instalación y configuración básica en Debian (español): http://shuster.cs.buap.mx/blog/descargas/instalar_OpenVZ_DebianLenny.pdf

-Vídeo de introducción a OpenVZ (español): http://www.youtube.com/watch?v=nc5t7vuRLmU

Esto ha sido todo por ahora. En la próxima entrega explicaré todo lo relacionado con la instalación y la configuración inicial de OpenVZ. Larga vida y prosperidad.


20 comentarios, deja el tuyo

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

  1.   RafaLiin dijo

    muchas gracias!!
    Yo soy un virtualizador compulsivo. Así que te agradezco mucho el aporte de este sistema que no conocía.
    Pero, por lo que veo en tu introducción. Prácticamente solo tiene sentido para un hosting que ofrezca VPS.
    Vamos que no es para estar probando distros linux, o programas truchos del ventanas.
    Saludos!

    1.    Kamisama666 dijo

      No solo eso. Si necesitas instalar un servidor linux cualquiera, digamos un Debian con apache, tan solo te instalas CentOS (o Debian, que ahora por fin está soportado) con OpenVZ, te creas el contenedor de Debian, le instalas apache con que sea que necesites y lo usas como si fuera uno normal. Y, a partir de ese momento, tienes tu servidor web funcionando normalmente con las ventaja de tenerlo virtualizado. Esto significa que puedes realizar backups fácilmente (cosa que os enseñaré pronto), migrarlo a otra máquina sin tener que cambiar nada de de tu configuración y, en caso de que la seguridad de tu servidor sea vulnerada, evitarte muchos problemas. Ya que el atacante solo habrá accedido a una máquina virtual. Tan solo la eliminas y restauras de una backup. Así, el daño será mucho menor (siempre quedará el daño de la información confidencial a la que haya podido acceder. Y todo esto con un consumo irrisorio en comparación a otros sistemas. En fin, que puedes convertir a OpenVZ en el sistema base de todas tus instalaciones para añadirlas una capa extra de seguridad, portabilidad y flexibilidad.

      Otro posible uso que se me ocurre es para la educación. Puedes montarte una pequeña red de ordenadores linux para practicar la configuración de distintos servicios. Yo he tenido que trabajar con VMware para esto y es un verdadero dolor de cabeza. He tenido la suerte de que los ordenadores del centro son bastante potentes y modernos pero, con todo y con eso, al final se acaban volviendo inestables. Pero eso en él mío. Si el centro tiene ordenadores con recursos limitados olvídate de tener más de una o dos máquinas al mismo tiempo. Con OpenVZ esto se soluciona. Yo lo he estado probando en mi ordenador personal (uno de esos que venden a las compañías al peso) y no he tenido ningún problema. Esto último también podría hacerse con netkit, un software similar orientado explícitamente a entornos educativos como medio de aprendizaje. Es otra herramienta muy interesante y quizás hable de ella en el futuro.

      En cualquier caso, como ves OpenVZ tiene bastantes más usos de lo que pueda parecer. Tan solo has de saber sacarle partido. Gracias por leer mi artículo y espero haberte sido de ayuda.

  2.   Oscar dijo

    ¿Qué diferencia hay con LXC?
    Gracias

    1.    Kamisama666 dijo

      Buena pregunta. Lo cierto es que son muy parecidas. La idea es aproximadamente la misma. Ambos trabajan integrándose con el kernel de linux para crear entornos aislados (o contenedores). De hecho, los desarrolladores de OpenVZ han contribuido en gran medida al código de LXC. La principal diferencia hoy en día es que LXC está integrado con el kernel upstream mientras que OpenVZ necesita usar el suyo propio. Pero, en la actualidad, los chicos de OpenVZ están trabajando duro para poder usar también la versión principal del kernel en lugar de tener que hacer una propia.

      Aparte de eso, la principal diferencia entre ambos proyectos es que OpenVZ ofrecen funcionalidades más avanzadas que LXC. Algo así como una versión más potente de LXC. La razón de que OpenVZ use su propio kernel es que el original aun no ha implementado algunas de las características avanzadas que sí han incluido ellos. Así, mientras que LXC es algo así como una serie de herramienta de espacio de usuario para manejar los contenedores linux, OpenVZ hace esto y añade características más avanzadas de los que no dispone la versión principal del kernel en este momento.

      De hecho, por lo que he leído, se está hablando de integrar ambos proyectos. Ya veremos lo que ocurre en el futuro. Espero haber resuelto tu duda. Larga vida y prosperidad.

  3.   woqer dijo

    ¡muy interesante! gracias por aportar

  4.   rpayanm dijo

    Cuando puedan también, se podría publicar algo de Vagrant también 😉

    1.    sald19 dijo

      eso mismo iba a preguntar, que diferencia hay con vagrant, segun tengo entendo en la carpeta donde creas la maquina virtual con openvz se crea todas las carpetas de la raiz (/etc, /root, /var, etc..),

      En vagrant se pueden definir muchas maquinas virtuales en un solo archivos (Vagrantfile), tambien puedo hacer eso con openvz??

      seria bueno que escribieran un post dando ventajas, desventajas y similitudes de openvz y vagrant

      1.    Kamisama666 dijo

        Lo cierto es que no conocía Vagrant hasta ahora. Pero, por lo que he visto, se trata de software bastante diferente de OpenVZ. Si no lo he entendido mal, Vagrant es un aplicación que se encarga de administrar la creación y administración de máquinas virtuales usando VirtualBox como base. Sería algo así como el PHPMyAdmin de MySQL. Es decir, es un software que facilita el uso de VritualBox, que es el que realmente se encarga de virtualizar. Algo similar para OpenVZ sería proxmox, del cual ya se habló aquí (https://blog.desdelinux.net/proxmox-ve-una-interesante-herramienta-de-virtualizacion/).

        Respecto al modo en que OpenVZ maneja los sistemas de ficheros de los contenedores, tienes razón. Como veremos pronto, dicho sistema se crea dentro de un directorio de nuestra máquina y se monta al arrancar el contenedor. Como he dicho, algo así como un chroot supervitaminado. Espero haber resuelto tus dudas. Si tienes alguna otra, intentaré contestar lo mejor que pueda. Hasta la próxima. Larga vida y prosperidad.

        1.    sald19 dijo

          gracias por aclarar las dudas, espero con entusiasmo el próximo post de openvz 😀

  5.   thisnameisfalse dijo

    Hola:

    espero con interés el resto de artículos de la serie. Me permito pedir que en alguno de los capítulos trates el tema de OpenVZ desde el lado cliente en lugar del servidor; me explico, en muchos VPS baratos que puedes encontrar por la red, permiten elegir entre KVM y OpenVZ, siendo OpenVZ algo más barato o con más disco/memoria. Sería bueno que detallases qué debe tener un linux para ejecutarse como cliente en una jaula OpenVZ, o qué hacer si el VPS de tu elección no tiene la distro que necesitas, cómo se puede instalar una distro a partir de la plantilla de otra sí soportada por el VPS.

    Saludos

    1.    Kamisama666 dijo

      Es cierto que OpenVZ se suele ofrecer como una alternativa más barata a otros sistemas de virtualización, como KVM o Xen. La razón es que consume muchos menos recursos y es mucho más fácil de administrar. Sin embargo, como veremos próximamente, OpenVZ se basa en una serie de templates o plantillas que tienen todo el software y la información necesaria para crear el contenedor. No es posible coger una ISO cualquiera e instalarla como harías con VirtualBox. En ese sentido es mucho menos flexibles que otros sistemas.

      Esto quiere decir que dependes por completo de las plantillas existentes y, aunque modificaras o crearas la tuya propia, sería el proveedor de la VPS quién debería implementarla, no tú.

      De modo que si quieres usar un sistema muy personalizado, OpenVZ no es para ti. Si te basta con tener un sistema básico desde el cual desarrollar lo que necesites, OpenVZ es una gran solución. Al final, depende de tus necesidades. Espero haberte sido de ayuda. Larga vida y prosperidad.

  6.   usemoslinux dijo

    Muy buen post!
    Saludos! Pablo.

    1.    Kamisama666 dijo

      ¡Muchísimas gracias!. Estoy muy feliz por haber publicado mi primer post y apenas puedo creerme que haya sido en una de las mejores publicaciones de Linux en español. Y también valoro mucho que te haya gustado. Seguía tus publicaciones en Usemos Linux cuando era una web independiente y continúo haciéndolo ahora que estás aquí. Gracias a ti y a todo el staff de DesdeLinux. Haré mi mejor esfuerzo para estar a la altura y que esta serie sea de ayuda para todos. Hasta la próxima.

      Larga vida y prosperidad.

      1.    elav dijo

        Bienvenido! 😉

      2.    KZKG^Gaara dijo

        Me sumo … bienvenido, excelente aporte 😉

  7.   arkhan dijo

    Genial, gracias por el aporte, la verdad ya lo había leído antes, pero nunca pude hacerlo correr en Archlinux, esperare el resto de tutoriales, para ver si por fin lo puedo lograr

    Felicidades por el articulo…

  8.   cr0t0 dijo

    Excelente serie de articulos Kamisama666. Te hago unas consultas:
    1) Dentro de un contenedor se podria tener un virtualbox corriendo para virtualizar otros sistema NO gnu/Linux sin problemas,no?
    2) Recomendarías tener un ambiente de producción ó desktop dentro de un contenedor para utilizarlo diariamente??? Me refiero a la penalización de rendimiento sería minima pero aparte de Samba, hay otro problema conocido con el kernel parcheado?

    Saludos!

    1.    Kamisama666 dijo

      Muchas gracias, intentaré responder a tus consultas lo mejor que pueda:

      1. Me temo que no. Para empezar, porque OpenVZ no soporta ningún tipo de interfaz gráfica. Y para continuar, porque otros sistemas de virtualización que no usen interfaz gráfica, como XEN, aun así necesita instalar módulos en el kernel o modificar alguna otra cosa. Y, dado que que los contenedores de OpenVZ usan el del host, es decir, no tienen uno propio, es imposible hacer algo así. En cambio, sí es posible hacerlo a la inversa. De todas formas, no creo que sea importante. Algo así no forma parte de la utilidad de OpenVZ. Tal y como yo lo veo, OpenVZ se centra en proveer, no tanto de un sistema operativo completo, como de un entorno rápido y ágil para hospedar nuestros servicios o aplicaciones. Si eso no es lo que quieres, hay otras soluciones más apropiadas.

      2. Bueno, ambiente de producción y desktop son dos cosas similares, así que responderé para ambos casos. Ambiente de producción significa su uso en, por decirlo de alguna manera, la brecha. Es decir, en el mundo real y profesional en el que, si un sistema falla, te puede costar el puesto. En este caso, por supuesto que sí. OpenVZ es usado por numerosas empresas y cuenta con una amplia experiencia y usa una versión del kernel estable y testada.

      Sin embargo, supongo que tú te referías a si podría usarse para virtualizar el sistema de algún usuario normal, como el empleado de una empresa cualquiera. Bueno, siempre que al usuario no le importe trabajar en un entorno linux en modo consola, no hay problema alguno. Pero, dado que este no suele ser el caso, de nuevo OpenVZ no sería la opción adecuada para esto.

      En fin, espero haberte aclarado tus dudas. Creo que, principalmente, el problema es que no entiendes los objetivos que persigue OpenVZ. Lo cual es, probablemente, culpa mía por no dejarlo claro. Intentaré aclarar este tipo de cosas en los próximos artículos. Un saludo.

      Larga vida y prosperidad.

      1.    cr0t0 dijo

        Gracias Kami por la pronta respuesta, me puse a buscar un poco y ya tengo más claro el ámbito en donde es usado OpenVZ como es el hosting. También hay conceptos como «Virtualización» y «Paravirtualización» que no conocia que corresponden a diferentes tipos de soluciones.

        Esperando tus próximos artículos. Saludos!

  9.   Marco De la Fuente dijo

    Estimado:

    Personalmente uso samba con openvz, con proxmox sin inconvenientes. Cuando dices que esto no es posible, ¿a qué te refieres?