Systemd, ¿será un estándar de facto?

Publicado: enero 26, 2014 en Opinión
Etiquetas:,

GNU-LINUXImaginemos un sistema para la gestión de demonios (servicios) que sea extremadamente fácil de configurar y administrar, que aproveche al máximo las capacidades del núcleo del sistema operativo, que nos proporcione mecanismos para securizar nuestro sistema, de manera simple y fácil. Pues esto existe y se llama systemd.

Una breve introducción.

Este sistema surge como alternativa al clásico SysVinit, de la mano de Lennart Poettering, Kay Sievers, con el apoyo por parte de Red Hat.

Es mucho más que un simple lanzador de demonios: Incorpora journal (para los logs), permite temporizar acciones (cron), paraleliza la ejecución de demonios, centraliza la configuración del sistema, permite vigilar directorios y archivos (lanzando acciones, según los eventos producidos), gestiona dependencias de demonios y un largo etc.

Utiliza Cgroups, una característica de Linux, que permite un control excelente sobre la ejecución de los demonios, entre otras cosas. Esta característica es la utilizada por LXC, para virtualizar, por ejemplo.

Un ejemplo de la utilización de systemd como cron, la encontramos aquí. Una implementación que permite la sustitución de estos demonios, la encontramos aquí.

Un ejemplo de fortificación de demonios,  sería ésta. Vemos cómo fortificar fail2ban, que se ejecuta con usuario root, es extremadamente sencillo y comprensible. Todas las opciones disponibles, las encontramos aquí.

Fácil, simple y limpio. Seguro que si no conocías estas opciones, estás ya fortificando el sistema….

Dado que el clásico sistema de inicio estaba algo obsoleto, Ubuntu creó su propio sistema, upstart, que también acelera el arranque, paralelizando la ejecución de demonios, pero no incorpora las bondades de systemd.

Hace poco, Red Hat y CentOS han anunciado su mutua colaboración. Además, Red Hat migrará a systemd en su próxima versión. Esto hace que, aquellas distribuciones que todavía no han migrando a systemd o upstart, tengan que considerar cambiar su sistema de inicio.

Si Ubuntu optara por systemd, se convertiría en un estándar automáticamente. No nos engañemos: Aunque systemd sea mucho mejor, sería, de manera indirecta, un reconocimiento, por parte de Canonical, de una derrota frente a Red Hat.

Debian, ¿está en tu mano?

Bajo mi punto de vista, la reina de la estabilidad, Debian, es quién, realmente, podría hacer que systemd sea un estándar. Si lo adopta, todas sus hijas, menos una, lo adoptarán. Dado que algunas nietas se están planteando cambiar el sistema base a Debian, serían más. A esto le añadimos el prestigio de Debian, que aumentaría la popularidad y la confianza en systemd.

Conocemos a Debian por ser un sistema GNU/Linux, sin embargo, Debian es mucho más. Además de ofrecer un sistema con Linux, lo ofrece con Hurd y con kFreeBSD. Aquí está el problema para migrar a systemd.

Alternativas y efectos colaterales.

Veamos las posibles opciones, a grandes rasgos, con mi humilde valoración:

  • Sysvinit: En el plano de servidores, tendría que competir con las distribuciones que, al utilizar systemd, añaden un mecanismo fácil de configurar, para securizar y con soporte de sockets, dbus, etc, necesario en un sistema actual. Ninguna variante de esta opción soporta cgroups o dbus, lo que, en un sistema actual, podríamos decir que este sistema de inicio, para Linux, está obsoleto. Además, requiere de un esfuerzo adicional para el mantenimiento de los init scripts. Esto puede afectar al status de estabilidad.
  • Upstart. Opción algo mejor, pero con un inconveniente: Abusa de ptrace, lo que complica enormemente la depuración del proceso de inicio. Esto, a largo plazo, puede afectar a la estabilidad. Además, sigue sin utilizar nativamente cgroups y otras características, lo que hace más complejo llegar al mismo nivel de securización o mantenimiento que permite systemd.
  • Systemd. La mejor opción, sin duda, para Linux. Sin embargo, require hacer «apaños» para kFreeBSD. Esto hace que aumente el nivel de acoplamiento en las variantes con kFreeBSD o Hurd, lo que obliga a un esfuerzo extra para mantener la estabilidad.

Conclusión.

La opción systemd es la tomada por grandes distribuciones como Fedora, ArchLinux, OpenSUSE, Mageia, Red Hat (a partir de la siguiente versión), Sabayon Linux, etc. lo que ofrece un amplio soporte, de una gran calidad.

Basadas en SysVinit solo quedan Slackware, utilizando la variante BSD y Gentoo, con su propia versión, pero que no soporta dbus y, cgroups, lo hace de manera rudimentaria y experimental (a efectos prácticos, no lo soporta).

