[Gentoo] Migrar de SysV baselayout 1 a OpenRC

SysV Init tradicionalmente ha sido el método estándar para iniciar y detener hosts Linux. Sin embargo han aparecido numerosas alternativas tales como Upstart de Ubuntu, systemd de Red Hat y OpenRC de Gentoo, entre otras muchas. En este post se hablará sobre el proceso de migración desde el esquema de inicio de Gentoo baselayout 1, basado en SysV Init, a OpenRC.

¿Qué es SysV Init?
En el proceso de arranque de una máquina con Linux, tras iniciarse el kernel, el primer proceso que se ejecuta es el programa init. Linux adoptó el esquema SysV como método estándar para iniciar y detener servicios. SysV emplea el concepto de niveles de ejecución o runlevels. Cada nivel de ejecución tiene una lista de aplicaciones y servicios que deben ser iniciados o detenidos. Así, por ejemplo, al apagar el host, la herramienta init cambia el modo de ejecución a 0, el cual está configurado para detener todas las aplicaciones y servicios. SysV posee siete modos de ejecución, del 0 al 6, aunque cada distribución utiliza los modos de ejecución para diferentes fines.

En los últimos años han aparecidos muchas alternativas al esquema SysV, algunas de las más destacadas son:

  • systemd, usado por defecto en Fedora 15
  • Upstart, usado por defecto en Fedora 9 a Fedora 14, Red Hat 6 y Ubuntu 6.10 en adelante.
  • OpenRC, es el nuevo sistema SysV usado por Gentoo, el cual reemplaza a baselayout 1.

El sistema rc original de Gentoo, baselayout 1, estaba escrito completamente en bash. Esto obligo a crear y enlazar estáticamente llamadas escritas en C, las cuales debían ser accedidas durante el inicio del sistema.

En el diseño y desarrollo de baselayout 2 se determinó que baselayout solo proporcionara los archivos base, y que el sistema rc fuera un paquete independiente (OpenRC) escrito en C. OpenRC fue desarrollado principalmente por Roy Marples, y actualmente es mantenido por Gentoo OpenRC Project.


OpenRC
OpenRC se estabilizó en Gentoo el 8 de mayo del 2011, sin embargo el administrador de paquetes de Gentoo (Portage), comenzó a informar a los usuarios de Gentoo unos días antes, conforme actualizaban el árbol de Portage, sobre el inminente cambio en el sistema rc de Gentoo hacia OpenRC. [+/-] Leer noticia

La noticia sobre la actualización insta a leer la Documentación Gentoo Linux -- Guía de Migración de Baselayout y OpenRC, en la cual nos indica paso por paso como llevar a cabo la migración hacia baselayout 2 y OpenRC.

Los pasos más importante son,
  • Actualizar los archivos de configuración, a través de etc-update o dispatch-conf. Si lo desea, puede [+/-] Ver ejemplo de los archivos de configuración que precise actualizar en mi sistema.
  • Revisar los scripts de los niveles de ejecución. En mi caso, tuve que añadir los siguientes servicios al nivel de ejecución boot, [+/-] Ver servicios añadidos

Saltar cualquiera de estos dos pasos impedirá que sus sistema inicie tras reiniciar, debiendo de arrancar desde un LiveCD para hacer chroot y reparar el problema. Si en el proceso algo falla, no puede iniciar su sistema y no sabe como arreglarlo; no se alarme. Inicie desde el LiveCD, realice un chroot al entorno Gentoo y reinstale el sistema rc mediante el comando emerge -avl baselayout openrc. A continuación siga la guía de migración de gentoo a OpenRC y preste especial atención en la actualización de los archivos de configuración y en los script de los niveles de ejecución.


¿Qué efectos obtendrá al pasar de baselayout 1 a OpenRC?
El más evidente es que su sistema estará actualizado, puesto que baselayout 1 será abandonado de forma progresiva en favor de OpenRC; sin embargo además experimentará un aumento de velocidad, más o menos notable, en el tiempo de arranque de su sistema.

En mi caso, he experimentado un aumento en velocidad del 26%, es decir, mi sistema ha pasado de arrancar en 23 segundos con baselayout 1 a tan solo 17 segundos con OpenRC. A continuación os muestro los bootcharts de mi sistema con baselayout 1 y OpenRC:

baselayout 1

OpenRC 1

PD: Si alguien usa Gentoo, y aun no ha migrado a OpenRC, puede configurar bootchart en Gentoo para generar estadísticas sobre el proceso de arranque de su sistema antes y después de usar OpenRC; si lo hace, que comente los resultados.

0 comentarios:

Publicar un comentario

Recuerde que puede utilizar algunos códigos HTML como <b>para negrita</b>, <i>para cursiva</i> y <a href="URL">para enlaces</a>.