Quantcast
Channel: Comentarios en: Upstart: una introducción para los viejos rockeros de init
Viewing all articles
Browse latest Browse all 18

Por: Jon Ander Hernández

$
0
0

– “Current versions of systemd require that you customize your kernel”

Bueno si han desactivado cgroups por defecto en el kernel tiene sentido que systemd no funcione. Pero teniendo en cuenta que es una funcionalidad muy interesante yo la activaría:

“cgroups (control groups) is a Linux kernel feature to limit, account and isolate resource usage (CPU, memory, disk I/O, etc.) of process groups.”

Un ejemplo famoso del uso que se le puede dar a cgroups surgió en el debate del famoso “parche milagro” que mejoraba el rendimiento de Linux cuando compilabas en un montón en terminales virtuales. Lo que el parche hacía era agrupar automaticamente todas las terminales virtuales en un grupo (a nivel del kernel). Y lo que Lennart comentaba, era que esto se podía/debía de hacer configurando bien los servicios del sistema a nivel de arranque. Es decir, agrupar por ejemplo servicios como dnsmasq, apache, etc… para que no roben ciclos a tareas que en un desktop serían más prioritarias como el Desktop.

De todas maneras esto está evolucionando muy rápido, y por ejemplo a partir de Gnome 3.2 systemd va a ser una dependencia externa. La razón es gnome-session va a ser “aumentado” por una instancia de systemd por usuario. Y es que esto introduce mejoras como la gestión de los cgroups que realiza systemd a nivel de escritorio, y además resuelve un problema dificil, como lo es arrancar los procesos de escritorio antes de hacer login (como el demonio que implementa la lógica para la suspensión de equipos, el wifi con network manager, las claves para el wifi, etc…).

– “Installing systemd may limit the amount of help and support available to you.”

Cierto, hay un montón de servicios que han dejado de usar scripts tradicionales para sólo instalar el servicio de upstart. Este es uno de los problemas que pretendía resolver en parte systemd evitando que muchos servicios requieran ficheros de configuración. Como por ejemplo que se puedan arrancar servicios por demanda al realizar llamadas a determinados puertos (como con el antiguo xinetd), o arrancar otros al recibir peticiones por d-bus (como el soporte bluetooth), etc…
Lo interesante del planteamiento de Lennart era que esto es una forma de describir las dependencias de algunos servicios de una manera más natural. Si no se piden, no arrancan, y no hace falta definir dependencias, dependencias de eventos, etc…

Por otro lado si usas un paquete de Ubuntu en Debian tienes el mismo problema. Tendrás que buscarte la vida con el script de arranque, porque muchos paquetes sólo distribuyen el fichero de upstart.

– “as running a non-standard init process. These are pretty intrusive changes”

Estos de Ubuntu… Esto ya me ha tocado el corazón. Jajaja. Porque aunque ellos digan eso, no es cierto, y lo digo con conocimiento de causa porque para depurar el arranque de Ubuntu en KestrelHPC he tenido que perder una ingente cantidad de tiempo… buff. El problema es que upstart sólo arranca si el init se ejecuta con el pid=0, y por lo tanto si arrancas el initial ramdisk en modo debug, no puedes arrancar init desde una terminal, te obliga a sustituir dicha terminal por init si o si, y si lo quieres evitar tienes que empezar a hacer unos líos…
Bueno concretamente en Kestrel nunca lo he conseguido. El sistema se cuelga en el arranque cuando usamos NFS4 y a día de hoy no he conseguido depurar el arranque. Y no te pongas a buscar información sobre como depurar el arranque… porque no hay. 🙂

Pero bueno, de todas maneras lo que buscan upstart o systemd ya va más allá de el simple arranque paralelo del sistema, cosa que por ejemplo Debian Squeeze consigue con los antiguos scripts de SysV añadiéndoles etiquetas en la cabecera con las dependencias. Por ejemplo upstart permite gestionar eventos de udev, de modo que si se carga una interfaz de red se puedan arrancar determinados servicios, o si enchufas un disco duro lo mismo… Y por ejemplo systemd gestionará cosas como el hostname, de modo que para cambiarlo, las aplicaciones tendrán ahora que hablar con systemd.

Lo bueno y malo, es que estamos abandonando un antiguo diseño en el que nos sentíamos todos muy cómodos, para entrar en una nueva era en que posiblemente no se pueda entrar sin un cambio de diseño, pero que nos va a hacer tener que estudiar mucho.


Viewing all articles
Browse latest Browse all 18

Trending Articles