RedHat/CentOS 6.x y anteriores VS RedHat/CentOS 7 ( INIT vs SYSTEMD )
By: Date: septiembre 2, 2014 Categories: Consultoria y Manuales,Personal

En esta generación de RedHat y CentOS llegan con un cambio total de paradigma en cuento al inicio del sistema operativo y los servicios que cargan con él, prácticamente durante toda la existencia de GNU/Linux y prácticamente cualquier otro Unix se ha sabido que el proceso número 1 es INIT el padre de todo dentro del sistema operativo. Pero ya no mas, es el turno de Systemd

INIT

Init es un proceso muy bien conocido tanto en GNU/Linux como todos Unix que están ahí a fuera, pero tiene un punto débil, a pesar de que es el primer proceso que se ejecuta en un sistema multitarea paradójicamente es un proceso lineal, primero carga driver por driver, luego servicio por servicio no hay ninguna prioridad de carga , así hasta que al terminar su ejecución queda la pantalla de Login dejándonos saber que el sistema operativo está listo para funcionar.

Este método monolítico y lineal hace que INIT tarde mucho en dejar el sistema operativo listo para operar, en esencia hace su trabajo muy bien, tan bien que INIT es el proceso por excelencia para arrancar cualquier unix sin embargo ahora con las modas de los sistemas que arrancan casi de inmediato con solo encender la computadora se requiere mayor velocidad de arranque y es aquí donde entra Systemd

Systemd

SystemD es el nuevo proceso 1, se incluye en algunas distribuciones de Linux y en CentOS 7 a partir de ahora.

Systemd es un proceso multihilos, esto significa que lanza todos los procesos posibles al mismo tiempo, al mismo tiempo carga, apache, mysql, smtp , pop3 y todos servicios, a diferencia de INIT que espera a que cargue uno por esta vez carga todo a la vez, el resultado es que cualquier maquina con CentOS 7 debería arranar en menos de 5 segundos una vez cargado el SystemD

Habrá que darle una oportunidad a Systemd para saber si es realmente vale la pena sustituir todos los Init que hasta hoy que han sido muy estables y hacen su función muy bien.

Que cambia con Systemd

La forma de configurar el sistema, los script de arranque de servicios, la forma de arrancar servicios, reiniciarlos o pararlos.

Por ejemplo en las versiones CentOS 6.x la llamada manual para arranque y paro de servicios es con el comando services + nombre de servicio + start,stop,restart,status

Por ejemplo
Service mysqld stop

Esto cambia al usar Systemd

En systemd el comando es systemctl + start,stop,restart,status + nombre de servicio

systemctl stop mysqld

En CentOS 6.x y anteriores desactivar un servicio del arranque es con el comando chkconfig

Activar o desactivar mysql en el INIT 3 y 5 para arranque automático

chkconfig --level 35 mysql on
chkconfig --level 345 mysql off

en CentOS 7 con systemd

systemctl enable mysqld
systemctl disable mysqld

Ahora un minihowto como agregar un servicio de arranque usando Systemd

Crear un archivo con extensión .service en /usr/lib/systemd/system por ejemplo

/usr/lib/systemd/system/dragon.service

Contenido:

[Unit]
Description=Servicio de Last Dragon
[Service]
Type=oneshot
ExecStart=/bin/startdragon
[Install]
WantedBy=multi-user.target

/bin/startdragon es un script bash que lanza el servicio, cargando módulos y programas necesario para que el servicio funcione.
El ejemplo anterior es básicamente la carga de un servicio pero que no puede ser detenido, por ejemplo un driver o un programa que no necesita un proceso de parado, pero si se requiere parar el servicio o programa se le anexa otra línea la de ExecStop

[Unit]
Description=Servicio de Last Dragon

[Service]
Type=oneshot
ExecStart=/bin/startdragon
ExecStop=/bin/stopdragon
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target

Ahora una demostración del poder de systemd, en el primer video carga un CentOS 6 que optimice para que arranque lo más rápido posible. El segundo sistema operativo en el video es un CentOS 7 que no está optimizado, esta como outbox , aun así se puede apreciar que SystemD sin optimizar es más rápido que un arranque con INIT optimizado.

2 thoughts on “RedHat/CentOS 6.x y anteriores VS RedHat/CentOS 7 ( INIT vs SYSTEMD )

  1. Usa: Google Chrome Google Chrome 54.0.2840.87 en Windows Windows 7 - Detectado...

    Hola que tal, soy uno de los que aun y para esta fecha no le convence lo de SystemD , seria genial que hiciera un post con respecto al rendimiento de systemD y la estabilidad. muchas gracias y adelante.

    1. Usa: Google Chrome Google Chrome 54.0.2840.59 en Linux Linux - Detectado...

      Es que no hay mucho que decir, realmente tiene mucho rendimiento, claro que ese momento solo sirve en el arranque del sistema, si tienes funcionando init y casi nunca reinicias no tiene ningún caso migrarse, no hay prisa

Deja un comentario

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