Solució als problemes amb Ganglia

Projecte Add comments

Després d’investigar i recompilar alguns kernels jugant amb parches he trobat la solució al problema.

Un resum del problema podria ser:

[root@compute-0-0 root]# /etc/init.d/gmond status
gmond dead but subsys locked

Tenia 2 possibles aproximacions, investigar sobre els pegats del nucli per donar-li suport nptl o investigar l’ús de les llibreries estandards que feia Ganglia. Per Murphy, primer vaig anar a la del nucli, gastant 3 dies sense resultats. I avui, per desesperació he anat cap a la de les llibreries.

Observant les llibreries compartides que utilitza gmond (amb greceptor és el mateix cas) podem veure:

[root@compute-0-0 root]# ldd /usr/sbin/gmond
libdl.so.2 => /lib/libdl.so.2 (0×40020000)
libresolv.so.2 => /lib/libresolv.so.2 (0×40023000)
libnsl.so.1 => /lib/libnsl.so.1 (0×40035000)
libpthread.so.0 => /lib/tls/libpthread.so.0 (0×4004a000)
libc.so.6 => /lib/tls/libc.so.6 (0×4005a000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0×40000000)

Aquí veiem que utilitza les llibreries situades a /lib/tls, que són les llibreries compilades amb suport per NPTL, pro com el nucli no disposa d’aquest suport es penja a l’hora de crear els threads (LinuxThreads del vanilla versus NPTL threads de la llibreria TLS).

Primera solució a lo cutre:

# mv /lib/tls /lib/tls-mala

Doncs sorprenentment ha funcionat. Després de realitzar aquest canvi tornem a fer ldd a veure que trobem:

[root@compute-0-0 root]# ldd /usr/sbin/gmond
libdl.so.2 => /lib/libdl.so.2 (0×40020000)
libresolv.so.2 => /lib/libresolv.so.2 (0×40023000)
libnsl.so.1 => /lib/libnsl.so.1 (0×40035000)
libpthread.so.0 => /lib/i686/libpthread.so.0 (0×4004a000)
libc.so.6 => /lib/i686/libc.so.6 (0×4009b000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0×40000000)

Voilà! Ara, automàticament agafa unes noves llibreries (les estandard) sense suport per NPTL, i inmediatament podem comprobar que ja funciona bé:

[root@compute-0-0 root]# /etc/init.d/gmond restart
Shutting down GANGLIA gmond: [FAILED]
Starting GANGLIA gmond: [ OK ]
[root@compute-0-0 root]# /etc/init.d/gmond status
gmond (pid 2803 2802 2801) is running…

Des del monitor web del Ganglia igualment podem veure que el sistema ha detectat que el compute-0-0 està actiu. Visca!

Només quedaran 2 passos:

  1. Comunicar-ho a la llista de Rocks

  2. Introduir-ho dintre el procediment general d’instalació del clúster.

Leave a Reply

WP Theme & Icons by N.Design Studio
RSS RSS comentaris Log in