Independientemente de la opción por defecto elegida, las distribuciones que no utilizan systemd, lo ofrecen como alternativa.

Si no has probado systemd, te recomiendo que lo pruebes, en Debian, Ubuntu y Gentoo, podemos encontrarlo en sus repositorios como versión alternativa, para que puedas comprobar las ventajas que ofrece.

Algo me queda claro: Este sistema consigue una configuración fácil de administrar y de depurar, dando soporte a las necesidades actuales y aprovechando las ventajas que Linux nos ofrece, que va a facilitar enormemente el día a día de los administradores de sistemas, aumentando la productividad.

Por mi parte, he hecho un breve resumen, para una mayor comprensión de las opciones, ventajas, inconvenientes y posición de los desarrolladores de Debian, podéis seguir el debate aquí.

Tome Debian la decisión que tome, tiene riesgos que asumir y va a levantar ampollas, así que, cojan sus palomitas, tomen asiento y disfruten de esta película.

comentarios
  1. dmacias dice:

    Yo lo descubri al instalar Arch y estoy contigo, lo mejor que pueden poner en cualquier distro por la facilidad y versatilidad que tiene.

    Voy a leer todos los enlaces que pones con calma 😉

    • Archuser dice:

      La adopción no es trivial, por «culpa» de los kernels que ofrece Debian pero, para Linux, es la mejor opción, dejando al resto prácticamente, como soluciones obsoletas.

  2. Panko dice:

    Estoy usando systemd como sistema de arranque en Debian. Sí que es verdad que, una vez conoces más o menos el funcionamiento y eso, resulta algo más sencillo de «mantener» y configurar. El problema que me encuentro viene referido a la «migración» de sysvinit a systemd en Debian. En esta gran distro hay una enorme cantidad de paquetes a disposición del usuario, y esto hace bastante más complicada la migración, no por tecnicismos, si no por la ardua tarea que supone adaptar todo el software a este sistema. Yo mismo me he tenido que hacer algunas Units, muy pocas, pero ha servido para probar y, oye, pues está majo y en muchas ocasiones sencillo, tanto que solo hay que adaptar algo las ya existentes en paquetes de otras distros, como Arch o Fedora.
    Ahora mismo, por esto que comento antes, tengo un sistema híbrido, con muchas cosas aún solo con sysvinit. Además, éste sistema de inicio, está «marcado» en debian como esencial, y ésto hace que el sistema quiera instalarlo si o si, lo que provoca incompatibilidad al incluir ambos el mismo comando para el inicio.
    Pero bueno, ahi estamos, y de momento todo sin problemas que destacar. A ver si van migrando más software poco a poco.

    Me guardo esto en favs. para ir echando vistazos a los enlaces, a ver si me animo y adapto algunas cosillas mas 😉

    • Archuser dice:

      Gracias!
      Si no toma sistema por defecto, el tema es que el soporte no estará al 100%, lo que require que sea el usuario el que haga «acoples» en su sistema.
      El tema de securización está muy bien, echa un ojo al ejemplo con fail2ban y al link con las opciones, verás cómo se te vienen pronto a la cabeza ideas para fortificar el sistema.
      El tema de kFreeBSD es el mayor problema, la opción más rápida es mantener dos sistemas de inicio, con el coste que supone.
      La migración, si optan por ella, puede ser paulatina, en Arch se mantuvieron los dos y, con un servicio, se ejecutaban los scripts no migrados, pero el esfuerzo inicial será grande. De todas formas, cualquier opción es, más o menos, compleja, sobre todo, por garantizar estabilidad.

  3. Emiliano dice:

    Me quedo con SysVinit.

  4. Archuser dice:

    Decisión tomada: Jessie vendrá con systemd. Ahora, veamos qué hacen Gentoo, Slackware y cuánto tarda Ubuntu en migrar también.

  5. Archuser dice:

    Pues Ubuntu parece que también se cambia a Systemd, tras Debian. Será, entonces, un estándar en GNU/Linux.

    • Archuser dice:

      Hola,

      Hay varias cosas en las que no estoy de acuerdo. Una de ellas, es al decir que «hablan los que saben del tema». Bueno, los desarrolladores de prácticamente todas las distribuciones, también sabrán algo del tema y lo han adoptado…

      Otra, cuando dicen que el acceso a los logs tiene que ser como root… Igual pasa con syslog-ng, si tu usuario no pertenece al grupo log (syslog-ng), o al grupo systemd-journal (journal), no podrá acceder a los logs. En fin…

      Rompe la filosofía UNIX, haz una cosa y hazla bien… Esa ya se rompió el siglo pasado… Por ejemplo, ¿recordáis eso de que emacs es un mágnífico S.O., con un pésimo editor de texto?

      Y, a partir de ahí, pues veo que los que «saben» han usado argumentos, al menos algunos, sin mucho conocimiento…

      Un saludo!

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.