estás semanas he estado repasando videos del pasado Red Hat Summit, mirando a ver que novedades tendría Red Hat 7 Enterprise Server. Los cambios serán notables y realmente necesarios. Hoy vamos a ver como funciona systemd. ¿Que es systemd? Es un sustituto del demonio init, demonio clásico donde los alla que ejecuta todos los scripts de inicio del sistema según el runlevel, etc, etc. Systemd es definido con un completo manager del sistema.
Systemd ha sido desarrollado por Lennart Poettering, desarrollador open source y actualmente desarrollador Senior en RedHat. En su web hay un gran repositorio de documentación sobre systemd.
Este nuevo demonio se ejecutará al inicio y llevará el control del proceso de arranque del sistema. Aquí podéis ver la diferencia en un pstree de los procesos del sistema, entre systemd a la izquierda y init clásico a la derecha:
Sus principales ventajas las podéis ver en esta tabla comparativa. Ira más allá que controlar el proceso de arranque, pudiendo llevar el control de los demonios arrancados, grupos de recursos, puntos de montaje, runlevel por defecto, cron, syslog, etc.
Sus elementos básicos son:
- Servicios.
- Socket.
- Dispositivos.
- Puntos de montaje.
- Puntos de montaje automaticos.
- Targets, conjunto de grupos de los anteriores recursos.
- Snapshots, trata la configuración de sistema como un todo pudiendo establecer puntos parciales o totales de recuperación.
Un ejemplo:
Los runlevels se sustituyen por los target. Por ejemplo hasta ahora si queríamos arrancar en el runlevel 3 en vez de 5, lo modificavamos /etc/inittab. Ahora con systemd todos los ficheros de configuración están en /etc/systemd/system y el runlevel por defecto es default.target que estará linkado al fichero de configuración del runlevel deseado:
[root@localhost system]# ls -ltrha
total 52K
lrwxrwxrwx. 1 root root 39 Jun 27 19:12 syslog.service -> /usr/lib/systemd/system/rsyslog.service
drwxr-xr-x. 2 root root 4.0K Jun 27 19:12 getty.target.wants
drwxr-xr-x. 2 root root 4.0K Jun 27 19:12 default.target.wants
drwxr-xr-x. 2 root root 4.0K Jun 27 19:12 graphical.target.wants
lrwxrwxrwx. 1 root root 41 Jun 27 19:12 dbus-org.fedoraproject.FirewallD1.service -> /usr/lib/systemd/system/firewalld.service
drwxr-xr-x. 2 root root 4.0K Jun 27 19:12 basic.target.wants
lrwxrwxrwx. 1 root root 44 Jun 27 19:12 dbus-org.freedesktop.Avahi.service -> /usr/lib/systemd/system/avahi-daemon.service
drwxr-xr-x. 2 root root 4.0K Jun 27 19:13 sysinit.target.wants
drwxr-xr-x. 2 root root 4.0K Jun 27 19:13 sockets.target.wants
drwxr-xr-x. 2 root root 4.0K Jun 27 19:13 printer.target.wants
lrwxrwxrwx. 1 root root 46 Jun 27 19:13 dbus-org.freedesktop.NetworkManager.service -> /usr/lib/systemd/system/NetworkManager.service
drwxr-xr-x. 2 root root 4.0K Jun 27 19:13 system-update.target.wants
drwxr-xr-x. 2 root root 4.0K Jun 27 19:13 spice-vdagentd.target.wants
lrwxrwxrwx. 1 root root 41 Jun 27 19:14 dbus-org.bluez.service -> /usr/lib/systemd/system/bluetooth.service
drwxr-xr-x. 2 root root 4.0K Jun 27 19:14 bluetooth.target.wants
lrwxrwxrwx. 1 root root 35 Jun 27 19:14 display-manager.service -> /usr/lib/systemd/system/gdm.service
lrwxrwxrwx. 1 root root 37 Oct 10 11:00 default.target -> /lib/systemd/system/multi-user.target
drwxr-xr-x. 4 root root 4.0K Oct 11 14:37 ..
lrwxrwxrwx. 1 root root 57 Oct 11 14:47 dbus-org.freedesktop.nm-dispatcher.service -> /usr/lib/systemd/system/NetworkManager-dispatcher.service
drwxr-xr-x. 13 root root 4.0K Oct 11 14:47 .
drwxr-xr-x. 2 root root 4.0K Oct 11 14:48 multi-user.target.wants
Aun siendo una nueva forma de configuración y control, se mantendrá la compatibilidad con las anteriores formas de gestión.
Sus comandos principales son:
- systemctl, ver y controlar el estado de systemd.
- systemd-cgls, muestra de forma jerárquica los grupos de de control.
También incluye una utilidad gráfica para su configuración systemadm.
Ya que la versión de Red Hat 7 EL la beta no está disponible (esta a punto de caer). Se puede realizar la pruebas con Fedora 19 que ya lo tiene implementado y 100% funcional. Ya sabéis que Fedora es un proyecto OpenSource donde participa Red Hat y los avances significativos en Fedora son finalmente implementados en Red Hat.
Prácticamente todas las distribuciones han dado su aprobación a incluir systemd como su demonio de inicio por defecto, excepto Ubuntu que sigue apostando por su Upstart. Viendo la amplia aceptación de systemd, parece que se convertirá en el estándar de facto.
Video de RedHat.
Presentación de Redhat.
Otro video:
Saludos,